0 txs
0 calls
constructor
constructor(address _seeder, address _target, address _puppet)
functions
callTarget
viewfunction callTarget() view returns (address)
getSeedAmount
viewfunction getSeedAmount(address feeToken, uint256 feeAmount) view returns (uint256)
isAllowanceTarget
viewfunction isAllowanceTarget(address) view returns (bool)
owner
viewfunction owner() view returns (address)
puppet
viewfunction puppet() view returns (address)
seeder
viewfunction seeder() view returns (address)
exactSell
nonpayablefunction exactSell(bytes data, address allowanceTarget, address sellToken, address buyToken, uint256 buyAmountMin, uint256 sellAmount)
exactSellWithBuyNative
nonpayablefunction exactSellWithBuyNative(bytes data, address allowanceTarget, address sellToken, uint256 buyAmountMin, uint256 sellAmount)
exactSellWithSellNative
payablefunction exactSellWithSellNative(bytes data, address buyToken, uint256 buyAmountMin) payable
removeAllowanceTargets
nonpayablefunction removeAllowanceTargets(address[] _targets)
renounceOwnership
nonpayablefunction renounceOwnership()
sendNative
nonpayablefunction sendNative(address _to)
sendTokens
nonpayablefunction sendTokens(address _tokenAddress, address _to)
setAllowanceTargets
nonpayablefunction setAllowanceTargets(address[] _targets)
setCallTarget
nonpayablefunction setCallTarget(address _target)
setPuppet
nonpayablefunction setPuppet(address _puppet)
setSeeder
nonpayablefunction setSeeder(address _seeder)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
AllowanceTargetAdded
event AllowanceTargetAdded(address indexed allowanceTarget)
AllowanceTargetRemoved
event AllowanceTargetRemoved(address indexed allowanceTarget)
CallTargetChanged
event CallTargetChanged(address indexed callTarget)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PuppetChanged
event PuppetChanged(address indexed puppet)
SeederChanged
event SeederChanged(address indexed seeder)
Swap
event Swap(address indexed swapper, address sellToken, address buyToken, uint256 sellAmount, uint256 buyAmount, uint256 climateFee)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506040516200396338038062003963833981810160405281019062000037919062000260565b620000576200004b6200012a60201b60201c565b6200013260201b60201c565b6001808190555082600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505050620002bc565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200022882620001fb565b9050919050565b6200023a816200021b565b81146200024657600080fd5b50565b6000815190506200025a816200022f565b92915050565b6000806000606084860312156200027c576200027b620001f6565b5b60006200028c8682870162000249565b93505060206200029f8682870162000249565b9250506040620002b28682870162000249565b9150509250925092565b61369780620002cc6000396000f3fe60806040526004361061010d5760003560e01c8063904e294d11610095578063aa9ecff511610064578063aa9ecff51461032b578063d50b31eb14610354578063dfce35d61461037d578063ec205ed7146103ba578063f2fde38b146103e357610114565b8063904e294d1461029257806394d63ea0146102bb5780639765de78146102e4578063a783c1311461030057610114565b80634eb3cedc116100dc5780634eb3cedc146101bf578063684931ed146101fc578063715018a614610227578063871591c91461023e5780638da5cb5b1461026757610114565b80630b5d8c47146101195780631888d712146101425780631d9b872f1461016b5780632872b1ff1461019457610114565b3661011457005b600080fd5b34801561012557600080fd5b50610140600480360381019061013b9190612865565b61040c565b005b34801561014e57600080fd5b5061016960048036038101906101649190612952565b6109c4565b005b34801561017757600080fd5b50610192600480360381019061018d919061297f565b610b60565b005b3480156101a057600080fd5b506101a96111e4565b6040516101b69190612a28565b60405180910390f35b3480156101cb57600080fd5b506101e660048036038101906101e19190612a43565b61120a565b6040516101f39190612a92565b60405180910390f35b34801561020857600080fd5b506102116112d0565b60405161021e9190612a28565b60405180910390f35b34801561023357600080fd5b5061023c6112f6565b005b34801561024a57600080fd5b5061026560048036038101906102609190612b03565b61137e565b005b34801561027357600080fd5b5061027c611509565b6040516102899190612a28565b60405180910390f35b34801561029e57600080fd5b506102b960048036038101906102b49190612b50565b611532565b005b3480156102c757600080fd5b506102e260048036038101906102dd9190612b50565b611635565b005b6102fe60048036038101906102f99190612b7d565b611738565b005b34801561030c57600080fd5b50610315611b4e565b6040516103229190612a28565b60405180910390f35b34801561033757600080fd5b50610352600480360381019061034d9190612bf1565b611b74565b005b34801561036057600080fd5b5061037b60048036038101906103769190612b50565b611d17565b005b34801561038957600080fd5b506103a4600480360381019061039f9190612b50565b611e1a565b6040516103b19190612c4c565b60405180910390f35b3480156103c657600080fd5b506103e160048036038101906103dc9190612b03565b611e3a565b005b3480156103ef57600080fd5b5061040a60048036038101906104059190612b50565b611fc5565b005b60026001541415610452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161044990612cc4565b60405180910390fd5b60026001819055503373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146104c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016104bf90612d30565b60405180910390fd5b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610554576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161054b90612d9c565b60405180910390fd5b60008373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161058f9190612a28565b60206040518083038186803b1580156105a757600080fd5b505afa1580156105bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105df9190612dd1565b9050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639e281a9886846040518363ffffffff1660e01b815260040161063e929190612dfe565b600060405180830381600087803b15801561065857600080fd5b505af115801561066c573d6000803e3d6000fd5b5050505061069b86838773ffffffffffffffffffffffffffffffffffffffff166120bd9092919063ffffffff16565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1689896040516106e6929190612e66565b6000604051808303816000865af19150503d8060008114610723576040519150601f19603f3d011682016040523d82523d6000602084013e610728565b606091505b505090508061076c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076390612ecb565b60405180910390fd5b60008573ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016107a79190612a28565b60206040518083038186803b1580156107bf57600080fd5b505afa1580156107d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107f79190612dd1565b9050600083826108079190612f1a565b90506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630b96cb89896040518263ffffffff1660e01b81526004016108669190612a28565b60206040518083038186803b15801561087e57600080fd5b505afa158015610892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b69190612f7a565b90506000816108c65760006108d3565b87836108d29190612f1a565b5b905060006108e18a8361120a565b11156109215761091233898b73ffffffffffffffffffffffffffffffffffffffff166121de9092919063ffffffff16565b61091c8982612264565b61094d565b61094c33848b73ffffffffffffffffffffffffffffffffffffffff166121de9092919063ffffffff16565b5b3373ffffffffffffffffffffffffffffffffffffffff167fd6d34547c69c5ee3d2667625c188acf1006abb93e0ee7cf03925c67cf77604138b8b8a85886109949190612f1a565b866040516109a6959493929190612fa7565b60405180910390a25050505050506001808190555050505050505050565b6109cc612350565b73ffffffffffffffffffffffffffffffffffffffff166109ea611509565b73ffffffffffffffffffffffffffffffffffffffff1614610a40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a3790613046565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ab0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aa7906130b2565b60405180910390fd5b60008173ffffffffffffffffffffffffffffffffffffffff1647604051610ad6906130f8565b60006040518083038185875af1925050503d8060008114610b13576040519150601f19603f3d011682016040523d82523d6000602084013e610b18565b606091505b5050905080610b5c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5390613159565b60405180910390fd5b5050565b60026001541415610ba6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9d90612cc4565b60405180910390fd5b60026001819055503373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff1614610c1c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c1390612d30565b60405180910390fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610ca8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c9f90612d9c565b60405180910390fd5b6000479050600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639e281a9885846040518363ffffffff1660e01b8152600401610d0a929190612dfe565b600060405180830381600087803b158015610d2457600080fd5b505af1158015610d38573d6000803e3d6000fd5b50505050610d6785838673ffffffffffffffffffffffffffffffffffffffff166120bd9092919063ffffffff16565b6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168888604051610db2929190612e66565b6000604051808303816000865af19150503d8060008114610def576040519150601f19603f3d011682016040523d82523d6000602084013e610df4565b606091505b5050905080610e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2f90612ecb565b60405180910390fd5b600047905060008382610e4b9190612f1a565b90506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630b96cb8973eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee6040518263ffffffff1660e01b8152600401610ebe9190612a28565b60206040518083038186803b158015610ed657600080fd5b505afa158015610eea573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f0e9190612f7a565b9050600081610f1e576000610f2b565b8783610f2a9190612f1a565b5b90506000610f4d73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8361120a565b111561105d5760003373ffffffffffffffffffffffffffffffffffffffff1689600067ffffffffffffffff811115610f8857610f87613179565b5b6040519080825280601f01601f191660200182016040528015610fba5781602001600182028036833780820191505090505b50604051610fc89190613217565b60006040518083038185875af1925050503d8060008114611005576040519150601f19603f3d011682016040523d82523d6000602084013e61100a565b606091505b505090508061104e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110459061327a565b60405180910390fd5b61105782612358565b5061115a565b60003373ffffffffffffffffffffffffffffffffffffffff1684600067ffffffffffffffff81111561109257611091613179565b5b6040519080825280601f01601f1916602001820160405280156110c45781602001600182028036833780820191505090505b506040516110d29190613217565b60006040518083038185875af1925050503d806000811461110f576040519150601f19603f3d011682016040523d82523d6000602084013e611114565b606091505b5050905080611158576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161114f9061327a565b60405180910390fd5b505b3373ffffffffffffffffffffffffffffffffffffffff167fd6d34547c69c5ee3d2667625c188acf1006abb93e0ee7cf03925c67cf77604138a73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8a85886111b59190612f1a565b866040516111c7959493929190612fa7565b60405180910390a250505050505060018081905550505050505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600080821161121a5760006112c8565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634eb3cedc84846040518363ffffffff1660e01b8152600401611277929190612dfe565b60206040518083038186803b15801561128f57600080fd5b505afa1580156112a3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c79190612dd1565b5b905092915050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6112fe612350565b73ffffffffffffffffffffffffffffffffffffffff1661131c611509565b73ffffffffffffffffffffffffffffffffffffffff1614611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990613046565b60405180910390fd5b61137c60006123f3565b565b611386612350565b73ffffffffffffffffffffffffffffffffffffffff166113a4611509565b73ffffffffffffffffffffffffffffffffffffffff16146113fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f190613046565b60405180910390fd5b60005b82829050811015611504576001600560008585858181106114215761142061329a565b5b90506020020160208101906114369190612b50565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555082828281811061149a5761149961329a565b5b90506020020160208101906114af9190612b50565b73ffffffffffffffffffffffffffffffffffffffff167fc080ac8eab2b6b9cc0ce0210514cb1f287ea63e2fc836491816d38560e87439060405160405180910390a280806114fc906132c9565b9150506113fd565b505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b61153a612350565b73ffffffffffffffffffffffffffffffffffffffff16611558611509565b73ffffffffffffffffffffffffffffffffffffffff16146115ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115a590613046565b60405180910390fd5b80600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167f20f1f3ace5b72328f5500433ba7ad96949c5de41cf7321f3ad235a95cb815f4460405160405180910390a250565b61163d612350565b73ffffffffffffffffffffffffffffffffffffffff1661165b611509565b73ffffffffffffffffffffffffffffffffffffffff16146116b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a890613046565b60405180910390fd5b80600460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fb7a547227599e1c92094ac3b10c9ad8fd9c7e19a1d0a438e5cf847f76d1a180a60405160405180910390a250565b6002600154141561177e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177590612cc4565b60405180910390fd5b600260018190555060008273ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016117c19190612a28565b60206040518083038186803b1580156117d957600080fd5b505afa1580156117ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118119190612dd1565b90506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1634878760405161185f929190612e66565b60006040518083038185875af1925050503d806000811461189c576040519150601f19603f3d011682016040523d82523d6000602084013e6118a1565b606091505b50509050806118e5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118dc90612ecb565b60405180910390fd5b60008473ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016119209190612a28565b60206040518083038186803b15801561193857600080fd5b505afa15801561194c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119709190612dd1565b9050600083826119809190612f1a565b90506000600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16630b96cb89886040518263ffffffff1660e01b81526004016119df9190612a28565b60206040518083038186803b1580156119f757600080fd5b505afa158015611a0b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a2f9190612f7a565b9050600081611a3f576000611a4c565b8683611a4b9190612f1a565b5b90506000611a5a898361120a565b1115611a9a57611a8b33888a73ffffffffffffffffffffffffffffffffffffffff166121de9092919063ffffffff16565b611a958882612264565b611ac6565b611ac533848a73ffffffffffffffffffffffffffffffffffffffff166121de9092919063ffffffff16565b5b3373ffffffffffffffffffffffffffffffffffffffff167fd6d34547c69c5ee3d2667625c188acf1006abb93e0ee7cf03925c67cf776041373eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee8a348588611b219190612f1a565b86604051611b33959493929190612fa7565b60405180910390a25050505050506001808190555050505050565b600460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611b7c612350565b73ffffffffffffffffffffffffffffffffffffffff16611b9a611509565b73ffffffffffffffffffffffffffffffffffffffff1614611bf0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611be790613046565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611c60576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c57906130b2565b60405180910390fd5b611d13818373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b8152600401611c9d9190612a28565b60206040518083038186803b158015611cb557600080fd5b505afa158015611cc9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ced9190612dd1565b8473ffffffffffffffffffffffffffffffffffffffff166121de9092919063ffffffff16565b5050565b611d1f612350565b73ffffffffffffffffffffffffffffffffffffffff16611d3d611509565b73ffffffffffffffffffffffffffffffffffffffff1614611d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8a90613046565b60405180910390fd5b80600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fbe1b063c8e1e42926ac921f0fa7cf316a03c85f9c4059d4bcce2212e3619848f60405160405180910390a250565b60056020528060005260406000206000915054906101000a900460ff1681565b611e42612350565b73ffffffffffffffffffffffffffffffffffffffff16611e60611509565b73ffffffffffffffffffffffffffffffffffffffff1614611eb6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ead90613046565b60405180910390fd5b60005b82829050811015611fc057600060056000858585818110611edd57611edc61329a565b5b9050602002016020810190611ef29190612b50565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550828282818110611f5657611f5561329a565b5b9050602002016020810190611f6b9190612b50565b73ffffffffffffffffffffffffffffffffffffffff167f1c61feeb0f928f5f85a65d83aad3943b3af6cd9c5c41438358af299607c506d760405160405180910390a28080611fb8906132c9565b915050611eb9565b505050565b611fcd612350565b73ffffffffffffffffffffffffffffffffffffffff16611feb611509565b73ffffffffffffffffffffffffffffffffffffffff1614612041576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203890613046565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a890613384565b60405180910390fd5b6120ba816123f3565b50565b6000818473ffffffffffffffffffffffffffffffffffffffff1663dd62ed3e30866040518363ffffffff1660e01b81526004016120fb9291906133a4565b60206040518083038186803b15801561211357600080fd5b505afa158015612127573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214b9190612dd1565b61215591906133cd565b90506121d88463095ea7b360e01b8584604051602401612176929190612dfe565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506124b7565b50505050565b61225f8363a9059cbb60e01b84846040516024016121fd929190612dfe565b604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506124b7565b505050565b600081111561234c576122ba600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16828473ffffffffffffffffffffffffffffffffffffffff166120bd9092919063ffffffff16565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663398bf7e03384846040518463ffffffff1660e01b815260040161231993929190613423565b600060405180830381600087803b15801561233357600080fd5b505af1158015612347573d6000803e3d6000fd5b505050505b5050565b600033905090565b60008111156123f057600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ef76d2ff82336040518363ffffffff1660e01b81526004016123bd9190612a28565b6000604051808303818588803b1580156123d657600080fd5b505af11580156123ea573d6000803e3d6000fd5b50505050505b50565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000612519826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff1661257e9092919063ffffffff16565b905060008151111561257957808060200190518101906125399190612f7a565b612578576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256f906134cc565b60405180910390fd5b5b505050565b606061258d8484600085612596565b90509392505050565b6060824710156125db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d29061355e565b60405180910390fd5b6125e4856126aa565b612623576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161261a906135ca565b60405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff16858760405161264c9190613217565b60006040518083038185875af1925050503d8060008114612689576040519150601f19603f3d011682016040523d82523d6000602084013e61268e565b606091505b509150915061269e8282866126bd565b92505050949350505050565b600080823b905060008111915050919050565b606083156126cd5782905061271d565b6000835111156126e05782518084602001fd5b816040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612714919061363f565b60405180910390fd5b9392505050565b600080fd5b600080fd5b600080fd5b600080fd5b600080fd5b60008083601f8401126127535761275261272e565b5b8235905067ffffffffffffffff8111156127705761276f612733565b5b60208301915083600182028301111561278c5761278b612738565b5b9250929050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127be82612793565b9050919050565b6127ce816127b3565b81146127d957600080fd5b50565b6000813590506127eb816127c5565b92915050565b60006127fc826127b3565b9050919050565b61280c816127f1565b811461281757600080fd5b50565b60008135905061282981612803565b92915050565b6000819050919050565b6128428161282f565b811461284d57600080fd5b50565b60008135905061285f81612839565b92915050565b600080600080600080600060c0888a03121561288457612883612724565b5b600088013567ffffffffffffffff8111156128a2576128a1612729565b5b6128ae8a828b0161273d565b975097505060206128c18a828b016127dc565b95505060406128d28a828b0161281a565b94505060606128e38a828b0161281a565b93505060806128f48a828b01612850565b92505060a06129058a828b01612850565b91505092959891949750929550565b600061291f82612793565b9050919050565b61292f81612914565b811461293a57600080fd5b50565b60008135905061294c81612926565b92915050565b60006020828403121561296857612967612724565b5b60006129768482850161293d565b91505092915050565b60008060008060008060a0878903121561299c5761299b612724565b5b600087013567ffffffffffffffff8111156129ba576129b9612729565b5b6129c689828a0161273d565b965096505060206129d989828a016127dc565b94505060406129ea89828a0161281a565b93505060606129fb89828a01612850565b9250506080612a0c89828a01612850565b9150509295509295509295565b612a22816127b3565b82525050565b6000602082019050612a3d6000830184612a19565b92915050565b60008060408385031215612a5a57612a59612724565b5b6000612a68858286016127dc565b9250506020612a7985828601612850565b9150509250929050565b612a8c8161282f565b82525050565b6000602082019050612aa76000830184612a83565b92915050565b60008083601f840112612ac357612ac261272e565b5b8235905067ffffffffffffffff811115612ae057612adf612733565b5b602083019150836020820283011115612afc57612afb612738565b5b9250929050565b60008060208385031215612b1a57612b19612724565b5b600083013567ffffffffffffffff811115612b3857612b37612729565b5b612b4485828601612aad565b92509250509250929050565b600060208284031215612b6657612b65612724565b5b6000612b74848285016127dc565b91505092915050565b60008060008060608587031215612b9757612b96612724565b5b600085013567ffffffffffffffff811115612bb557612bb4612729565b5b612bc18782880161273d565b94509450506020612bd48782880161281a565b9250506040612be587828801612850565b91505092959194509250565b60008060408385031215612c0857612c07612724565b5b6000612c168582860161281a565b9250506020612c27858286016127dc565b9150509250929050565b60008115159050919050565b612c4681612c31565b82525050565b6000602082019050612c616000830184612c3d565b92915050565b600082825260208201905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b6000612cae601f83612c67565b9150612cb982612c78565b602082019050919050565b60006020820190508181036000830152612cdd81612ca1565b9050919050565b7f696e76616c69642073656e646572000000000000000000000000000000000000600082015250565b6000612d1a600e83612c67565b9150612d2582612ce4565b602082019050919050565b60006020820190508181036000830152612d4981612d0d565b9050919050565b7f496e76616c696420616c6c6f77616e6365207461726765740000000000000000600082015250565b6000612d86601883612c67565b9150612d9182612d50565b602082019050919050565b60006020820190508181036000830152612db581612d79565b9050919050565b600081519050612dcb81612839565b92915050565b600060208284031215612de757612de6612724565b5b6000612df584828501612dbc565b91505092915050565b6000604082019050612e136000830185612a19565b612e206020830184612a83565b9392505050565b600081905092915050565b82818337600083830152505050565b6000612e4d8385612e27565b9350612e5a838584612e32565b82840190509392505050565b6000612e73828486612e41565b91508190509392505050565b7f63616c6c206e6f74207375636365737366756c00000000000000000000000000600082015250565b6000612eb5601383612c67565b9150612ec082612e7f565b602082019050919050565b60006020820190508181036000830152612ee481612ea8565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612f258261282f565b9150612f308361282f565b925082821015612f4357612f42612eeb565b5b828203905092915050565b612f5781612c31565b8114612f6257600080fd5b50565b600081519050612f7481612f4e565b92915050565b600060208284031215612f9057612f8f612724565b5b6000612f9e84828501612f65565b91505092915050565b600060a082019050612fbc6000830188612a19565b612fc96020830187612a19565b612fd66040830186612a83565b612fe36060830185612a83565b612ff06080830184612a83565b9695505050505050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613030602083612c67565b915061303b82612ffa565b602082019050919050565b6000602082019050818103600083015261305f81613023565b9050919050565b7f726563697069656e742063616e6e6f7420626520300000000000000000000000600082015250565b600061309c601583612c67565b91506130a782613066565b602082019050919050565b600060208201905081810360008301526130cb8161308f565b9050919050565b50565b60006130e2600083612e27565b91506130ed826130d2565b600082019050919050565b6000613103826130d5565b9150819050919050565b7f4661696c656420746f2073656e64204574686572000000000000000000000000600082015250565b6000613143601483612c67565b915061314e8261310d565b602082019050919050565b6000602082019050818103600083015261317281613136565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600081519050919050565b60005b838110156131d15780820151818401526020810190506131b6565b838111156131e0576000848401525b50505050565b60006131f1826131a8565b6131fb8185612e27565b935061320b8185602086016131b3565b80840191505092915050565b600061322382846131e6565b915081905092915050565b7f4e617469766520546f6b656e207472616e73666572206661696c656400000000600082015250565b6000613264601c83612c67565b915061326f8261322e565b602082019050919050565b6000602082019050818103600083015261329381613257565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006132d48261282f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561330757613306612eeb565b5b600182019050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061336e602683612c67565b915061337982613312565b604082019050919050565b6000602082019050818103600083015261339d81613361565b9050919050565b60006040820190506133b96000830185612a19565b6133c66020830184612a19565b9392505050565b60006133d88261282f565b91506133e38361282f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561341857613417612eeb565b5b828201905092915050565b60006060820190506134386000830186612a19565b6134456020830185612a19565b6134526040830184612a83565b949350505050565b7f5361666545524332303a204552433230206f7065726174696f6e20646964206e60008201527f6f74207375636365656400000000000000000000000000000000000000000000602082015250565b60006134b6602a83612c67565b91506134c18261345a565b604082019050919050565b600060208201905081810360008301526134e5816134a9565b9050919050565b7f416464726573733a20696e73756666696369656e742062616c616e636520666f60008201527f722063616c6c0000000000000000000000000000000000000000000000000000602082015250565b6000613548602683612c67565b9150613553826134ec565b604082019050919050565b600060208201905081810360008301526135778161353b565b9050919050565b7f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000600082015250565b60006135b4601d83612c67565b91506135bf8261357e565b602082019050919050565b600060208201905081810360008301526135e3816135a7565b9050919050565b600081519050919050565b6000601f19601f8301169050919050565b6000613611826135ea565b61361b8185612c67565b935061362b8185602086016131b3565b613634816135f5565b840191505092915050565b600060208201905081810360008301526136598184613606565b90509291505056fea2646970667358221220db7523d1fbc309b5df63fd700f3389875dc366c6469e9f1f6af8cabd4aa19ec864736f6c634300080900330000000000000000000000006c58399438413009df720f3d406fb568c241fb1f000000000000000000000000def1c0ded9bec7f1a1670819833240f027b25eff000000000000000000000000c48e1b1490b7407d7929821b2aa45d85c9821f48