UNPKG

@daostack/arc-experimental

Version:

A platform for building DAOs

599 lines (598 loc) 41.4 kB
{ "contractName": "ContinuousLocking4Reputation", "abi": [ { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_locker", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "_lockingId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_extendPeriod", "type": "uint256" } ], "name": "ExtendLocking", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_locker", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "_lockingId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_period", "type": "uint256" } ], "name": "LockToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "_lockingId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "_beneficiary", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_batchIndex", "type": "uint256" } ], "name": "Redeem", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "_lockingId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "_beneficiary", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "Release", "type": "event" }, { "inputs": [], "name": "MAX_LOCKING_BATCHES_HARDCAP", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "avatar", "outputs": [ { "internalType": "contract Avatar", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "batchTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "batches", "outputs": [ { "internalType": "uint256", "name": "totalScore", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "batchesIndexCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_extendPeriod", "type": "uint256" }, { "internalType": "uint256", "name": "_batchIndexToLockIn", "type": "uint256" }, { "internalType": "uint256", "name": "_lockingId", "type": "uint256" }, { "internalType": "bytes32", "name": "_agreementHash", "type": "bytes32" } ], "name": "extendLocking", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getAgreementHash", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_batchIndex", "type": "uint256" }, { "internalType": "uint256", "name": "_lockingId", "type": "uint256" } ], "name": "getLockingIdScore", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_batchIndex", "type": "uint256" } ], "name": "getRepRewardPerBatch", "outputs": [ { "internalType": "uint256", "name": "repReward", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract Avatar", "name": "_avatar", "type": "address" }, { "internalType": "uint256", "name": "_reputationReward", "type": "uint256" }, { "internalType": "uint256", "name": "_startTime", "type": "uint256" }, { "internalType": "uint256", "name": "_batchTime", "type": "uint256" }, { "internalType": "uint256", "name": "_redeemEnableTime", "type": "uint256" }, { "internalType": "uint256", "name": "_maxLockingBatches", "type": "uint256" }, { "internalType": "uint256", "name": "_repRewardConstA", "type": "uint256" }, { "internalType": "uint256", "name": "_repRewardConstB", "type": "uint256" }, { "internalType": "uint256", "name": "_batchesIndexCap", "type": "uint256" }, { "internalType": "contract IERC20", "name": "_token", "type": "address" }, { "internalType": "bytes32", "name": "_agreementHash", "type": "bytes32" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "uint256", "name": "_period", "type": "uint256" }, { "internalType": "uint256", "name": "_batchIndexToLockIn", "type": "uint256" }, { "internalType": "bytes32", "name": "_agreementHash", "type": "bytes32" } ], "name": "lock", "outputs": [ { "internalType": "uint256", "name": "lockingId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "lockCounter", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "lockers", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "lockingTime", "type": "uint256" }, { "internalType": "uint256", "name": "period", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxLockingBatches", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_beneficiary", "type": "address" }, { "internalType": "uint256", "name": "_lockingId", "type": "uint256" } ], "name": "redeem", "outputs": [ { "internalType": "uint256", "name": "reputation", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "redeemEnableTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_beneficiary", "type": "address" }, { "internalType": "uint256", "name": "_lockingId", "type": "uint256" } ], "name": "release", "outputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "repRewardConstA", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "repRewardConstB", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "reputationRewardLeft", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "startTime", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "token", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalLockedLeft", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "voteParamsHash", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "votingMachine", "outputs": [ { "internalType": "contract IntVoteInterface", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ], "bytecode": "0x608060405234801561001057600080fd5b50611beb806100206000396000f3fe608060405234801561001057600080fd5b50600436106101735760003560e01c80636c9d43b6116100de578063a6e1a54c11610097578063c348a24b11610071578063c348a24b14610352578063ef5a3e4a1461035a578063f6a740011461037d578063fc0c546a146103e757610173565b8063a6e1a54c146102e3578063afe0e33c1461032d578063b32c4d8d1461033557610173565b80636c9d43b6146102635780636e57307b1461026b578063746c0a601461029c57806378e97925146102a45780637b3e46f8146102ac5780638db564c2146102db57610173565b80634ea2c7ec116101305780634ea2c7ec14610233578063591451f71461023b5780635aef7de6146102435780635b42f48b1461024b5780635eff3f2914610253578063696da9211461025b57610173565b8063029489a9146101785780630357371d146101a757806303840c6c146101d35780631e9a6950146101db5780633d1678f4146102075780633edf7ca11461020f575b600080fd5b6101956004803603602081101561018e57600080fd5b50356103ef565b60408051918252519081900360200190f35b610195600480360360408110156101bd57600080fd5b506001600160a01b038135169060200135610422565b61019561057a565b610195600480360360408110156101f157600080fd5b506001600160a01b038135169060200135610580565b61019561094b565b610217610951565b604080516001600160a01b039092168252519081900360200190f35b610195610960565b610195610966565b61021761096c565b61019561097b565b610195610981565b610195610986565b61019561098c565b61029a6004803603608081101561028157600080fd5b5080359060208101359060408101359060600135610992565b005b610195610c94565b610195610c9a565b610195600480360360808110156102c257600080fd5b5080359060208101359060408101359060600135610ca0565b610195610fa1565b61030f600480360360408110156102f957600080fd5b506001600160a01b038135169060200135610fa7565b60408051938452602084019290925282820152519081900360600190f35b610195610fd3565b6101956004803603602081101561034b57600080fd5b5035610fd9565b610195610feb565b6101956004803603604081101561037057600080fd5b5080359060200135610ff1565b61029a600480360361016081101561039457600080fd5b506001600160a01b03813581169160208101359160408201359160608101359160808201359160a08101359160c08201359160e08101359161010082013591610120810135909116906101400135611015565b61021761122e565b6000604354821161041d5761041a6041546104158460425461123d90919063ffffffff16565b61128e565b90505b919050565b6001600160a01b038216600090815260376020908152604080832084845290915281208054610498576040805162461bcd60e51b815260206004820152601860248201527f6e6f20616d6f756e74206c65667420746f20756e6c6f636b0000000000000000604482015290519081900360640190fd5b805460008255603d54600283015460018401549294506104b99291026112f2565b421161050c576040805162461bcd60e51b815260206004820152601e60248201527f6c6f636b696e6720706572696f64206973207374696c6c206163746976650000604482015290519081900360640190fd5b6040546105199083611353565b604055603e54610533906001600160a01b03168584611395565b6040805183815290516001600160a01b0386169185917fe332e9963bc980fb82ccd3e7e181d76bddde349eec46b4ba393f3444529cd17f9181900360200190a35092915050565b60425481565b6000603b5442116105d1576040805162461bcd60e51b81526020600482015260166024820152756e6f77203e2072656465656d456e61626c6554696d6560501b604482015290519081900360640190fd5b6001600160a01b038316600090815260376020908152604080832085845290915290206001810154610646576040805162461bcd60e51b815260206004820152601960248201527817db1bd8dada5b99d25908191bd95cc81b9bdd08195e1a5cdd603a1b604482015290519081900360640190fd5b6000603d54603a548360010154038161065b57fe5b0490506000603d54603a5442038161066f57fe5b049050600061069561068e8560020154856112f290919063ffffffff16565b83906113ec565b90505b808310156107875760008381526038602090815260408083208984526001810190925290912054801561077a57600088815260018301602052604081208190556106e1866103ef565b905060006106f76106f184611402565b8361128e565b905060006107118261070c8760000154611402565b611417565b905061071d8a826112f2565b99508b6001600160a01b03168b7facf9103edd7d12d169ab5037ce643ee56e59d5986362a9e903d86f2544fefcaa61075484611430565b604080516001600160d81b03929092168252602082018d90528051918290030190a35050505b5050600190920191610698565b61079085611430565b6001600160d81b03169450600085116107f0576040805162461bcd60e51b815260206004820152601960248201527f72657075746174696f6e20746f2072656465656d206973203000000000000000604482015290519081900360640190fd5b6039546107fd9086611353565b60395560345460408051638da5cb5b60e01b815290516001600160a01b0390921691638da5cb5b91600480820192602092909190829003018186803b15801561084557600080fd5b505afa158015610859573d6000803e3d6000fd5b505050506040513d602081101561086f57600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b038a811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b1580156108c457600080fd5b505af11580156108d8573d6000803e3d6000fd5b505050506040513d60208110156108ee57600080fd5b5051610941576040805162461bcd60e51b815260206004820152601e60248201527f6d696e742072657075746174696f6e2073686f756c6420737563636565640000604482015290519081900360640190fd5b5050505092915050565b603b5481565b6035546001600160a01b031681565b60365481565b60415481565b6034546001600160a01b031681565b603c5481565b601881565b60005490565b603d5481565b8060005481146109d35760405162461bcd60e51b8152600401808060200182810382526028815260200180611a726028913960400191505060405180910390fd5b33600090815260376020908152604080832086845290915290206001810154610a3f576040805162461bcd60e51b815260206004820152601960248201527817db1bd8dada5b99d25908191bd95cc81b9bdd08195e1a5cdd603a1b604482015290519081900360640190fd5b6000610a8186603d54610a73603a54610a6d603d5488600201540288600101546112f290919063ffffffff16565b90611353565b81610a7a57fe5b0490611353565b90506000610a8f82896112f2565b9050603c54811115610ad25760405162461bcd60e51b815260040180806020018281038252602a815260200180611999602a913960400191505060405180910390fd5b60008811610b27576040805162461bcd60e51b815260206004820152601960248201527f5f657874656e64506572696f64206d757374206265203e203000000000000000604482015290519081900360640190fd5b604354610b3488836112f2565b1115610b715760405162461bcd60e51b8152600401808060200182810382526028815260200180611af66028913960400191505060405180910390fd5b6000603d54603a54420381610b8257fe5b049050878114610bd1576040805162461bcd60e51b81526020600482015260156024820152746c6f636b696e67206973206e6f742061637469766560581b604482015290519081900360640190fd5b60005b82811015610c3d5781810160009081526038602052604081208654909190610bff908487039061143a565b60008b81526001840160205260409020548354919250610c2391610a6d90846112f2565b825560008a81526001928301602052604090205501610bd4565b506002840154610c4d908a6112f2565b6002850155604080518a81529051889133917fbf1612e584a5355572c05134f25811613efa611499c6597f74d7dde53adc104c9181900360200190a3505050505050505050565b60435481565b603a5481565b6000816000548114610ce35760405162461bcd60e51b8152600401808060200182810382526028815260200180611a726028913960400191505060405180910390fd5b60008611610d30576040805162461bcd60e51b815260206004820152601560248201527405f616d6f756e742073686f756c64206265203e203605c1b604482015290519081900360640190fd5b603a54421015610d715760405162461bcd60e51b8152600401808060200182810382526033815260200180611a126033913960400191505060405180910390fd5b603c54851115610db25760405162461bcd60e51b8152600401808060200182810382526022815260200180611a9a6022913960400191505060405180910390fd5b60008511610dfd576040805162461bcd60e51b815260206004820152601360248201527205f706572696f64206d757374206265203e203606c1b604482015290519081900360640190fd5b604354610e0a85876112f2565b1115610e475760405162461bcd60e51b81526004018080602001828103825260388152602001806119186038913960400191505060405180910390fd5b603f54610e559060016112f2565b603f819055336000818152603760209081526040808320858452909152902088815560028101889055426001820155603e5492945091610ea2916001600160a01b0390911690308a611493565b6000603d54603a54420381610eb357fe5b049050858114610ef45760405162461bcd60e51b8152600401808060200182810382526044815260200180611b726044913960600191505060405180910390fd5b60005b87811015610f4657818101600090815260386020526040812090610f1d838b038c61143a565b8254909150610f2c90826112f2565b825560008781526001928301602052604090205501610ef7565b50604054610f5490896112f2565b60409081558051898152602081018990528151869233927fe24d345c42b1d6b6d4bdaf4acbd768c1dfdfb0242ff6df221c68ce443b8c2d0d929081900390910190a3505050949350505050565b603f5481565b603760209081526000928352604080842090915290825290208054600182015460029092015490919083565b60395481565b60386020526000908152604090205481565b60405481565b60008281526038602090815260408083208484526001019091529020545b92915050565b61101e8b6114f3565b600f8811611073576040805162461bcd60e51b815260206004820152601860248201527f626174636854696d652073686f756c64206265203e2031350000000000000000604482015290519081900360640190fd5b60188611156110b35760405162461bcd60e51b815260040180806020018281038252603a815260200180611abc603a913960400191505060405180910390fd5b6110bd89896112f2565b8710156110fb5760405162461bcd60e51b815260040180806020018281038252602a815260200180611b48602a913960400191505060405180910390fd5b606483111561113b5760405162461bcd60e51b81526004018080602001828103825260288152602001806119506028913960400191505060405180910390fd5b603e80546001600160a01b0319166001600160a01b038416179055603a89905560398a9055603b879055603c869055603d8890556103e884106111af5760405162461bcd60e51b81526004018080602001828103825260218152602001806119786021913960400191505060405180910390fd5b89604154106111ef5760405162461bcd60e51b815260040180806020018281038252602d815260200180611a45602d913960400191505060405180910390fd5b6111f885611402565b6041556112106001600160d81b0385166103e861160b565b60425560438390556112218161162c565b5050505050505050505050565b603e546001600160a01b031681565b60008282600160281b5b811561128557816001166001141561126657611263818461128e565b90505b60019190911c9081156112805761127d838461128e565b92505b611247565b95945050505050565b60008282028284828161129d57fe5b04146112e8576040805162461bcd60e51b81526020600482015260156024820152745265616c4d617468206d756c206f766572666c6f7760581b604482015290519081900360640190fd5b60281c9392505050565b60008282018381101561134c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600061134c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611686565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113e790849061171d565b505050565b60008183106113fb578161134c565b5090919050565b6001600160d81b038116600160281b02919050565b600081600160281b84028161142857fe5b049392505050565b600160281b900490565b6000826114495750600061100f565b8282028284828161145657fe5b041461134c5760405162461bcd60e51b81526004018080602001828103825260218152602001806119c36021913960400191505060405180910390fd5b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526114ed90859061171d565b50505050565b600154610100900460ff168061150c575061150c6118d5565b8061151a575060015460ff16155b6115555760405162461bcd60e51b815260040180806020018281038252602e8152602001806119e4602e913960400191505060405180910390fd5b600154610100900460ff1615801561157f576001805460ff1961ff00199091166101001716811790555b6001600160a01b0382166115da576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0384161790558015611607576001805461ff00191690555b5050565b600061134c6001600160d81b03808516600160281b90810291851602611417565b60005415611681576040805162461bcd60e51b815260206004820152601b60248201527f43616e206e6f74207365742061677265656d656e742074776963650000000000604482015290519081900360640190fd5b600055565b600081848411156117155760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156116da5781810151838201526020016116c2565b50505050905090810190601f1680156117075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b61172f826001600160a01b03166118db565b611780576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106117be5780518252601f19909201916020918201910161179f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611820576040519150601f19603f3d011682016040523d82523d6000602084013e611825565b606091505b50915091508161187c576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156114ed5780806020019051602081101561189857600080fd5b50516114ed5760405162461bcd60e51b815260040180806020018281038252602a815260200180611b1e602a913960400191505060405180910390fd5b303b1590565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061190f57508115155b94935050505056fe5f6261746368496e646578546f4c6f636b496e202b205f706572696f6420657863656564206d617820616c6c6f77656420626174636865735f62617463686573496e646578436170203e20424154434845535f494e4445585f484152444341505f726570526577617264436f6e7374422073686f756c64206265203c20313030306c6f636b696e6720706572696f64206578636565647320746865206d6178696d756d20616c6c6f776564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65646c6f636b696e67206973206e6f7420656e61626c656420796574202869742073746172747320617420737461727454696d6529726570526577617264436f6e7374412073686f756c64206265203c205f72657075746174696f6e52657761726453656e646572206d7573742073656e64207468652072696768742061677265656d656e74486173685f706572696f642065786365656420746865206d6178696d756d20616c6c6f7765646d61784c6f636b696e67426174636865732073686f756c64206265203c3d204d41585f4c4f434b494e475f424154434845535f484152444341505f657874656e64506572696f6420657863656564206d617820616c6c6f77656420626174636865735361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645f72656465656d456e61626c6554696d65203e3d205f737461727454696d652b5f626174636854696d655f6261746368496e646578546f4c6f636b496e206d75737420626520746865206f6e6520636f72726573706f6e64696e6720746f207468652063757272656e74206f6e65a2646970667358221220a46aaaad74b807beef2de948e59bbdda2573214d7e0cd386b53ffc1ece0cd1e564736f6c634300060c0033", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106101735760003560e01c80636c9d43b6116100de578063a6e1a54c11610097578063c348a24b11610071578063c348a24b14610352578063ef5a3e4a1461035a578063f6a740011461037d578063fc0c546a146103e757610173565b8063a6e1a54c146102e3578063afe0e33c1461032d578063b32c4d8d1461033557610173565b80636c9d43b6146102635780636e57307b1461026b578063746c0a601461029c57806378e97925146102a45780637b3e46f8146102ac5780638db564c2146102db57610173565b80634ea2c7ec116101305780634ea2c7ec14610233578063591451f71461023b5780635aef7de6146102435780635b42f48b1461024b5780635eff3f2914610253578063696da9211461025b57610173565b8063029489a9146101785780630357371d146101a757806303840c6c146101d35780631e9a6950146101db5780633d1678f4146102075780633edf7ca11461020f575b600080fd5b6101956004803603602081101561018e57600080fd5b50356103ef565b60408051918252519081900360200190f35b610195600480360360408110156101bd57600080fd5b506001600160a01b038135169060200135610422565b61019561057a565b610195600480360360408110156101f157600080fd5b506001600160a01b038135169060200135610580565b61019561094b565b610217610951565b604080516001600160a01b039092168252519081900360200190f35b610195610960565b610195610966565b61021761096c565b61019561097b565b610195610981565b610195610986565b61019561098c565b61029a6004803603608081101561028157600080fd5b5080359060208101359060408101359060600135610992565b005b610195610c94565b610195610c9a565b610195600480360360808110156102c257600080fd5b5080359060208101359060408101359060600135610ca0565b610195610fa1565b61030f600480360360408110156102f957600080fd5b506001600160a01b038135169060200135610fa7565b60408051938452602084019290925282820152519081900360600190f35b610195610fd3565b6101956004803603602081101561034b57600080fd5b5035610fd9565b610195610feb565b6101956004803603604081101561037057600080fd5b5080359060200135610ff1565b61029a600480360361016081101561039457600080fd5b506001600160a01b03813581169160208101359160408201359160608101359160808201359160a08101359160c08201359160e08101359161010082013591610120810135909116906101400135611015565b61021761122e565b6000604354821161041d5761041a6041546104158460425461123d90919063ffffffff16565b61128e565b90505b919050565b6001600160a01b038216600090815260376020908152604080832084845290915281208054610498576040805162461bcd60e51b815260206004820152601860248201527f6e6f20616d6f756e74206c65667420746f20756e6c6f636b0000000000000000604482015290519081900360640190fd5b805460008255603d54600283015460018401549294506104b99291026112f2565b421161050c576040805162461bcd60e51b815260206004820152601e60248201527f6c6f636b696e6720706572696f64206973207374696c6c206163746976650000604482015290519081900360640190fd5b6040546105199083611353565b604055603e54610533906001600160a01b03168584611395565b6040805183815290516001600160a01b0386169185917fe332e9963bc980fb82ccd3e7e181d76bddde349eec46b4ba393f3444529cd17f9181900360200190a35092915050565b60425481565b6000603b5442116105d1576040805162461bcd60e51b81526020600482015260166024820152756e6f77203e2072656465656d456e61626c6554696d6560501b604482015290519081900360640190fd5b6001600160a01b038316600090815260376020908152604080832085845290915290206001810154610646576040805162461bcd60e51b815260206004820152601960248201527817db1bd8dada5b99d25908191bd95cc81b9bdd08195e1a5cdd603a1b604482015290519081900360640190fd5b6000603d54603a548360010154038161065b57fe5b0490506000603d54603a5442038161066f57fe5b049050600061069561068e8560020154856112f290919063ffffffff16565b83906113ec565b90505b808310156107875760008381526038602090815260408083208984526001810190925290912054801561077a57600088815260018301602052604081208190556106e1866103ef565b905060006106f76106f184611402565b8361128e565b905060006107118261070c8760000154611402565b611417565b905061071d8a826112f2565b99508b6001600160a01b03168b7facf9103edd7d12d169ab5037ce643ee56e59d5986362a9e903d86f2544fefcaa61075484611430565b604080516001600160d81b03929092168252602082018d90528051918290030190a35050505b5050600190920191610698565b61079085611430565b6001600160d81b03169450600085116107f0576040805162461bcd60e51b815260206004820152601960248201527f72657075746174696f6e20746f2072656465656d206973203000000000000000604482015290519081900360640190fd5b6039546107fd9086611353565b60395560345460408051638da5cb5b60e01b815290516001600160a01b0390921691638da5cb5b91600480820192602092909190829003018186803b15801561084557600080fd5b505afa158015610859573d6000803e3d6000fd5b505050506040513d602081101561086f57600080fd5b50516040805163dea9e24d60e01b8152600481018890526001600160a01b038a811660248301529151919092169163dea9e24d9160448083019260209291908290030181600087803b1580156108c457600080fd5b505af11580156108d8573d6000803e3d6000fd5b505050506040513d60208110156108ee57600080fd5b5051610941576040805162461bcd60e51b815260206004820152601e60248201527f6d696e742072657075746174696f6e2073686f756c6420737563636565640000604482015290519081900360640190fd5b5050505092915050565b603b5481565b6035546001600160a01b031681565b60365481565b60415481565b6034546001600160a01b031681565b603c5481565b601881565b60005490565b603d5481565b8060005481146109d35760405162461bcd60e51b8152600401808060200182810382526028815260200180611a726028913960400191505060405180910390fd5b33600090815260376020908152604080832086845290915290206001810154610a3f576040805162461bcd60e51b815260206004820152601960248201527817db1bd8dada5b99d25908191bd95cc81b9bdd08195e1a5cdd603a1b604482015290519081900360640190fd5b6000610a8186603d54610a73603a54610a6d603d5488600201540288600101546112f290919063ffffffff16565b90611353565b81610a7a57fe5b0490611353565b90506000610a8f82896112f2565b9050603c54811115610ad25760405162461bcd60e51b815260040180806020018281038252602a815260200180611999602a913960400191505060405180910390fd5b60008811610b27576040805162461bcd60e51b815260206004820152601960248201527f5f657874656e64506572696f64206d757374206265203e203000000000000000604482015290519081900360640190fd5b604354610b3488836112f2565b1115610b715760405162461bcd60e51b8152600401808060200182810382526028815260200180611af66028913960400191505060405180910390fd5b6000603d54603a54420381610b8257fe5b049050878114610bd1576040805162461bcd60e51b81526020600482015260156024820152746c6f636b696e67206973206e6f742061637469766560581b604482015290519081900360640190fd5b60005b82811015610c3d5781810160009081526038602052604081208654909190610bff908487039061143a565b60008b81526001840160205260409020548354919250610c2391610a6d90846112f2565b825560008a81526001928301602052604090205501610bd4565b506002840154610c4d908a6112f2565b6002850155604080518a81529051889133917fbf1612e584a5355572c05134f25811613efa611499c6597f74d7dde53adc104c9181900360200190a3505050505050505050565b60435481565b603a5481565b6000816000548114610ce35760405162461bcd60e51b8152600401808060200182810382526028815260200180611a726028913960400191505060405180910390fd5b60008611610d30576040805162461bcd60e51b815260206004820152601560248201527405f616d6f756e742073686f756c64206265203e203605c1b604482015290519081900360640190fd5b603a54421015610d715760405162461bcd60e51b8152600401808060200182810382526033815260200180611a126033913960400191505060405180910390fd5b603c54851115610db25760405162461bcd60e51b8152600401808060200182810382526022815260200180611a9a6022913960400191505060405180910390fd5b60008511610dfd576040805162461bcd60e51b815260206004820152601360248201527205f706572696f64206d757374206265203e203606c1b604482015290519081900360640190fd5b604354610e0a85876112f2565b1115610e475760405162461bcd60e51b81526004018080602001828103825260388152602001806119186038913960400191505060405180910390fd5b603f54610e559060016112f2565b603f819055336000818152603760209081526040808320858452909152902088815560028101889055426001820155603e5492945091610ea2916001600160a01b0390911690308a611493565b6000603d54603a54420381610eb357fe5b049050858114610ef45760405162461bcd60e51b8152600401808060200182810382526044815260200180611b726044913960600191505060405180910390fd5b60005b87811015610f4657818101600090815260386020526040812090610f1d838b038c61143a565b8254909150610f2c90826112f2565b825560008781526001928301602052604090205501610ef7565b50604054610f5490896112f2565b60409081558051898152602081018990528151869233927fe24d345c42b1d6b6d4bdaf4acbd768c1dfdfb0242ff6df221c68ce443b8c2d0d929081900390910190a3505050949350505050565b603f5481565b603760209081526000928352604080842090915290825290208054600182015460029092015490919083565b60395481565b60386020526000908152604090205481565b60405481565b60008281526038602090815260408083208484526001019091529020545b92915050565b61101e8b6114f3565b600f8811611073576040805162461bcd60e51b815260206004820152601860248201527f626174636854696d652073686f756c64206265203e2031350000000000000000604482015290519081900360640190fd5b60188611156110b35760405162461bcd60e51b815260040180806020018281038252603a815260200180611abc603a913960400191505060405180910390fd5b6110bd89896112f2565b8710156110fb5760405162461bcd60e51b815260040180806020018281038252602a815260200180611b48602a913960400191505060405180910390fd5b606483111561113b5760405162461bcd60e51b81526004018080602001828103825260288152602001806119506028913960400191505060405180910390fd5b603e80546001600160a01b0319166001600160a01b038416179055603a89905560398a9055603b879055603c869055603d8890556103e884106111af5760405162461bcd60e51b81526004018080602001828103825260218152602001806119786021913960400191505060405180910390fd5b89604154106111ef5760405162461bcd60e51b815260040180806020018281038252602d815260200180611a45602d913960400191505060405180910390fd5b6111f885611402565b6041556112106001600160d81b0385166103e861160b565b60425560438390556112218161162c565b5050505050505050505050565b603e546001600160a01b031681565b60008282600160281b5b811561128557816001166001141561126657611263818461128e565b90505b60019190911c9081156112805761127d838461128e565b92505b611247565b95945050505050565b60008282028284828161129d57fe5b04146112e8576040805162461bcd60e51b81526020600482015260156024820152745265616c4d617468206d756c206f766572666c6f7760581b604482015290519081900360640190fd5b60281c9392505050565b60008282018381101561134c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b600061134c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611686565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526113e790849061171d565b505050565b60008183106113fb578161134c565b5090919050565b6001600160d81b038116600160281b02919050565b600081600160281b84028161142857fe5b049392505050565b600160281b900490565b6000826114495750600061100f565b8282028284828161145657fe5b041461134c5760405162461bcd60e51b81526004018080602001828103825260218152602001806119c36021913960400191505060405180910390fd5b604080516001600160a01b0380861660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b1790526114ed90859061171d565b50505050565b600154610100900460ff168061150c575061150c6118d5565b8061151a575060015460ff16155b6115555760405162461bcd60e51b815260040180806020018281038252602e8152602001806119e4602e913960400191505060405180910390fd5b600154610100900460ff1615801561157f576001805460ff1961ff00199091166101001716811790555b6001600160a01b0382166115da576040805162461bcd60e51b815260206004820152601760248201527f536368656d65206d757374206861766520617661746172000000000000000000604482015290519081900360640190fd5b603480546001600160a01b0319166001600160a01b0384161790558015611607576001805461ff00191690555b5050565b600061134c6001600160d81b03808516600160281b90810291851602611417565b60005415611681576040805162461bcd60e51b815260206004820152601b60248201527f43616e206e6f74207365742061677265656d656e742074776963650000000000604482015290519081900360640190fd5b600055565b600081848411156117155760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156116da5781810151838201526020016116c2565b50505050905090810190601f1680156117075780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b61172f826001600160a01b03166118db565b611780576040805162461bcd60e51b815260206004820152601f60248201527f5361666545524332303a2063616c6c20746f206e6f6e2d636f6e747261637400604482015290519081900360640190fd5b60006060836001600160a01b0316836040518082805190602001908083835b602083106117be5780518252601f19909201916020918201910161179f565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114611820576040519150601f19603f3d011682016040523d82523d6000602084013e611825565b606091505b50915091508161187c576040805162461bcd60e51b815260206004820181905260248201527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564604482015290519081900360640190fd5b8051156114ed5780806020019051602081101561189857600080fd5b50516114ed5760405162461bcd60e51b815260040180806020018281038252602a815260200180611b1e602a913960400191505060405180910390fd5b303b1590565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a47081811480159061190f57508115155b94935050505056fe5f6261746368496e646578546f4c6f636b496e202b205f706572696f6420657863656564206d617820616c6c6f77656420626174636865735f62617463686573496e646578436170203e20424154434845535f494e4445585f484152444341505f726570526577617264436f6e7374422073686f756c64206265203c20313030306c6f636b696e6720706572696f64206578636565647320746865206d6178696d756d20616c6c6f776564536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77436f6e747261637420696e7374616e63652068617320616c7265616479206265656e20696e697469616c697a65646c6f636b696e67206973206e6f7420656e61626c656420796574202869742073746172747320617420737461727454696d6529726570526577617264436f6e7374412073686f756c64206265203c205f72657075746174696f6e52657761726453656e646572206d7573742073656e64207468652072696768742061677265656d656e74486173685f706572696f642065786365656420746865206d6178696d756d20616c6c6f7765646d61784c6f636b696e67426174636865732073686f756c64206265203c3d204d41585f4c4f434b494e475f424154434845535f484152444341505f657874656e64506572696f6420657863656564206d617820616c6c6f77656420626174636865735361666545524332303a204552433230206f7065726174696f6e20646964206e6f7420737563636565645f72656465656d456e61626c6554696d65203e3d205f737461727454696d652b5f626174636854696d655f6261746368496e646578546f4c6f636b496e206d75737420626520746865206f6e6520636f72726573706f6e64696e6720746f207468652063757272656e74206f6e65a2646970667358221220a46aaaad74b807beef2de948e59bbdda2573214d7e0cd386b53ffc1ece0cd1e564736f6c634300060c0033", "linkReferences": {}, "deployedLinkReferences": {} }