2 txs
5 calls
constructor
constructor(address _czar, address _gem)
functions
accrued
viewfunction accrued(uint256 _id) view returns (uint256 amt)
awards
viewfunction awards(uint256) view returns (address usr, uint48 bgn, uint48 clf, uint48 fin, address mgr, uint8 res, uint128 tot, uint128 rxd)
bgn
viewfunction bgn(uint256 _id) view returns (uint256)
cap
viewfunction cap() view returns (uint256)
clf
viewfunction clf(uint256 _id) view returns (uint256)
czar
viewfunction czar() view returns (address)
fin
viewfunction fin(uint256 _id) view returns (uint256)
gem
viewfunction gem() view returns (address)
ids
viewfunction ids() view returns (uint256)
mgr
viewfunction mgr(uint256 _id) view returns (address)
res
viewfunction res(uint256 _id) view returns (uint256)
rxd
viewfunction rxd(uint256 _id) view returns (uint256)
tot
viewfunction tot(uint256 _id) view returns (uint256)
TWENTY_YEARS
viewfunction TWENTY_YEARS() view returns (uint256)
unpaid
viewfunction unpaid(uint256 _id) view returns (uint256 amt)
usr
viewfunction usr(uint256 _id) view returns (address)
valid
viewfunction valid(uint256 _id) view returns (bool isValid)
wards
viewfunction wards(address) view returns (uint256)
create
nonpayablefunction create(address _usr, uint256 _tot, uint256 _bgn, uint256 _tau, uint256 _eta, address _mgr) returns (uint256 id)
deny
nonpayablefunction deny(address _usr)
file
nonpayablefunction file(bytes32 what, uint256 data)
move
nonpayablefunction move(uint256 _id, address _dst)
rely
nonpayablefunction rely(address _usr)
restrict
nonpayablefunction restrict(uint256 _id)
unrestrict
nonpayablefunction unrestrict(uint256 _id)
vest
nonpayablefunction vest(uint256 _id, uint256 _maxAmt)
vest
nonpayablefunction vest(uint256 _id)
yank
nonpayablefunction yank(uint256 _id, uint256 _end)
yank
nonpayablefunction yank(uint256 _id)
events
Deny
event Deny(address indexed usr)
File
event File(bytes32 indexed what, uint256 data)
Init
event Init(uint256 indexed id, address indexed usr)
Move
event Move(uint256 indexed id, address indexed dst)
Rely
event Rely(address indexed usr)
Restrict
event Restrict(uint256 indexed id)
Unrestrict
event Unrestrict(uint256 indexed id)
Vest
event Vest(uint256 indexed id, uint256 amt)
Yank
event Yank(uint256 indexed id, uint256 end)
errors
No errors.
creation bytecode
0x60c06040523480156200001157600080fd5b5060405162003e2638038062003e26833981810160405260408110156200003757600080fd5b81019080805190602001909291908051906020019092919050505060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055503373ffffffffffffffffffffffffffffffffffffffff167fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a6060405160405180910390a2600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000161576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603081526020018062003dcc6030913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620001e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018062003dfc602a913960400191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff1660601b815250508073ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff1660601b81525050505060805160601c60a05160601c613b3f6200028d60003980611341528061383f5250806109a8528061387b5250613b3f6000f3fe608060405234801561001057600080fd5b50600436106101cf5760003560e01c80639c52a7f111610104578063d8a8e03a116100a2578063e529780d11610071578063e529780d14610826578063e7657e1514610868578063f52981f414610886578063fc5a5b63146108c8576101cf565b8063d8a8e03a1461069e578063db64ff8f146106ec578063dc2c788f1461078c578063e054720f146107e4576101cf565b8063bf8712c5116100de578063bf8712c51461057e578063c659cd45146105c2578063cdf434971461061a578063d4e8fd2e1461065c576101cf565b80639c52a7f1146104aa578063bb7c46f3146104ee578063bf353dbb14610526576101cf565b806353e8863d116101715780636a760b801161014b5780636a760b80146103d85780637bd2bea7146104065780637d8d27021461043a578063892de51d14610468576101cf565b806353e8863d1461033457806360fb494b1461037657806365fae35e14610394576101cf565b806329ae8114116101ad57806329ae811414610278578063355274ea146102b05780633c433d5f146102ce578063509aaa1d146102fc576101cf565b80631a8d3a6c146101d457806321f6c0cf1461020857806326e027f11461024a575b600080fd5b6101dc6109a6565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6102346004803603602081101561021e57600080fd5b81019080803590602001909291905050506109ca565b6040518082815260200191505060405180910390f35b6102766004803603602081101561026057600080fd5b8101908080359060200190929190505050610a04565b005b6102ae6004803603604081101561028e57600080fd5b810190808035906020019092919080359060200190929190505050610a11565b005b6102b8610c2b565b6040518082815260200191505060405180910390f35b6102fa600480360360208110156102e457600080fd5b8101908080359060200190929190505050610c31565b005b6103326004803603604081101561031257600080fd5b810190808035906020019092919080359060200190929190505050610ee1565b005b6103606004803603602081101561034a57600080fd5b8101908080359060200190929190505050610eef565b6040518082815260200191505060405180910390f35b61037e6111cc565b6040518082815260200191505060405180910390f35b6103d6600480360360208110156103aa57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506111d4565b005b610404600480360360208110156103ee57600080fd5b8101908080359060200190929190505050611312565b005b61040e61133f565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6104666004803603602081101561045057600080fd5b8101908080359060200190929190505050611363565b005b6104946004803603602081101561047e57600080fd5b8101908080359060200190929190505050611614565b6040518082815260200191505060405180910390f35b6104ec600480360360208110156104c057600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611662565b005b6105246004803603604081101561050457600080fd5b8101908080359060200190929190803590602001909291905050506117a0565b005b6105686004803603602081101561053c57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506117ae565b6040518082815260200191505060405180910390f35b6105aa6004803603602081101561059457600080fd5b81019080803590602001909291905050506117c6565b60405180821515815260200191505060405180910390f35b6105ee600480360360208110156105d857600080fd5b810190808035906020019092919050505061185a565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b6106466004803603602081101561063057600080fd5b810190808035906020019092919050505061189a565b6040518082815260200191505060405180910390f35b6106886004803603602081101561067257600080fd5b81019080803590602001909291905050506118d4565b6040518082815260200191505060405180910390f35b6106ea600480360360408110156106b457600080fd5b8101908080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611904565b005b610776600480360360c081101561070257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190803590602001909291908035906020019092919080359060200190929190803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050611ba3565b6040518082815260200191505060405180910390f35b6107b8600480360360208110156107a257600080fd5b8101908080359060200190929190505050612477565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610810600480360360208110156107fa57600080fd5b81019080803590602001909291905050506124b7565b6040518082815260200191505060405180910390f35b6108526004803603602081101561083c57600080fd5b8101908080359060200190929190505050612505565b6040518082815260200191505060405180910390f35b61087061253f565b6040518082815260200191505060405180910390f35b6108b26004803603602081101561089c57600080fd5b8101908080359060200190929190505050612545565b6040518082815260200191505060405180910390f35b6108f4600480360360208110156108de57600080fd5b8101908080359060200190929190505050612818565b604051808973ffffffffffffffffffffffffffffffffffffffff1681526020018865ffffffffffff1681526020018765ffffffffffff1681526020018665ffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020018460ff168152602001836fffffffffffffffffffffffffffffffff168152602001826fffffffffffffffffffffffffffffffff1681526020019850505050505050505060405180910390f35b7f000000000000000000000000000000000000000000000000000000000000000081565b60006001600083815260200190815260200160002060000160149054906101000a900465ffffffffffff1665ffffffffffff169050919050565b610a0e814261291b565b50565b600060045414610a89576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f73797374656d2d6c6f636b6564000000000000000000000081525060200191505060405180910390fd5b600160048190555060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414610b45576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f447373566573742f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b7f6361700000000000000000000000000000000000000000000000000000000000821415610b795780600281905550610be7565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601f8152602001807f447373566573742f66696c652d756e7265636f676e697a65642d706172616d0081525060200191505060405180910390fd5b817fe986e40cc8c151830d4f61050f4fb2e4add8567caad2d5f5496f9158e91fe4c7826040518082815260200191505060405180910390a260006004819055505050565b60025481565b600060045414610ca9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f73797374656d2d6c6f636b6564000000000000000000000081525060200191505060405180910390fd5b600160048190555060006001600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610d8f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f696e76616c69642d6177617264000000000000000000000081525060200191505060405180910390fd5b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480610e0757503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b610e79576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f447373566573742f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b6001806000848152602001908152602001600020600101601a6101000a81548160ff021916908360ff160217905550817f9247a2bf1b75bc397d4043d99b9cebce531548a01dbb56a5d4c5f5ca26051e8d60405160405180910390a250600060048190555050565b610eeb828261291b565b5050565b6000610ef9613a35565b60016000848152602001908152602001600020604051806101000160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff16815260200160008201601a9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160009054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201601a9054906101000a900460ff1660ff1660ff1681526020016002820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016002820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614156111a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f696e76616c69642d6177617264000000000000000000000081525060200191505060405180910390fd5b6111c4428260200151836040015184606001518560c001518660e00151613039565b915050919050565b632598060081565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611288576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f447373566573742f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60016000808373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167fdd0e34038ac38b2a1ce960229778ac48a8719bc900b6c4f8d0475c6e8b385a6060405160405180910390a250565b61133c817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613085565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600454146113db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f73797374656d2d6c6f636b6564000000000000000000000081525060200191505060405180910390fd5b600160048190555060006001600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156114c1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f696e76616c69642d6177617264000000000000000000000081525060200191505060405180910390fd5b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054148061153957503373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b6115ab576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f447373566573742f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b600060016000848152602001908152602001600020600101601a6101000a81548160ff021916908360ff160217905550817f3d1b575f06b2d660af77eec35d9b3ffcfa956b6c1fdbc840992d4b03b03e622b60405160405180910390a250600060048190555050565b60006001600083815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611716576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f447373566573742f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508073ffffffffffffffffffffffffffffffffffffffff167f184450df2e323acec0ed3b5c7531b81f9b4cdef7914dfd4c0a4317416bb5251b60405160405180910390a250565b6117aa8282613085565b5050565b60006020528060005260406000206000915090505481565b60006001600083815260200190815260200160002060020160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166001600084815260200190815260200160002060020160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16109050919050565b60006001600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600060016000838152602001908152602001600020600001601a9054906101000a900465ffffffffffff1665ffffffffffff169050919050565b600060016000838152602001908152602001600020600101601a9054906101000a900460ff1660ff169050919050565b60006004541461197c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f73797374656d2d6c6f636b6564000000000000000000000081525060200191505060405180910390fd5b60016004819055503373ffffffffffffffffffffffffffffffffffffffff166001600084815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611a5b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601a8152602001807f447373566573742f6f6e6c792d757365722d63616e2d6d6f766500000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611afe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f447373566573742f7a65726f2d616464726573732d696e76616c69640000000081525060200191505060405180910390fd5b806001600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16827f8ceddd02f4fb8ef0d5d6212cf4c91d59d366e04b977e8b2b944168d2a6d8508160405160405180910390a360006004819055505050565b60008060045414611c1c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f73797374656d2d6c6f636b6564000000000000000000000081525060200191505060405180910390fd5b600160048190555060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205414611cd8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f447373566573742f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff161415611d7b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f447373566573742f696e76616c69642d7573657200000000000000000000000081525060200191505060405180910390fd5b60008611611df1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f447373566573742f6e6f2d766573742d746f74616c2d616d6f756e740000000081525060200191505060405180910390fd5b611dff426325980600613567565b8510611e73576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f447373566573742f62676e2d746f6f2d6661720000000000000000000000000081525060200191505060405180910390fd5b611e814263259806006135ea565b8511611ef5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f447373566573742f62676e2d746f6f2d6c6f6e672d61676f000000000000000081525060200191505060405180910390fd5b60008411611f6b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260108152602001807f447373566573742f7461752d7a65726f0000000000000000000000000000000081525060200191505060405180910390fd5b600254848781611f7757fe5b041115611fec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f726174652d746f6f2d68696768000000000000000000000081525060200191505060405180910390fd5b6325980600841115612066576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f447373566573742f7461752d746f6f2d6c6f6e6700000000000000000000000081525060200191505060405180910390fd5b838311156120dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f447373566573742f6574612d746f6f2d6c6f6e6700000000000000000000000081525060200191505060405180910390fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60035410612173576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f447373566573742f6964732d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b60036000815460010191905081905590506040518061010001604052808873ffffffffffffffffffffffffffffffffffffffff1681526020016121b58761366d565b65ffffffffffff1681526020016121d46121cf8887613567565b61366d565b65ffffffffffff1681526020016121f36121ee8888613567565b61366d565b65ffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff168152602001600060ff16815260200161222f886136f4565b6fffffffffffffffffffffffffffffffff16815260200160006fffffffffffffffffffffffffffffffff168152506001600083815260200190815260200160002060008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a81548165ffffffffffff021916908365ffffffffffff160217905550604082015181600001601a6101000a81548165ffffffffffff021916908365ffffffffffff16021790555060608201518160010160006101000a81548165ffffffffffff021916908365ffffffffffff16021790555060808201518160010160066101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060a082015181600101601a6101000a81548160ff021916908360ff16021790555060c08201518160020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555060e08201518160020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055509050508673ffffffffffffffffffffffffffffffffffffffff16817f2e3cc5298d3204a0f0fc2be0f6fdefcef002025f4c75caf950b23e6cfbfb78d060405160405180910390a360006004819055509695505050505050565b60006001600083815260200190815260200160002060010160069054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006001600083815260200190815260200160002060020160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff169050919050565b60006001600083815260200190815260200160002060010160009054906101000a900465ffffffffffff1665ffffffffffff169050919050565b60035481565b600061254f613a35565b60016000848152602001908152602001600020604051806101000160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff16815260200160008201601a9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160009054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201601a9054906101000a900460ff1660ff1660ff1681526020016002820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016002820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614156127f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f696e76616c69642d6177617264000000000000000000000081525060200191505060405180910390fd5b61281042826020015183606001518460c00151613785565b915050919050565b60016020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a900465ffffffffffff169080600001601a9054906101000a900465ffffffffffff16908060010160009054906101000a900465ffffffffffff16908060010160069054906101000a900473ffffffffffffffffffffffffffffffffffffffff169080600101601a9054906101000a900460ff16908060020160009054906101000a90046fffffffffffffffffffffffffffffffff16908060020160109054906101000a90046fffffffffffffffffffffffffffffffff16905088565b600060045414612993576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f73797374656d2d6c6f636b6564000000000000000000000081525060200191505060405180910390fd5b600160048190555060016000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541480612a4957503373ffffffffffffffffffffffffffffffffffffffff166001600084815260200190815260200160002060010160069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16145b612abb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260168152602001807f447373566573742f6e6f742d617574686f72697a65640000000000000000000081525060200191505060405180910390fd5b612ac3613a35565b60016000848152602001908152602001600020604051806101000160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff16815260200160008201601a9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160009054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201601a9054906101000a900460ff1660ff1660ff1681526020016002820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016002820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161415612d6c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f696e76616c69642d6177617264000000000000000000000081525060200191505060405180910390fd5b42821015612d78574291505b806060015165ffffffffffff16821015612ff4576000612d978361366d565b9050806001600086815260200190815260200160002060010160006101000a81548165ffffffffffff021916908365ffffffffffff160217905550816020015165ffffffffffff168165ffffffffffff161015612eb357806001600086815260200190815260200160002060000160146101000a81548165ffffffffffff021916908365ffffffffffff1602179055508060016000868152602001908152602001600020600001601a6101000a81548165ffffffffffff021916908365ffffffffffff16021790555060006001600086815260200190815260200160002060020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550612ff2565b816040015165ffffffffffff168165ffffffffffff161015612f5b578060016000868152602001908152602001600020600001601a6101000a81548165ffffffffffff021916908365ffffffffffff16021790555060006001600086815260200190815260200160002060020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff160217905550612ff1565b612fa4612f9f612f83858560200151866040015187606001518860c001518960e00151613039565b8460e001516fffffffffffffffffffffffffffffffff16613567565b6136f4565b6001600086815260200190815260200160002060020160006101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff1602179055505b5b505b827f6f2a3ed78a3066d89360b6c89e52bf3313f52e859401a3ea5fa0f033fd540c3c836040518082815260200191505060405180910390a25060006004819055505050565b60008465ffffffffffff1687106130765761307161305988888787613785565b836fffffffffffffffffffffffffffffffff166135ea565b613079565b60005b90509695505050505050565b6000600454146130fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f73797374656d2d6c6f636b6564000000000000000000000081525060200191505060405180910390fd5b600160048190555061310d613a35565b60016000848152602001908152602001600020604051806101000160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff16815260200160008201601a9054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160009054906101000a900465ffffffffffff1665ffffffffffff1665ffffffffffff1681526020016001820160069054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160018201601a9054906101000a900460ff1660ff1660ff1681526020016002820160009054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff1681526020016002820160109054906101000a90046fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff166fffffffffffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614156133b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f696e76616c69642d6177617264000000000000000000000081525060200191505060405180910390fd5b60008160a0015160ff1614806133fb57503373ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16145b61346d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f447373566573742f6f6e6c792d757365722d63616e2d636c61696d000000000081525060200191505060405180910390fd5b6000613491428360200151846040015185606001518660c001518760e00151613039565b905061349d8184613824565b90506134c76134c28360e001516fffffffffffffffffffffffffffffffff1683613567565b6136f4565b6001600086815260200190815260200160002060020160106101000a8154816fffffffffffffffffffffffffffffffff02191690836fffffffffffffffffffffffffffffffff16021790555061352182600001518261383d565b837fa2906882572b0e9dfe893158bb064bc308eb1bd87d1da481850f9d17fc293847826040518082815260200191505060405180910390a2505060006004819055505050565b60008282840191508110156135e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f447373566573742f6164642d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b6000828284039150811115613667576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260158152602001807f447373566573742f7375622d756e646572666c6f77000000000000000000000081525060200191505060405180910390fd5b92915050565b6000818291508165ffffffffffff16146136ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f447373566573742f75696e7434382d6f766572666c6f7700000000000000000081525060200191505060405180910390fd5b919050565b600081829150816fffffffffffffffffffffffffffffffff1614613780576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260188152602001807f447373566573742f75696e743132382d6f766572666c6f77000000000000000081525060200191505060405180910390fd5b919050565b60008365ffffffffffff168510156137a0576000905061381c565b8265ffffffffffff1685106137c957816fffffffffffffffffffffffffffffffff16905061381b565b6137e38365ffffffffffff168565ffffffffffff166135ea565b613810836fffffffffffffffffffffffffffffffff1661380b888865ffffffffffff166135ea565b6139a0565b8161381757fe5b0490505b5b949350505050565b60008183116138335782613835565b815b905092915050565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166323b872dd7f000000000000000000000000000000000000000000000000000000000000000084846040518463ffffffff1660e01b8152600401808473ffffffffffffffffffffffffffffffffffffffff1681526020018373ffffffffffffffffffffffffffffffffffffffff1681526020018281526020019350505050602060405180830381600087803b15801561390c57600080fd5b505af1158015613920573d6000803e3d6000fd5b505050506040513d602081101561393657600080fd5b810190808051906020019092919050505061399c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401808060200182810382526024815260200180613ae66024913960400191505060405180910390fd5b5050565b6000808214806139bd57508282838502925082816139ba57fe5b04145b613a2f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260148152602001807f447373566573742f6d756c2d6f766572666c6f7700000000000000000000000081525060200191505060405180910390fd5b92915050565b604051806101000160405280600073ffffffffffffffffffffffffffffffffffffffff168152602001600065ffffffffffff168152602001600065ffffffffffff168152602001600065ffffffffffff168152602001600073ffffffffffffffffffffffffffffffffffffffff168152602001600060ff16815260200160006fffffffffffffffffffffffffffffffff16815260200160006fffffffffffffffffffffffffffffffff168152509056fe447373566573745472616e736665727261626c652f6661696c65642d7472616e73666572a2646970667358221220961fd07fad0d07b0e6fc79aabda121adcced5f65fd00ef908d790f99007ce3f864736f6c634300060c0033447373566573745472616e736665727261626c652f496e76616c69642d6469737472696275746f722d61646472657373447373566573745472616e736665727261626c652f496e76616c69642d746f6b656e2d61646472657373000000000000000000000000be8e3e3618f7474f8cb1d074a26affef007e98fb000000000000000000000000c20059e0317de91738d13af027dfc4a50781b066