0 txs
1 call
constructor
constructor(address _owner, address _v2Router, address _v3Router)
functions
owner
viewfunction owner() view returns (address)
tradingStrategies
viewfunction tradingStrategies(address, address) view returns (uint256)
v2Router
viewfunction v2Router() view returns (address)
v3Router
viewfunction v3Router() view returns (address)
addTokensToStrategy
payablefunction addTokensToStrategy(address _trader, address[] _tokens, uint256[] _amounts) payable
approveToken
nonpayablefunction approveToken(address token, address spender, uint256 amount)
setupTradingStrategy
payablefunction setupTradingStrategy(address _trader, address[] _tokens, uint256[] _amounts) payable
v2SwapETHForExactTokens
nonpayablefunction v2SwapETHForExactTokens(uint256 amountInMax, uint256 amountOut, address[] path, uint256 deadline) returns (uint256[] amounts)
v2SwapExactETHForTokens
nonpayablefunction v2SwapExactETHForTokens(uint256 amountIn, uint256 amountOutMin, address[] path, uint256 deadline) returns (uint256[] amounts)
v2SwapExactTokensForETH
nonpayablefunction v2SwapExactTokensForETH(uint256 amountIn, uint256 amountOutMin, address[] path, uint256 deadline) returns (uint256[] amounts)
v2swapExactTokensForTokens
nonpayablefunction v2swapExactTokensForTokens(uint256 amountIn, uint256 amountOutMin, address[] path, uint256 deadline) returns (uint256[] amounts)
v2SwapTokensForExactETH
nonpayablefunction v2SwapTokensForExactETH(uint256 amountOut, uint256 amountInMax, address[] path, uint256 deadline) returns (uint256[] amounts)
v2SwapTokensForExactTokens
nonpayablefunction v2SwapTokensForExactTokens(uint256 amountOut, uint256 amountInMax, address[] path, uint256 deadline) returns (uint256[] amounts)
v3ExactInput
nonpayablefunction v3ExactInput(tuple params)
v3ExactInputSingle
nonpayablefunction v3ExactInputSingle(tuple params)
v3ExactOutput
nonpayablefunction v3ExactOutput(tuple params)
v3ExactOutputSingle
nonpayablefunction v3ExactOutputSingle(tuple params)
withdrawTokensFromStrategy
nonpayablefunction withdrawTokensFromStrategy(address _trader, address[] _tokens, uint256[] _amounts)
events
StrategySetup
event StrategySetup(address indexed trader, address[] tokens, uint256[] amounts)
StrategyTokensAdded
event StrategyTokensAdded(address indexed trader, address[] tokens, uint256[] amounts)
StrategyTokensWithdraw
event StrategyTokensWithdraw(address indexed trader, address[] tokens, uint256[] amounts)
V2SwapETHForExactTokens
event V2SwapETHForExactTokens(address indexed trader, uint256 amountIn, address tokenOut, uint256 amountOut)
V2SwapExactETHForTokens
event V2SwapExactETHForTokens(address indexed trader, uint256 amountIn, address tokenOut, uint256 amountOut)
V2SwapExactTokensForETH
event V2SwapExactTokensForETH(address indexed trader, address tokenIn, uint256 amountIn, uint256 amountOut)
V2SwapExactTokensForTokens
event V2SwapExactTokensForTokens(address indexed trader, address tokenIn, uint256 amountIn, address tokenOut, uint256 amountOut)
V2SwapTokensForExactETH
event V2SwapTokensForExactETH(address indexed trader, address tokenIn, uint256 amountIn, uint256 amountOut)
V2SwapTokensForExactTokens
event V2SwapTokensForExactTokens(address indexed trader, address tokenIn, uint256 amountIn, address tokenOut, uint256 amountOut)
V3ExactInput
event V3ExactInput(address indexed trader, address tokenIn, uint256 amountIn, address tokenOut, uint256 amountOut)
V3ExactInputSingle
event V3ExactInputSingle(address indexed trader, address tokenIn, uint256 amountIn, address tokenOut, uint256 amountOut)
V3ExactOutput
event V3ExactOutput(address indexed trader, address tokenIn, uint256 amountIn, address tokenOut, uint256 amountOut)
V3ExactOutputSingle
event V3ExactOutputSingle(address indexed trader, address tokenIn, uint256 amountIn, address tokenOut, uint256 amountOut)
errors
InsufficientBalance
error InsufficientBalance()
InvalidStrategySetupInput
error InvalidStrategySetupInput()
InvalidValue
error InvalidValue()
NotOwner
error NotOwner()
creation bytecode
0x608060405234801561001057600080fd5b506040516151923803806151928339818101604052810190610032919061015f565b826000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555081600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505050506101b2565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061012c82610101565b9050919050565b61013c81610121565b811461014757600080fd5b50565b60008151905061015981610133565b92915050565b600080600060608486031215610178576101776100fc565b5b60006101868682870161014a565b93505060206101978682870161014a565b92505060406101a88682870161014a565b9150509250925092565b614fd1806101c16000396000f3fe60806040526004361061010d5760003560e01c8063afeab46611610095578063d5c37d9911610064578063d5c37d991461037c578063da3e3397146103a5578063deadbc14146103ce578063edc90408146103f9578063f8eb5aac1461043657610114565b8063afeab466146102d1578063bd609a42146102fa578063bd8adcb514610337578063c5d3c8971461036057610114565b806382d327ce116100dc57806382d327ce146101da5780638da5cb5b146102035780639b2405441461022e578063a903c7cb14610257578063afbfb0b21461029457610114565b80630dc91306146101195780634e7e731a146101445780635a27c5c814610181578063718de730146101be57610114565b3661011457005b600080fd5b34801561012557600080fd5b5061012e610473565b60405161013b9190613a12565b60405180910390f35b34801561015057600080fd5b5061016b60048036038101906101669190613adc565b610499565b6040516101789190613c22565b60405180910390f35b34801561018d57600080fd5b506101a860048036038101906101a39190613adc565b610820565b6040516101b59190613c22565b60405180910390f35b6101d860048036038101906101d39190613cd8565b610b9b565b005b3480156101e657600080fd5b5061020160048036038101906101fc9190613f60565b6111c8565b005b34801561020f57600080fd5b50610218611513565b6040516102259190613fb8565b60405180910390f35b34801561023a57600080fd5b5061025560048036038101906102509190613cd8565b611537565b005b34801561026357600080fd5b5061027e60048036038101906102799190613adc565b6119bc565b60405161028b9190613c22565b60405180910390f35b3480156102a057600080fd5b506102bb60048036038101906102b69190613fd3565b611d07565b6040516102c89190614022565b60405180910390f35b3480156102dd57600080fd5b506102f860048036038101906102f391906140e5565b611d2c565b005b34801561030657600080fd5b50610321600480360381019061031c9190613adc565b612073565b60405161032e9190613c22565b60405180910390f35b34801561034357600080fd5b5061035e60048036038101906103599190614153565b6123dd565b005b61037a60048036038101906103759190613cd8565b61271f565b005b34801561038857600080fd5b506103a3600480360381019061039e91906141a1565b612a62565b005b3480156103b157600080fd5b506103cc60048036038101906103c791906141cf565b612da0565b005b3480156103da57600080fd5b506103e3612ea9565b6040516103f09190614243565b60405180910390f35b34801561040557600080fd5b50610420600480360381019061041b9190613adc565b612ecf565b60405161042d9190613c22565b60405180910390f35b34801561044257600080fd5b5061045d60048036038101906104589190613adc565b613225565b60405161046a9190613c22565b60405180910390f35b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060003390506000858560008181106104b6576104b561425e565b5b90506020020160208101906104cb919061428d565b905087600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610583576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166338ed173989898989308a6040518763ffffffff1660e01b81526004016105e89695949392919061437d565b6000604051808303816000875af1158015610607573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061063091906144b1565b925087600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546106be9190614529565b92505081905550600086866001898990506106d99190614529565b8181106106e9576106e861425e565b5b90506020020160208101906106fe919061428d565b9050600084600186516107119190614529565b815181106107225761072161425e565b5b6020026020010151905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546107b8919061455d565b925050819055508373ffffffffffffffffffffffffffffffffffffffff167f877f38d16bbf4a75937cfe87a869456ba08d774c4768eaaad6b56795c9141fa2848c858560405161080b9493929190614591565b60405180910390a25050505095945050505050565b606060003390506000858560018888905061083b9190614529565b81811061084b5761084a61425e565b5b9050602002016020810190610860919061428d565b9050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16638803dbee89898989308a6040518763ffffffff1660e01b81526004016108c79695949392919061437d565b6000604051808303816000875af11580156108e6573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061090f91906144b1565b92506000868660008181106109275761092661425e565b5b905060200201602081019061093c919061428d565b90506000846000815181106109545761095361425e565b5b6020026020010151905080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610a14576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610aa09190614529565b9250508190555089600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610b33919061455d565b925050819055508373ffffffffffffffffffffffffffffffffffffffff167f914add4112fd1fe304c78a6587165909b6275db93b22019ae59039de4dae0ade8383868e604051610b869493929190614591565b60405180910390a25050505095945050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c20576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614158015610c6257508181905084849050145b610c98576040517fb0dbfcba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600084849050905060005b8181101561116b57600073ffffffffffffffffffffffffffffffffffffffff16868683818110610cd657610cd561425e565b5b9050602002016020810190610ceb919061428d565b73ffffffffffffffffffffffffffffffffffffffff1603610d5d57838382818110610d1957610d1861425e565b5b905060200201353414610d58576040517fb0dbfcba00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61109d565b858582818110610d7057610d6f61425e565b5b9050602002016020810190610d85919061428d565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd3330878786818110610db557610db461425e565b5b905060200201356040518463ffffffff1660e01b8152600401610dda939291906145d6565b6020604051808303816000875af1158015610df9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1d9190614645565b50600073ffffffffffffffffffffffffffffffffffffffff16600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610f5d57858582818110610e8757610e8661425e565b5b9050602002016020810190610e9c919061428d565b73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401610f189291906146ad565b6020604051808303816000875af1158015610f37573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f5b9190614645565b505b600073ffffffffffffffffffffffffffffffffffffffff16600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461109c57858582818110610fc657610fc561425e565b5b9050602002016020810190610fdb919061428d565b73ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b81526004016110579291906146ad565b6020604051808303816000875af1158015611076573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109a9190614645565b505b5b8383828181106110b0576110af61425e565b5b90506020020135600160008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600088888581811061110b5761110a61425e565b5b9050602002016020810190611120919061428d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508080600101915050610ca3565b508573ffffffffffffffffffffffffffffffffffffffff167f79bd0f8f7ae89baf5463bddda397d92792e17ca4214a7196af8409282456fd62868686866040516111b89493929190614740565b60405180910390a2505050505050565b600033905060006111dc83600001516135cf565b505090508260600151600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561129a576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8260600151600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461132a9190614529565b925050819055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c04b8d59856040518263ffffffff1660e01b815260040161138e9190614870565b6020604051808303816000875af11580156113ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113d19190614892565b90505b60011561140e5760006113ea8560000151613629565b90508015611408576113ff8560000151613668565b85600001819052505b506113d4565b600061141d85600001516135cf565b5091505081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546114ad919061455d565b925050819055508373ffffffffffffffffffffffffffffffffffffffff167f2f03322d454365042b261059450422131f5d264dd661eec1f6e18bcb4246d49184876060015184866040516115049493929190614591565b60405180910390a25050505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115bc576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b84849050811015611960578282828181106115dd576115dc61425e565b5b90506020020135600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008787858181106116385761163761425e565b5b905060200201602081019061164d919061428d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156116c0576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8282828181106116d3576116d261425e565b5b90506020020135600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600087878581811061172e5761172d61425e565b5b9050602002016020810190611743919061428d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461178c9190614529565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168585838181106117be576117bd61425e565b5b90506020020160208101906117d3919061428d565b73ffffffffffffffffffffffffffffffffffffffff16036118735760008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166108fc84848481811061183b5761183a61425e565b5b905060200201359081150290604051600060405180830381858888f1935050505015801561186d573d6000803e3d6000fd5b50611953565b8484828181106118865761188561425e565b5b905060200201602081019061189b919061428d565b73ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff168585858181106118ea576118e961425e565b5b905060200201356040518363ffffffff1660e01b815260040161190e9291906148bf565b6020604051808303816000875af115801561192d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119519190614645565b505b80806001019150506115bf565b508473ffffffffffffffffffffffffffffffffffffffff167fafa93505c840b9aa7ef66e9b06ce21ea8b038a106a2b350c420ea5aaf2f8dc2c858585856040516119ad9493929190614740565b60405180910390a25050505050565b60606000339050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16634a25d94a8888888830896040518763ffffffff1660e01b8152600401611a289695949392919061437d565b6000604051808303816000875af1158015611a47573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f82011682018060405250810190611a7091906144b1565b9150600082600081518110611a8857611a8761425e565b5b6020026020010151905060008686600189899050611aa69190614529565b818110611ab657611ab561425e565b5b9050602002016020810190611acb919061428d565b905081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611b83576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c0f9190614529565b9250508190555088600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ca2919061455d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff167f353bd31bca4d9b6a685c00c56121214d13a28727a1248267155dec5807aeb17482848c604051611cf3939291906148e8565b60405180910390a250505095945050505050565b6001602052816000526040600020602052806000526040600020600091509150505481565b60003390506000611d4083600001516135cf565b505090508260600151600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611dd4919061455d565b925050819055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f28c0498856040518263ffffffff1660e01b8152600401611e389190614995565b6020604051808303816000875af1158015611e57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e7b9190614892565b90505b600115611eb8576000611e948560000151613629565b90508015611eb257611ea98560000151613668565b85600001819052505b50611e7e565b6000611ec785600001516135cf565b5091505081600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015611f81576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461200d9190614529565b925050819055508373ffffffffffffffffffffffffffffffffffffffff167f0b52c7bfe6ca854d14e6498a001467f8c37a85f013bc3af9f1345b517a744f4282848689606001516040516120649493929190614591565b60405180910390a25050505050565b606060003390506000858560008181106120905761208f61425e565b5b90506020020160208101906120a5919061428d565b905087600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561215d576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166318cbafe589898989308a6040518763ffffffff1660e01b81526004016121c29695949392919061437d565b6000604051808303816000875af11580156121e1573d6000803e3d6000fd5b505050506040513d6000823e3d601f19601f8201168201806040525081019061220a91906144b1565b925087600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122989190614529565b9250508190555082600184516122ae9190614529565b815181106122bf576122be61425e565b5b6020026020010151600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612352919061455d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167f79fee1de63a63ef32c4298e108253cc216d4cbd3b4d1ef45dbd797cb5d3598f4828a86600188516123a29190614529565b815181106123b3576123b261425e565b5b60200260200101516040516123ca939291906148e8565b60405180910390a2505095945050505050565b60003390508160a00135600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084600001602081019061243b919061428d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156124ae576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8160a00135600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846000016020810190612507919061428d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546125509190614529565b925050819055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663414bf389846040518263ffffffff1660e01b81526004016125b49190614b63565b6020604051808303816000875af11580156125d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125f79190614892565b905080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600085602001602081019061264e919061428d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612697919061455d565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167fe5c0a568b39bb5ee3117e4fbc261e552ac2c0418db85c8d25020833d9bb4446a8460000160208101906126e9919061428d565b8560a00135866020016020810190612701919061428d565b856040516127129493929190614591565b60405180910390a2505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127a4576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b84849050811015612a0657600073ffffffffffffffffffffffffffffffffffffffff168585838181106127dd576127dc61425e565b5b90506020020160208101906127f2919061428d565b73ffffffffffffffffffffffffffffffffffffffff1603612864578282828181106128205761281f61425e565b5b90506020020135341461285f576040517faa7feadc00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612926565b8484828181106128775761287661425e565b5b905060200201602081019061288c919061428d565b73ffffffffffffffffffffffffffffffffffffffff166323b872dd33308686868181106128bc576128bb61425e565b5b905060200201356040518463ffffffff1660e01b81526004016128e1939291906145d6565b6020604051808303816000875af1158015612900573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129249190614645565b505b8282828181106129395761293861425e565b5b90506020020135600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008787858181106129945761299361425e565b5b90506020020160208101906129a9919061428d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546129f2919061455d565b9250508190555080806001019150506127a7565b508473ffffffffffffffffffffffffffffffffffffffff167f74b53b2c06c99b9d0efc37f65d62f28e95749779add64445b8b4280f7fb856f085858585604051612a539493929190614740565b60405180910390a25050505050565b60003390508160a00135600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000846020016020810190612ac0919061428d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612b09919061455d565b925050819055506000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663db3e2198846040518263ffffffff1660e01b8152600401612b6d9190614c61565b6020604051808303816000875af1158015612b8c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bb09190614892565b905080600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000856000016020810190612c07919061428d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612c7a576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000856000016020810190612ccf919061428d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d189190614529565b925050819055508173ffffffffffffffffffffffffffffffffffffffff167f9f7c773adb4dd1a719246fc83630f9dbd00843bff156c635a213eb8ee83ee36e846000016020810190612d6a919061428d565b83866020016020810190612d7e919061428d565b8760a00135604051612d939493929190614591565b60405180910390a2505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612e25576040517f30cd747100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663095ea7b383836040518363ffffffff1660e01b8152600401612e609291906148bf565b6020604051808303816000875af1158015612e7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ea39190614645565b50505050565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6060600033905086600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015612f8c576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b86600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130189190614529565b92505081905550600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16637ff36ab58888888830896040518763ffffffff1660e01b8152600401613083959493929190614c7d565b60006040518083038185885af11580156130a1573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f820116820180604052508101906130cb91906144b1565b9150600085856001888890506130e19190614529565b8181106130f1576130f061425e565b5b9050602002016020810190613106919061428d565b9050600083600185516131199190614529565b8151811061312a5761312961425e565b5b6020026020010151905080600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546131c0919061455d565b925050819055508273ffffffffffffffffffffffffffffffffffffffff167f604e197920a0d6e034c34170dafcbf992c6af5b67a7a4e044408043394bbf6b08a848460405161321193929190614ccb565b60405180910390a250505095945050505050565b60606000339050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fb3bdb418888888830896040518763ffffffff1660e01b8152600401613290959493929190614c7d565b60006040518083038185885af11580156132ae573d6000803e3d6000fd5b50505050506040513d6000823e3d601f19601f820116820180604052508101906132d891906144b1565b9150816000815181106132ee576132ed61425e565b5b6020026020010151600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410156133ab576040517ff4d678b800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816000815181106133bf576133be61425e565b5b6020026020010151600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546134529190614529565b9250508190555085600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000878760018a8a90506134ad9190614529565b8181106134bd576134bc61425e565b5b90506020020160208101906134d2919061428d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461351b919061455d565b925050819055508073ffffffffffffffffffffffffffffffffffffffff167f44a695f2525a1ca4afd5b951f2a846bf51b8cc41af999b90ccb93eb16bf8c8638360008151811061356e5761356d61425e565b5b6020026020010151878760018a8a90506135889190614529565b8181106135985761359761425e565b5b90506020020160208101906135ad919061428d565b896040516135bd93929190614ccb565b60405180910390a25095945050505050565b60008060006135e86000856136ac90919063ffffffff16565b92506135fe60148561377190919063ffffffff16565b905061362060036014613611919061455d565b856136ac90919063ffffffff16565b91509193909250565b600060036014613639919061455d565b601460036014613649919061455d565b613653919061455d565b61365d919061455d565b825110159050919050565b60606136a56003601461367b919061455d565b60036014613689919061455d565b84516136959190614529565b846138279092919063ffffffff16565b9050919050565b6000816014836136bc919061455d565b10156136fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016136f490614d5f565b60405180910390fd5b60148261370a919061455d565b8351101561374d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161374490614dcb565b60405180910390fd5b60006c01000000000000000000000000836020860101510490508091505092915050565b600081600383613781919061455d565b10156137c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016137b990614e37565b60405180910390fd5b6003826137cf919061455d565b83511015613812576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161380990614ea3565b60405180910390fd5b60008260038501015190508091505092915050565b606081601f83613837919061455d565b1015613878576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161386f90614f0f565b60405180910390fd5b828284613885919061455d565b10156138c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016138bd90614f0f565b60405180910390fd5b81836138d2919061455d565b84511015613915576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161390c90614f7b565b60405180910390fd5b60608215600081146139365760405191506000825260208201604052613987565b6040519150601f8416801560200281840101858101878315602002848b0101015b818310156139745780518352602083019250602081019050613957565b50868552601f19601f8301166040525050505b50809150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006139d86139d36139ce84613993565b6139b3565b613993565b9050919050565b60006139ea826139bd565b9050919050565b60006139fc826139df565b9050919050565b613a0c816139f1565b82525050565b6000602082019050613a276000830184613a03565b92915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b613a5481613a41565b8114613a5f57600080fd5b50565b600081359050613a7181613a4b565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112613a9c57613a9b613a77565b5b8235905067ffffffffffffffff811115613ab957613ab8613a7c565b5b602083019150836020820283011115613ad557613ad4613a81565b5b9250929050565b600080600080600060808688031215613af857613af7613a37565b5b6000613b0688828901613a62565b9550506020613b1788828901613a62565b945050604086013567ffffffffffffffff811115613b3857613b37613a3c565b5b613b4488828901613a86565b93509350506060613b5788828901613a62565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b613b9981613a41565b82525050565b6000613bab8383613b90565b60208301905092915050565b6000602082019050919050565b6000613bcf82613b64565b613bd98185613b6f565b9350613be483613b80565b8060005b83811015613c15578151613bfc8882613b9f565b9750613c0783613bb7565b925050600181019050613be8565b5085935050505092915050565b60006020820190508181036000830152613c3c8184613bc4565b905092915050565b6000613c4f82613993565b9050919050565b613c5f81613c44565b8114613c6a57600080fd5b50565b600081359050613c7c81613c56565b92915050565b60008083601f840112613c9857613c97613a77565b5b8235905067ffffffffffffffff811115613cb557613cb4613a7c565b5b602083019150836020820283011115613cd157613cd0613a81565b5b9250929050565b600080600080600060608688031215613cf457613cf3613a37565b5b6000613d0288828901613c6d565b955050602086013567ffffffffffffffff811115613d2357613d22613a3c565b5b613d2f88828901613a86565b9450945050604086013567ffffffffffffffff811115613d5257613d51613a3c565b5b613d5e88828901613c82565b92509250509295509295909350565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613dbb82613d72565b810181811067ffffffffffffffff82111715613dda57613dd9613d83565b5b80604052505050565b6000613ded613a2d565b9050613df98282613db2565b919050565b600080fd5b600080fd5b600067ffffffffffffffff821115613e2357613e22613d83565b5b613e2c82613d72565b9050602081019050919050565b82818337600083830152505050565b6000613e5b613e5684613e08565b613de3565b905082815260208101848484011115613e7757613e76613e03565b5b613e82848285613e39565b509392505050565b600082601f830112613e9f57613e9e613a77565b5b8135613eaf848260208601613e48565b91505092915050565b600060a08284031215613ece57613ecd613d6d565b5b613ed860a0613de3565b9050600082013567ffffffffffffffff811115613ef857613ef7613dfe565b5b613f0484828501613e8a565b6000830152506020613f1884828501613c6d565b6020830152506040613f2c84828501613a62565b6040830152506060613f4084828501613a62565b6060830152506080613f5484828501613a62565b60808301525092915050565b600060208284031215613f7657613f75613a37565b5b600082013567ffffffffffffffff811115613f9457613f93613a3c565b5b613fa084828501613eb8565b91505092915050565b613fb281613c44565b82525050565b6000602082019050613fcd6000830184613fa9565b92915050565b60008060408385031215613fea57613fe9613a37565b5b6000613ff885828601613c6d565b925050602061400985828601613c6d565b9150509250929050565b61401c81613a41565b82525050565b60006020820190506140376000830184614013565b92915050565b600060a0828403121561405357614052613d6d565b5b61405d60a0613de3565b9050600082013567ffffffffffffffff81111561407d5761407c613dfe565b5b61408984828501613e8a565b600083015250602061409d84828501613c6d565b60208301525060406140b184828501613a62565b60408301525060606140c584828501613a62565b60608301525060806140d984828501613a62565b60808301525092915050565b6000602082840312156140fb576140fa613a37565b5b600082013567ffffffffffffffff81111561411957614118613a3c565b5b6141258482850161403d565b91505092915050565b600080fd5b6000610100828403121561414a5761414961412e565b5b81905092915050565b6000610100828403121561416a57614169613a37565b5b600061417884828501614133565b91505092915050565b600061010082840312156141985761419761412e565b5b81905092915050565b600061010082840312156141b8576141b7613a37565b5b60006141c684828501614181565b91505092915050565b6000806000606084860312156141e8576141e7613a37565b5b60006141f686828701613c6d565b935050602061420786828701613c6d565b925050604061421886828701613a62565b9150509250925092565b600061422d826139df565b9050919050565b61423d81614222565b82525050565b60006020820190506142586000830184614234565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156142a3576142a2613a37565b5b60006142b184828501613c6d565b91505092915050565b600082825260208201905092915050565b6000819050919050565b6142de81613c44565b82525050565b60006142f083836142d5565b60208301905092915050565b600061430b6020840184613c6d565b905092915050565b6000602082019050919050565b600061432c83856142ba565b9350614337826142cb565b8060005b858110156143705761434d82846142fc565b61435788826142e4565b975061436283614313565b92505060018101905061433b565b5085925050509392505050565b600060a0820190506143926000830189614013565b61439f6020830188614013565b81810360408301526143b2818688614320565b90506143c16060830185613fa9565b6143ce6080830184614013565b979650505050505050565b600067ffffffffffffffff8211156143f4576143f3613d83565b5b602082029050602081019050919050565b60008151905061441481613a4b565b92915050565b600061442d614428846143d9565b613de3565b905080838252602082019050602084028301858111156144505761444f613a81565b5b835b8181101561447957806144658882614405565b845260208401935050602081019050614452565b5050509392505050565b600082601f83011261449857614497613a77565b5b81516144a884826020860161441a565b91505092915050565b6000602082840312156144c7576144c6613a37565b5b600082015167ffffffffffffffff8111156144e5576144e4613a3c565b5b6144f184828501614483565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061453482613a41565b915061453f83613a41565b9250828203905081811115614557576145566144fa565b5b92915050565b600061456882613a41565b915061457383613a41565b925082820190508082111561458b5761458a6144fa565b5b92915050565b60006080820190506145a66000830187613fa9565b6145b36020830186614013565b6145c06040830185613fa9565b6145cd6060830184614013565b95945050505050565b60006060820190506145eb6000830186613fa9565b6145f86020830185613fa9565b6146056040830184614013565b949350505050565b60008115159050919050565b6146228161460d565b811461462d57600080fd5b50565b60008151905061463f81614619565b92915050565b60006020828403121561465b5761465a613a37565b5b600061466984828501614630565b91505092915050565b6000819050919050565b600061469761469261468d84614672565b6139b3565b613a41565b9050919050565b6146a78161467c565b82525050565b60006040820190506146c26000830185613fa9565b6146cf602083018461469e565b9392505050565b600080fd5b82818337505050565b60006146f08385613b6f565b93507f07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff831115614723576147226146d6565b5b6020830292506147348385846146db565b82840190509392505050565b6000604082019050818103600083015261475b818688614320565b905081810360208301526147708184866146e4565b905095945050505050565b600081519050919050565b600082825260208201905092915050565b60005b838110156147b557808201518184015260208101905061479a565b60008484015250505050565b60006147cc8261477b565b6147d68185614786565b93506147e6818560208601614797565b6147ef81613d72565b840191505092915050565b600060a083016000830151848203600086015261481782826147c1565b915050602083015161482c60208601826142d5565b50604083015161483f6040860182613b90565b5060608301516148526060860182613b90565b5060808301516148656080860182613b90565b508091505092915050565b6000602082019050818103600083015261488a81846147fa565b905092915050565b6000602082840312156148a8576148a7613a37565b5b60006148b684828501614405565b91505092915050565b60006040820190506148d46000830185613fa9565b6148e16020830184614013565b9392505050565b60006060820190506148fd6000830186613fa9565b61490a6020830185614013565b6149176040830184614013565b949350505050565b600060a083016000830151848203600086015261493c82826147c1565b915050602083015161495160208601826142d5565b5060408301516149646040860182613b90565b5060608301516149776060860182613b90565b50608083015161498a6080860182613b90565b508091505092915050565b600060208201905081810360008301526149af818461491f565b905092915050565b600062ffffff82169050919050565b6149cf816149b7565b81146149da57600080fd5b50565b6000813590506149ec816149c6565b92915050565b6000614a0160208401846149dd565b905092915050565b614a12816149b7565b82525050565b6000614a276020840184613a62565b905092915050565b614a3881613993565b8114614a4357600080fd5b50565b600081359050614a5581614a2f565b92915050565b6000614a6a6020840184614a46565b905092915050565b614a7b81613993565b82525050565b6101008201614a9360008301836142fc565b614aa060008501826142d5565b50614aae60208301836142fc565b614abb60208501826142d5565b50614ac960408301836149f2565b614ad66040850182614a09565b50614ae460608301836142fc565b614af160608501826142d5565b50614aff6080830183614a18565b614b0c6080850182613b90565b50614b1a60a0830183614a18565b614b2760a0850182613b90565b50614b3560c0830183614a18565b614b4260c0850182613b90565b50614b5060e0830183614a5b565b614b5d60e0850182614a72565b50505050565b600061010082019050614b796000830184614a81565b92915050565b6101008201614b9160008301836142fc565b614b9e60008501826142d5565b50614bac60208301836142fc565b614bb960208501826142d5565b50614bc760408301836149f2565b614bd46040850182614a09565b50614be260608301836142fc565b614bef60608501826142d5565b50614bfd6080830183614a18565b614c0a6080850182613b90565b50614c1860a0830183614a18565b614c2560a0850182613b90565b50614c3360c0830183614a18565b614c4060c0850182613b90565b50614c4e60e0830183614a5b565b614c5b60e0850182614a72565b50505050565b600061010082019050614c776000830184614b7f565b92915050565b6000608082019050614c926000830188614013565b8181036020830152614ca5818688614320565b9050614cb46040830185613fa9565b614cc16060830184614013565b9695505050505050565b6000606082019050614ce06000830186614013565b614ced6020830185613fa9565b614cfa6040830184614013565b949350505050565b600082825260208201905092915050565b7f746f416464726573735f6f766572666c6f770000000000000000000000000000600082015250565b6000614d49601283614d02565b9150614d5482614d13565b602082019050919050565b60006020820190508181036000830152614d7881614d3c565b9050919050565b7f746f416464726573735f6f75744f66426f756e64730000000000000000000000600082015250565b6000614db5601583614d02565b9150614dc082614d7f565b602082019050919050565b60006020820190508181036000830152614de481614da8565b9050919050565b7f746f55696e7432345f6f766572666c6f77000000000000000000000000000000600082015250565b6000614e21601183614d02565b9150614e2c82614deb565b602082019050919050565b60006020820190508181036000830152614e5081614e14565b9050919050565b7f746f55696e7432345f6f75744f66426f756e6473000000000000000000000000600082015250565b6000614e8d601483614d02565b9150614e9882614e57565b602082019050919050565b60006020820190508181036000830152614ebc81614e80565b9050919050565b7f736c6963655f6f766572666c6f77000000000000000000000000000000000000600082015250565b6000614ef9600e83614d02565b9150614f0482614ec3565b602082019050919050565b60006020820190508181036000830152614f2881614eec565b9050919050565b7f736c6963655f6f75744f66426f756e6473000000000000000000000000000000600082015250565b6000614f65601183614d02565b9150614f7082614f2f565b602082019050919050565b60006020820190508181036000830152614f9481614f58565b905091905056fea2646970667358221220a387a28ebe9bbf805174546872ee77d1a09380234d1f877e72fd7b0e5df90b5164736f6c634300081b0033000000000000000000000000cc23308fbe28722c82da09c0eaf279c3125283c100000000000000000000000010ed43c718714eb63d5aa57b78b54704e256024e0000000000000000000000001b81d678ffb9c0263b24a97847620c99d213eb14