diff --git a/src/abis/OapRouter.json b/src/abis/OapRouter.json new file mode 100644 index 00000000..6c47a4c9 --- /dev/null +++ b/src/abis/OapRouter.json @@ -0,0 +1,252 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "OapRouter", + "sourceName": "contracts/staking/OapRouter.sol", + "abi": [ + { + "inputs": [ + { + "internalType": "address", + "name": "_pancakeRouter", + "type": "address" + }, + { + "internalType": "address", + "name": "_rewardRouter", + "type": "address" + }, + { + "internalType": "address", + "name": "_weth", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "previousOwner", + "type": "address" + }, + { + "indexed": true, + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "OwnershipTransferred", + "type": "event" + }, + { + "inputs": [], + "name": "owner", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "pancakeRouter", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "renounceOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "rewardRouter", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_router", + "type": "address" + } + ], + "name": "setPancakeRouter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_router", + "type": "address" + } + ], + "name": "setRewardRouter", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "bool", + "name": "_isWhitelist", + "type": "bool" + } + ], + "name": "setWhitelistToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenIn", + "type": "address" + }, + { + "internalType": "address", + "name": "tokenOut", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountIn", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minUsdo", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minOap", + "type": "uint256" + } + ], + "name": "swapAndStake", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "tokenOut", + "type": "address" + }, + { + "internalType": "uint256", + "name": "amountOutMin", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minUsdo", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "minOap", + "type": "uint256" + } + ], + "name": "swapAndStakeETH", + "outputs": [], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "transferOwnership", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "weth", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "whitelistTokenOut", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b50604051610ed7380380610ed78339818101604052606081101561003357600080fd5b5080516020820151604090920151909190600061004e6100de565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a35060018055600280546001600160a01b039485166001600160a01b0319918216179091556003805493851693821693909317909255600480549190931691161790556100e2565b3390565b610de6806100f16000396000f3fe6080604052600436106100975760003560e01c8063081b0b1a1461009c5780630938a3b5146100d65780633fc8cef31461012b578063446dbdf11461015c5780635a3bb989146101a3578063715018a6146101b85780637c374f99146101cd5780638da5cb5b14610208578063977b91d71461021d578063c21ebd0714610250578063f2fde38b14610265578063f8316c9014610298575b600080fd5b6100d4600480360360808110156100b257600080fd5b506001600160a01b0381351690602081013590604081013590606001356102cb565b005b3480156100e257600080fd5b506100d4600480360360c08110156100f957600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a001356103eb565b34801561013757600080fd5b50610140610908565b604080516001600160a01b039092168252519081900360200190f35b34801561016857600080fd5b5061018f6004803603602081101561017f57600080fd5b50356001600160a01b0316610917565b604080519115158252519081900360200190f35b3480156101af57600080fd5b5061014061092c565b3480156101c457600080fd5b506100d461093b565b3480156101d957600080fd5b506100d4600480360360408110156101f057600080fd5b506001600160a01b03813516906020013515156109cb565b34801561021457600080fd5b50610140610a4e565b34801561022957600080fd5b506100d46004803603602081101561024057600080fd5b50356001600160a01b0316610a5d565b34801561025c57600080fd5b50610140610ad7565b34801561027157600080fd5b506100d46004803603602081101561028857600080fd5b50356001600160a01b0316610ae6565b3480156102a457600080fd5b506100d4600480360360208110156102bb57600080fd5b50356001600160a01b0316610bcc565b60026001541415610311576040805162461bcd60e51b815260206004820152601f6024820152600080516020610d2b833981519152604482015290519081900360640190fd5b600260015534610367576040805162461bcd60e51b815260206004820152601c60248201527b4f6170526f757465723a20696e76616c6964206d73672e76616c756560201b604482015290519081900360640190fd5b6004805460408051630d0e30db60e41b815290516001600160a01b039092169263d0e30db0923492808301926000929182900301818588803b1580156103ac57600080fd5b505af11580156103c0573d6000803e3d6000fd5b50506004546103e193506001600160a01b03169150869050348686866103eb565b5050600180555050565b60026001541415610431576040805162461bcd60e51b815260206004820152601f6024820152600080516020610d2b833981519152604482015290519081900360640190fd5b6002600155604080516370a0823160e01b8152336004820152905185916001600160a01b038916916370a0823191602480820192602092909190829003018186803b15801561047f57600080fd5b505afa158015610493573d6000803e3d6000fd5b505050506040513d60208110156104a957600080fd5b505110156104fa576040805162461bcd60e51b815260206004820152601960248201527813d85c149bdd5d195c8e8818985b185b98d948195e18d95959603a1b604482015290519081900360640190fd5b6001600160a01b03851660009081526005602052604090205460ff16610567576040805162461bcd60e51b815260206004820152601e60248201527f4f6170526f757465723a204e6f742077686974656c69737420746f6b656e0000604482015290519081900360640190fd5b6000856001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156105b657600080fd5b505afa1580156105ca573d6000803e3d6000fd5b505050506040513d60208110156105e057600080fd5b5051604080516002808252606080830184529394509091602083019080368337019050509050878160008151811061061457fe5b60200260200101906001600160a01b031690816001600160a01b031681525050868160018151811061064257fe5b6001600160a01b039283166020918202929092018101919091526002546040516338ed173960e01b8152600481018a8152602482018a90523360648301819052607842016084840181905260a060448501908152885160a4860152885195909716966338ed1739968e968e968b96939260c490910191878201910280838360005b838110156106db5781810151838201526020016106c3565b505050509050019650505050505050600060405180830381600087803b15801561070457600080fd5b505af1158015610718573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561074157600080fd5b8101908080516040519392919084600160201b82111561076057600080fd5b90830190602082018581111561077557600080fd5b82518660208202830111600160201b8211171561079157600080fd5b82525081516020918201928201910280838360005b838110156107be5781810151838201526020016107a6565b50505050905001604052505050506000876001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561081b57600080fd5b505afa15801561082f573d6000803e3d6000fd5b505050506040513d602081101561084557600080fd5b50516003549091506001600160a01b03166312ec52f2896108668487610c46565b8888336040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001848152602001838152602001826001600160a01b0316815260200195505050505050602060405180830381600087803b1580156108cd57600080fd5b505af11580156108e1573d6000803e3d6000fd5b505050506040513d60208110156108f757600080fd5b505060018055505050505050505050565b6004546001600160a01b031681565b60056020526000908152604090205460ff1681565b6003546001600160a01b031681565b610943610c8f565b6000546001600160a01b03908116911614610993576040805162461bcd60e51b81526020600482018190526024820152600080516020610d71833981519152604482015290519081900360640190fd5b600080546040516001600160a01b0390911690600080516020610d91833981519152908390a3600080546001600160a01b0319169055565b6109d3610c8f565b6000546001600160a01b03908116911614610a23576040805162461bcd60e51b81526020600482018190526024820152600080516020610d71833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031690565b610a65610c8f565b6000546001600160a01b03908116911614610ab5576040805162461bcd60e51b81526020600482018190526024820152600080516020610d71833981519152604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031681565b610aee610c8f565b6000546001600160a01b03908116911614610b3e576040805162461bcd60e51b81526020600482018190526024820152600080516020610d71833981519152604482015290519081900360640190fd5b6001600160a01b038116610b835760405162461bcd60e51b8152600401808060200182810382526026815260200180610d4b6026913960400191505060405180910390fd5b600080546040516001600160a01b0380851693921691600080516020610d9183398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610bd4610c8f565b6000546001600160a01b03908116911614610c24576040805162461bcd60e51b81526020600482018190526024820152600080516020610d71833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c93565b9392505050565b3390565b60008184841115610d225760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ce7578181015183820152602001610ccf565b50505050905090810190601f168015610d145780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c004f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220353dc531414a1b6347c8a12ac5224be440ac3f16d9c11034ccc72f6ef42e586564736f6c634300060c0033", + "deployedBytecode": "0x6080604052600436106100975760003560e01c8063081b0b1a1461009c5780630938a3b5146100d65780633fc8cef31461012b578063446dbdf11461015c5780635a3bb989146101a3578063715018a6146101b85780637c374f99146101cd5780638da5cb5b14610208578063977b91d71461021d578063c21ebd0714610250578063f2fde38b14610265578063f8316c9014610298575b600080fd5b6100d4600480360360808110156100b257600080fd5b506001600160a01b0381351690602081013590604081013590606001356102cb565b005b3480156100e257600080fd5b506100d4600480360360c08110156100f957600080fd5b506001600160a01b03813581169160208101359091169060408101359060608101359060808101359060a001356103eb565b34801561013757600080fd5b50610140610908565b604080516001600160a01b039092168252519081900360200190f35b34801561016857600080fd5b5061018f6004803603602081101561017f57600080fd5b50356001600160a01b0316610917565b604080519115158252519081900360200190f35b3480156101af57600080fd5b5061014061092c565b3480156101c457600080fd5b506100d461093b565b3480156101d957600080fd5b506100d4600480360360408110156101f057600080fd5b506001600160a01b03813516906020013515156109cb565b34801561021457600080fd5b50610140610a4e565b34801561022957600080fd5b506100d46004803603602081101561024057600080fd5b50356001600160a01b0316610a5d565b34801561025c57600080fd5b50610140610ad7565b34801561027157600080fd5b506100d46004803603602081101561028857600080fd5b50356001600160a01b0316610ae6565b3480156102a457600080fd5b506100d4600480360360208110156102bb57600080fd5b50356001600160a01b0316610bcc565b60026001541415610311576040805162461bcd60e51b815260206004820152601f6024820152600080516020610d2b833981519152604482015290519081900360640190fd5b600260015534610367576040805162461bcd60e51b815260206004820152601c60248201527b4f6170526f757465723a20696e76616c6964206d73672e76616c756560201b604482015290519081900360640190fd5b6004805460408051630d0e30db60e41b815290516001600160a01b039092169263d0e30db0923492808301926000929182900301818588803b1580156103ac57600080fd5b505af11580156103c0573d6000803e3d6000fd5b50506004546103e193506001600160a01b03169150869050348686866103eb565b5050600180555050565b60026001541415610431576040805162461bcd60e51b815260206004820152601f6024820152600080516020610d2b833981519152604482015290519081900360640190fd5b6002600155604080516370a0823160e01b8152336004820152905185916001600160a01b038916916370a0823191602480820192602092909190829003018186803b15801561047f57600080fd5b505afa158015610493573d6000803e3d6000fd5b505050506040513d60208110156104a957600080fd5b505110156104fa576040805162461bcd60e51b815260206004820152601960248201527813d85c149bdd5d195c8e8818985b185b98d948195e18d95959603a1b604482015290519081900360640190fd5b6001600160a01b03851660009081526005602052604090205460ff16610567576040805162461bcd60e51b815260206004820152601e60248201527f4f6170526f757465723a204e6f742077686974656c69737420746f6b656e0000604482015290519081900360640190fd5b6000856001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156105b657600080fd5b505afa1580156105ca573d6000803e3d6000fd5b505050506040513d60208110156105e057600080fd5b5051604080516002808252606080830184529394509091602083019080368337019050509050878160008151811061061457fe5b60200260200101906001600160a01b031690816001600160a01b031681525050868160018151811061064257fe5b6001600160a01b039283166020918202929092018101919091526002546040516338ed173960e01b8152600481018a8152602482018a90523360648301819052607842016084840181905260a060448501908152885160a4860152885195909716966338ed1739968e968e968b96939260c490910191878201910280838360005b838110156106db5781810151838201526020016106c3565b505050509050019650505050505050600060405180830381600087803b15801561070457600080fd5b505af1158015610718573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052602081101561074157600080fd5b8101908080516040519392919084600160201b82111561076057600080fd5b90830190602082018581111561077557600080fd5b82518660208202830111600160201b8211171561079157600080fd5b82525081516020918201928201910280838360005b838110156107be5781810151838201526020016107a6565b50505050905001604052505050506000876001600160a01b03166370a08231336040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b15801561081b57600080fd5b505afa15801561082f573d6000803e3d6000fd5b505050506040513d602081101561084557600080fd5b50516003549091506001600160a01b03166312ec52f2896108668487610c46565b8888336040518663ffffffff1660e01b815260040180866001600160a01b03168152602001858152602001848152602001838152602001826001600160a01b0316815260200195505050505050602060405180830381600087803b1580156108cd57600080fd5b505af11580156108e1573d6000803e3d6000fd5b505050506040513d60208110156108f757600080fd5b505060018055505050505050505050565b6004546001600160a01b031681565b60056020526000908152604090205460ff1681565b6003546001600160a01b031681565b610943610c8f565b6000546001600160a01b03908116911614610993576040805162461bcd60e51b81526020600482018190526024820152600080516020610d71833981519152604482015290519081900360640190fd5b600080546040516001600160a01b0390911690600080516020610d91833981519152908390a3600080546001600160a01b0319169055565b6109d3610c8f565b6000546001600160a01b03908116911614610a23576040805162461bcd60e51b81526020600482018190526024820152600080516020610d71833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600560205260409020805460ff1916911515919091179055565b6000546001600160a01b031690565b610a65610c8f565b6000546001600160a01b03908116911614610ab5576040805162461bcd60e51b81526020600482018190526024820152600080516020610d71833981519152604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6002546001600160a01b031681565b610aee610c8f565b6000546001600160a01b03908116911614610b3e576040805162461bcd60e51b81526020600482018190526024820152600080516020610d71833981519152604482015290519081900360640190fd5b6001600160a01b038116610b835760405162461bcd60e51b8152600401808060200182810382526026815260200180610d4b6026913960400191505060405180910390fd5b600080546040516001600160a01b0380851693921691600080516020610d9183398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b610bd4610c8f565b6000546001600160a01b03908116911614610c24576040805162461bcd60e51b81526020600482018190526024820152600080516020610d71833981519152604482015290519081900360640190fd5b600280546001600160a01b0319166001600160a01b0392909216919091179055565b6000610c8883836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610c93565b9392505050565b3390565b60008184841115610d225760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015610ce7578181015183820152602001610ccf565b50505050905090810190601f168015610d145780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50505090039056fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c004f776e61626c653a206e6577206f776e657220697320746865207a65726f20616464726573734f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65728be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0a2646970667358221220353dc531414a1b6347c8a12ac5224be440ac3f16d9c11034ccc72f6ef42e586564736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/src/abis/RewardRouter.json b/src/abis/RewardRouter.json index eec10ed3..e6716768 100644 --- a/src/abis/RewardRouter.json +++ b/src/abis/RewardRouter.json @@ -441,6 +441,45 @@ "stateMutability": "payable", "type": "function" }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_minUsdg", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_minOap", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "mintAndStakeOapForAccount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, { "inputs": [], "name": "oap", @@ -751,8 +790,8 @@ "type": "receive" } ], - "bytecode": "0x608060405234801561001057600080fd5b506001600081905580546001600160a01b031916331790556151ab806100376000396000f3fe6080604052600436106101b95760003560e01c806301e336671461021d5780630295e46f146102605780630b5684411461029157806312d43a51146102a65780631444e487146102bb5780631af276a6146102e55780632a9f4083146103935780632fdd983d146103c657806330b700021461046157806336be2604146104bd578063392e53cd146104d25780633a43750d146104fb5780633a81be06146105105780633e2b53df146105255780633eb162ba1461055e5780633fc8cef3146105885780634e71d92d1461059d57806363fb63db146105b257806364489cbb1461060b578063655603a4146106205780637883052314610653578063874710e81461067d5780638dbe4d71146107ad578063a66a5b32146107f2578063abbdd88f14610807578063c383f4b21461081c578063ce298b151461083f578063cfad57a214610854578063d1a2877714610887578063d25140b31461089c578063d294f093146108db578063dca388b0146108f0578063dfab0c2c1461091a578063e1b9db891461092f578063e3e9a88614610962578063ef9aacfd14610977578063f69e2046146109aa578063fcfff16f146109bf57610218565b36610218576002546001600160a01b03163314610216576040805162461bcd60e51b81526020600482015260166024820152752937baba32b91d1034b73b30b634b21039b2b73232b960511b604482015290519081900360640190fd5b005b600080fd5b34801561022957600080fd5b506102166004803603606081101561024057600080fd5b506001600160a01b038135811691602081013590911690604001356109d4565b34801561026c57600080fd5b50610275610a3a565b604080516001600160a01b039092168252519081900360200190f35b34801561029d57600080fd5b50610275610a49565b3480156102b257600080fd5b50610275610a58565b3480156102c757600080fd5b50610216600480360360208110156102de57600080fd5b5035610a67565b3480156102f157600080fd5b506102166004803603602081101561030857600080fd5b810190602081018135600160201b81111561032257600080fd5b82018360208201111561033457600080fd5b803590602001918460208302840111600160201b8311171561035557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610ad4945050505050565b34801561039f57600080fd5b50610216600480360360208110156103b657600080fd5b50356001600160a01b0316610ba5565b3480156103d257600080fd5b5061021660048036036101a08110156103ea57600080fd5b506001600160a01b038135811691602081013582169160408201358116916060810135821691608082013581169160a081013582169160c082013581169160e08101358216916101008201358116916101208101358216916101408201358116916101608101358216916101809091013516610c46565b34801561046d57600080fd5b50610216600480360360e081101561048457600080fd5b508035151590602081013515159060408101351515906060810135151590608081013515159060a081013515159060c001351515610dd3565b3480156104c957600080fd5b50610216611495565b3480156104de57600080fd5b506104e76115f0565b604080519115158252519081900360200190f35b34801561050757600080fd5b50610275611600565b34801561051c57600080fd5b5061027561160f565b34801561053157600080fd5b506102166004803603604081101561054857600080fd5b506001600160a01b03813516906020013561161e565b34801561056a57600080fd5b506102166004803603602081101561058157600080fd5b50356116d0565b34801561059457600080fd5b50610275611735565b3480156105a957600080fd5b50610216611744565b3480156105be57600080fd5b506105f9600480360360808110156105d557600080fd5b506001600160a01b03813581169160208101359160408201359160600135166118ed565b60408051918252519081900360200190f35b34801561061757600080fd5b50610275611adb565b34801561062c57600080fd5b506102166004803603602081101561064357600080fd5b50356001600160a01b0316611aea565b34801561065f57600080fd5b506102166004803603602081101561067657600080fd5b50356124f3565b34801561068957600080fd5b50610216600480360360408110156106a057600080fd5b810190602081018135600160201b8111156106ba57600080fd5b8201836020820111156106cc57600080fd5b803590602001918460208302840111600160201b831117156106ed57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561073c57600080fd5b82018360208201111561074e57600080fd5b803590602001918460208302840111600160201b8311171561076f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612558945050505050565b3480156107b957600080fd5b506105f9600480360360808110156107d057600080fd5b506001600160a01b03813516906020810135906040810135906060013561264d565b3480156107fe57600080fd5b5061027561283c565b34801561081357600080fd5b5061027561284b565b6105f96004803603604081101561083257600080fd5b508035906020013561285a565b34801561084b57600080fd5b50610275612b46565b34801561086057600080fd5b506102166004803603602081101561087757600080fd5b50356001600160a01b0316612b55565b34801561089357600080fd5b50610275612bc4565b3480156108a857600080fd5b506105f9600480360360608110156108bf57600080fd5b50803590602081013590604001356001600160a01b0316612bd3565b3480156108e757600080fd5b50610216612e3a565b3480156108fc57600080fd5b506102166004803603602081101561091357600080fd5b5035612f61565b34801561092657600080fd5b50610275612fc6565b34801561093b57600080fd5b506102756004803603602081101561095257600080fd5b50356001600160a01b0316612fd5565b34801561096e57600080fd5b50610275612ff0565b34801561098357600080fd5b506102166004803603602081101561099a57600080fd5b50356001600160a01b0316612fff565b3480156109b657600080fd5b506102166131ed565b3480156109cb57600080fd5b50610275613248565b6001546001600160a01b03163314610a21576040805162461bcd60e51b81526020600482015260156024820152600080516020614d74833981519152604482015290519081900360640190fd5b610a356001600160a01b0384168383613257565b505050565b600c546001600160a01b031681565b600a546001600160a01b031681565b6001546001600160a01b031681565b60026000541415610aad576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055600354610acc9033906001600160a01b03168360016132a9565b506001600055565b60026000541415610b1a576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b03163314610b6c576040805162461bcd60e51b81526020600482015260156024820152600080516020614d74833981519152604482015290519081900360640190fd5b60005b8151811015610b9c57610b94828281518110610b8757fe5b60200260200101516137eb565b600101610b6f565b50506001600055565b60026000541415610beb576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b03163314610c3d576040805162461bcd60e51b81526020600482015260156024820152600080516020614d74833981519152604482015290519081900360640190fd5b610acc816137eb565b6001546001600160a01b03163314610c93576040805162461bcd60e51b81526020600482015260156024820152600080516020614d74833981519152604482015290519081900360640190fd5b600154600160a01b900460ff1615610cdc5760405162461bcd60e51b8152600401808060200182810382526021815260200180614e026021913960400191505060405180910390fd5b6001805460ff60a01b1916600160a01b179055600280546001600160a01b039e8f166001600160a01b031991821617909155600380549d8f169d82169d909d17909c55600480549b8e169b8d169b909b17909a5560058054998d16998c169990991790985560068054978c16978b169790971790965560078054958b16958a169590951790945560088054938a169389169390931790925560098054918916918816919091179055600b8054918816918716919091179055600a8054918716918616919091179055600c8054918616918516919091179055600d8054918516918416919091179055600e8054919093169116179055565b60026000541415610e19576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600090815533908815610f4557600d54604080516309f4173d60e11b81526001600160a01b03858116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b158015610e8157600080fd5b505af1158015610e95573d6000803e3d6000fd5b505050506040513d6020811015610eab57600080fd5b5051600e54604080516309f4173d60e11b81526001600160a01b03878116600483018190526024830152915193945060009391909216916313e82e7a91604480830192602092919082900301818787803b158015610f0857600080fd5b505af1158015610f1c573d6000803e3d6000fd5b505050506040513d6020811015610f3257600080fd5b50519050610f408282613800565b925050505b878015610f525750600081115b15610f7157600354610f7190839081906001600160a01b031684613861565b6000871561109657600754604080516309f4173d60e11b81526001600160a01b03868116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b158015610fd257600080fd5b505af1158015610fe6573d6000803e3d6000fd5b505050506040513d6020811015610ffc57600080fd5b5051600a54604080516309f4173d60e11b81526001600160a01b03888116600483018190526024830152915193945060009391909216916313e82e7a91604480830192602092919082900301818787803b15801561105957600080fd5b505af115801561106d573d6000803e3d6000fd5b505050506040513d602081101561108357600080fd5b505190506110918282613800565b925050505b8680156110a35750600081115b156110c2576004546110c290849081906001600160a01b031684613861565b85156111d757600854604080516309f4173d60e11b81526001600160a01b03868116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561112157600080fd5b505af1158015611135573d6000803e3d6000fd5b505050506040513d602081101561114b57600080fd5b5051905080156111d55760095460055460408051631e42d69b60e21b81526001600160a01b038881166004830181905260248301529283166044820152606481018590529051919092169163790b5a6c91608480830192600092919082900301818387803b1580156111bc57600080fd5b505af11580156111d0573d6000803e3d6000fd5b505050505b505b841561148457831561137f57600954604080516309f4173d60e11b81526001600160a01b038681166004830152306024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050506040513d602081101561126557600080fd5b5051600b54604080516309f4173d60e11b81526001600160a01b038881166004830152306024830152915193945060009391909216916313e82e7a91604480830192602092919082900301818787803b1580156112c157600080fd5b505af11580156112d5573d6000803e3d6000fd5b505050506040513d60208110156112eb57600080fd5b5051905060006112fb8383613800565b60025460408051632e1a7d4d60e01b81526004810184905290519293506001600160a01b0390911691632e1a7d4d9160248082019260009290919082900301818387803b15801561134b57600080fd5b505af115801561135f573d6000803e3d6000fd5b50611377925050506001600160a01b03871682613a70565b505050611484565b600954604080516309f4173d60e11b81526001600160a01b03868116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b1580156113d557600080fd5b505af11580156113e9573d6000803e3d6000fd5b505050506040513d60208110156113ff57600080fd5b5050600b54604080516309f4173d60e11b81526001600160a01b03868116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561145757600080fd5b505af115801561146b573d6000803e3d6000fd5b505050506040513d602081101561148157600080fd5b50505b505060016000555050505050505050565b600260005414156114db576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000908155600754604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b15801561153a57600080fd5b505af115801561154e573d6000803e3d6000fd5b505050506040513d602081101561156457600080fd5b5050600a54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b1580156115bc57600080fd5b505af11580156115d0573d6000803e3d6000fd5b505050506040513d60208110156115e657600080fd5b5050600160005550565b600154600160a01b900460ff1681565b6004546001600160a01b031681565b6005546001600160a01b031681565b60026000541415611664576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b031633146116b6576040805162461bcd60e51b81526020600482015260156024820152600080516020614d74833981519152604482015290519081900360640190fd5b600354610b9c90339084906001600160a01b031684613861565b60026000541415611716576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055600354610acc90339081906001600160a01b031684613861565b6002546001600160a01b031681565b6002600054141561178a576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000908155600954604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b1580156117e957600080fd5b505af11580156117fd573d6000803e3d6000fd5b505050506040513d602081101561181357600080fd5b5050600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561186b57600080fd5b505af115801561187f573d6000803e3d6000fd5b505050506040513d602081101561189557600080fd5b5050600754604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561153a57600080fd5b600060026000541415611935576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000558361197a576040805162461bcd60e51b81526020600482018190526024820152600080516020615053833981519152604482015290519081900360640190fd5b600b546006546040805163098bf59d60e01b815233600482018190526001600160a01b039384166024830152604482018990526064820181905291519193929092169163098bf59d91608480830192600092919082900301818387803b1580156119e357600080fd5b505af11580156119f7573d6000803e3d6000fd5b5050600c54604080516371d597ad60e01b81526001600160a01b0386811660048301528b81166024830152604482018b9052606482018a905288811660848301529151600095509190921692506371d597ad9160a48082019260209290919082900301818787803b158015611a6b57600080fd5b505af1158015611a7f573d6000803e3d6000fd5b505050506040513d6020811015611a9557600080fd5b5051604080516001600160a01b03851681526020810189905281519293506000805160206150a7833981519152929081900390910190a160016000559695505050505050565b6009546001600160a01b031681565b60026000541415611b30576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055600d54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b158015611b8257600080fd5b505afa158015611b96573d6000803e3d6000fd5b505050506040513d6020811015611bac57600080fd5b505115611bea5760405162461bcd60e51b8152600401808060200182810382526026815260200180614d4e6026913960400191505060405180910390fd5b600e54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b158015611c3757600080fd5b505afa158015611c4b573d6000803e3d6000fd5b505050506040513d6020811015611c6157600080fd5b505115611c9f5760405162461bcd60e51b8152600401808060200182810382526026815260200180614d4e6026913960400191505060405180910390fd5b6001600160a01b038181166000908152600f60205260409020543391168114611cf95760405162461bcd60e51b8152600401808060200182810382526024815260200180614ee06024913960400191505060405180910390fd5b6001600160a01b0382166000908152600f6020526040902080546001600160a01b0319169055611d2881613b55565b611d31826137eb565b60075460035460408051637aeceb1f60e11b81526001600160a01b03868116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611d8d57600080fd5b505afa158015611da1573d6000803e3d6000fd5b505050506040513d6020811015611db757600080fd5b505190508015611df557600354611ddb9084906001600160a01b03168360006132a9565b600354611df590849084906001600160a01b031684613861565b6007546004805460408051637aeceb1f60e11b81526001600160a01b0388811694820194909452918316602483015251600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611e5357600080fd5b505afa158015611e67573d6000803e3d6000fd5b505050506040513d6020811015611e7d57600080fd5b505190508015611ebb57600454611ea19085906001600160a01b03168360006132a9565b600454611ebb90859085906001600160a01b031684613861565b60095460055460408051637aeceb1f60e11b81526001600160a01b03888116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611f1757600080fd5b505afa158015611f2b573d6000803e3d6000fd5b505050506040513d6020811015611f4157600080fd5b50519050801561204e576009546005546040805163098bf59d60e01b81526001600160a01b038981166004830181905293811660248301526044820186905260648201939093529051919092169163098bf59d91608480830192600092919082900301818387803b158015611fb557600080fd5b505af1158015611fc9573d6000803e3d6000fd5b505060095460055460408051631e42d69b60e21b81526001600160a01b038b811660048301528a81166024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b15801561203557600080fd5b505af1158015612049573d6000803e3d6000fd5b505050505b6000600460009054906101000a90046001600160a01b03166001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156120b257600080fd5b505afa1580156120c6573d6000803e3d6000fd5b505050506040513d60208110156120dc57600080fd5b5051905080156121755760048054604080516323b872dd60e01b81526001600160a01b038a811694820194909452888416602482015260448101859052905192909116916323b872dd916064808201926020929091908290030181600087803b15801561214857600080fd5b505af115801561215c573d6000803e3d6000fd5b505050506040513d602081101561217257600080fd5b50505b600b5460065460408051637aeceb1f60e11b81526001600160a01b038a8116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b1580156121d157600080fd5b505afa1580156121e5573d6000803e3d6000fd5b505050506040513d60208110156121fb57600080fd5b50519050801561240957600a54600b546040805163098bf59d60e01b81526001600160a01b038b81166004830181905293811660248301526044820186905260648201939093529051919092169163098bf59d91608480830192600092919082900301818387803b15801561226f57600080fd5b505af1158015612283573d6000803e3d6000fd5b5050600b546006546040805163098bf59d60e01b81526001600160a01b038d8116600483018190529381166024830152604482018890526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b1580156122f157600080fd5b505af1158015612305573d6000803e3d6000fd5b5050600b5460065460408051631e42d69b60e21b81526001600160a01b038d811660048301528c81166024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b15801561237157600080fd5b505af1158015612385573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b038c8116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b1580156123f057600080fd5b505af1158015612404573d6000803e3d6000fd5b505050505b600d5460408051630f713c2360e41b81526001600160a01b038a8116600483015289811660248301529151919092169163f713c23091604480830192600092919082900301818387803b15801561245f57600080fd5b505af1158015612473573d6000803e3d6000fd5b5050600e5460408051630f713c2360e41b81526001600160a01b038c811660048301528b81166024830152915191909216935063f713c2309250604480830192600092919082900301818387803b1580156124cd57600080fd5b505af11580156124e1573d6000803e3d6000fd5b50506001600055505050505050505050565b60026000541415612539576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055600454610acc90339081906001600160a01b031684613861565b6002600054141561259e576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b031633146125f0576040805162461bcd60e51b81526020600482015260156024820152600080516020614d74833981519152604482015290519081900360640190fd5b6003546001600160a01b031660005b83518110156126425761263a3385838151811061261857fe5b60200260200101518486858151811061262d57fe5b6020026020010151613861565b6001016125ff565b505060016000555050565b600060026000541415612695576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055836126da576040805162461bcd60e51b815260206004820152601d6024820152600080516020615156833981519152604482015290519081900360640190fd5b600c54604080516317eb2a1560e01b81523360048201819052602482018190526001600160a01b038981166044840152606483018990526084830188905260a483018790529251909360009316916317eb2a159160c480830192602092919082900301818787803b15801561274e57600080fd5b505af1158015612762573d6000803e3d6000fd5b505050506040513d602081101561277857600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b1580156127e357600080fd5b505af11580156127f7573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614cf58339815191529450908190039091019150a160016000559695505050505050565b600b546001600160a01b031681565b600e546001600160a01b031681565b6000600260005414156128a2576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055346128f9576040805162461bcd60e51b815260206004820152601f60248201527f526577617264526f757465723a20696e76616c6964206d73672e76616c756500604482015290519081900360640190fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561294957600080fd5b505af115801561295d573d6000803e3d6000fd5b5050600254600c546040805163095ea7b360e01b81526001600160a01b039283166004820152346024820152905191909216945063095ea7b39350604480830193506020928290030181600087803b1580156129b857600080fd5b505af11580156129cc573d6000803e3d6000fd5b505050506040513d60208110156129e257600080fd5b5050600c54600254604080516317eb2a1560e01b815230600482015233602482018190526001600160a01b0393841660448301523460648301526084820188905260a482018790529151919360009316916317eb2a159160c48082019260209290919082900301818787803b158015612a5a57600080fd5b505af1158015612a6e573d6000803e3d6000fd5b505050506040513d6020811015612a8457600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b158015612aef57600080fd5b505af1158015612b03573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614cf58339815191529450908190039091019150a16001600055949350505050565b6007546001600160a01b031681565b6001546001600160a01b03163314612ba2576040805162461bcd60e51b81526020600482015260156024820152600080516020614d74833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600d546001600160a01b031681565b600060026000541415612c1b576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b600260005583612c60576040805162461bcd60e51b81526020600482018190526024820152600080516020615053833981519152604482015290519081900360640190fd5b600b546006546040805163098bf59d60e01b815233600482018190526001600160a01b039384166024830152604482018990526064820181905291519193929092169163098bf59d91608480830192600092919082900301818387803b158015612cc957600080fd5b505af1158015612cdd573d6000803e3d6000fd5b5050600c54600254604080516371d597ad60e01b81526001600160a01b0387811660048301529283166024820152604481018b9052606481018a90523060848201529051600095509190921692506371d597ad9160a48082019260209290919082900301818787803b158015612d5257600080fd5b505af1158015612d66573d6000803e3d6000fd5b505050506040513d6020811015612d7c57600080fd5b505160025460408051632e1a7d4d60e01b81526004810184905290519293506001600160a01b0390911691632e1a7d4d9160248082019260009290919082900301818387803b158015612dce57600080fd5b505af1158015612de2573d6000803e3d6000fd5b50612dfa925050506001600160a01b03851682613a70565b604080516001600160a01b03841681526020810188905281516000805160206150a7833981519152929181900390910190a1600160005595945050505050565b60026000541415612e80576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000908155600954604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b158015612edf57600080fd5b505af1158015612ef3573d6000803e3d6000fd5b505050506040513d6020811015612f0957600080fd5b5050600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b1580156115bc57600080fd5b60026000541415612fa7576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055600454610acc9033906001600160a01b03168360016132a9565b6006546001600160a01b031681565b600f602052600090815260409020546001600160a01b031681565b6008546001600160a01b031681565b60026000541415613045576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055600d54604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561309557600080fd5b505afa1580156130a9573d6000803e3d6000fd5b505050506040513d60208110156130bf57600080fd5b5051156130fd5760405162461bcd60e51b8152600401808060200182810382526026815260200180614d4e6026913960400191505060405180910390fd5b600e54604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561314857600080fd5b505afa15801561315c573d6000803e3d6000fd5b505050506040513d602081101561317257600080fd5b5051156131b05760405162461bcd60e51b8152600401808060200182810382526026815260200180614d4e6026913960400191505060405180910390fd5b6131b981613b55565b336000908152600f6020526040812080546001600160a01b0319166001600160a01b03939093169290921790915560019055565b60026000541415613233576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055613241336137eb565b6001600055565b6003546001600160a01b031681565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610a359084906146a5565b600082116132ec576040805162461bcd60e51b815260206004820152601d6024820152600080516020615156833981519152604482015290519081900360640190fd5b600754604080516310c1c10360e01b81526001600160a01b038781166004830152915160009392909216916310c1c10391602480820192602092909190829003018186803b15801561333d57600080fd5b505afa158015613351573d6000803e3d6000fd5b505050506040513d602081101561336757600080fd5b50516009546008546040805163098bf59d60e01b81526001600160a01b038a8116600483018190529381166024830152604482018990526064820193909352905193945091169163098bf59d9160848082019260009290919082900301818387803b1580156133d557600080fd5b505af11580156133e9573d6000803e3d6000fd5b50506008546007546040805163098bf59d60e01b81526001600160a01b038b8116600483018190529381166024830152604482018a90526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b15801561345757600080fd5b505af115801561346b573d6000803e3d6000fd5b50506007546040805163098bf59d60e01b81526001600160a01b038a8116600483018190528a82166024840152604483018a90526064830152915191909216935063098bf59d9250608480830192600092919082900301818387803b1580156134d357600080fd5b505af11580156134e7573d6000803e3d6000fd5b50505050811561379a57600854604080516309f4173d60e11b81526001600160a01b03888116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561354a57600080fd5b505af115801561355e573d6000803e3d6000fd5b505050506040513d602081101561357457600080fd5b5051905080156135fe5760095460055460408051631e42d69b60e21b81526001600160a01b038a81166004830181905260248301529283166044820152606481018590529051919092169163790b5a6c91608480830192600092919082900301818387803b1580156135e557600080fd5b505af11580156135f9573d6000803e3d6000fd5b505050505b60095460055460408051637aeceb1f60e11b81526001600160a01b038a8116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b15801561365a57600080fd5b505afa15801561366e573d6000803e3d6000fd5b505050506040513d602081101561368457600080fd5b5051905080156137975760006136a48461369e8489614756565b906147af565b6009546005546040805163098bf59d60e01b81526001600160a01b038d8116600483018190529381166024830152604482018690526064820193909352905193945091169163098bf59d9160848082019260009290919082900301818387803b15801561371057600080fd5b505af1158015613724573d6000803e3d6000fd5b505060055460408051632770a7eb60e21b81526001600160a01b038d81166004830152602482018790529151919092169350639dc29fac9250604480830192600092919082900301818387803b15801561377d57600080fd5b505af1158015613791573d6000803e3d6000fd5b50505050505b50505b604080516001600160a01b0380881682528616602082015280820185905290517f078e2fe6dabb5c8d98e723c50fa64329b611734ca334bb6b9f2ecdaa282093409181900360600190a15050505050565b6137f4816147ee565b6137fd816149a6565b50565b600082820183811015613858576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b90505b92915050565b600081116138a4576040805162461bcd60e51b815260206004820152601d6024820152600080516020615156833981519152604482015290519081900360640190fd5b60075460408051631e42d69b60e21b81526001600160a01b03878116600483015286811660248301528581166044830152606482018590529151919092169163790b5a6c91608480830192600092919082900301818387803b15801561390957600080fd5b505af115801561391d573d6000803e3d6000fd5b505060085460075460408051631e42d69b60e21b81526001600160a01b03898116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b15801561398857600080fd5b505af115801561399c573d6000803e3d6000fd5b505060095460085460408051631e42d69b60e21b81526001600160a01b03898116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015613a0757600080fd5b505af1158015613a1b573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528616602082015280820185905290517f9aa02c4a3d4e3537fb517760136762eeb484da4444486e74ac81273ed42ce6f99350908190036060019150a150505050565b80471015613ac5576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114613b10576040519150601f19603f3d011682016040523d82523d6000602084013e613b15565b606091505b5050905080610a355760405162461bcd60e51b815260040180806020018281038252603a815260200180614dc8603a913960400191505060405180910390fd5b6007546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613ba257600080fd5b505afa158015613bb6573d6000803e3d6000fd5b505050506040513d6020811015613bcc57600080fd5b505115613c0a5760405162461bcd60e51b8152600401808060200182810382526038815260200180614faf6038913960400191505060405180910390fd5b60075460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613c5757600080fd5b505afa158015613c6b573d6000803e3d6000fd5b505050506040513d6020811015613c8157600080fd5b505115613cbf5760405162461bcd60e51b8152600401808060200182810382526035815260200180614fe76035913960400191505060405180910390fd5b6008546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613d0c57600080fd5b505afa158015613d20573d6000803e3d6000fd5b505050506040513d6020811015613d3657600080fd5b505115613d745760405162461bcd60e51b815260040180806020018281038252603781526020018061501c6037913960400191505060405180910390fd5b60085460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613dc157600080fd5b505afa158015613dd5573d6000803e3d6000fd5b505050506040513d6020811015613deb57600080fd5b505115613e295760405162461bcd60e51b81526004018080602001828103825260348152602001806150736034913960400191505060405180910390fd5b6009546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613e7657600080fd5b505afa158015613e8a573d6000803e3d6000fd5b505050506040513d6020811015613ea057600080fd5b505115613ede5760405162461bcd60e51b8152600401808060200182810382526035815260200180614f7a6035913960400191505060405180910390fd5b60095460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613f2b57600080fd5b505afa158015613f3f573d6000803e3d6000fd5b505050506040513d6020811015613f5557600080fd5b505115613f935760405162461bcd60e51b8152600401808060200182810382526032815260200180614f276032913960400191505060405180910390fd5b600d5460408051631ccdc0d760e21b81526001600160a01b03848116600483015291519190921691637337035c916024808301926020929190829003018186803b158015613fe057600080fd5b505afa158015613ff4573d6000803e3d6000fd5b505050506040513d602081101561400a57600080fd5b5051156140485760405162461bcd60e51b815260040180806020018281038252603c815260200180614e80603c913960400191505060405180910390fd5b600d5460408051635b8de71560e11b81526001600160a01b0384811660048301529151919092169163b71bce2a916024808301926020929190829003018186803b15801561409557600080fd5b505afa1580156140a9573d6000803e3d6000fd5b505050506040513d60208110156140bf57600080fd5b5051156140fd5760405162461bcd60e51b8152600401808060200182810382526039815260200180614d156039913960400191505060405180910390fd5b600a546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b5051156141b25760405162461bcd60e51b8152600401808060200182810382526037815260200180614e496037913960400191505060405180910390fd5b600a5460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b1580156141ff57600080fd5b505afa158015614213573d6000803e3d6000fd5b505050506040513d602081101561422957600080fd5b5051156142675760405162461bcd60e51b8152600401808060200182810382526034815260200180614d946034913960400191505060405180910390fd5b600b546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b1580156142b457600080fd5b505afa1580156142c8573d6000803e3d6000fd5b505050506040513d60208110156142de57600080fd5b50511561431c5760405162461bcd60e51b81526004018080602001828103825260348152602001806150f16034913960400191505060405180910390fd5b600b5460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b15801561436957600080fd5b505afa15801561437d573d6000803e3d6000fd5b505050506040513d602081101561439357600080fd5b5051156143d15760405162461bcd60e51b81526004018080602001828103825260318152602001806151256031913960400191505060405180910390fd5b600e5460408051631ccdc0d760e21b81526001600160a01b03848116600483015291519190921691637337035c916024808301926020929190829003018186803b15801561441e57600080fd5b505afa158015614432573d6000803e3d6000fd5b505050506040513d602081101561444857600080fd5b5051156144865760405162461bcd60e51b815260040180806020018281038252603c815260200180614e80603c913960400191505060405180910390fd5b600e5460408051635b8de71560e11b81526001600160a01b0384811660048301529151919092169163b71bce2a916024808301926020929190829003018186803b1580156144d357600080fd5b505afa1580156144e7573d6000803e3d6000fd5b505050506040513d60208110156144fd57600080fd5b50511561453b5760405162461bcd60e51b8152600401808060200182810382526039815260200180614d156039913960400191505060405180910390fd5b600d54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561458857600080fd5b505afa15801561459c573d6000803e3d6000fd5b505050506040513d60208110156145b257600080fd5b5051156145f05760405162461bcd60e51b8152600401808060200182810382526024815260200180614ebc6024913960400191505060405180910390fd5b600e54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561463d57600080fd5b505afa158015614651573d6000803e3d6000fd5b505050506040513d602081101561466757600080fd5b5051156137fd5760405162461bcd60e51b8152600401808060200182810382526023815260200180614f046023913960400191505060405180910390fd5b60606146fa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614a519092919063ffffffff16565b805190915015610a355780806020019051602081101561471957600080fd5b5051610a355760405162461bcd60e51b815260040180806020018281038252602a8152602001806150c7602a913960400191505060405180910390fd5b6000826147655750600061385b565b8282028284828161477257fe5b04146138585760405162461bcd60e51b8152600401808060200182810382526021815260200180614f596021913960400191505060405180910390fd5b600061385883836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250614a6a565b600754604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561484757600080fd5b505af115801561485b573d6000803e3d6000fd5b505050506040513d602081101561487157600080fd5b5051905080156148955760045461489590839081906001600160a01b031684613861565b600854604080516309f4173d60e11b81526001600160a01b03858116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b1580156148ee57600080fd5b505af1158015614902573d6000803e3d6000fd5b505050506040513d602081101561491857600080fd5b505190508015610a355760095460055460408051631e42d69b60e21b81526001600160a01b038781166004830181905260248301529283166044820152606481018590529051919092169163790b5a6c91608480830192600092919082900301818387803b15801561498957600080fd5b505af115801561499d573d6000803e3d6000fd5b50505050505050565b600a54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b1580156149ff57600080fd5b505af1158015614a13573d6000803e3d6000fd5b505050506040513d6020811015614a2957600080fd5b505190508015614a4d57600454614a4d90839081906001600160a01b031684613861565b5050565b6060614a608484600085614b0c565b90505b9392505050565b60008183614af65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614abb578181015183820152602001614aa3565b50505050905090810190601f168015614ae85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581614b0257fe5b0495945050505050565b606082471015614b4d5760405162461bcd60e51b8152600401808060200182810382526026815260200180614e236026913960400191505060405180910390fd5b614b5685614c68565b614ba7576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310614be65780518252601f199092019160209182019101614bc7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614c48576040519150601f19603f3d011682016040523d82523d6000602084013e614c4d565b606091505b5091509150614c5d828286614c6e565b979650505050505050565b3b151590565b60608315614c7d575081614a63565b825115614c8d5782518084602001fd5b60405162461bcd60e51b8152602060048201818152845160248401528451859391928392604401919085019080838360008315614abb578181015183820152602001614aa356fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00590f78242b486137ed0130a565e7dd5376d88cd0a3d45ce3e49634ae4af35b8d526577617264526f757465723a206f70656e5665737465722e7472616e7366657272656443756d756c617469766552657761726473203e2030526577617264526f757465723a2073656e646572206861732076657374656420746f6b656e73476f7665726e61626c653a20666f7262696464656e0000000000000000000000526577617264526f757465723a207374616b65644f6170547261636b65722e63756d756c617469766552657761726473203e2030416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564526577617264526f757465723a20616c726561647920696e697469616c697a6564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c526577617264526f757465723a207374616b65644f6170547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206f70656e5665737465722e7472616e73666572726564417665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206f70656e5665737465722e62616c616e6365203e2030526577617264526f757465723a207472616e73666572206e6f74207369676e616c6c6564526577617264526f757465723a206f61705665737465722e62616c616e6365203e2030526577617264526f757465723a206665654f70656e547261636b65722e63756d756c617469766552657761726473203e2030536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526577617264526f757465723a206665654f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a207374616b65644f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a207374616b65644f70656e547261636b65722e63756d756c617469766552657761726473203e2030526577617264526f757465723a20626f6e75734f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a20696e76616c6964205f6f6170416d6f756e74526577617264526f757465723a20626f6e75734f70656e547261636b65722e63756d756c617469766552657761726473203e2030cc23fc66e1bbcc39c6c2eb751f29b706cbb99681d2c1f02e7f8a59e92dedf2d85361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564526577617264526f757465723a206665654f6170547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206665654f6170547261636b65722e63756d756c617469766552657761726473203e2030526577617264526f757465723a20696e76616c6964205f616d6f756e74000000a2646970667358221220f0923c6ec95302407341e1c100603a2effd859bb17892ffcbb1cfc3da5d722f264736f6c634300060c0033", - "deployedBytecode": "0x6080604052600436106101b95760003560e01c806301e336671461021d5780630295e46f146102605780630b5684411461029157806312d43a51146102a65780631444e487146102bb5780631af276a6146102e55780632a9f4083146103935780632fdd983d146103c657806330b700021461046157806336be2604146104bd578063392e53cd146104d25780633a43750d146104fb5780633a81be06146105105780633e2b53df146105255780633eb162ba1461055e5780633fc8cef3146105885780634e71d92d1461059d57806363fb63db146105b257806364489cbb1461060b578063655603a4146106205780637883052314610653578063874710e81461067d5780638dbe4d71146107ad578063a66a5b32146107f2578063abbdd88f14610807578063c383f4b21461081c578063ce298b151461083f578063cfad57a214610854578063d1a2877714610887578063d25140b31461089c578063d294f093146108db578063dca388b0146108f0578063dfab0c2c1461091a578063e1b9db891461092f578063e3e9a88614610962578063ef9aacfd14610977578063f69e2046146109aa578063fcfff16f146109bf57610218565b36610218576002546001600160a01b03163314610216576040805162461bcd60e51b81526020600482015260166024820152752937baba32b91d1034b73b30b634b21039b2b73232b960511b604482015290519081900360640190fd5b005b600080fd5b34801561022957600080fd5b506102166004803603606081101561024057600080fd5b506001600160a01b038135811691602081013590911690604001356109d4565b34801561026c57600080fd5b50610275610a3a565b604080516001600160a01b039092168252519081900360200190f35b34801561029d57600080fd5b50610275610a49565b3480156102b257600080fd5b50610275610a58565b3480156102c757600080fd5b50610216600480360360208110156102de57600080fd5b5035610a67565b3480156102f157600080fd5b506102166004803603602081101561030857600080fd5b810190602081018135600160201b81111561032257600080fd5b82018360208201111561033457600080fd5b803590602001918460208302840111600160201b8311171561035557600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610ad4945050505050565b34801561039f57600080fd5b50610216600480360360208110156103b657600080fd5b50356001600160a01b0316610ba5565b3480156103d257600080fd5b5061021660048036036101a08110156103ea57600080fd5b506001600160a01b038135811691602081013582169160408201358116916060810135821691608082013581169160a081013582169160c082013581169160e08101358216916101008201358116916101208101358216916101408201358116916101608101358216916101809091013516610c46565b34801561046d57600080fd5b50610216600480360360e081101561048457600080fd5b508035151590602081013515159060408101351515906060810135151590608081013515159060a081013515159060c001351515610dd3565b3480156104c957600080fd5b50610216611495565b3480156104de57600080fd5b506104e76115f0565b604080519115158252519081900360200190f35b34801561050757600080fd5b50610275611600565b34801561051c57600080fd5b5061027561160f565b34801561053157600080fd5b506102166004803603604081101561054857600080fd5b506001600160a01b03813516906020013561161e565b34801561056a57600080fd5b506102166004803603602081101561058157600080fd5b50356116d0565b34801561059457600080fd5b50610275611735565b3480156105a957600080fd5b50610216611744565b3480156105be57600080fd5b506105f9600480360360808110156105d557600080fd5b506001600160a01b03813581169160208101359160408201359160600135166118ed565b60408051918252519081900360200190f35b34801561061757600080fd5b50610275611adb565b34801561062c57600080fd5b506102166004803603602081101561064357600080fd5b50356001600160a01b0316611aea565b34801561065f57600080fd5b506102166004803603602081101561067657600080fd5b50356124f3565b34801561068957600080fd5b50610216600480360360408110156106a057600080fd5b810190602081018135600160201b8111156106ba57600080fd5b8201836020820111156106cc57600080fd5b803590602001918460208302840111600160201b831117156106ed57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561073c57600080fd5b82018360208201111561074e57600080fd5b803590602001918460208302840111600160201b8311171561076f57600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550612558945050505050565b3480156107b957600080fd5b506105f9600480360360808110156107d057600080fd5b506001600160a01b03813516906020810135906040810135906060013561264d565b3480156107fe57600080fd5b5061027561283c565b34801561081357600080fd5b5061027561284b565b6105f96004803603604081101561083257600080fd5b508035906020013561285a565b34801561084b57600080fd5b50610275612b46565b34801561086057600080fd5b506102166004803603602081101561087757600080fd5b50356001600160a01b0316612b55565b34801561089357600080fd5b50610275612bc4565b3480156108a857600080fd5b506105f9600480360360608110156108bf57600080fd5b50803590602081013590604001356001600160a01b0316612bd3565b3480156108e757600080fd5b50610216612e3a565b3480156108fc57600080fd5b506102166004803603602081101561091357600080fd5b5035612f61565b34801561092657600080fd5b50610275612fc6565b34801561093b57600080fd5b506102756004803603602081101561095257600080fd5b50356001600160a01b0316612fd5565b34801561096e57600080fd5b50610275612ff0565b34801561098357600080fd5b506102166004803603602081101561099a57600080fd5b50356001600160a01b0316612fff565b3480156109b657600080fd5b506102166131ed565b3480156109cb57600080fd5b50610275613248565b6001546001600160a01b03163314610a21576040805162461bcd60e51b81526020600482015260156024820152600080516020614d74833981519152604482015290519081900360640190fd5b610a356001600160a01b0384168383613257565b505050565b600c546001600160a01b031681565b600a546001600160a01b031681565b6001546001600160a01b031681565b60026000541415610aad576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055600354610acc9033906001600160a01b03168360016132a9565b506001600055565b60026000541415610b1a576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b03163314610b6c576040805162461bcd60e51b81526020600482015260156024820152600080516020614d74833981519152604482015290519081900360640190fd5b60005b8151811015610b9c57610b94828281518110610b8757fe5b60200260200101516137eb565b600101610b6f565b50506001600055565b60026000541415610beb576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b03163314610c3d576040805162461bcd60e51b81526020600482015260156024820152600080516020614d74833981519152604482015290519081900360640190fd5b610acc816137eb565b6001546001600160a01b03163314610c93576040805162461bcd60e51b81526020600482015260156024820152600080516020614d74833981519152604482015290519081900360640190fd5b600154600160a01b900460ff1615610cdc5760405162461bcd60e51b8152600401808060200182810382526021815260200180614e026021913960400191505060405180910390fd5b6001805460ff60a01b1916600160a01b179055600280546001600160a01b039e8f166001600160a01b031991821617909155600380549d8f169d82169d909d17909c55600480549b8e169b8d169b909b17909a5560058054998d16998c169990991790985560068054978c16978b169790971790965560078054958b16958a169590951790945560088054938a169389169390931790925560098054918916918816919091179055600b8054918816918716919091179055600a8054918716918616919091179055600c8054918616918516919091179055600d8054918516918416919091179055600e8054919093169116179055565b60026000541415610e19576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600090815533908815610f4557600d54604080516309f4173d60e11b81526001600160a01b03858116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b158015610e8157600080fd5b505af1158015610e95573d6000803e3d6000fd5b505050506040513d6020811015610eab57600080fd5b5051600e54604080516309f4173d60e11b81526001600160a01b03878116600483018190526024830152915193945060009391909216916313e82e7a91604480830192602092919082900301818787803b158015610f0857600080fd5b505af1158015610f1c573d6000803e3d6000fd5b505050506040513d6020811015610f3257600080fd5b50519050610f408282613800565b925050505b878015610f525750600081115b15610f7157600354610f7190839081906001600160a01b031684613861565b6000871561109657600754604080516309f4173d60e11b81526001600160a01b03868116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b158015610fd257600080fd5b505af1158015610fe6573d6000803e3d6000fd5b505050506040513d6020811015610ffc57600080fd5b5051600a54604080516309f4173d60e11b81526001600160a01b03888116600483018190526024830152915193945060009391909216916313e82e7a91604480830192602092919082900301818787803b15801561105957600080fd5b505af115801561106d573d6000803e3d6000fd5b505050506040513d602081101561108357600080fd5b505190506110918282613800565b925050505b8680156110a35750600081115b156110c2576004546110c290849081906001600160a01b031684613861565b85156111d757600854604080516309f4173d60e11b81526001600160a01b03868116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561112157600080fd5b505af1158015611135573d6000803e3d6000fd5b505050506040513d602081101561114b57600080fd5b5051905080156111d55760095460055460408051631e42d69b60e21b81526001600160a01b038881166004830181905260248301529283166044820152606481018590529051919092169163790b5a6c91608480830192600092919082900301818387803b1580156111bc57600080fd5b505af11580156111d0573d6000803e3d6000fd5b505050505b505b841561148457831561137f57600954604080516309f4173d60e11b81526001600160a01b038681166004830152306024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561123b57600080fd5b505af115801561124f573d6000803e3d6000fd5b505050506040513d602081101561126557600080fd5b5051600b54604080516309f4173d60e11b81526001600160a01b038881166004830152306024830152915193945060009391909216916313e82e7a91604480830192602092919082900301818787803b1580156112c157600080fd5b505af11580156112d5573d6000803e3d6000fd5b505050506040513d60208110156112eb57600080fd5b5051905060006112fb8383613800565b60025460408051632e1a7d4d60e01b81526004810184905290519293506001600160a01b0390911691632e1a7d4d9160248082019260009290919082900301818387803b15801561134b57600080fd5b505af115801561135f573d6000803e3d6000fd5b50611377925050506001600160a01b03871682613a70565b505050611484565b600954604080516309f4173d60e11b81526001600160a01b03868116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b1580156113d557600080fd5b505af11580156113e9573d6000803e3d6000fd5b505050506040513d60208110156113ff57600080fd5b5050600b54604080516309f4173d60e11b81526001600160a01b03868116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561145757600080fd5b505af115801561146b573d6000803e3d6000fd5b505050506040513d602081101561148157600080fd5b50505b505060016000555050505050505050565b600260005414156114db576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000908155600754604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b15801561153a57600080fd5b505af115801561154e573d6000803e3d6000fd5b505050506040513d602081101561156457600080fd5b5050600a54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b1580156115bc57600080fd5b505af11580156115d0573d6000803e3d6000fd5b505050506040513d60208110156115e657600080fd5b5050600160005550565b600154600160a01b900460ff1681565b6004546001600160a01b031681565b6005546001600160a01b031681565b60026000541415611664576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b031633146116b6576040805162461bcd60e51b81526020600482015260156024820152600080516020614d74833981519152604482015290519081900360640190fd5b600354610b9c90339084906001600160a01b031684613861565b60026000541415611716576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055600354610acc90339081906001600160a01b031684613861565b6002546001600160a01b031681565b6002600054141561178a576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000908155600954604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b1580156117e957600080fd5b505af11580156117fd573d6000803e3d6000fd5b505050506040513d602081101561181357600080fd5b5050600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561186b57600080fd5b505af115801561187f573d6000803e3d6000fd5b505050506040513d602081101561189557600080fd5b5050600754604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561153a57600080fd5b600060026000541415611935576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000558361197a576040805162461bcd60e51b81526020600482018190526024820152600080516020615053833981519152604482015290519081900360640190fd5b600b546006546040805163098bf59d60e01b815233600482018190526001600160a01b039384166024830152604482018990526064820181905291519193929092169163098bf59d91608480830192600092919082900301818387803b1580156119e357600080fd5b505af11580156119f7573d6000803e3d6000fd5b5050600c54604080516371d597ad60e01b81526001600160a01b0386811660048301528b81166024830152604482018b9052606482018a905288811660848301529151600095509190921692506371d597ad9160a48082019260209290919082900301818787803b158015611a6b57600080fd5b505af1158015611a7f573d6000803e3d6000fd5b505050506040513d6020811015611a9557600080fd5b5051604080516001600160a01b03851681526020810189905281519293506000805160206150a7833981519152929081900390910190a160016000559695505050505050565b6009546001600160a01b031681565b60026000541415611b30576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055600d54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b158015611b8257600080fd5b505afa158015611b96573d6000803e3d6000fd5b505050506040513d6020811015611bac57600080fd5b505115611bea5760405162461bcd60e51b8152600401808060200182810382526026815260200180614d4e6026913960400191505060405180910390fd5b600e54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b158015611c3757600080fd5b505afa158015611c4b573d6000803e3d6000fd5b505050506040513d6020811015611c6157600080fd5b505115611c9f5760405162461bcd60e51b8152600401808060200182810382526026815260200180614d4e6026913960400191505060405180910390fd5b6001600160a01b038181166000908152600f60205260409020543391168114611cf95760405162461bcd60e51b8152600401808060200182810382526024815260200180614ee06024913960400191505060405180910390fd5b6001600160a01b0382166000908152600f6020526040902080546001600160a01b0319169055611d2881613b55565b611d31826137eb565b60075460035460408051637aeceb1f60e11b81526001600160a01b03868116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611d8d57600080fd5b505afa158015611da1573d6000803e3d6000fd5b505050506040513d6020811015611db757600080fd5b505190508015611df557600354611ddb9084906001600160a01b03168360006132a9565b600354611df590849084906001600160a01b031684613861565b6007546004805460408051637aeceb1f60e11b81526001600160a01b0388811694820194909452918316602483015251600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611e5357600080fd5b505afa158015611e67573d6000803e3d6000fd5b505050506040513d6020811015611e7d57600080fd5b505190508015611ebb57600454611ea19085906001600160a01b03168360006132a9565b600454611ebb90859085906001600160a01b031684613861565b60095460055460408051637aeceb1f60e11b81526001600160a01b03888116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611f1757600080fd5b505afa158015611f2b573d6000803e3d6000fd5b505050506040513d6020811015611f4157600080fd5b50519050801561204e576009546005546040805163098bf59d60e01b81526001600160a01b038981166004830181905293811660248301526044820186905260648201939093529051919092169163098bf59d91608480830192600092919082900301818387803b158015611fb557600080fd5b505af1158015611fc9573d6000803e3d6000fd5b505060095460055460408051631e42d69b60e21b81526001600160a01b038b811660048301528a81166024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b15801561203557600080fd5b505af1158015612049573d6000803e3d6000fd5b505050505b6000600460009054906101000a90046001600160a01b03166001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b1580156120b257600080fd5b505afa1580156120c6573d6000803e3d6000fd5b505050506040513d60208110156120dc57600080fd5b5051905080156121755760048054604080516323b872dd60e01b81526001600160a01b038a811694820194909452888416602482015260448101859052905192909116916323b872dd916064808201926020929091908290030181600087803b15801561214857600080fd5b505af115801561215c573d6000803e3d6000fd5b505050506040513d602081101561217257600080fd5b50505b600b5460065460408051637aeceb1f60e11b81526001600160a01b038a8116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b1580156121d157600080fd5b505afa1580156121e5573d6000803e3d6000fd5b505050506040513d60208110156121fb57600080fd5b50519050801561240957600a54600b546040805163098bf59d60e01b81526001600160a01b038b81166004830181905293811660248301526044820186905260648201939093529051919092169163098bf59d91608480830192600092919082900301818387803b15801561226f57600080fd5b505af1158015612283573d6000803e3d6000fd5b5050600b546006546040805163098bf59d60e01b81526001600160a01b038d8116600483018190529381166024830152604482018890526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b1580156122f157600080fd5b505af1158015612305573d6000803e3d6000fd5b5050600b5460065460408051631e42d69b60e21b81526001600160a01b038d811660048301528c81166024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b15801561237157600080fd5b505af1158015612385573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b038c8116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b1580156123f057600080fd5b505af1158015612404573d6000803e3d6000fd5b505050505b600d5460408051630f713c2360e41b81526001600160a01b038a8116600483015289811660248301529151919092169163f713c23091604480830192600092919082900301818387803b15801561245f57600080fd5b505af1158015612473573d6000803e3d6000fd5b5050600e5460408051630f713c2360e41b81526001600160a01b038c811660048301528b81166024830152915191909216935063f713c2309250604480830192600092919082900301818387803b1580156124cd57600080fd5b505af11580156124e1573d6000803e3d6000fd5b50506001600055505050505050505050565b60026000541415612539576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055600454610acc90339081906001600160a01b031684613861565b6002600054141561259e576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b031633146125f0576040805162461bcd60e51b81526020600482015260156024820152600080516020614d74833981519152604482015290519081900360640190fd5b6003546001600160a01b031660005b83518110156126425761263a3385838151811061261857fe5b60200260200101518486858151811061262d57fe5b6020026020010151613861565b6001016125ff565b505060016000555050565b600060026000541415612695576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055836126da576040805162461bcd60e51b815260206004820152601d6024820152600080516020615156833981519152604482015290519081900360640190fd5b600c54604080516317eb2a1560e01b81523360048201819052602482018190526001600160a01b038981166044840152606483018990526084830188905260a483018790529251909360009316916317eb2a159160c480830192602092919082900301818787803b15801561274e57600080fd5b505af1158015612762573d6000803e3d6000fd5b505050506040513d602081101561277857600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b1580156127e357600080fd5b505af11580156127f7573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614cf58339815191529450908190039091019150a160016000559695505050505050565b600b546001600160a01b031681565b600e546001600160a01b031681565b6000600260005414156128a2576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055346128f9576040805162461bcd60e51b815260206004820152601f60248201527f526577617264526f757465723a20696e76616c6964206d73672e76616c756500604482015290519081900360640190fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561294957600080fd5b505af115801561295d573d6000803e3d6000fd5b5050600254600c546040805163095ea7b360e01b81526001600160a01b039283166004820152346024820152905191909216945063095ea7b39350604480830193506020928290030181600087803b1580156129b857600080fd5b505af11580156129cc573d6000803e3d6000fd5b505050506040513d60208110156129e257600080fd5b5050600c54600254604080516317eb2a1560e01b815230600482015233602482018190526001600160a01b0393841660448301523460648301526084820188905260a482018790529151919360009316916317eb2a159160c48082019260209290919082900301818787803b158015612a5a57600080fd5b505af1158015612a6e573d6000803e3d6000fd5b505050506040513d6020811015612a8457600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b158015612aef57600080fd5b505af1158015612b03573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614cf58339815191529450908190039091019150a16001600055949350505050565b6007546001600160a01b031681565b6001546001600160a01b03163314612ba2576040805162461bcd60e51b81526020600482015260156024820152600080516020614d74833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600d546001600160a01b031681565b600060026000541415612c1b576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b600260005583612c60576040805162461bcd60e51b81526020600482018190526024820152600080516020615053833981519152604482015290519081900360640190fd5b600b546006546040805163098bf59d60e01b815233600482018190526001600160a01b039384166024830152604482018990526064820181905291519193929092169163098bf59d91608480830192600092919082900301818387803b158015612cc957600080fd5b505af1158015612cdd573d6000803e3d6000fd5b5050600c54600254604080516371d597ad60e01b81526001600160a01b0387811660048301529283166024820152604481018b9052606481018a90523060848201529051600095509190921692506371d597ad9160a48082019260209290919082900301818787803b158015612d5257600080fd5b505af1158015612d66573d6000803e3d6000fd5b505050506040513d6020811015612d7c57600080fd5b505160025460408051632e1a7d4d60e01b81526004810184905290519293506001600160a01b0390911691632e1a7d4d9160248082019260009290919082900301818387803b158015612dce57600080fd5b505af1158015612de2573d6000803e3d6000fd5b50612dfa925050506001600160a01b03851682613a70565b604080516001600160a01b03841681526020810188905281516000805160206150a7833981519152929181900390910190a1600160005595945050505050565b60026000541415612e80576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b60026000908155600954604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b158015612edf57600080fd5b505af1158015612ef3573d6000803e3d6000fd5b505050506040513d6020811015612f0957600080fd5b5050600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b1580156115bc57600080fd5b60026000541415612fa7576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055600454610acc9033906001600160a01b03168360016132a9565b6006546001600160a01b031681565b600f602052600090815260409020546001600160a01b031681565b6008546001600160a01b031681565b60026000541415613045576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055600d54604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561309557600080fd5b505afa1580156130a9573d6000803e3d6000fd5b505050506040513d60208110156130bf57600080fd5b5051156130fd5760405162461bcd60e51b8152600401808060200182810382526026815260200180614d4e6026913960400191505060405180910390fd5b600e54604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561314857600080fd5b505afa15801561315c573d6000803e3d6000fd5b505050506040513d602081101561317257600080fd5b5051156131b05760405162461bcd60e51b8152600401808060200182810382526026815260200180614d4e6026913960400191505060405180910390fd5b6131b981613b55565b336000908152600f6020526040812080546001600160a01b0319166001600160a01b03939093169290921790915560019055565b60026000541415613233576040805162461bcd60e51b815260206004820152601f6024820152600080516020614cd5833981519152604482015290519081900360640190fd5b6002600055613241336137eb565b6001600055565b6003546001600160a01b031681565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610a359084906146a5565b600082116132ec576040805162461bcd60e51b815260206004820152601d6024820152600080516020615156833981519152604482015290519081900360640190fd5b600754604080516310c1c10360e01b81526001600160a01b038781166004830152915160009392909216916310c1c10391602480820192602092909190829003018186803b15801561333d57600080fd5b505afa158015613351573d6000803e3d6000fd5b505050506040513d602081101561336757600080fd5b50516009546008546040805163098bf59d60e01b81526001600160a01b038a8116600483018190529381166024830152604482018990526064820193909352905193945091169163098bf59d9160848082019260009290919082900301818387803b1580156133d557600080fd5b505af11580156133e9573d6000803e3d6000fd5b50506008546007546040805163098bf59d60e01b81526001600160a01b038b8116600483018190529381166024830152604482018a90526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b15801561345757600080fd5b505af115801561346b573d6000803e3d6000fd5b50506007546040805163098bf59d60e01b81526001600160a01b038a8116600483018190528a82166024840152604483018a90526064830152915191909216935063098bf59d9250608480830192600092919082900301818387803b1580156134d357600080fd5b505af11580156134e7573d6000803e3d6000fd5b50505050811561379a57600854604080516309f4173d60e11b81526001600160a01b03888116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561354a57600080fd5b505af115801561355e573d6000803e3d6000fd5b505050506040513d602081101561357457600080fd5b5051905080156135fe5760095460055460408051631e42d69b60e21b81526001600160a01b038a81166004830181905260248301529283166044820152606481018590529051919092169163790b5a6c91608480830192600092919082900301818387803b1580156135e557600080fd5b505af11580156135f9573d6000803e3d6000fd5b505050505b60095460055460408051637aeceb1f60e11b81526001600160a01b038a8116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b15801561365a57600080fd5b505afa15801561366e573d6000803e3d6000fd5b505050506040513d602081101561368457600080fd5b5051905080156137975760006136a48461369e8489614756565b906147af565b6009546005546040805163098bf59d60e01b81526001600160a01b038d8116600483018190529381166024830152604482018690526064820193909352905193945091169163098bf59d9160848082019260009290919082900301818387803b15801561371057600080fd5b505af1158015613724573d6000803e3d6000fd5b505060055460408051632770a7eb60e21b81526001600160a01b038d81166004830152602482018790529151919092169350639dc29fac9250604480830192600092919082900301818387803b15801561377d57600080fd5b505af1158015613791573d6000803e3d6000fd5b50505050505b50505b604080516001600160a01b0380881682528616602082015280820185905290517f078e2fe6dabb5c8d98e723c50fa64329b611734ca334bb6b9f2ecdaa282093409181900360600190a15050505050565b6137f4816147ee565b6137fd816149a6565b50565b600082820183811015613858576040805162461bcd60e51b815260206004820152601b60248201527a536166654d6174683a206164646974696f6e206f766572666c6f7760281b604482015290519081900360640190fd5b90505b92915050565b600081116138a4576040805162461bcd60e51b815260206004820152601d6024820152600080516020615156833981519152604482015290519081900360640190fd5b60075460408051631e42d69b60e21b81526001600160a01b03878116600483015286811660248301528581166044830152606482018590529151919092169163790b5a6c91608480830192600092919082900301818387803b15801561390957600080fd5b505af115801561391d573d6000803e3d6000fd5b505060085460075460408051631e42d69b60e21b81526001600160a01b03898116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b15801561398857600080fd5b505af115801561399c573d6000803e3d6000fd5b505060095460085460408051631e42d69b60e21b81526001600160a01b03898116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015613a0757600080fd5b505af1158015613a1b573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528616602082015280820185905290517f9aa02c4a3d4e3537fb517760136762eeb484da4444486e74ac81273ed42ce6f99350908190036060019150a150505050565b80471015613ac5576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d8060008114613b10576040519150601f19603f3d011682016040523d82523d6000602084013e613b15565b606091505b5050905080610a355760405162461bcd60e51b815260040180806020018281038252603a815260200180614dc8603a913960400191505060405180910390fd5b6007546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613ba257600080fd5b505afa158015613bb6573d6000803e3d6000fd5b505050506040513d6020811015613bcc57600080fd5b505115613c0a5760405162461bcd60e51b8152600401808060200182810382526038815260200180614faf6038913960400191505060405180910390fd5b60075460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613c5757600080fd5b505afa158015613c6b573d6000803e3d6000fd5b505050506040513d6020811015613c8157600080fd5b505115613cbf5760405162461bcd60e51b8152600401808060200182810382526035815260200180614fe76035913960400191505060405180910390fd5b6008546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613d0c57600080fd5b505afa158015613d20573d6000803e3d6000fd5b505050506040513d6020811015613d3657600080fd5b505115613d745760405162461bcd60e51b815260040180806020018281038252603781526020018061501c6037913960400191505060405180910390fd5b60085460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613dc157600080fd5b505afa158015613dd5573d6000803e3d6000fd5b505050506040513d6020811015613deb57600080fd5b505115613e295760405162461bcd60e51b81526004018080602001828103825260348152602001806150736034913960400191505060405180910390fd5b6009546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613e7657600080fd5b505afa158015613e8a573d6000803e3d6000fd5b505050506040513d6020811015613ea057600080fd5b505115613ede5760405162461bcd60e51b8152600401808060200182810382526035815260200180614f7a6035913960400191505060405180910390fd5b60095460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613f2b57600080fd5b505afa158015613f3f573d6000803e3d6000fd5b505050506040513d6020811015613f5557600080fd5b505115613f935760405162461bcd60e51b8152600401808060200182810382526032815260200180614f276032913960400191505060405180910390fd5b600d5460408051631ccdc0d760e21b81526001600160a01b03848116600483015291519190921691637337035c916024808301926020929190829003018186803b158015613fe057600080fd5b505afa158015613ff4573d6000803e3d6000fd5b505050506040513d602081101561400a57600080fd5b5051156140485760405162461bcd60e51b815260040180806020018281038252603c815260200180614e80603c913960400191505060405180910390fd5b600d5460408051635b8de71560e11b81526001600160a01b0384811660048301529151919092169163b71bce2a916024808301926020929190829003018186803b15801561409557600080fd5b505afa1580156140a9573d6000803e3d6000fd5b505050506040513d60208110156140bf57600080fd5b5051156140fd5760405162461bcd60e51b8152600401808060200182810382526039815260200180614d156039913960400191505060405180910390fd5b600a546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b15801561414a57600080fd5b505afa15801561415e573d6000803e3d6000fd5b505050506040513d602081101561417457600080fd5b5051156141b25760405162461bcd60e51b8152600401808060200182810382526037815260200180614e496037913960400191505060405180910390fd5b600a5460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b1580156141ff57600080fd5b505afa158015614213573d6000803e3d6000fd5b505050506040513d602081101561422957600080fd5b5051156142675760405162461bcd60e51b8152600401808060200182810382526034815260200180614d946034913960400191505060405180910390fd5b600b546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b1580156142b457600080fd5b505afa1580156142c8573d6000803e3d6000fd5b505050506040513d60208110156142de57600080fd5b50511561431c5760405162461bcd60e51b81526004018080602001828103825260348152602001806150f16034913960400191505060405180910390fd5b600b5460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b15801561436957600080fd5b505afa15801561437d573d6000803e3d6000fd5b505050506040513d602081101561439357600080fd5b5051156143d15760405162461bcd60e51b81526004018080602001828103825260318152602001806151256031913960400191505060405180910390fd5b600e5460408051631ccdc0d760e21b81526001600160a01b03848116600483015291519190921691637337035c916024808301926020929190829003018186803b15801561441e57600080fd5b505afa158015614432573d6000803e3d6000fd5b505050506040513d602081101561444857600080fd5b5051156144865760405162461bcd60e51b815260040180806020018281038252603c815260200180614e80603c913960400191505060405180910390fd5b600e5460408051635b8de71560e11b81526001600160a01b0384811660048301529151919092169163b71bce2a916024808301926020929190829003018186803b1580156144d357600080fd5b505afa1580156144e7573d6000803e3d6000fd5b505050506040513d60208110156144fd57600080fd5b50511561453b5760405162461bcd60e51b8152600401808060200182810382526039815260200180614d156039913960400191505060405180910390fd5b600d54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561458857600080fd5b505afa15801561459c573d6000803e3d6000fd5b505050506040513d60208110156145b257600080fd5b5051156145f05760405162461bcd60e51b8152600401808060200182810382526024815260200180614ebc6024913960400191505060405180910390fd5b600e54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561463d57600080fd5b505afa158015614651573d6000803e3d6000fd5b505050506040513d602081101561466757600080fd5b5051156137fd5760405162461bcd60e51b8152600401808060200182810382526023815260200180614f046023913960400191505060405180910390fd5b60606146fa826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316614a519092919063ffffffff16565b805190915015610a355780806020019051602081101561471957600080fd5b5051610a355760405162461bcd60e51b815260040180806020018281038252602a8152602001806150c7602a913960400191505060405180910390fd5b6000826147655750600061385b565b8282028284828161477257fe5b04146138585760405162461bcd60e51b8152600401808060200182810382526021815260200180614f596021913960400191505060405180910390fd5b600061385883836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250614a6a565b600754604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561484757600080fd5b505af115801561485b573d6000803e3d6000fd5b505050506040513d602081101561487157600080fd5b5051905080156148955760045461489590839081906001600160a01b031684613861565b600854604080516309f4173d60e11b81526001600160a01b03858116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b1580156148ee57600080fd5b505af1158015614902573d6000803e3d6000fd5b505050506040513d602081101561491857600080fd5b505190508015610a355760095460055460408051631e42d69b60e21b81526001600160a01b038781166004830181905260248301529283166044820152606481018590529051919092169163790b5a6c91608480830192600092919082900301818387803b15801561498957600080fd5b505af115801561499d573d6000803e3d6000fd5b50505050505050565b600a54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b1580156149ff57600080fd5b505af1158015614a13573d6000803e3d6000fd5b505050506040513d6020811015614a2957600080fd5b505190508015614a4d57600454614a4d90839081906001600160a01b031684613861565b5050565b6060614a608484600085614b0c565b90505b9392505050565b60008183614af65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614abb578181015183820152602001614aa3565b50505050905090810190601f168015614ae85780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581614b0257fe5b0495945050505050565b606082471015614b4d5760405162461bcd60e51b8152600401808060200182810382526026815260200180614e236026913960400191505060405180910390fd5b614b5685614c68565b614ba7576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310614be65780518252601f199092019160209182019101614bc7565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614c48576040519150601f19603f3d011682016040523d82523d6000602084013e614c4d565b606091505b5091509150614c5d828286614c6e565b979650505050505050565b3b151590565b60608315614c7d575081614a63565b825115614c8d5782518084602001fd5b60405162461bcd60e51b8152602060048201818152845160248401528451859391928392604401919085019080838360008315614abb578181015183820152602001614aa356fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00590f78242b486137ed0130a565e7dd5376d88cd0a3d45ce3e49634ae4af35b8d526577617264526f757465723a206f70656e5665737465722e7472616e7366657272656443756d756c617469766552657761726473203e2030526577617264526f757465723a2073656e646572206861732076657374656420746f6b656e73476f7665726e61626c653a20666f7262696464656e0000000000000000000000526577617264526f757465723a207374616b65644f6170547261636b65722e63756d756c617469766552657761726473203e2030416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564526577617264526f757465723a20616c726561647920696e697469616c697a6564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c526577617264526f757465723a207374616b65644f6170547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206f70656e5665737465722e7472616e73666572726564417665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206f70656e5665737465722e62616c616e6365203e2030526577617264526f757465723a207472616e73666572206e6f74207369676e616c6c6564526577617264526f757465723a206f61705665737465722e62616c616e6365203e2030526577617264526f757465723a206665654f70656e547261636b65722e63756d756c617469766552657761726473203e2030536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526577617264526f757465723a206665654f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a207374616b65644f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a207374616b65644f70656e547261636b65722e63756d756c617469766552657761726473203e2030526577617264526f757465723a20626f6e75734f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a20696e76616c6964205f6f6170416d6f756e74526577617264526f757465723a20626f6e75734f70656e547261636b65722e63756d756c617469766552657761726473203e2030cc23fc66e1bbcc39c6c2eb751f29b706cbb99681d2c1f02e7f8a59e92dedf2d85361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564526577617264526f757465723a206665654f6170547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206665654f6170547261636b65722e63756d756c617469766552657761726473203e2030526577617264526f757465723a20696e76616c6964205f616d6f756e74000000a2646970667358221220f0923c6ec95302407341e1c100603a2effd859bb17892ffcbb1cfc3da5d722f264736f6c634300060c0033", + "bytecode": "0x608060405234801561001057600080fd5b506001600081905580546001600160a01b0319163317905561514f806100376000396000f3fe6080604052600436106101c45760003560e01c806301e33667146102285780630295e46f1461026b5780630b5684411461029c57806312d43a51146102b157806312ec52f2146102c65780631444e487146103275780631af276a6146103515780632a9f4083146103ff5780632fdd983d1461043257806330b70002146104cd57806336be260414610529578063392e53cd1461053e5780633a43750d146105675780633a81be061461057c5780633e2b53df146105915780633eb162ba146105ca5780633fc8cef3146105f45780634e71d92d1461060957806363fb63db1461061e57806364489cbb14610665578063655603a41461067a57806378830523146106ad578063874710e8146106d75780638dbe4d7114610807578063a66a5b321461084c578063abbdd88f14610861578063c383f4b214610876578063ce298b1514610899578063cfad57a2146108ae578063d1a28777146108e1578063d25140b3146108f6578063d294f09314610935578063dca388b01461094a578063dfab0c2c14610974578063e1b9db8914610989578063e3e9a886146109bc578063ef9aacfd146109d1578063f69e204614610a04578063fcfff16f14610a1957610223565b36610223576002546001600160a01b03163314610221576040805162461bcd60e51b81526020600482015260166024820152752937baba32b91d1034b73b30b634b21039b2b73232b960511b604482015290519081900360640190fd5b005b600080fd5b34801561023457600080fd5b506102216004803603606081101561024b57600080fd5b506001600160a01b03813581169160208101359091169060400135610a2e565b34801561027757600080fd5b50610280610a94565b604080516001600160a01b039092168252519081900360200190f35b3480156102a857600080fd5b50610280610aa3565b3480156102bd57600080fd5b50610280610ab2565b3480156102d257600080fd5b50610315600480360360a08110156102e957600080fd5b506001600160a01b03813581169160208101359160408201359160608101359160809091013516610ac1565b60408051918252519081900360200190f35b34801561033357600080fd5b506102216004803603602081101561034a57600080fd5b5035610d30565b34801561035d57600080fd5b506102216004803603602081101561037457600080fd5b810190602081018135600160201b81111561038e57600080fd5b8201836020820111156103a057600080fd5b803590602001918460208302840111600160201b831117156103c157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610d9d945050505050565b34801561040b57600080fd5b506102216004803603602081101561042257600080fd5b50356001600160a01b0316610e6e565b34801561043e57600080fd5b5061022160048036036101a081101561045657600080fd5b506001600160a01b038135811691602081013582169160408201358116916060810135821691608082013581169160a081013582169160c082013581169160e08101358216916101008201358116916101208101358216916101408201358116916101608101358216916101809091013516610f0f565b3480156104d957600080fd5b50610221600480360360e08110156104f057600080fd5b508035151590602081013515159060408101351515906060810135151590608081013515159060a081013515159060c00135151561109c565b34801561053557600080fd5b5061022161128f565b34801561054a57600080fd5b506105536113ea565b604080519115158252519081900360200190f35b34801561057357600080fd5b506102806113fa565b34801561058857600080fd5b50610280611409565b34801561059d57600080fd5b50610221600480360360408110156105b457600080fd5b506001600160a01b038135169060200135611418565b3480156105d657600080fd5b50610221600480360360208110156105ed57600080fd5b50356114ca565b34801561060057600080fd5b5061028061152f565b34801561061557600080fd5b5061022161153e565b34801561062a57600080fd5b506103156004803603608081101561064157600080fd5b506001600160a01b03813581169160208101359160408201359160600135166116e7565b34801561067157600080fd5b50610280611957565b34801561068657600080fd5b506102216004803603602081101561069d57600080fd5b50356001600160a01b0316611966565b3480156106b957600080fd5b50610221600480360360208110156106d057600080fd5b503561236f565b3480156106e357600080fd5b50610221600480360360408110156106fa57600080fd5b810190602081018135600160201b81111561071457600080fd5b82018360208201111561072657600080fd5b803590602001918460208302840111600160201b8311171561074757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561079657600080fd5b8201836020820111156107a857600080fd5b803590602001918460208302840111600160201b831117156107c957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506123d4945050505050565b34801561081357600080fd5b506103156004803603608081101561082a57600080fd5b506001600160a01b0381351690602081013590604081013590606001356124c9565b34801561085857600080fd5b50610280612737565b34801561086d57600080fd5b50610280612746565b6103156004803603604081101561088c57600080fd5b5080359060200135612755565b3480156108a557600080fd5b50610280612ac0565b3480156108ba57600080fd5b50610221600480360360208110156108d157600080fd5b50356001600160a01b0316612acf565b3480156108ed57600080fd5b50610280612b3e565b34801561090257600080fd5b506103156004803603606081101561091957600080fd5b50803590602081013590604001356001600160a01b0316612b4d565b34801561094157600080fd5b50610221612e36565b34801561095657600080fd5b506102216004803603602081101561096d57600080fd5b5035612f5d565b34801561098057600080fd5b50610280612fc2565b34801561099557600080fd5b50610280600480360360208110156109ac57600080fd5b50356001600160a01b0316612fd1565b3480156109c857600080fd5b50610280612fec565b3480156109dd57600080fd5b50610221600480360360208110156109f457600080fd5b50356001600160a01b0316612ffb565b348015610a1057600080fd5b506102216131e9565b348015610a2557600080fd5b50610280613244565b6001546001600160a01b03163314610a7b576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b610a8f6001600160a01b0384168383613253565b505050565b600c546001600160a01b031681565b600a546001600160a01b031681565b6001546001600160a01b031681565b600060026000541415610b09576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005584610b4e576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b600c54604080516317eb2a1560e01b81526001600160a01b038086166004830181905260248301528981166044830152606482018990526084820188905260a482018790529151859360009316916317eb2a159160c480830192602092919082900301818787803b158015610bc257600080fd5b505af1158015610bd6573d6000803e3d6000fd5b505050506040513d6020811015610bec57600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b158015610c5757600080fd5b505af1158015610c6b573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b03888116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015610cd657600080fd5b505af1158015610cea573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614c998339815191529450908190039091019150a16001600055979650505050505050565b60026000541415610d76576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600354610d959033906001600160a01b03168360016132a5565b506001600055565b60026000541415610de3576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b03163314610e35576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b60005b8151811015610e6557610e5d828281518110610e5057fe5b60200260200101516137e7565b600101610e38565b50506001600055565b60026000541415610eb4576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b03163314610f06576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b610d95816137e7565b6001546001600160a01b03163314610f5c576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b600154600160a01b900460ff1615610fa55760405162461bcd60e51b8152600401808060200182810382526021815260200180614da66021913960400191505060405180910390fd5b6001805460ff60a01b1916600160a01b179055600280546001600160a01b039e8f166001600160a01b031991821617909155600380549d8f169d82169d909d17909c55600480549b8e169b8d169b909b17909a5560058054998d16998c169990991790985560068054978c16978b169790971790965560078054958b16958a169590951790945560088054938a169389169390931790925560098054918916918816919091179055600b8054918816918716919091179055600a8054918716918616919091179055600c8054918616918516919091179055600d8054918516918416919091179055600e8054919093169116179055565b600260005414156110e2576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000553382156112805781156111fd57600b54604080516309f4173d60e11b81526001600160a01b038481166004830152306024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561114c57600080fd5b505af1158015611160573d6000803e3d6000fd5b505050506040513d602081101561117657600080fd5b505160025460408051632e1a7d4d60e01b815260048101849052905192935083926001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156111ca57600080fd5b505af11580156111de573d6000803e3d6000fd5b506111f6925050506001600160a01b038416826137fc565b5050611280565b600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561125357600080fd5b505af1158015611267573d6000803e3d6000fd5b505050506040513d602081101561127d57600080fd5b50505b50506001600055505050505050565b600260005414156112d5576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000908155600754604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b15801561133457600080fd5b505af1158015611348573d6000803e3d6000fd5b505050506040513d602081101561135e57600080fd5b5050600a54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b1580156113b657600080fd5b505af11580156113ca573d6000803e3d6000fd5b505050506040513d60208110156113e057600080fd5b5050600160005550565b600154600160a01b900460ff1681565b6004546001600160a01b031681565b6005546001600160a01b031681565b6002600054141561145e576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b031633146114b0576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b600354610e6590339084906001600160a01b0316846138e1565b60026000541415611510576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600354610d9590339081906001600160a01b0316846138e1565b6002546001600160a01b031681565b60026000541415611584576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000908155600954604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b1580156115e357600080fd5b505af11580156115f7573d6000803e3d6000fd5b505050506040513d602081101561160d57600080fd5b5050600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561166557600080fd5b505af1158015611679573d6000803e3d6000fd5b505050506040513d602081101561168f57600080fd5b5050600754604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561133457600080fd5b60006002600054141561172f576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005583611774576040805162461bcd60e51b81526020600482018190526024820152600080516020614ff7833981519152604482015290519081900360640190fd5b600a54600b546040805163098bf59d60e01b815233600482018190526001600160a01b039384166024830152604482018990526064820181905291519193929092169163098bf59d91608480830192600092919082900301818387803b1580156117dd57600080fd5b505af11580156117f1573d6000803e3d6000fd5b5050600b546006546040805163098bf59d60e01b81526001600160a01b03878116600483018190529381166024830152604482018c90526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b15801561185f57600080fd5b505af1158015611873573d6000803e3d6000fd5b5050600c54604080516371d597ad60e01b81526001600160a01b0386811660048301528b81166024830152604482018b9052606482018a905288811660848301529151600095509190921692506371d597ad9160a48082019260209290919082900301818787803b1580156118e757600080fd5b505af11580156118fb573d6000803e3d6000fd5b505050506040513d602081101561191157600080fd5b5051604080516001600160a01b038516815260208101899052815192935060008051602061504b833981519152929081900390910190a160016000559695505050505050565b6009546001600160a01b031681565b600260005414156119ac576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600d54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d6020811015611a2857600080fd5b505115611a665760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b600e54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b158015611ab357600080fd5b505afa158015611ac7573d6000803e3d6000fd5b505050506040513d6020811015611add57600080fd5b505115611b1b5760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b6001600160a01b038181166000908152600f60205260409020543391168114611b755760405162461bcd60e51b8152600401808060200182810382526024815260200180614e846024913960400191505060405180910390fd5b6001600160a01b0382166000908152600f6020526040902080546001600160a01b0319169055611ba481613af0565b611bad826137e7565b60075460035460408051637aeceb1f60e11b81526001600160a01b03868116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611c0957600080fd5b505afa158015611c1d573d6000803e3d6000fd5b505050506040513d6020811015611c3357600080fd5b505190508015611c7157600354611c579084906001600160a01b03168360006132a5565b600354611c7190849084906001600160a01b0316846138e1565b6007546004805460408051637aeceb1f60e11b81526001600160a01b0388811694820194909452918316602483015251600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611ccf57600080fd5b505afa158015611ce3573d6000803e3d6000fd5b505050506040513d6020811015611cf957600080fd5b505190508015611d3757600454611d1d9085906001600160a01b03168360006132a5565b600454611d3790859085906001600160a01b0316846138e1565b60095460055460408051637aeceb1f60e11b81526001600160a01b03888116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611d9357600080fd5b505afa158015611da7573d6000803e3d6000fd5b505050506040513d6020811015611dbd57600080fd5b505190508015611eca576009546005546040805163098bf59d60e01b81526001600160a01b038981166004830181905293811660248301526044820186905260648201939093529051919092169163098bf59d91608480830192600092919082900301818387803b158015611e3157600080fd5b505af1158015611e45573d6000803e3d6000fd5b505060095460055460408051631e42d69b60e21b81526001600160a01b038b811660048301528a81166024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015611eb157600080fd5b505af1158015611ec5573d6000803e3d6000fd5b505050505b6000600460009054906101000a90046001600160a01b03166001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611f2e57600080fd5b505afa158015611f42573d6000803e3d6000fd5b505050506040513d6020811015611f5857600080fd5b505190508015611ff15760048054604080516323b872dd60e01b81526001600160a01b038a811694820194909452888416602482015260448101859052905192909116916323b872dd916064808201926020929091908290030181600087803b158015611fc457600080fd5b505af1158015611fd8573d6000803e3d6000fd5b505050506040513d6020811015611fee57600080fd5b50505b600b5460065460408051637aeceb1f60e11b81526001600160a01b038a8116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b15801561204d57600080fd5b505afa158015612061573d6000803e3d6000fd5b505050506040513d602081101561207757600080fd5b50519050801561228557600a54600b546040805163098bf59d60e01b81526001600160a01b038b81166004830181905293811660248301526044820186905260648201939093529051919092169163098bf59d91608480830192600092919082900301818387803b1580156120eb57600080fd5b505af11580156120ff573d6000803e3d6000fd5b5050600b546006546040805163098bf59d60e01b81526001600160a01b038d8116600483018190529381166024830152604482018890526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b15801561216d57600080fd5b505af1158015612181573d6000803e3d6000fd5b5050600b5460065460408051631e42d69b60e21b81526001600160a01b038d811660048301528c81166024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b1580156121ed57600080fd5b505af1158015612201573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b038c8116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b15801561226c57600080fd5b505af1158015612280573d6000803e3d6000fd5b505050505b600d5460408051630f713c2360e41b81526001600160a01b038a8116600483015289811660248301529151919092169163f713c23091604480830192600092919082900301818387803b1580156122db57600080fd5b505af11580156122ef573d6000803e3d6000fd5b5050600e5460408051630f713c2360e41b81526001600160a01b038c811660048301528b81166024830152915191909216935063f713c2309250604480830192600092919082900301818387803b15801561234957600080fd5b505af115801561235d573d6000803e3d6000fd5b50506001600055505050505050505050565b600260005414156123b5576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600454610d9590339081906001600160a01b0316846138e1565b6002600054141561241a576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b0316331461246c576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b6003546001600160a01b031660005b83518110156124be576124b63385838151811061249457fe5b6020026020010151848685815181106124a957fe5b60200260200101516138e1565b60010161247b565b505060016000555050565b600060026000541415612511576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005583612556576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b600c54604080516317eb2a1560e01b81523360048201819052602482018190526001600160a01b038981166044840152606483018990526084830188905260a483018790529251909360009316916317eb2a159160c480830192602092919082900301818787803b1580156125ca57600080fd5b505af11580156125de573d6000803e3d6000fd5b505050506040513d60208110156125f457600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b15801561265f57600080fd5b505af1158015612673573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b03888116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b1580156126de57600080fd5b505af11580156126f2573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614c998339815191529450908190039091019150a160016000559695505050505050565b600b546001600160a01b031681565b600e546001600160a01b031681565b60006002600054141561279d576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055346127f4576040805162461bcd60e51b815260206004820152601f60248201527f526577617264526f757465723a20696e76616c6964206d73672e76616c756500604482015290519081900360640190fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561284457600080fd5b505af1158015612858573d6000803e3d6000fd5b5050600254600c546040805163095ea7b360e01b81526001600160a01b039283166004820152346024820152905191909216945063095ea7b39350604480830193506020928290030181600087803b1580156128b357600080fd5b505af11580156128c7573d6000803e3d6000fd5b505050506040513d60208110156128dd57600080fd5b5050600c54600254604080516317eb2a1560e01b815230600482015233602482018190526001600160a01b0393841660448301523460648301526084820188905260a482018790529151919360009316916317eb2a159160c48082019260209290919082900301818787803b15801561295557600080fd5b505af1158015612969573d6000803e3d6000fd5b505050506040513d602081101561297f57600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b1580156129ea57600080fd5b505af11580156129fe573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b03888116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015612a6957600080fd5b505af1158015612a7d573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614c998339815191529450908190039091019150a16001600055949350505050565b6007546001600160a01b031681565b6001546001600160a01b03163314612b1c576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600d546001600160a01b031681565b600060026000541415612b95576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005583612bda576040805162461bcd60e51b81526020600482018190526024820152600080516020614ff7833981519152604482015290519081900360640190fd5b600a54600b546040805163098bf59d60e01b815233600482018190526001600160a01b039384166024830152604482018990526064820181905291519193929092169163098bf59d91608480830192600092919082900301818387803b158015612c4357600080fd5b505af1158015612c57573d6000803e3d6000fd5b5050600b546006546040805163098bf59d60e01b81526001600160a01b03878116600483018190529381166024830152604482018c90526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b158015612cc557600080fd5b505af1158015612cd9573d6000803e3d6000fd5b5050600c54600254604080516371d597ad60e01b81526001600160a01b0387811660048301529283166024820152604481018b9052606481018a90523060848201529051600095509190921692506371d597ad9160a48082019260209290919082900301818787803b158015612d4e57600080fd5b505af1158015612d62573d6000803e3d6000fd5b505050506040513d6020811015612d7857600080fd5b505160025460408051632e1a7d4d60e01b81526004810184905290519293506001600160a01b0390911691632e1a7d4d9160248082019260009290919082900301818387803b158015612dca57600080fd5b505af1158015612dde573d6000803e3d6000fd5b50612df6925050506001600160a01b038516826137fc565b604080516001600160a01b038416815260208101889052815160008051602061504b833981519152929181900390910190a1600160005595945050505050565b60026000541415612e7c576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000908155600954604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b158015612edb57600080fd5b505af1158015612eef573d6000803e3d6000fd5b505050506040513d6020811015612f0557600080fd5b5050600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b1580156113b657600080fd5b60026000541415612fa3576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600454610d959033906001600160a01b03168360016132a5565b6006546001600160a01b031681565b600f602052600090815260409020546001600160a01b031681565b6008546001600160a01b031681565b60026000541415613041576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600d54604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561309157600080fd5b505afa1580156130a5573d6000803e3d6000fd5b505050506040513d60208110156130bb57600080fd5b5051156130f95760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b600e54604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561314457600080fd5b505afa158015613158573d6000803e3d6000fd5b505050506040513d602081101561316e57600080fd5b5051156131ac5760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b6131b581613af0565b336000908152600f6020526040812080546001600160a01b0319166001600160a01b03939093169290921790915560019055565b6002600054141561322f576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005561323d336137e7565b6001600055565b6003546001600160a01b031681565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610a8f908490614640565b600082116132e8576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b600754604080516310c1c10360e01b81526001600160a01b038781166004830152915160009392909216916310c1c10391602480820192602092909190829003018186803b15801561333957600080fd5b505afa15801561334d573d6000803e3d6000fd5b505050506040513d602081101561336357600080fd5b50516009546008546040805163098bf59d60e01b81526001600160a01b038a8116600483018190529381166024830152604482018990526064820193909352905193945091169163098bf59d9160848082019260009290919082900301818387803b1580156133d157600080fd5b505af11580156133e5573d6000803e3d6000fd5b50506008546007546040805163098bf59d60e01b81526001600160a01b038b8116600483018190529381166024830152604482018a90526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b15801561345357600080fd5b505af1158015613467573d6000803e3d6000fd5b50506007546040805163098bf59d60e01b81526001600160a01b038a8116600483018190528a82166024840152604483018a90526064830152915191909216935063098bf59d9250608480830192600092919082900301818387803b1580156134cf57600080fd5b505af11580156134e3573d6000803e3d6000fd5b50505050811561379657600854604080516309f4173d60e11b81526001600160a01b03888116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561354657600080fd5b505af115801561355a573d6000803e3d6000fd5b505050506040513d602081101561357057600080fd5b5051905080156135fa5760095460055460408051631e42d69b60e21b81526001600160a01b038a81166004830181905260248301529283166044820152606481018590529051919092169163790b5a6c91608480830192600092919082900301818387803b1580156135e157600080fd5b505af11580156135f5573d6000803e3d6000fd5b505050505b60095460055460408051637aeceb1f60e11b81526001600160a01b038a8116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b15801561365657600080fd5b505afa15801561366a573d6000803e3d6000fd5b505050506040513d602081101561368057600080fd5b5051905080156137935760006136a08461369a84896146f1565b90614753565b6009546005546040805163098bf59d60e01b81526001600160a01b038d8116600483018190529381166024830152604482018690526064820193909352905193945091169163098bf59d9160848082019260009290919082900301818387803b15801561370c57600080fd5b505af1158015613720573d6000803e3d6000fd5b505060055460408051632770a7eb60e21b81526001600160a01b038d81166004830152602482018790529151919092169350639dc29fac9250604480830192600092919082900301818387803b15801561377957600080fd5b505af115801561378d573d6000803e3d6000fd5b50505050505b50505b604080516001600160a01b0380881682528616602082015280820185905290517f078e2fe6dabb5c8d98e723c50fa64329b611734ca334bb6b9f2ecdaa282093409181900360600190a15050505050565b6137f081614792565b6137f98161494a565b50565b80471015613851576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d806000811461389c576040519150601f19603f3d011682016040523d82523d6000602084013e6138a1565b606091505b5050905080610a8f5760405162461bcd60e51b815260040180806020018281038252603a815260200180614d6c603a913960400191505060405180910390fd5b60008111613924576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b60075460408051631e42d69b60e21b81526001600160a01b03878116600483015286811660248301528581166044830152606482018590529151919092169163790b5a6c91608480830192600092919082900301818387803b15801561398957600080fd5b505af115801561399d573d6000803e3d6000fd5b505060085460075460408051631e42d69b60e21b81526001600160a01b03898116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015613a0857600080fd5b505af1158015613a1c573d6000803e3d6000fd5b505060095460085460408051631e42d69b60e21b81526001600160a01b03898116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015613a8757600080fd5b505af1158015613a9b573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528616602082015280820185905290517f9aa02c4a3d4e3537fb517760136762eeb484da4444486e74ac81273ed42ce6f99350908190036060019150a150505050565b6007546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613b3d57600080fd5b505afa158015613b51573d6000803e3d6000fd5b505050506040513d6020811015613b6757600080fd5b505115613ba55760405162461bcd60e51b8152600401808060200182810382526038815260200180614f536038913960400191505060405180910390fd5b60075460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613bf257600080fd5b505afa158015613c06573d6000803e3d6000fd5b505050506040513d6020811015613c1c57600080fd5b505115613c5a5760405162461bcd60e51b8152600401808060200182810382526035815260200180614f8b6035913960400191505060405180910390fd5b6008546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613ca757600080fd5b505afa158015613cbb573d6000803e3d6000fd5b505050506040513d6020811015613cd157600080fd5b505115613d0f5760405162461bcd60e51b8152600401808060200182810382526037815260200180614fc06037913960400191505060405180910390fd5b60085460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613d5c57600080fd5b505afa158015613d70573d6000803e3d6000fd5b505050506040513d6020811015613d8657600080fd5b505115613dc45760405162461bcd60e51b81526004018080602001828103825260348152602001806150176034913960400191505060405180910390fd5b6009546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613e1157600080fd5b505afa158015613e25573d6000803e3d6000fd5b505050506040513d6020811015613e3b57600080fd5b505115613e795760405162461bcd60e51b8152600401808060200182810382526035815260200180614f1e6035913960400191505060405180910390fd5b60095460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613ec657600080fd5b505afa158015613eda573d6000803e3d6000fd5b505050506040513d6020811015613ef057600080fd5b505115613f2e5760405162461bcd60e51b8152600401808060200182810382526032815260200180614ecb6032913960400191505060405180910390fd5b600d5460408051631ccdc0d760e21b81526001600160a01b03848116600483015291519190921691637337035c916024808301926020929190829003018186803b158015613f7b57600080fd5b505afa158015613f8f573d6000803e3d6000fd5b505050506040513d6020811015613fa557600080fd5b505115613fe35760405162461bcd60e51b815260040180806020018281038252603c815260200180614e24603c913960400191505060405180910390fd5b600d5460408051635b8de71560e11b81526001600160a01b0384811660048301529151919092169163b71bce2a916024808301926020929190829003018186803b15801561403057600080fd5b505afa158015614044573d6000803e3d6000fd5b505050506040513d602081101561405a57600080fd5b5051156140985760405162461bcd60e51b8152600401808060200182810382526039815260200180614cb96039913960400191505060405180910390fd5b600a546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b1580156140e557600080fd5b505afa1580156140f9573d6000803e3d6000fd5b505050506040513d602081101561410f57600080fd5b50511561414d5760405162461bcd60e51b8152600401808060200182810382526037815260200180614ded6037913960400191505060405180910390fd5b600a5460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b15801561419a57600080fd5b505afa1580156141ae573d6000803e3d6000fd5b505050506040513d60208110156141c457600080fd5b5051156142025760405162461bcd60e51b8152600401808060200182810382526034815260200180614d386034913960400191505060405180910390fd5b600b546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b15801561424f57600080fd5b505afa158015614263573d6000803e3d6000fd5b505050506040513d602081101561427957600080fd5b5051156142b75760405162461bcd60e51b81526004018080602001828103825260348152602001806150956034913960400191505060405180910390fd5b600b5460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b15801561430457600080fd5b505afa158015614318573d6000803e3d6000fd5b505050506040513d602081101561432e57600080fd5b50511561436c5760405162461bcd60e51b81526004018080602001828103825260318152602001806150c96031913960400191505060405180910390fd5b600e5460408051631ccdc0d760e21b81526001600160a01b03848116600483015291519190921691637337035c916024808301926020929190829003018186803b1580156143b957600080fd5b505afa1580156143cd573d6000803e3d6000fd5b505050506040513d60208110156143e357600080fd5b5051156144215760405162461bcd60e51b815260040180806020018281038252603c815260200180614e24603c913960400191505060405180910390fd5b600e5460408051635b8de71560e11b81526001600160a01b0384811660048301529151919092169163b71bce2a916024808301926020929190829003018186803b15801561446e57600080fd5b505afa158015614482573d6000803e3d6000fd5b505050506040513d602081101561449857600080fd5b5051156144d65760405162461bcd60e51b8152600401808060200182810382526039815260200180614cb96039913960400191505060405180910390fd5b600d54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561452357600080fd5b505afa158015614537573d6000803e3d6000fd5b505050506040513d602081101561454d57600080fd5b50511561458b5760405162461bcd60e51b8152600401808060200182810382526024815260200180614e606024913960400191505060405180910390fd5b600e54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156145d857600080fd5b505afa1580156145ec573d6000803e3d6000fd5b505050506040513d602081101561460257600080fd5b5051156137f95760405162461bcd60e51b8152600401808060200182810382526023815260200180614ea86023913960400191505060405180910390fd5b6060614695826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166149f59092919063ffffffff16565b805190915015610a8f578080602001905160208110156146b457600080fd5b5051610a8f5760405162461bcd60e51b815260040180806020018281038252602a81526020018061506b602a913960400191505060405180910390fd5b6000826147005750600061474d565b8282028284828161470d57fe5b041461474a5760405162461bcd60e51b8152600401808060200182810382526021815260200180614efd6021913960400191505060405180910390fd5b90505b92915050565b600061474a83836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250614a0e565b600754604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b1580156147eb57600080fd5b505af11580156147ff573d6000803e3d6000fd5b505050506040513d602081101561481557600080fd5b5051905080156148395760045461483990839081906001600160a01b0316846138e1565b600854604080516309f4173d60e11b81526001600160a01b03858116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561489257600080fd5b505af11580156148a6573d6000803e3d6000fd5b505050506040513d60208110156148bc57600080fd5b505190508015610a8f5760095460055460408051631e42d69b60e21b81526001600160a01b038781166004830181905260248301529283166044820152606481018590529051919092169163790b5a6c91608480830192600092919082900301818387803b15801561492d57600080fd5b505af1158015614941573d6000803e3d6000fd5b50505050505050565b600a54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b1580156149a357600080fd5b505af11580156149b7573d6000803e3d6000fd5b505050506040513d60208110156149cd57600080fd5b5051905080156149f1576004546149f190839081906001600160a01b0316846138e1565b5050565b6060614a048484600085614ab0565b90505b9392505050565b60008183614a9a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614a5f578181015183820152602001614a47565b50505050905090810190601f168015614a8c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581614aa657fe5b0495945050505050565b606082471015614af15760405162461bcd60e51b8152600401808060200182810382526026815260200180614dc76026913960400191505060405180910390fd5b614afa85614c0c565b614b4b576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310614b8a5780518252601f199092019160209182019101614b6b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614bec576040519150601f19603f3d011682016040523d82523d6000602084013e614bf1565b606091505b5091509150614c01828286614c12565b979650505050505050565b3b151590565b60608315614c21575081614a07565b825115614c315782518084602001fd5b60405162461bcd60e51b8152602060048201818152845160248401528451859391928392604401919085019080838360008315614a5f578181015183820152602001614a4756fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00590f78242b486137ed0130a565e7dd5376d88cd0a3d45ce3e49634ae4af35b8d526577617264526f757465723a206f70656e5665737465722e7472616e7366657272656443756d756c617469766552657761726473203e2030526577617264526f757465723a2073656e646572206861732076657374656420746f6b656e73476f7665726e61626c653a20666f7262696464656e0000000000000000000000526577617264526f757465723a207374616b65644f6170547261636b65722e63756d756c617469766552657761726473203e2030416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564526577617264526f757465723a20616c726561647920696e697469616c697a6564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c526577617264526f757465723a207374616b65644f6170547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206f70656e5665737465722e7472616e73666572726564417665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206f70656e5665737465722e62616c616e6365203e2030526577617264526f757465723a207472616e73666572206e6f74207369676e616c6c6564526577617264526f757465723a206f61705665737465722e62616c616e6365203e2030526577617264526f757465723a206665654f70656e547261636b65722e63756d756c617469766552657761726473203e2030536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526577617264526f757465723a206665654f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a207374616b65644f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a207374616b65644f70656e547261636b65722e63756d756c617469766552657761726473203e2030526577617264526f757465723a20626f6e75734f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a20696e76616c6964205f6f6170416d6f756e74526577617264526f757465723a20626f6e75734f70656e547261636b65722e63756d756c617469766552657761726473203e2030cc23fc66e1bbcc39c6c2eb751f29b706cbb99681d2c1f02e7f8a59e92dedf2d85361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564526577617264526f757465723a206665654f6170547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206665654f6170547261636b65722e63756d756c617469766552657761726473203e2030526577617264526f757465723a20696e76616c6964205f616d6f756e74000000a2646970667358221220ab0a2752f07d51f9fdb15ff68170d33704bf40ee5c72e6cf6f3bb0284e0be0df64736f6c634300060c0033", + "deployedBytecode": "0x6080604052600436106101c45760003560e01c806301e33667146102285780630295e46f1461026b5780630b5684411461029c57806312d43a51146102b157806312ec52f2146102c65780631444e487146103275780631af276a6146103515780632a9f4083146103ff5780632fdd983d1461043257806330b70002146104cd57806336be260414610529578063392e53cd1461053e5780633a43750d146105675780633a81be061461057c5780633e2b53df146105915780633eb162ba146105ca5780633fc8cef3146105f45780634e71d92d1461060957806363fb63db1461061e57806364489cbb14610665578063655603a41461067a57806378830523146106ad578063874710e8146106d75780638dbe4d7114610807578063a66a5b321461084c578063abbdd88f14610861578063c383f4b214610876578063ce298b1514610899578063cfad57a2146108ae578063d1a28777146108e1578063d25140b3146108f6578063d294f09314610935578063dca388b01461094a578063dfab0c2c14610974578063e1b9db8914610989578063e3e9a886146109bc578063ef9aacfd146109d1578063f69e204614610a04578063fcfff16f14610a1957610223565b36610223576002546001600160a01b03163314610221576040805162461bcd60e51b81526020600482015260166024820152752937baba32b91d1034b73b30b634b21039b2b73232b960511b604482015290519081900360640190fd5b005b600080fd5b34801561023457600080fd5b506102216004803603606081101561024b57600080fd5b506001600160a01b03813581169160208101359091169060400135610a2e565b34801561027757600080fd5b50610280610a94565b604080516001600160a01b039092168252519081900360200190f35b3480156102a857600080fd5b50610280610aa3565b3480156102bd57600080fd5b50610280610ab2565b3480156102d257600080fd5b50610315600480360360a08110156102e957600080fd5b506001600160a01b03813581169160208101359160408201359160608101359160809091013516610ac1565b60408051918252519081900360200190f35b34801561033357600080fd5b506102216004803603602081101561034a57600080fd5b5035610d30565b34801561035d57600080fd5b506102216004803603602081101561037457600080fd5b810190602081018135600160201b81111561038e57600080fd5b8201836020820111156103a057600080fd5b803590602001918460208302840111600160201b831117156103c157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610d9d945050505050565b34801561040b57600080fd5b506102216004803603602081101561042257600080fd5b50356001600160a01b0316610e6e565b34801561043e57600080fd5b5061022160048036036101a081101561045657600080fd5b506001600160a01b038135811691602081013582169160408201358116916060810135821691608082013581169160a081013582169160c082013581169160e08101358216916101008201358116916101208101358216916101408201358116916101608101358216916101809091013516610f0f565b3480156104d957600080fd5b50610221600480360360e08110156104f057600080fd5b508035151590602081013515159060408101351515906060810135151590608081013515159060a081013515159060c00135151561109c565b34801561053557600080fd5b5061022161128f565b34801561054a57600080fd5b506105536113ea565b604080519115158252519081900360200190f35b34801561057357600080fd5b506102806113fa565b34801561058857600080fd5b50610280611409565b34801561059d57600080fd5b50610221600480360360408110156105b457600080fd5b506001600160a01b038135169060200135611418565b3480156105d657600080fd5b50610221600480360360208110156105ed57600080fd5b50356114ca565b34801561060057600080fd5b5061028061152f565b34801561061557600080fd5b5061022161153e565b34801561062a57600080fd5b506103156004803603608081101561064157600080fd5b506001600160a01b03813581169160208101359160408201359160600135166116e7565b34801561067157600080fd5b50610280611957565b34801561068657600080fd5b506102216004803603602081101561069d57600080fd5b50356001600160a01b0316611966565b3480156106b957600080fd5b50610221600480360360208110156106d057600080fd5b503561236f565b3480156106e357600080fd5b50610221600480360360408110156106fa57600080fd5b810190602081018135600160201b81111561071457600080fd5b82018360208201111561072657600080fd5b803590602001918460208302840111600160201b8311171561074757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561079657600080fd5b8201836020820111156107a857600080fd5b803590602001918460208302840111600160201b831117156107c957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506123d4945050505050565b34801561081357600080fd5b506103156004803603608081101561082a57600080fd5b506001600160a01b0381351690602081013590604081013590606001356124c9565b34801561085857600080fd5b50610280612737565b34801561086d57600080fd5b50610280612746565b6103156004803603604081101561088c57600080fd5b5080359060200135612755565b3480156108a557600080fd5b50610280612ac0565b3480156108ba57600080fd5b50610221600480360360208110156108d157600080fd5b50356001600160a01b0316612acf565b3480156108ed57600080fd5b50610280612b3e565b34801561090257600080fd5b506103156004803603606081101561091957600080fd5b50803590602081013590604001356001600160a01b0316612b4d565b34801561094157600080fd5b50610221612e36565b34801561095657600080fd5b506102216004803603602081101561096d57600080fd5b5035612f5d565b34801561098057600080fd5b50610280612fc2565b34801561099557600080fd5b50610280600480360360208110156109ac57600080fd5b50356001600160a01b0316612fd1565b3480156109c857600080fd5b50610280612fec565b3480156109dd57600080fd5b50610221600480360360208110156109f457600080fd5b50356001600160a01b0316612ffb565b348015610a1057600080fd5b506102216131e9565b348015610a2557600080fd5b50610280613244565b6001546001600160a01b03163314610a7b576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b610a8f6001600160a01b0384168383613253565b505050565b600c546001600160a01b031681565b600a546001600160a01b031681565b6001546001600160a01b031681565b600060026000541415610b09576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005584610b4e576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b600c54604080516317eb2a1560e01b81526001600160a01b038086166004830181905260248301528981166044830152606482018990526084820188905260a482018790529151859360009316916317eb2a159160c480830192602092919082900301818787803b158015610bc257600080fd5b505af1158015610bd6573d6000803e3d6000fd5b505050506040513d6020811015610bec57600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b158015610c5757600080fd5b505af1158015610c6b573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b03888116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015610cd657600080fd5b505af1158015610cea573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614c998339815191529450908190039091019150a16001600055979650505050505050565b60026000541415610d76576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600354610d959033906001600160a01b03168360016132a5565b506001600055565b60026000541415610de3576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b03163314610e35576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b60005b8151811015610e6557610e5d828281518110610e5057fe5b60200260200101516137e7565b600101610e38565b50506001600055565b60026000541415610eb4576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b03163314610f06576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b610d95816137e7565b6001546001600160a01b03163314610f5c576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b600154600160a01b900460ff1615610fa55760405162461bcd60e51b8152600401808060200182810382526021815260200180614da66021913960400191505060405180910390fd5b6001805460ff60a01b1916600160a01b179055600280546001600160a01b039e8f166001600160a01b031991821617909155600380549d8f169d82169d909d17909c55600480549b8e169b8d169b909b17909a5560058054998d16998c169990991790985560068054978c16978b169790971790965560078054958b16958a169590951790945560088054938a169389169390931790925560098054918916918816919091179055600b8054918816918716919091179055600a8054918716918616919091179055600c8054918616918516919091179055600d8054918516918416919091179055600e8054919093169116179055565b600260005414156110e2576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000553382156112805781156111fd57600b54604080516309f4173d60e11b81526001600160a01b038481166004830152306024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561114c57600080fd5b505af1158015611160573d6000803e3d6000fd5b505050506040513d602081101561117657600080fd5b505160025460408051632e1a7d4d60e01b815260048101849052905192935083926001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156111ca57600080fd5b505af11580156111de573d6000803e3d6000fd5b506111f6925050506001600160a01b038416826137fc565b5050611280565b600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561125357600080fd5b505af1158015611267573d6000803e3d6000fd5b505050506040513d602081101561127d57600080fd5b50505b50506001600055505050505050565b600260005414156112d5576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000908155600754604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b15801561133457600080fd5b505af1158015611348573d6000803e3d6000fd5b505050506040513d602081101561135e57600080fd5b5050600a54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b1580156113b657600080fd5b505af11580156113ca573d6000803e3d6000fd5b505050506040513d60208110156113e057600080fd5b5050600160005550565b600154600160a01b900460ff1681565b6004546001600160a01b031681565b6005546001600160a01b031681565b6002600054141561145e576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b031633146114b0576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b600354610e6590339084906001600160a01b0316846138e1565b60026000541415611510576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600354610d9590339081906001600160a01b0316846138e1565b6002546001600160a01b031681565b60026000541415611584576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000908155600954604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b1580156115e357600080fd5b505af11580156115f7573d6000803e3d6000fd5b505050506040513d602081101561160d57600080fd5b5050600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561166557600080fd5b505af1158015611679573d6000803e3d6000fd5b505050506040513d602081101561168f57600080fd5b5050600754604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561133457600080fd5b60006002600054141561172f576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005583611774576040805162461bcd60e51b81526020600482018190526024820152600080516020614ff7833981519152604482015290519081900360640190fd5b600a54600b546040805163098bf59d60e01b815233600482018190526001600160a01b039384166024830152604482018990526064820181905291519193929092169163098bf59d91608480830192600092919082900301818387803b1580156117dd57600080fd5b505af11580156117f1573d6000803e3d6000fd5b5050600b546006546040805163098bf59d60e01b81526001600160a01b03878116600483018190529381166024830152604482018c90526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b15801561185f57600080fd5b505af1158015611873573d6000803e3d6000fd5b5050600c54604080516371d597ad60e01b81526001600160a01b0386811660048301528b81166024830152604482018b9052606482018a905288811660848301529151600095509190921692506371d597ad9160a48082019260209290919082900301818787803b1580156118e757600080fd5b505af11580156118fb573d6000803e3d6000fd5b505050506040513d602081101561191157600080fd5b5051604080516001600160a01b038516815260208101899052815192935060008051602061504b833981519152929081900390910190a160016000559695505050505050565b6009546001600160a01b031681565b600260005414156119ac576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600d54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d6020811015611a2857600080fd5b505115611a665760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b600e54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b158015611ab357600080fd5b505afa158015611ac7573d6000803e3d6000fd5b505050506040513d6020811015611add57600080fd5b505115611b1b5760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b6001600160a01b038181166000908152600f60205260409020543391168114611b755760405162461bcd60e51b8152600401808060200182810382526024815260200180614e846024913960400191505060405180910390fd5b6001600160a01b0382166000908152600f6020526040902080546001600160a01b0319169055611ba481613af0565b611bad826137e7565b60075460035460408051637aeceb1f60e11b81526001600160a01b03868116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611c0957600080fd5b505afa158015611c1d573d6000803e3d6000fd5b505050506040513d6020811015611c3357600080fd5b505190508015611c7157600354611c579084906001600160a01b03168360006132a5565b600354611c7190849084906001600160a01b0316846138e1565b6007546004805460408051637aeceb1f60e11b81526001600160a01b0388811694820194909452918316602483015251600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611ccf57600080fd5b505afa158015611ce3573d6000803e3d6000fd5b505050506040513d6020811015611cf957600080fd5b505190508015611d3757600454611d1d9085906001600160a01b03168360006132a5565b600454611d3790859085906001600160a01b0316846138e1565b60095460055460408051637aeceb1f60e11b81526001600160a01b03888116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611d9357600080fd5b505afa158015611da7573d6000803e3d6000fd5b505050506040513d6020811015611dbd57600080fd5b505190508015611eca576009546005546040805163098bf59d60e01b81526001600160a01b038981166004830181905293811660248301526044820186905260648201939093529051919092169163098bf59d91608480830192600092919082900301818387803b158015611e3157600080fd5b505af1158015611e45573d6000803e3d6000fd5b505060095460055460408051631e42d69b60e21b81526001600160a01b038b811660048301528a81166024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015611eb157600080fd5b505af1158015611ec5573d6000803e3d6000fd5b505050505b6000600460009054906101000a90046001600160a01b03166001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611f2e57600080fd5b505afa158015611f42573d6000803e3d6000fd5b505050506040513d6020811015611f5857600080fd5b505190508015611ff15760048054604080516323b872dd60e01b81526001600160a01b038a811694820194909452888416602482015260448101859052905192909116916323b872dd916064808201926020929091908290030181600087803b158015611fc457600080fd5b505af1158015611fd8573d6000803e3d6000fd5b505050506040513d6020811015611fee57600080fd5b50505b600b5460065460408051637aeceb1f60e11b81526001600160a01b038a8116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b15801561204d57600080fd5b505afa158015612061573d6000803e3d6000fd5b505050506040513d602081101561207757600080fd5b50519050801561228557600a54600b546040805163098bf59d60e01b81526001600160a01b038b81166004830181905293811660248301526044820186905260648201939093529051919092169163098bf59d91608480830192600092919082900301818387803b1580156120eb57600080fd5b505af11580156120ff573d6000803e3d6000fd5b5050600b546006546040805163098bf59d60e01b81526001600160a01b038d8116600483018190529381166024830152604482018890526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b15801561216d57600080fd5b505af1158015612181573d6000803e3d6000fd5b5050600b5460065460408051631e42d69b60e21b81526001600160a01b038d811660048301528c81166024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b1580156121ed57600080fd5b505af1158015612201573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b038c8116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b15801561226c57600080fd5b505af1158015612280573d6000803e3d6000fd5b505050505b600d5460408051630f713c2360e41b81526001600160a01b038a8116600483015289811660248301529151919092169163f713c23091604480830192600092919082900301818387803b1580156122db57600080fd5b505af11580156122ef573d6000803e3d6000fd5b5050600e5460408051630f713c2360e41b81526001600160a01b038c811660048301528b81166024830152915191909216935063f713c2309250604480830192600092919082900301818387803b15801561234957600080fd5b505af115801561235d573d6000803e3d6000fd5b50506001600055505050505050505050565b600260005414156123b5576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600454610d9590339081906001600160a01b0316846138e1565b6002600054141561241a576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b0316331461246c576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b6003546001600160a01b031660005b83518110156124be576124b63385838151811061249457fe5b6020026020010151848685815181106124a957fe5b60200260200101516138e1565b60010161247b565b505060016000555050565b600060026000541415612511576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005583612556576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b600c54604080516317eb2a1560e01b81523360048201819052602482018190526001600160a01b038981166044840152606483018990526084830188905260a483018790529251909360009316916317eb2a159160c480830192602092919082900301818787803b1580156125ca57600080fd5b505af11580156125de573d6000803e3d6000fd5b505050506040513d60208110156125f457600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b15801561265f57600080fd5b505af1158015612673573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b03888116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b1580156126de57600080fd5b505af11580156126f2573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614c998339815191529450908190039091019150a160016000559695505050505050565b600b546001600160a01b031681565b600e546001600160a01b031681565b60006002600054141561279d576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055346127f4576040805162461bcd60e51b815260206004820152601f60248201527f526577617264526f757465723a20696e76616c6964206d73672e76616c756500604482015290519081900360640190fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561284457600080fd5b505af1158015612858573d6000803e3d6000fd5b5050600254600c546040805163095ea7b360e01b81526001600160a01b039283166004820152346024820152905191909216945063095ea7b39350604480830193506020928290030181600087803b1580156128b357600080fd5b505af11580156128c7573d6000803e3d6000fd5b505050506040513d60208110156128dd57600080fd5b5050600c54600254604080516317eb2a1560e01b815230600482015233602482018190526001600160a01b0393841660448301523460648301526084820188905260a482018790529151919360009316916317eb2a159160c48082019260209290919082900301818787803b15801561295557600080fd5b505af1158015612969573d6000803e3d6000fd5b505050506040513d602081101561297f57600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b1580156129ea57600080fd5b505af11580156129fe573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b03888116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015612a6957600080fd5b505af1158015612a7d573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614c998339815191529450908190039091019150a16001600055949350505050565b6007546001600160a01b031681565b6001546001600160a01b03163314612b1c576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600d546001600160a01b031681565b600060026000541415612b95576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005583612bda576040805162461bcd60e51b81526020600482018190526024820152600080516020614ff7833981519152604482015290519081900360640190fd5b600a54600b546040805163098bf59d60e01b815233600482018190526001600160a01b039384166024830152604482018990526064820181905291519193929092169163098bf59d91608480830192600092919082900301818387803b158015612c4357600080fd5b505af1158015612c57573d6000803e3d6000fd5b5050600b546006546040805163098bf59d60e01b81526001600160a01b03878116600483018190529381166024830152604482018c90526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b158015612cc557600080fd5b505af1158015612cd9573d6000803e3d6000fd5b5050600c54600254604080516371d597ad60e01b81526001600160a01b0387811660048301529283166024820152604481018b9052606481018a90523060848201529051600095509190921692506371d597ad9160a48082019260209290919082900301818787803b158015612d4e57600080fd5b505af1158015612d62573d6000803e3d6000fd5b505050506040513d6020811015612d7857600080fd5b505160025460408051632e1a7d4d60e01b81526004810184905290519293506001600160a01b0390911691632e1a7d4d9160248082019260009290919082900301818387803b158015612dca57600080fd5b505af1158015612dde573d6000803e3d6000fd5b50612df6925050506001600160a01b038516826137fc565b604080516001600160a01b038416815260208101889052815160008051602061504b833981519152929181900390910190a1600160005595945050505050565b60026000541415612e7c576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000908155600954604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b158015612edb57600080fd5b505af1158015612eef573d6000803e3d6000fd5b505050506040513d6020811015612f0557600080fd5b5050600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b1580156113b657600080fd5b60026000541415612fa3576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600454610d959033906001600160a01b03168360016132a5565b6006546001600160a01b031681565b600f602052600090815260409020546001600160a01b031681565b6008546001600160a01b031681565b60026000541415613041576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600d54604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561309157600080fd5b505afa1580156130a5573d6000803e3d6000fd5b505050506040513d60208110156130bb57600080fd5b5051156130f95760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b600e54604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561314457600080fd5b505afa158015613158573d6000803e3d6000fd5b505050506040513d602081101561316e57600080fd5b5051156131ac5760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b6131b581613af0565b336000908152600f6020526040812080546001600160a01b0319166001600160a01b03939093169290921790915560019055565b6002600054141561322f576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005561323d336137e7565b6001600055565b6003546001600160a01b031681565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610a8f908490614640565b600082116132e8576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b600754604080516310c1c10360e01b81526001600160a01b038781166004830152915160009392909216916310c1c10391602480820192602092909190829003018186803b15801561333957600080fd5b505afa15801561334d573d6000803e3d6000fd5b505050506040513d602081101561336357600080fd5b50516009546008546040805163098bf59d60e01b81526001600160a01b038a8116600483018190529381166024830152604482018990526064820193909352905193945091169163098bf59d9160848082019260009290919082900301818387803b1580156133d157600080fd5b505af11580156133e5573d6000803e3d6000fd5b50506008546007546040805163098bf59d60e01b81526001600160a01b038b8116600483018190529381166024830152604482018a90526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b15801561345357600080fd5b505af1158015613467573d6000803e3d6000fd5b50506007546040805163098bf59d60e01b81526001600160a01b038a8116600483018190528a82166024840152604483018a90526064830152915191909216935063098bf59d9250608480830192600092919082900301818387803b1580156134cf57600080fd5b505af11580156134e3573d6000803e3d6000fd5b50505050811561379657600854604080516309f4173d60e11b81526001600160a01b03888116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561354657600080fd5b505af115801561355a573d6000803e3d6000fd5b505050506040513d602081101561357057600080fd5b5051905080156135fa5760095460055460408051631e42d69b60e21b81526001600160a01b038a81166004830181905260248301529283166044820152606481018590529051919092169163790b5a6c91608480830192600092919082900301818387803b1580156135e157600080fd5b505af11580156135f5573d6000803e3d6000fd5b505050505b60095460055460408051637aeceb1f60e11b81526001600160a01b038a8116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b15801561365657600080fd5b505afa15801561366a573d6000803e3d6000fd5b505050506040513d602081101561368057600080fd5b5051905080156137935760006136a08461369a84896146f1565b90614753565b6009546005546040805163098bf59d60e01b81526001600160a01b038d8116600483018190529381166024830152604482018690526064820193909352905193945091169163098bf59d9160848082019260009290919082900301818387803b15801561370c57600080fd5b505af1158015613720573d6000803e3d6000fd5b505060055460408051632770a7eb60e21b81526001600160a01b038d81166004830152602482018790529151919092169350639dc29fac9250604480830192600092919082900301818387803b15801561377957600080fd5b505af115801561378d573d6000803e3d6000fd5b50505050505b50505b604080516001600160a01b0380881682528616602082015280820185905290517f078e2fe6dabb5c8d98e723c50fa64329b611734ca334bb6b9f2ecdaa282093409181900360600190a15050505050565b6137f081614792565b6137f98161494a565b50565b80471015613851576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d806000811461389c576040519150601f19603f3d011682016040523d82523d6000602084013e6138a1565b606091505b5050905080610a8f5760405162461bcd60e51b815260040180806020018281038252603a815260200180614d6c603a913960400191505060405180910390fd5b60008111613924576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b60075460408051631e42d69b60e21b81526001600160a01b03878116600483015286811660248301528581166044830152606482018590529151919092169163790b5a6c91608480830192600092919082900301818387803b15801561398957600080fd5b505af115801561399d573d6000803e3d6000fd5b505060085460075460408051631e42d69b60e21b81526001600160a01b03898116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015613a0857600080fd5b505af1158015613a1c573d6000803e3d6000fd5b505060095460085460408051631e42d69b60e21b81526001600160a01b03898116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015613a8757600080fd5b505af1158015613a9b573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528616602082015280820185905290517f9aa02c4a3d4e3537fb517760136762eeb484da4444486e74ac81273ed42ce6f99350908190036060019150a150505050565b6007546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613b3d57600080fd5b505afa158015613b51573d6000803e3d6000fd5b505050506040513d6020811015613b6757600080fd5b505115613ba55760405162461bcd60e51b8152600401808060200182810382526038815260200180614f536038913960400191505060405180910390fd5b60075460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613bf257600080fd5b505afa158015613c06573d6000803e3d6000fd5b505050506040513d6020811015613c1c57600080fd5b505115613c5a5760405162461bcd60e51b8152600401808060200182810382526035815260200180614f8b6035913960400191505060405180910390fd5b6008546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613ca757600080fd5b505afa158015613cbb573d6000803e3d6000fd5b505050506040513d6020811015613cd157600080fd5b505115613d0f5760405162461bcd60e51b8152600401808060200182810382526037815260200180614fc06037913960400191505060405180910390fd5b60085460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613d5c57600080fd5b505afa158015613d70573d6000803e3d6000fd5b505050506040513d6020811015613d8657600080fd5b505115613dc45760405162461bcd60e51b81526004018080602001828103825260348152602001806150176034913960400191505060405180910390fd5b6009546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613e1157600080fd5b505afa158015613e25573d6000803e3d6000fd5b505050506040513d6020811015613e3b57600080fd5b505115613e795760405162461bcd60e51b8152600401808060200182810382526035815260200180614f1e6035913960400191505060405180910390fd5b60095460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613ec657600080fd5b505afa158015613eda573d6000803e3d6000fd5b505050506040513d6020811015613ef057600080fd5b505115613f2e5760405162461bcd60e51b8152600401808060200182810382526032815260200180614ecb6032913960400191505060405180910390fd5b600d5460408051631ccdc0d760e21b81526001600160a01b03848116600483015291519190921691637337035c916024808301926020929190829003018186803b158015613f7b57600080fd5b505afa158015613f8f573d6000803e3d6000fd5b505050506040513d6020811015613fa557600080fd5b505115613fe35760405162461bcd60e51b815260040180806020018281038252603c815260200180614e24603c913960400191505060405180910390fd5b600d5460408051635b8de71560e11b81526001600160a01b0384811660048301529151919092169163b71bce2a916024808301926020929190829003018186803b15801561403057600080fd5b505afa158015614044573d6000803e3d6000fd5b505050506040513d602081101561405a57600080fd5b5051156140985760405162461bcd60e51b8152600401808060200182810382526039815260200180614cb96039913960400191505060405180910390fd5b600a546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b1580156140e557600080fd5b505afa1580156140f9573d6000803e3d6000fd5b505050506040513d602081101561410f57600080fd5b50511561414d5760405162461bcd60e51b8152600401808060200182810382526037815260200180614ded6037913960400191505060405180910390fd5b600a5460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b15801561419a57600080fd5b505afa1580156141ae573d6000803e3d6000fd5b505050506040513d60208110156141c457600080fd5b5051156142025760405162461bcd60e51b8152600401808060200182810382526034815260200180614d386034913960400191505060405180910390fd5b600b546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b15801561424f57600080fd5b505afa158015614263573d6000803e3d6000fd5b505050506040513d602081101561427957600080fd5b5051156142b75760405162461bcd60e51b81526004018080602001828103825260348152602001806150956034913960400191505060405180910390fd5b600b5460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b15801561430457600080fd5b505afa158015614318573d6000803e3d6000fd5b505050506040513d602081101561432e57600080fd5b50511561436c5760405162461bcd60e51b81526004018080602001828103825260318152602001806150c96031913960400191505060405180910390fd5b600e5460408051631ccdc0d760e21b81526001600160a01b03848116600483015291519190921691637337035c916024808301926020929190829003018186803b1580156143b957600080fd5b505afa1580156143cd573d6000803e3d6000fd5b505050506040513d60208110156143e357600080fd5b5051156144215760405162461bcd60e51b815260040180806020018281038252603c815260200180614e24603c913960400191505060405180910390fd5b600e5460408051635b8de71560e11b81526001600160a01b0384811660048301529151919092169163b71bce2a916024808301926020929190829003018186803b15801561446e57600080fd5b505afa158015614482573d6000803e3d6000fd5b505050506040513d602081101561449857600080fd5b5051156144d65760405162461bcd60e51b8152600401808060200182810382526039815260200180614cb96039913960400191505060405180910390fd5b600d54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561452357600080fd5b505afa158015614537573d6000803e3d6000fd5b505050506040513d602081101561454d57600080fd5b50511561458b5760405162461bcd60e51b8152600401808060200182810382526024815260200180614e606024913960400191505060405180910390fd5b600e54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156145d857600080fd5b505afa1580156145ec573d6000803e3d6000fd5b505050506040513d602081101561460257600080fd5b5051156137f95760405162461bcd60e51b8152600401808060200182810382526023815260200180614ea86023913960400191505060405180910390fd5b6060614695826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166149f59092919063ffffffff16565b805190915015610a8f578080602001905160208110156146b457600080fd5b5051610a8f5760405162461bcd60e51b815260040180806020018281038252602a81526020018061506b602a913960400191505060405180910390fd5b6000826147005750600061474d565b8282028284828161470d57fe5b041461474a5760405162461bcd60e51b8152600401808060200182810382526021815260200180614efd6021913960400191505060405180910390fd5b90505b92915050565b600061474a83836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250614a0e565b600754604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b1580156147eb57600080fd5b505af11580156147ff573d6000803e3d6000fd5b505050506040513d602081101561481557600080fd5b5051905080156148395760045461483990839081906001600160a01b0316846138e1565b600854604080516309f4173d60e11b81526001600160a01b03858116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561489257600080fd5b505af11580156148a6573d6000803e3d6000fd5b505050506040513d60208110156148bc57600080fd5b505190508015610a8f5760095460055460408051631e42d69b60e21b81526001600160a01b038781166004830181905260248301529283166044820152606481018590529051919092169163790b5a6c91608480830192600092919082900301818387803b15801561492d57600080fd5b505af1158015614941573d6000803e3d6000fd5b50505050505050565b600a54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b1580156149a357600080fd5b505af11580156149b7573d6000803e3d6000fd5b505050506040513d60208110156149cd57600080fd5b5051905080156149f1576004546149f190839081906001600160a01b0316846138e1565b5050565b6060614a048484600085614ab0565b90505b9392505050565b60008183614a9a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614a5f578181015183820152602001614a47565b50505050905090810190601f168015614a8c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581614aa657fe5b0495945050505050565b606082471015614af15760405162461bcd60e51b8152600401808060200182810382526026815260200180614dc76026913960400191505060405180910390fd5b614afa85614c0c565b614b4b576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310614b8a5780518252601f199092019160209182019101614b6b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614bec576040519150601f19603f3d011682016040523d82523d6000602084013e614bf1565b606091505b5091509150614c01828286614c12565b979650505050505050565b3b151590565b60608315614c21575081614a07565b825115614c315782518084602001fd5b60405162461bcd60e51b8152602060048201818152845160248401528451859391928392604401919085019080838360008315614a5f578181015183820152602001614a4756fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00590f78242b486137ed0130a565e7dd5376d88cd0a3d45ce3e49634ae4af35b8d526577617264526f757465723a206f70656e5665737465722e7472616e7366657272656443756d756c617469766552657761726473203e2030526577617264526f757465723a2073656e646572206861732076657374656420746f6b656e73476f7665726e61626c653a20666f7262696464656e0000000000000000000000526577617264526f757465723a207374616b65644f6170547261636b65722e63756d756c617469766552657761726473203e2030416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564526577617264526f757465723a20616c726561647920696e697469616c697a6564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c526577617264526f757465723a207374616b65644f6170547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206f70656e5665737465722e7472616e73666572726564417665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206f70656e5665737465722e62616c616e6365203e2030526577617264526f757465723a207472616e73666572206e6f74207369676e616c6c6564526577617264526f757465723a206f61705665737465722e62616c616e6365203e2030526577617264526f757465723a206665654f70656e547261636b65722e63756d756c617469766552657761726473203e2030536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526577617264526f757465723a206665654f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a207374616b65644f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a207374616b65644f70656e547261636b65722e63756d756c617469766552657761726473203e2030526577617264526f757465723a20626f6e75734f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a20696e76616c6964205f6f6170416d6f756e74526577617264526f757465723a20626f6e75734f70656e547261636b65722e63756d756c617469766552657761726473203e2030cc23fc66e1bbcc39c6c2eb751f29b706cbb99681d2c1f02e7f8a59e92dedf2d85361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564526577617264526f757465723a206665654f6170547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206665654f6170547261636b65722e63756d756c617469766552657761726473203e2030526577617264526f757465723a20696e76616c6964205f616d6f756e74000000a2646970667358221220ab0a2752f07d51f9fdb15ff68170d33704bf40ee5c72e6cf6f3bb0284e0be0df64736f6c634300060c0033", "linkReferences": {}, "deployedLinkReferences": {} } diff --git a/src/abis/RewardRouterV2.json b/src/abis/RewardRouterV2.json new file mode 100644 index 00000000..e6716768 --- /dev/null +++ b/src/abis/RewardRouterV2.json @@ -0,0 +1,797 @@ +{ + "_format": "hh-sol-artifact-1", + "contractName": "RewardRouterV2", + "sourceName": "contracts/staking/RewardRouterV2.sol", + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "StakeOap", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "StakeOpen", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "UnstakeOap", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "account", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "token", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "amount", + "type": "uint256" + } + ], + "name": "UnstakeOpen", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_sender", + "type": "address" + } + ], + "name": "acceptTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_accounts", + "type": "address[]" + } + ], + "name": "batchCompoundForAccounts", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_accounts", + "type": "address[]" + }, + { + "internalType": "uint256[]", + "name": "_amounts", + "type": "uint256[]" + } + ], + "name": "batchStakeOpenForAccount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "bnOpen", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "bonusOpenTracker", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "claim", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimEsOpen", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "claimFees", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "compound", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "compoundForAccount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "esOpen", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "feeOapTracker", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "feeOpenTracker", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "gov", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bool", + "name": "_shouldClaimOpen", + "type": "bool" + }, + { + "internalType": "bool", + "name": "_shouldStakeOpen", + "type": "bool" + }, + { + "internalType": "bool", + "name": "_shouldClaimEsOpen", + "type": "bool" + }, + { + "internalType": "bool", + "name": "_shouldStakeEsOpen", + "type": "bool" + }, + { + "internalType": "bool", + "name": "_shouldStakeMultiplierPoints", + "type": "bool" + }, + { + "internalType": "bool", + "name": "_shouldClaimWeth", + "type": "bool" + }, + { + "internalType": "bool", + "name": "_shouldConvertWethToEth", + "type": "bool" + } + ], + "name": "handleRewards", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_weth", + "type": "address" + }, + { + "internalType": "address", + "name": "_open", + "type": "address" + }, + { + "internalType": "address", + "name": "_esOpen", + "type": "address" + }, + { + "internalType": "address", + "name": "_bnOpen", + "type": "address" + }, + { + "internalType": "address", + "name": "_oap", + "type": "address" + }, + { + "internalType": "address", + "name": "_stakedOpenTracker", + "type": "address" + }, + { + "internalType": "address", + "name": "_bonusOpenTracker", + "type": "address" + }, + { + "internalType": "address", + "name": "_feeOpenTracker", + "type": "address" + }, + { + "internalType": "address", + "name": "_feeOapTracker", + "type": "address" + }, + { + "internalType": "address", + "name": "_stakedOapTracker", + "type": "address" + }, + { + "internalType": "address", + "name": "_oapManager", + "type": "address" + }, + { + "internalType": "address", + "name": "_openVester", + "type": "address" + }, + { + "internalType": "address", + "name": "_oapVester", + "type": "address" + } + ], + "name": "initialize", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "isInitialized", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_minUsdg", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_minOap", + "type": "uint256" + } + ], + "name": "mintAndStakeOap", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_minUsdo", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_minOap", + "type": "uint256" + } + ], + "name": "mintAndStakeOapETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_minUsdg", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_minOap", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_account", + "type": "address" + } + ], + "name": "mintAndStakeOapForAccount", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "oap", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "oapManager", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "oapVester", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "open", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "openVester", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "name": "pendingReceivers", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_gov", + "type": "address" + } + ], + "name": "setGov", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_receiver", + "type": "address" + } + ], + "name": "signalTransfer", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "stakeEsOpen", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "stakeOpen", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "stakeOpenForAccount", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "stakedOapTracker", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "stakedOpenTracker", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_tokenOut", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_oapAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_minOut", + "type": "uint256" + }, + { + "internalType": "address", + "name": "_receiver", + "type": "address" + } + ], + "name": "unstakeAndRedeemOap", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_oapAmount", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "_minOut", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "_receiver", + "type": "address" + } + ], + "name": "unstakeAndRedeemOapETH", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "unstakeEsOpen", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "unstakeOpen", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "weth", + "outputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_token", + "type": "address" + }, + { + "internalType": "address", + "name": "_account", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_amount", + "type": "uint256" + } + ], + "name": "withdrawToken", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ], + "bytecode": "0x608060405234801561001057600080fd5b506001600081905580546001600160a01b0319163317905561514f806100376000396000f3fe6080604052600436106101c45760003560e01c806301e33667146102285780630295e46f1461026b5780630b5684411461029c57806312d43a51146102b157806312ec52f2146102c65780631444e487146103275780631af276a6146103515780632a9f4083146103ff5780632fdd983d1461043257806330b70002146104cd57806336be260414610529578063392e53cd1461053e5780633a43750d146105675780633a81be061461057c5780633e2b53df146105915780633eb162ba146105ca5780633fc8cef3146105f45780634e71d92d1461060957806363fb63db1461061e57806364489cbb14610665578063655603a41461067a57806378830523146106ad578063874710e8146106d75780638dbe4d7114610807578063a66a5b321461084c578063abbdd88f14610861578063c383f4b214610876578063ce298b1514610899578063cfad57a2146108ae578063d1a28777146108e1578063d25140b3146108f6578063d294f09314610935578063dca388b01461094a578063dfab0c2c14610974578063e1b9db8914610989578063e3e9a886146109bc578063ef9aacfd146109d1578063f69e204614610a04578063fcfff16f14610a1957610223565b36610223576002546001600160a01b03163314610221576040805162461bcd60e51b81526020600482015260166024820152752937baba32b91d1034b73b30b634b21039b2b73232b960511b604482015290519081900360640190fd5b005b600080fd5b34801561023457600080fd5b506102216004803603606081101561024b57600080fd5b506001600160a01b03813581169160208101359091169060400135610a2e565b34801561027757600080fd5b50610280610a94565b604080516001600160a01b039092168252519081900360200190f35b3480156102a857600080fd5b50610280610aa3565b3480156102bd57600080fd5b50610280610ab2565b3480156102d257600080fd5b50610315600480360360a08110156102e957600080fd5b506001600160a01b03813581169160208101359160408201359160608101359160809091013516610ac1565b60408051918252519081900360200190f35b34801561033357600080fd5b506102216004803603602081101561034a57600080fd5b5035610d30565b34801561035d57600080fd5b506102216004803603602081101561037457600080fd5b810190602081018135600160201b81111561038e57600080fd5b8201836020820111156103a057600080fd5b803590602001918460208302840111600160201b831117156103c157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610d9d945050505050565b34801561040b57600080fd5b506102216004803603602081101561042257600080fd5b50356001600160a01b0316610e6e565b34801561043e57600080fd5b5061022160048036036101a081101561045657600080fd5b506001600160a01b038135811691602081013582169160408201358116916060810135821691608082013581169160a081013582169160c082013581169160e08101358216916101008201358116916101208101358216916101408201358116916101608101358216916101809091013516610f0f565b3480156104d957600080fd5b50610221600480360360e08110156104f057600080fd5b508035151590602081013515159060408101351515906060810135151590608081013515159060a081013515159060c00135151561109c565b34801561053557600080fd5b5061022161128f565b34801561054a57600080fd5b506105536113ea565b604080519115158252519081900360200190f35b34801561057357600080fd5b506102806113fa565b34801561058857600080fd5b50610280611409565b34801561059d57600080fd5b50610221600480360360408110156105b457600080fd5b506001600160a01b038135169060200135611418565b3480156105d657600080fd5b50610221600480360360208110156105ed57600080fd5b50356114ca565b34801561060057600080fd5b5061028061152f565b34801561061557600080fd5b5061022161153e565b34801561062a57600080fd5b506103156004803603608081101561064157600080fd5b506001600160a01b03813581169160208101359160408201359160600135166116e7565b34801561067157600080fd5b50610280611957565b34801561068657600080fd5b506102216004803603602081101561069d57600080fd5b50356001600160a01b0316611966565b3480156106b957600080fd5b50610221600480360360208110156106d057600080fd5b503561236f565b3480156106e357600080fd5b50610221600480360360408110156106fa57600080fd5b810190602081018135600160201b81111561071457600080fd5b82018360208201111561072657600080fd5b803590602001918460208302840111600160201b8311171561074757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561079657600080fd5b8201836020820111156107a857600080fd5b803590602001918460208302840111600160201b831117156107c957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506123d4945050505050565b34801561081357600080fd5b506103156004803603608081101561082a57600080fd5b506001600160a01b0381351690602081013590604081013590606001356124c9565b34801561085857600080fd5b50610280612737565b34801561086d57600080fd5b50610280612746565b6103156004803603604081101561088c57600080fd5b5080359060200135612755565b3480156108a557600080fd5b50610280612ac0565b3480156108ba57600080fd5b50610221600480360360208110156108d157600080fd5b50356001600160a01b0316612acf565b3480156108ed57600080fd5b50610280612b3e565b34801561090257600080fd5b506103156004803603606081101561091957600080fd5b50803590602081013590604001356001600160a01b0316612b4d565b34801561094157600080fd5b50610221612e36565b34801561095657600080fd5b506102216004803603602081101561096d57600080fd5b5035612f5d565b34801561098057600080fd5b50610280612fc2565b34801561099557600080fd5b50610280600480360360208110156109ac57600080fd5b50356001600160a01b0316612fd1565b3480156109c857600080fd5b50610280612fec565b3480156109dd57600080fd5b50610221600480360360208110156109f457600080fd5b50356001600160a01b0316612ffb565b348015610a1057600080fd5b506102216131e9565b348015610a2557600080fd5b50610280613244565b6001546001600160a01b03163314610a7b576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b610a8f6001600160a01b0384168383613253565b505050565b600c546001600160a01b031681565b600a546001600160a01b031681565b6001546001600160a01b031681565b600060026000541415610b09576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005584610b4e576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b600c54604080516317eb2a1560e01b81526001600160a01b038086166004830181905260248301528981166044830152606482018990526084820188905260a482018790529151859360009316916317eb2a159160c480830192602092919082900301818787803b158015610bc257600080fd5b505af1158015610bd6573d6000803e3d6000fd5b505050506040513d6020811015610bec57600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b158015610c5757600080fd5b505af1158015610c6b573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b03888116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015610cd657600080fd5b505af1158015610cea573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614c998339815191529450908190039091019150a16001600055979650505050505050565b60026000541415610d76576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600354610d959033906001600160a01b03168360016132a5565b506001600055565b60026000541415610de3576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b03163314610e35576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b60005b8151811015610e6557610e5d828281518110610e5057fe5b60200260200101516137e7565b600101610e38565b50506001600055565b60026000541415610eb4576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b03163314610f06576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b610d95816137e7565b6001546001600160a01b03163314610f5c576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b600154600160a01b900460ff1615610fa55760405162461bcd60e51b8152600401808060200182810382526021815260200180614da66021913960400191505060405180910390fd5b6001805460ff60a01b1916600160a01b179055600280546001600160a01b039e8f166001600160a01b031991821617909155600380549d8f169d82169d909d17909c55600480549b8e169b8d169b909b17909a5560058054998d16998c169990991790985560068054978c16978b169790971790965560078054958b16958a169590951790945560088054938a169389169390931790925560098054918916918816919091179055600b8054918816918716919091179055600a8054918716918616919091179055600c8054918616918516919091179055600d8054918516918416919091179055600e8054919093169116179055565b600260005414156110e2576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000553382156112805781156111fd57600b54604080516309f4173d60e11b81526001600160a01b038481166004830152306024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561114c57600080fd5b505af1158015611160573d6000803e3d6000fd5b505050506040513d602081101561117657600080fd5b505160025460408051632e1a7d4d60e01b815260048101849052905192935083926001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156111ca57600080fd5b505af11580156111de573d6000803e3d6000fd5b506111f6925050506001600160a01b038416826137fc565b5050611280565b600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561125357600080fd5b505af1158015611267573d6000803e3d6000fd5b505050506040513d602081101561127d57600080fd5b50505b50506001600055505050505050565b600260005414156112d5576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000908155600754604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b15801561133457600080fd5b505af1158015611348573d6000803e3d6000fd5b505050506040513d602081101561135e57600080fd5b5050600a54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b1580156113b657600080fd5b505af11580156113ca573d6000803e3d6000fd5b505050506040513d60208110156113e057600080fd5b5050600160005550565b600154600160a01b900460ff1681565b6004546001600160a01b031681565b6005546001600160a01b031681565b6002600054141561145e576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b031633146114b0576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b600354610e6590339084906001600160a01b0316846138e1565b60026000541415611510576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600354610d9590339081906001600160a01b0316846138e1565b6002546001600160a01b031681565b60026000541415611584576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000908155600954604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b1580156115e357600080fd5b505af11580156115f7573d6000803e3d6000fd5b505050506040513d602081101561160d57600080fd5b5050600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561166557600080fd5b505af1158015611679573d6000803e3d6000fd5b505050506040513d602081101561168f57600080fd5b5050600754604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561133457600080fd5b60006002600054141561172f576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005583611774576040805162461bcd60e51b81526020600482018190526024820152600080516020614ff7833981519152604482015290519081900360640190fd5b600a54600b546040805163098bf59d60e01b815233600482018190526001600160a01b039384166024830152604482018990526064820181905291519193929092169163098bf59d91608480830192600092919082900301818387803b1580156117dd57600080fd5b505af11580156117f1573d6000803e3d6000fd5b5050600b546006546040805163098bf59d60e01b81526001600160a01b03878116600483018190529381166024830152604482018c90526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b15801561185f57600080fd5b505af1158015611873573d6000803e3d6000fd5b5050600c54604080516371d597ad60e01b81526001600160a01b0386811660048301528b81166024830152604482018b9052606482018a905288811660848301529151600095509190921692506371d597ad9160a48082019260209290919082900301818787803b1580156118e757600080fd5b505af11580156118fb573d6000803e3d6000fd5b505050506040513d602081101561191157600080fd5b5051604080516001600160a01b038516815260208101899052815192935060008051602061504b833981519152929081900390910190a160016000559695505050505050565b6009546001600160a01b031681565b600260005414156119ac576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600d54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d6020811015611a2857600080fd5b505115611a665760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b600e54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b158015611ab357600080fd5b505afa158015611ac7573d6000803e3d6000fd5b505050506040513d6020811015611add57600080fd5b505115611b1b5760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b6001600160a01b038181166000908152600f60205260409020543391168114611b755760405162461bcd60e51b8152600401808060200182810382526024815260200180614e846024913960400191505060405180910390fd5b6001600160a01b0382166000908152600f6020526040902080546001600160a01b0319169055611ba481613af0565b611bad826137e7565b60075460035460408051637aeceb1f60e11b81526001600160a01b03868116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611c0957600080fd5b505afa158015611c1d573d6000803e3d6000fd5b505050506040513d6020811015611c3357600080fd5b505190508015611c7157600354611c579084906001600160a01b03168360006132a5565b600354611c7190849084906001600160a01b0316846138e1565b6007546004805460408051637aeceb1f60e11b81526001600160a01b0388811694820194909452918316602483015251600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611ccf57600080fd5b505afa158015611ce3573d6000803e3d6000fd5b505050506040513d6020811015611cf957600080fd5b505190508015611d3757600454611d1d9085906001600160a01b03168360006132a5565b600454611d3790859085906001600160a01b0316846138e1565b60095460055460408051637aeceb1f60e11b81526001600160a01b03888116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611d9357600080fd5b505afa158015611da7573d6000803e3d6000fd5b505050506040513d6020811015611dbd57600080fd5b505190508015611eca576009546005546040805163098bf59d60e01b81526001600160a01b038981166004830181905293811660248301526044820186905260648201939093529051919092169163098bf59d91608480830192600092919082900301818387803b158015611e3157600080fd5b505af1158015611e45573d6000803e3d6000fd5b505060095460055460408051631e42d69b60e21b81526001600160a01b038b811660048301528a81166024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015611eb157600080fd5b505af1158015611ec5573d6000803e3d6000fd5b505050505b6000600460009054906101000a90046001600160a01b03166001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611f2e57600080fd5b505afa158015611f42573d6000803e3d6000fd5b505050506040513d6020811015611f5857600080fd5b505190508015611ff15760048054604080516323b872dd60e01b81526001600160a01b038a811694820194909452888416602482015260448101859052905192909116916323b872dd916064808201926020929091908290030181600087803b158015611fc457600080fd5b505af1158015611fd8573d6000803e3d6000fd5b505050506040513d6020811015611fee57600080fd5b50505b600b5460065460408051637aeceb1f60e11b81526001600160a01b038a8116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b15801561204d57600080fd5b505afa158015612061573d6000803e3d6000fd5b505050506040513d602081101561207757600080fd5b50519050801561228557600a54600b546040805163098bf59d60e01b81526001600160a01b038b81166004830181905293811660248301526044820186905260648201939093529051919092169163098bf59d91608480830192600092919082900301818387803b1580156120eb57600080fd5b505af11580156120ff573d6000803e3d6000fd5b5050600b546006546040805163098bf59d60e01b81526001600160a01b038d8116600483018190529381166024830152604482018890526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b15801561216d57600080fd5b505af1158015612181573d6000803e3d6000fd5b5050600b5460065460408051631e42d69b60e21b81526001600160a01b038d811660048301528c81166024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b1580156121ed57600080fd5b505af1158015612201573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b038c8116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b15801561226c57600080fd5b505af1158015612280573d6000803e3d6000fd5b505050505b600d5460408051630f713c2360e41b81526001600160a01b038a8116600483015289811660248301529151919092169163f713c23091604480830192600092919082900301818387803b1580156122db57600080fd5b505af11580156122ef573d6000803e3d6000fd5b5050600e5460408051630f713c2360e41b81526001600160a01b038c811660048301528b81166024830152915191909216935063f713c2309250604480830192600092919082900301818387803b15801561234957600080fd5b505af115801561235d573d6000803e3d6000fd5b50506001600055505050505050505050565b600260005414156123b5576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600454610d9590339081906001600160a01b0316846138e1565b6002600054141561241a576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b0316331461246c576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b6003546001600160a01b031660005b83518110156124be576124b63385838151811061249457fe5b6020026020010151848685815181106124a957fe5b60200260200101516138e1565b60010161247b565b505060016000555050565b600060026000541415612511576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005583612556576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b600c54604080516317eb2a1560e01b81523360048201819052602482018190526001600160a01b038981166044840152606483018990526084830188905260a483018790529251909360009316916317eb2a159160c480830192602092919082900301818787803b1580156125ca57600080fd5b505af11580156125de573d6000803e3d6000fd5b505050506040513d60208110156125f457600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b15801561265f57600080fd5b505af1158015612673573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b03888116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b1580156126de57600080fd5b505af11580156126f2573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614c998339815191529450908190039091019150a160016000559695505050505050565b600b546001600160a01b031681565b600e546001600160a01b031681565b60006002600054141561279d576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055346127f4576040805162461bcd60e51b815260206004820152601f60248201527f526577617264526f757465723a20696e76616c6964206d73672e76616c756500604482015290519081900360640190fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561284457600080fd5b505af1158015612858573d6000803e3d6000fd5b5050600254600c546040805163095ea7b360e01b81526001600160a01b039283166004820152346024820152905191909216945063095ea7b39350604480830193506020928290030181600087803b1580156128b357600080fd5b505af11580156128c7573d6000803e3d6000fd5b505050506040513d60208110156128dd57600080fd5b5050600c54600254604080516317eb2a1560e01b815230600482015233602482018190526001600160a01b0393841660448301523460648301526084820188905260a482018790529151919360009316916317eb2a159160c48082019260209290919082900301818787803b15801561295557600080fd5b505af1158015612969573d6000803e3d6000fd5b505050506040513d602081101561297f57600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b1580156129ea57600080fd5b505af11580156129fe573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b03888116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015612a6957600080fd5b505af1158015612a7d573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614c998339815191529450908190039091019150a16001600055949350505050565b6007546001600160a01b031681565b6001546001600160a01b03163314612b1c576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600d546001600160a01b031681565b600060026000541415612b95576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005583612bda576040805162461bcd60e51b81526020600482018190526024820152600080516020614ff7833981519152604482015290519081900360640190fd5b600a54600b546040805163098bf59d60e01b815233600482018190526001600160a01b039384166024830152604482018990526064820181905291519193929092169163098bf59d91608480830192600092919082900301818387803b158015612c4357600080fd5b505af1158015612c57573d6000803e3d6000fd5b5050600b546006546040805163098bf59d60e01b81526001600160a01b03878116600483018190529381166024830152604482018c90526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b158015612cc557600080fd5b505af1158015612cd9573d6000803e3d6000fd5b5050600c54600254604080516371d597ad60e01b81526001600160a01b0387811660048301529283166024820152604481018b9052606481018a90523060848201529051600095509190921692506371d597ad9160a48082019260209290919082900301818787803b158015612d4e57600080fd5b505af1158015612d62573d6000803e3d6000fd5b505050506040513d6020811015612d7857600080fd5b505160025460408051632e1a7d4d60e01b81526004810184905290519293506001600160a01b0390911691632e1a7d4d9160248082019260009290919082900301818387803b158015612dca57600080fd5b505af1158015612dde573d6000803e3d6000fd5b50612df6925050506001600160a01b038516826137fc565b604080516001600160a01b038416815260208101889052815160008051602061504b833981519152929181900390910190a1600160005595945050505050565b60026000541415612e7c576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000908155600954604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b158015612edb57600080fd5b505af1158015612eef573d6000803e3d6000fd5b505050506040513d6020811015612f0557600080fd5b5050600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b1580156113b657600080fd5b60026000541415612fa3576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600454610d959033906001600160a01b03168360016132a5565b6006546001600160a01b031681565b600f602052600090815260409020546001600160a01b031681565b6008546001600160a01b031681565b60026000541415613041576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600d54604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561309157600080fd5b505afa1580156130a5573d6000803e3d6000fd5b505050506040513d60208110156130bb57600080fd5b5051156130f95760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b600e54604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561314457600080fd5b505afa158015613158573d6000803e3d6000fd5b505050506040513d602081101561316e57600080fd5b5051156131ac5760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b6131b581613af0565b336000908152600f6020526040812080546001600160a01b0319166001600160a01b03939093169290921790915560019055565b6002600054141561322f576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005561323d336137e7565b6001600055565b6003546001600160a01b031681565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610a8f908490614640565b600082116132e8576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b600754604080516310c1c10360e01b81526001600160a01b038781166004830152915160009392909216916310c1c10391602480820192602092909190829003018186803b15801561333957600080fd5b505afa15801561334d573d6000803e3d6000fd5b505050506040513d602081101561336357600080fd5b50516009546008546040805163098bf59d60e01b81526001600160a01b038a8116600483018190529381166024830152604482018990526064820193909352905193945091169163098bf59d9160848082019260009290919082900301818387803b1580156133d157600080fd5b505af11580156133e5573d6000803e3d6000fd5b50506008546007546040805163098bf59d60e01b81526001600160a01b038b8116600483018190529381166024830152604482018a90526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b15801561345357600080fd5b505af1158015613467573d6000803e3d6000fd5b50506007546040805163098bf59d60e01b81526001600160a01b038a8116600483018190528a82166024840152604483018a90526064830152915191909216935063098bf59d9250608480830192600092919082900301818387803b1580156134cf57600080fd5b505af11580156134e3573d6000803e3d6000fd5b50505050811561379657600854604080516309f4173d60e11b81526001600160a01b03888116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561354657600080fd5b505af115801561355a573d6000803e3d6000fd5b505050506040513d602081101561357057600080fd5b5051905080156135fa5760095460055460408051631e42d69b60e21b81526001600160a01b038a81166004830181905260248301529283166044820152606481018590529051919092169163790b5a6c91608480830192600092919082900301818387803b1580156135e157600080fd5b505af11580156135f5573d6000803e3d6000fd5b505050505b60095460055460408051637aeceb1f60e11b81526001600160a01b038a8116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b15801561365657600080fd5b505afa15801561366a573d6000803e3d6000fd5b505050506040513d602081101561368057600080fd5b5051905080156137935760006136a08461369a84896146f1565b90614753565b6009546005546040805163098bf59d60e01b81526001600160a01b038d8116600483018190529381166024830152604482018690526064820193909352905193945091169163098bf59d9160848082019260009290919082900301818387803b15801561370c57600080fd5b505af1158015613720573d6000803e3d6000fd5b505060055460408051632770a7eb60e21b81526001600160a01b038d81166004830152602482018790529151919092169350639dc29fac9250604480830192600092919082900301818387803b15801561377957600080fd5b505af115801561378d573d6000803e3d6000fd5b50505050505b50505b604080516001600160a01b0380881682528616602082015280820185905290517f078e2fe6dabb5c8d98e723c50fa64329b611734ca334bb6b9f2ecdaa282093409181900360600190a15050505050565b6137f081614792565b6137f98161494a565b50565b80471015613851576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d806000811461389c576040519150601f19603f3d011682016040523d82523d6000602084013e6138a1565b606091505b5050905080610a8f5760405162461bcd60e51b815260040180806020018281038252603a815260200180614d6c603a913960400191505060405180910390fd5b60008111613924576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b60075460408051631e42d69b60e21b81526001600160a01b03878116600483015286811660248301528581166044830152606482018590529151919092169163790b5a6c91608480830192600092919082900301818387803b15801561398957600080fd5b505af115801561399d573d6000803e3d6000fd5b505060085460075460408051631e42d69b60e21b81526001600160a01b03898116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015613a0857600080fd5b505af1158015613a1c573d6000803e3d6000fd5b505060095460085460408051631e42d69b60e21b81526001600160a01b03898116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015613a8757600080fd5b505af1158015613a9b573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528616602082015280820185905290517f9aa02c4a3d4e3537fb517760136762eeb484da4444486e74ac81273ed42ce6f99350908190036060019150a150505050565b6007546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613b3d57600080fd5b505afa158015613b51573d6000803e3d6000fd5b505050506040513d6020811015613b6757600080fd5b505115613ba55760405162461bcd60e51b8152600401808060200182810382526038815260200180614f536038913960400191505060405180910390fd5b60075460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613bf257600080fd5b505afa158015613c06573d6000803e3d6000fd5b505050506040513d6020811015613c1c57600080fd5b505115613c5a5760405162461bcd60e51b8152600401808060200182810382526035815260200180614f8b6035913960400191505060405180910390fd5b6008546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613ca757600080fd5b505afa158015613cbb573d6000803e3d6000fd5b505050506040513d6020811015613cd157600080fd5b505115613d0f5760405162461bcd60e51b8152600401808060200182810382526037815260200180614fc06037913960400191505060405180910390fd5b60085460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613d5c57600080fd5b505afa158015613d70573d6000803e3d6000fd5b505050506040513d6020811015613d8657600080fd5b505115613dc45760405162461bcd60e51b81526004018080602001828103825260348152602001806150176034913960400191505060405180910390fd5b6009546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613e1157600080fd5b505afa158015613e25573d6000803e3d6000fd5b505050506040513d6020811015613e3b57600080fd5b505115613e795760405162461bcd60e51b8152600401808060200182810382526035815260200180614f1e6035913960400191505060405180910390fd5b60095460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613ec657600080fd5b505afa158015613eda573d6000803e3d6000fd5b505050506040513d6020811015613ef057600080fd5b505115613f2e5760405162461bcd60e51b8152600401808060200182810382526032815260200180614ecb6032913960400191505060405180910390fd5b600d5460408051631ccdc0d760e21b81526001600160a01b03848116600483015291519190921691637337035c916024808301926020929190829003018186803b158015613f7b57600080fd5b505afa158015613f8f573d6000803e3d6000fd5b505050506040513d6020811015613fa557600080fd5b505115613fe35760405162461bcd60e51b815260040180806020018281038252603c815260200180614e24603c913960400191505060405180910390fd5b600d5460408051635b8de71560e11b81526001600160a01b0384811660048301529151919092169163b71bce2a916024808301926020929190829003018186803b15801561403057600080fd5b505afa158015614044573d6000803e3d6000fd5b505050506040513d602081101561405a57600080fd5b5051156140985760405162461bcd60e51b8152600401808060200182810382526039815260200180614cb96039913960400191505060405180910390fd5b600a546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b1580156140e557600080fd5b505afa1580156140f9573d6000803e3d6000fd5b505050506040513d602081101561410f57600080fd5b50511561414d5760405162461bcd60e51b8152600401808060200182810382526037815260200180614ded6037913960400191505060405180910390fd5b600a5460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b15801561419a57600080fd5b505afa1580156141ae573d6000803e3d6000fd5b505050506040513d60208110156141c457600080fd5b5051156142025760405162461bcd60e51b8152600401808060200182810382526034815260200180614d386034913960400191505060405180910390fd5b600b546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b15801561424f57600080fd5b505afa158015614263573d6000803e3d6000fd5b505050506040513d602081101561427957600080fd5b5051156142b75760405162461bcd60e51b81526004018080602001828103825260348152602001806150956034913960400191505060405180910390fd5b600b5460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b15801561430457600080fd5b505afa158015614318573d6000803e3d6000fd5b505050506040513d602081101561432e57600080fd5b50511561436c5760405162461bcd60e51b81526004018080602001828103825260318152602001806150c96031913960400191505060405180910390fd5b600e5460408051631ccdc0d760e21b81526001600160a01b03848116600483015291519190921691637337035c916024808301926020929190829003018186803b1580156143b957600080fd5b505afa1580156143cd573d6000803e3d6000fd5b505050506040513d60208110156143e357600080fd5b5051156144215760405162461bcd60e51b815260040180806020018281038252603c815260200180614e24603c913960400191505060405180910390fd5b600e5460408051635b8de71560e11b81526001600160a01b0384811660048301529151919092169163b71bce2a916024808301926020929190829003018186803b15801561446e57600080fd5b505afa158015614482573d6000803e3d6000fd5b505050506040513d602081101561449857600080fd5b5051156144d65760405162461bcd60e51b8152600401808060200182810382526039815260200180614cb96039913960400191505060405180910390fd5b600d54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561452357600080fd5b505afa158015614537573d6000803e3d6000fd5b505050506040513d602081101561454d57600080fd5b50511561458b5760405162461bcd60e51b8152600401808060200182810382526024815260200180614e606024913960400191505060405180910390fd5b600e54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156145d857600080fd5b505afa1580156145ec573d6000803e3d6000fd5b505050506040513d602081101561460257600080fd5b5051156137f95760405162461bcd60e51b8152600401808060200182810382526023815260200180614ea86023913960400191505060405180910390fd5b6060614695826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166149f59092919063ffffffff16565b805190915015610a8f578080602001905160208110156146b457600080fd5b5051610a8f5760405162461bcd60e51b815260040180806020018281038252602a81526020018061506b602a913960400191505060405180910390fd5b6000826147005750600061474d565b8282028284828161470d57fe5b041461474a5760405162461bcd60e51b8152600401808060200182810382526021815260200180614efd6021913960400191505060405180910390fd5b90505b92915050565b600061474a83836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250614a0e565b600754604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b1580156147eb57600080fd5b505af11580156147ff573d6000803e3d6000fd5b505050506040513d602081101561481557600080fd5b5051905080156148395760045461483990839081906001600160a01b0316846138e1565b600854604080516309f4173d60e11b81526001600160a01b03858116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561489257600080fd5b505af11580156148a6573d6000803e3d6000fd5b505050506040513d60208110156148bc57600080fd5b505190508015610a8f5760095460055460408051631e42d69b60e21b81526001600160a01b038781166004830181905260248301529283166044820152606481018590529051919092169163790b5a6c91608480830192600092919082900301818387803b15801561492d57600080fd5b505af1158015614941573d6000803e3d6000fd5b50505050505050565b600a54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b1580156149a357600080fd5b505af11580156149b7573d6000803e3d6000fd5b505050506040513d60208110156149cd57600080fd5b5051905080156149f1576004546149f190839081906001600160a01b0316846138e1565b5050565b6060614a048484600085614ab0565b90505b9392505050565b60008183614a9a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614a5f578181015183820152602001614a47565b50505050905090810190601f168015614a8c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581614aa657fe5b0495945050505050565b606082471015614af15760405162461bcd60e51b8152600401808060200182810382526026815260200180614dc76026913960400191505060405180910390fd5b614afa85614c0c565b614b4b576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310614b8a5780518252601f199092019160209182019101614b6b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614bec576040519150601f19603f3d011682016040523d82523d6000602084013e614bf1565b606091505b5091509150614c01828286614c12565b979650505050505050565b3b151590565b60608315614c21575081614a07565b825115614c315782518084602001fd5b60405162461bcd60e51b8152602060048201818152845160248401528451859391928392604401919085019080838360008315614a5f578181015183820152602001614a4756fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00590f78242b486137ed0130a565e7dd5376d88cd0a3d45ce3e49634ae4af35b8d526577617264526f757465723a206f70656e5665737465722e7472616e7366657272656443756d756c617469766552657761726473203e2030526577617264526f757465723a2073656e646572206861732076657374656420746f6b656e73476f7665726e61626c653a20666f7262696464656e0000000000000000000000526577617264526f757465723a207374616b65644f6170547261636b65722e63756d756c617469766552657761726473203e2030416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564526577617264526f757465723a20616c726561647920696e697469616c697a6564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c526577617264526f757465723a207374616b65644f6170547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206f70656e5665737465722e7472616e73666572726564417665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206f70656e5665737465722e62616c616e6365203e2030526577617264526f757465723a207472616e73666572206e6f74207369676e616c6c6564526577617264526f757465723a206f61705665737465722e62616c616e6365203e2030526577617264526f757465723a206665654f70656e547261636b65722e63756d756c617469766552657761726473203e2030536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526577617264526f757465723a206665654f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a207374616b65644f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a207374616b65644f70656e547261636b65722e63756d756c617469766552657761726473203e2030526577617264526f757465723a20626f6e75734f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a20696e76616c6964205f6f6170416d6f756e74526577617264526f757465723a20626f6e75734f70656e547261636b65722e63756d756c617469766552657761726473203e2030cc23fc66e1bbcc39c6c2eb751f29b706cbb99681d2c1f02e7f8a59e92dedf2d85361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564526577617264526f757465723a206665654f6170547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206665654f6170547261636b65722e63756d756c617469766552657761726473203e2030526577617264526f757465723a20696e76616c6964205f616d6f756e74000000a2646970667358221220ab0a2752f07d51f9fdb15ff68170d33704bf40ee5c72e6cf6f3bb0284e0be0df64736f6c634300060c0033", + "deployedBytecode": "0x6080604052600436106101c45760003560e01c806301e33667146102285780630295e46f1461026b5780630b5684411461029c57806312d43a51146102b157806312ec52f2146102c65780631444e487146103275780631af276a6146103515780632a9f4083146103ff5780632fdd983d1461043257806330b70002146104cd57806336be260414610529578063392e53cd1461053e5780633a43750d146105675780633a81be061461057c5780633e2b53df146105915780633eb162ba146105ca5780633fc8cef3146105f45780634e71d92d1461060957806363fb63db1461061e57806364489cbb14610665578063655603a41461067a57806378830523146106ad578063874710e8146106d75780638dbe4d7114610807578063a66a5b321461084c578063abbdd88f14610861578063c383f4b214610876578063ce298b1514610899578063cfad57a2146108ae578063d1a28777146108e1578063d25140b3146108f6578063d294f09314610935578063dca388b01461094a578063dfab0c2c14610974578063e1b9db8914610989578063e3e9a886146109bc578063ef9aacfd146109d1578063f69e204614610a04578063fcfff16f14610a1957610223565b36610223576002546001600160a01b03163314610221576040805162461bcd60e51b81526020600482015260166024820152752937baba32b91d1034b73b30b634b21039b2b73232b960511b604482015290519081900360640190fd5b005b600080fd5b34801561023457600080fd5b506102216004803603606081101561024b57600080fd5b506001600160a01b03813581169160208101359091169060400135610a2e565b34801561027757600080fd5b50610280610a94565b604080516001600160a01b039092168252519081900360200190f35b3480156102a857600080fd5b50610280610aa3565b3480156102bd57600080fd5b50610280610ab2565b3480156102d257600080fd5b50610315600480360360a08110156102e957600080fd5b506001600160a01b03813581169160208101359160408201359160608101359160809091013516610ac1565b60408051918252519081900360200190f35b34801561033357600080fd5b506102216004803603602081101561034a57600080fd5b5035610d30565b34801561035d57600080fd5b506102216004803603602081101561037457600080fd5b810190602081018135600160201b81111561038e57600080fd5b8201836020820111156103a057600080fd5b803590602001918460208302840111600160201b831117156103c157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610d9d945050505050565b34801561040b57600080fd5b506102216004803603602081101561042257600080fd5b50356001600160a01b0316610e6e565b34801561043e57600080fd5b5061022160048036036101a081101561045657600080fd5b506001600160a01b038135811691602081013582169160408201358116916060810135821691608082013581169160a081013582169160c082013581169160e08101358216916101008201358116916101208101358216916101408201358116916101608101358216916101809091013516610f0f565b3480156104d957600080fd5b50610221600480360360e08110156104f057600080fd5b508035151590602081013515159060408101351515906060810135151590608081013515159060a081013515159060c00135151561109c565b34801561053557600080fd5b5061022161128f565b34801561054a57600080fd5b506105536113ea565b604080519115158252519081900360200190f35b34801561057357600080fd5b506102806113fa565b34801561058857600080fd5b50610280611409565b34801561059d57600080fd5b50610221600480360360408110156105b457600080fd5b506001600160a01b038135169060200135611418565b3480156105d657600080fd5b50610221600480360360208110156105ed57600080fd5b50356114ca565b34801561060057600080fd5b5061028061152f565b34801561061557600080fd5b5061022161153e565b34801561062a57600080fd5b506103156004803603608081101561064157600080fd5b506001600160a01b03813581169160208101359160408201359160600135166116e7565b34801561067157600080fd5b50610280611957565b34801561068657600080fd5b506102216004803603602081101561069d57600080fd5b50356001600160a01b0316611966565b3480156106b957600080fd5b50610221600480360360208110156106d057600080fd5b503561236f565b3480156106e357600080fd5b50610221600480360360408110156106fa57600080fd5b810190602081018135600160201b81111561071457600080fd5b82018360208201111561072657600080fd5b803590602001918460208302840111600160201b8311171561074757600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561079657600080fd5b8201836020820111156107a857600080fd5b803590602001918460208302840111600160201b831117156107c957600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506123d4945050505050565b34801561081357600080fd5b506103156004803603608081101561082a57600080fd5b506001600160a01b0381351690602081013590604081013590606001356124c9565b34801561085857600080fd5b50610280612737565b34801561086d57600080fd5b50610280612746565b6103156004803603604081101561088c57600080fd5b5080359060200135612755565b3480156108a557600080fd5b50610280612ac0565b3480156108ba57600080fd5b50610221600480360360208110156108d157600080fd5b50356001600160a01b0316612acf565b3480156108ed57600080fd5b50610280612b3e565b34801561090257600080fd5b506103156004803603606081101561091957600080fd5b50803590602081013590604001356001600160a01b0316612b4d565b34801561094157600080fd5b50610221612e36565b34801561095657600080fd5b506102216004803603602081101561096d57600080fd5b5035612f5d565b34801561098057600080fd5b50610280612fc2565b34801561099557600080fd5b50610280600480360360208110156109ac57600080fd5b50356001600160a01b0316612fd1565b3480156109c857600080fd5b50610280612fec565b3480156109dd57600080fd5b50610221600480360360208110156109f457600080fd5b50356001600160a01b0316612ffb565b348015610a1057600080fd5b506102216131e9565b348015610a2557600080fd5b50610280613244565b6001546001600160a01b03163314610a7b576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b610a8f6001600160a01b0384168383613253565b505050565b600c546001600160a01b031681565b600a546001600160a01b031681565b6001546001600160a01b031681565b600060026000541415610b09576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005584610b4e576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b600c54604080516317eb2a1560e01b81526001600160a01b038086166004830181905260248301528981166044830152606482018990526084820188905260a482018790529151859360009316916317eb2a159160c480830192602092919082900301818787803b158015610bc257600080fd5b505af1158015610bd6573d6000803e3d6000fd5b505050506040513d6020811015610bec57600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b158015610c5757600080fd5b505af1158015610c6b573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b03888116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015610cd657600080fd5b505af1158015610cea573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614c998339815191529450908190039091019150a16001600055979650505050505050565b60026000541415610d76576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600354610d959033906001600160a01b03168360016132a5565b506001600055565b60026000541415610de3576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b03163314610e35576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b60005b8151811015610e6557610e5d828281518110610e5057fe5b60200260200101516137e7565b600101610e38565b50506001600055565b60026000541415610eb4576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b03163314610f06576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b610d95816137e7565b6001546001600160a01b03163314610f5c576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b600154600160a01b900460ff1615610fa55760405162461bcd60e51b8152600401808060200182810382526021815260200180614da66021913960400191505060405180910390fd5b6001805460ff60a01b1916600160a01b179055600280546001600160a01b039e8f166001600160a01b031991821617909155600380549d8f169d82169d909d17909c55600480549b8e169b8d169b909b17909a5560058054998d16998c169990991790985560068054978c16978b169790971790965560078054958b16958a169590951790945560088054938a169389169390931790925560098054918916918816919091179055600b8054918816918716919091179055600a8054918716918616919091179055600c8054918616918516919091179055600d8054918516918416919091179055600e8054919093169116179055565b600260005414156110e2576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000553382156112805781156111fd57600b54604080516309f4173d60e11b81526001600160a01b038481166004830152306024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561114c57600080fd5b505af1158015611160573d6000803e3d6000fd5b505050506040513d602081101561117657600080fd5b505160025460408051632e1a7d4d60e01b815260048101849052905192935083926001600160a01b0390921691632e1a7d4d9160248082019260009290919082900301818387803b1580156111ca57600080fd5b505af11580156111de573d6000803e3d6000fd5b506111f6925050506001600160a01b038416826137fc565b5050611280565b600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561125357600080fd5b505af1158015611267573d6000803e3d6000fd5b505050506040513d602081101561127d57600080fd5b50505b50506001600055505050505050565b600260005414156112d5576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000908155600754604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b15801561133457600080fd5b505af1158015611348573d6000803e3d6000fd5b505050506040513d602081101561135e57600080fd5b5050600a54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b1580156113b657600080fd5b505af11580156113ca573d6000803e3d6000fd5b505050506040513d60208110156113e057600080fd5b5050600160005550565b600154600160a01b900460ff1681565b6004546001600160a01b031681565b6005546001600160a01b031681565b6002600054141561145e576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b031633146114b0576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b600354610e6590339084906001600160a01b0316846138e1565b60026000541415611510576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600354610d9590339081906001600160a01b0316846138e1565b6002546001600160a01b031681565b60026000541415611584576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000908155600954604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b1580156115e357600080fd5b505af11580156115f7573d6000803e3d6000fd5b505050506040513d602081101561160d57600080fd5b5050600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561166557600080fd5b505af1158015611679573d6000803e3d6000fd5b505050506040513d602081101561168f57600080fd5b5050600754604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b15801561133457600080fd5b60006002600054141561172f576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005583611774576040805162461bcd60e51b81526020600482018190526024820152600080516020614ff7833981519152604482015290519081900360640190fd5b600a54600b546040805163098bf59d60e01b815233600482018190526001600160a01b039384166024830152604482018990526064820181905291519193929092169163098bf59d91608480830192600092919082900301818387803b1580156117dd57600080fd5b505af11580156117f1573d6000803e3d6000fd5b5050600b546006546040805163098bf59d60e01b81526001600160a01b03878116600483018190529381166024830152604482018c90526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b15801561185f57600080fd5b505af1158015611873573d6000803e3d6000fd5b5050600c54604080516371d597ad60e01b81526001600160a01b0386811660048301528b81166024830152604482018b9052606482018a905288811660848301529151600095509190921692506371d597ad9160a48082019260209290919082900301818787803b1580156118e757600080fd5b505af11580156118fb573d6000803e3d6000fd5b505050506040513d602081101561191157600080fd5b5051604080516001600160a01b038516815260208101899052815192935060008051602061504b833981519152929081900390910190a160016000559695505050505050565b6009546001600160a01b031681565b600260005414156119ac576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600d54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156119fe57600080fd5b505afa158015611a12573d6000803e3d6000fd5b505050506040513d6020811015611a2857600080fd5b505115611a665760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b600e54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b158015611ab357600080fd5b505afa158015611ac7573d6000803e3d6000fd5b505050506040513d6020811015611add57600080fd5b505115611b1b5760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b6001600160a01b038181166000908152600f60205260409020543391168114611b755760405162461bcd60e51b8152600401808060200182810382526024815260200180614e846024913960400191505060405180910390fd5b6001600160a01b0382166000908152600f6020526040902080546001600160a01b0319169055611ba481613af0565b611bad826137e7565b60075460035460408051637aeceb1f60e11b81526001600160a01b03868116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611c0957600080fd5b505afa158015611c1d573d6000803e3d6000fd5b505050506040513d6020811015611c3357600080fd5b505190508015611c7157600354611c579084906001600160a01b03168360006132a5565b600354611c7190849084906001600160a01b0316846138e1565b6007546004805460408051637aeceb1f60e11b81526001600160a01b0388811694820194909452918316602483015251600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611ccf57600080fd5b505afa158015611ce3573d6000803e3d6000fd5b505050506040513d6020811015611cf957600080fd5b505190508015611d3757600454611d1d9085906001600160a01b03168360006132a5565b600454611d3790859085906001600160a01b0316846138e1565b60095460055460408051637aeceb1f60e11b81526001600160a01b03888116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b158015611d9357600080fd5b505afa158015611da7573d6000803e3d6000fd5b505050506040513d6020811015611dbd57600080fd5b505190508015611eca576009546005546040805163098bf59d60e01b81526001600160a01b038981166004830181905293811660248301526044820186905260648201939093529051919092169163098bf59d91608480830192600092919082900301818387803b158015611e3157600080fd5b505af1158015611e45573d6000803e3d6000fd5b505060095460055460408051631e42d69b60e21b81526001600160a01b038b811660048301528a81166024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015611eb157600080fd5b505af1158015611ec5573d6000803e3d6000fd5b505050505b6000600460009054906101000a90046001600160a01b03166001600160a01b03166370a08231876040518263ffffffff1660e01b815260040180826001600160a01b0316815260200191505060206040518083038186803b158015611f2e57600080fd5b505afa158015611f42573d6000803e3d6000fd5b505050506040513d6020811015611f5857600080fd5b505190508015611ff15760048054604080516323b872dd60e01b81526001600160a01b038a811694820194909452888416602482015260448101859052905192909116916323b872dd916064808201926020929091908290030181600087803b158015611fc457600080fd5b505af1158015611fd8573d6000803e3d6000fd5b505050506040513d6020811015611fee57600080fd5b50505b600b5460065460408051637aeceb1f60e11b81526001600160a01b038a8116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b15801561204d57600080fd5b505afa158015612061573d6000803e3d6000fd5b505050506040513d602081101561207757600080fd5b50519050801561228557600a54600b546040805163098bf59d60e01b81526001600160a01b038b81166004830181905293811660248301526044820186905260648201939093529051919092169163098bf59d91608480830192600092919082900301818387803b1580156120eb57600080fd5b505af11580156120ff573d6000803e3d6000fd5b5050600b546006546040805163098bf59d60e01b81526001600160a01b038d8116600483018190529381166024830152604482018890526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b15801561216d57600080fd5b505af1158015612181573d6000803e3d6000fd5b5050600b5460065460408051631e42d69b60e21b81526001600160a01b038d811660048301528c81166024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b1580156121ed57600080fd5b505af1158015612201573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b038c8116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b15801561226c57600080fd5b505af1158015612280573d6000803e3d6000fd5b505050505b600d5460408051630f713c2360e41b81526001600160a01b038a8116600483015289811660248301529151919092169163f713c23091604480830192600092919082900301818387803b1580156122db57600080fd5b505af11580156122ef573d6000803e3d6000fd5b5050600e5460408051630f713c2360e41b81526001600160a01b038c811660048301528b81166024830152915191909216935063f713c2309250604480830192600092919082900301818387803b15801561234957600080fd5b505af115801561235d573d6000803e3d6000fd5b50506001600055505050505050505050565b600260005414156123b5576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600454610d9590339081906001600160a01b0316846138e1565b6002600054141561241a576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000556001546001600160a01b0316331461246c576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b6003546001600160a01b031660005b83518110156124be576124b63385838151811061249457fe5b6020026020010151848685815181106124a957fe5b60200260200101516138e1565b60010161247b565b505060016000555050565b600060026000541415612511576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005583612556576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b600c54604080516317eb2a1560e01b81523360048201819052602482018190526001600160a01b038981166044840152606483018990526084830188905260a483018790529251909360009316916317eb2a159160c480830192602092919082900301818787803b1580156125ca57600080fd5b505af11580156125de573d6000803e3d6000fd5b505050506040513d60208110156125f457600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b15801561265f57600080fd5b505af1158015612673573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b03888116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b1580156126de57600080fd5b505af11580156126f2573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614c998339815191529450908190039091019150a160016000559695505050505050565b600b546001600160a01b031681565b600e546001600160a01b031681565b60006002600054141561279d576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055346127f4576040805162461bcd60e51b815260206004820152601f60248201527f526577617264526f757465723a20696e76616c6964206d73672e76616c756500604482015290519081900360640190fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561284457600080fd5b505af1158015612858573d6000803e3d6000fd5b5050600254600c546040805163095ea7b360e01b81526001600160a01b039283166004820152346024820152905191909216945063095ea7b39350604480830193506020928290030181600087803b1580156128b357600080fd5b505af11580156128c7573d6000803e3d6000fd5b505050506040513d60208110156128dd57600080fd5b5050600c54600254604080516317eb2a1560e01b815230600482015233602482018190526001600160a01b0393841660448301523460648301526084820188905260a482018790529151919360009316916317eb2a159160c48082019260209290919082900301818787803b15801561295557600080fd5b505af1158015612969573d6000803e3d6000fd5b505050506040513d602081101561297f57600080fd5b5051600b5460065460408051631e42d69b60e21b81526001600160a01b03878116600483018190526024830152928316604482015260648101859052905193945091169163790b5a6c9160848082019260009290919082900301818387803b1580156129ea57600080fd5b505af11580156129fe573d6000803e3d6000fd5b5050600a54600b5460408051631e42d69b60e21b81526001600160a01b03888116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015612a6957600080fd5b505af1158015612a7d573d6000803e3d6000fd5b5050604080516001600160a01b0386168152602081018590528151600080516020614c998339815191529450908190039091019150a16001600055949350505050565b6007546001600160a01b031681565b6001546001600160a01b03163314612b1c576040805162461bcd60e51b81526020600482015260156024820152600080516020614d18833981519152604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600d546001600160a01b031681565b600060026000541415612b95576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005583612bda576040805162461bcd60e51b81526020600482018190526024820152600080516020614ff7833981519152604482015290519081900360640190fd5b600a54600b546040805163098bf59d60e01b815233600482018190526001600160a01b039384166024830152604482018990526064820181905291519193929092169163098bf59d91608480830192600092919082900301818387803b158015612c4357600080fd5b505af1158015612c57573d6000803e3d6000fd5b5050600b546006546040805163098bf59d60e01b81526001600160a01b03878116600483018190529381166024830152604482018c90526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b158015612cc557600080fd5b505af1158015612cd9573d6000803e3d6000fd5b5050600c54600254604080516371d597ad60e01b81526001600160a01b0387811660048301529283166024820152604481018b9052606481018a90523060848201529051600095509190921692506371d597ad9160a48082019260209290919082900301818787803b158015612d4e57600080fd5b505af1158015612d62573d6000803e3d6000fd5b505050506040513d6020811015612d7857600080fd5b505160025460408051632e1a7d4d60e01b81526004810184905290519293506001600160a01b0390911691632e1a7d4d9160248082019260009290919082900301818387803b158015612dca57600080fd5b505af1158015612dde573d6000803e3d6000fd5b50612df6925050506001600160a01b038516826137fc565b604080516001600160a01b038416815260208101889052815160008051602061504b833981519152929181900390910190a1600160005595945050505050565b60026000541415612e7c576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b60026000908155600954604080516309f4173d60e11b8152336004820181905260248201819052915191936001600160a01b03909316926313e82e7a926044808401936020939083900390910190829087803b158015612edb57600080fd5b505af1158015612eef573d6000803e3d6000fd5b505050506040513d6020811015612f0557600080fd5b5050600b54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915191909216916313e82e7a9160448083019260209291908290030181600087803b1580156113b657600080fd5b60026000541415612fa3576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600454610d959033906001600160a01b03168360016132a5565b6006546001600160a01b031681565b600f602052600090815260409020546001600160a01b031681565b6008546001600160a01b031681565b60026000541415613041576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b6002600055600d54604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561309157600080fd5b505afa1580156130a5573d6000803e3d6000fd5b505050506040513d60208110156130bb57600080fd5b5051156130f95760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b600e54604080516370a0823160e01b815233600482015290516001600160a01b03909216916370a0823191602480820192602092909190829003018186803b15801561314457600080fd5b505afa158015613158573d6000803e3d6000fd5b505050506040513d602081101561316e57600080fd5b5051156131ac5760405162461bcd60e51b8152600401808060200182810382526026815260200180614cf26026913960400191505060405180910390fd5b6131b581613af0565b336000908152600f6020526040812080546001600160a01b0319166001600160a01b03939093169290921790915560019055565b6002600054141561322f576040805162461bcd60e51b815260206004820152601f6024820152600080516020614c79833981519152604482015290519081900360640190fd5b600260005561323d336137e7565b6001600055565b6003546001600160a01b031681565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610a8f908490614640565b600082116132e8576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b600754604080516310c1c10360e01b81526001600160a01b038781166004830152915160009392909216916310c1c10391602480820192602092909190829003018186803b15801561333957600080fd5b505afa15801561334d573d6000803e3d6000fd5b505050506040513d602081101561336357600080fd5b50516009546008546040805163098bf59d60e01b81526001600160a01b038a8116600483018190529381166024830152604482018990526064820193909352905193945091169163098bf59d9160848082019260009290919082900301818387803b1580156133d157600080fd5b505af11580156133e5573d6000803e3d6000fd5b50506008546007546040805163098bf59d60e01b81526001600160a01b038b8116600483018190529381166024830152604482018a90526064820193909352905191909216935063098bf59d9250608480830192600092919082900301818387803b15801561345357600080fd5b505af1158015613467573d6000803e3d6000fd5b50506007546040805163098bf59d60e01b81526001600160a01b038a8116600483018190528a82166024840152604483018a90526064830152915191909216935063098bf59d9250608480830192600092919082900301818387803b1580156134cf57600080fd5b505af11580156134e3573d6000803e3d6000fd5b50505050811561379657600854604080516309f4173d60e11b81526001600160a01b03888116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561354657600080fd5b505af115801561355a573d6000803e3d6000fd5b505050506040513d602081101561357057600080fd5b5051905080156135fa5760095460055460408051631e42d69b60e21b81526001600160a01b038a81166004830181905260248301529283166044820152606481018590529051919092169163790b5a6c91608480830192600092919082900301818387803b1580156135e157600080fd5b505af11580156135f5573d6000803e3d6000fd5b505050505b60095460055460408051637aeceb1f60e11b81526001600160a01b038a8116600483015292831660248201529051600093929092169163f5d9d63e91604480820192602092909190829003018186803b15801561365657600080fd5b505afa15801561366a573d6000803e3d6000fd5b505050506040513d602081101561368057600080fd5b5051905080156137935760006136a08461369a84896146f1565b90614753565b6009546005546040805163098bf59d60e01b81526001600160a01b038d8116600483018190529381166024830152604482018690526064820193909352905193945091169163098bf59d9160848082019260009290919082900301818387803b15801561370c57600080fd5b505af1158015613720573d6000803e3d6000fd5b505060055460408051632770a7eb60e21b81526001600160a01b038d81166004830152602482018790529151919092169350639dc29fac9250604480830192600092919082900301818387803b15801561377957600080fd5b505af115801561378d573d6000803e3d6000fd5b50505050505b50505b604080516001600160a01b0380881682528616602082015280820185905290517f078e2fe6dabb5c8d98e723c50fa64329b611734ca334bb6b9f2ecdaa282093409181900360600190a15050505050565b6137f081614792565b6137f98161494a565b50565b80471015613851576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a20696e73756666696369656e742062616c616e6365000000604482015290519081900360640190fd5b6040516000906001600160a01b0384169083908381818185875af1925050503d806000811461389c576040519150601f19603f3d011682016040523d82523d6000602084013e6138a1565b606091505b5050905080610a8f5760405162461bcd60e51b815260040180806020018281038252603a815260200180614d6c603a913960400191505060405180910390fd5b60008111613924576040805162461bcd60e51b815260206004820152601d60248201526000805160206150fa833981519152604482015290519081900360640190fd5b60075460408051631e42d69b60e21b81526001600160a01b03878116600483015286811660248301528581166044830152606482018590529151919092169163790b5a6c91608480830192600092919082900301818387803b15801561398957600080fd5b505af115801561399d573d6000803e3d6000fd5b505060085460075460408051631e42d69b60e21b81526001600160a01b03898116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015613a0857600080fd5b505af1158015613a1c573d6000803e3d6000fd5b505060095460085460408051631e42d69b60e21b81526001600160a01b03898116600483018190526024830152928316604482015260648101879052905191909216935063790b5a6c9250608480830192600092919082900301818387803b158015613a8757600080fd5b505af1158015613a9b573d6000803e3d6000fd5b5050604080516001600160a01b0380881682528616602082015280820185905290517f9aa02c4a3d4e3537fb517760136762eeb484da4444486e74ac81273ed42ce6f99350908190036060019150a150505050565b6007546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613b3d57600080fd5b505afa158015613b51573d6000803e3d6000fd5b505050506040513d6020811015613b6757600080fd5b505115613ba55760405162461bcd60e51b8152600401808060200182810382526038815260200180614f536038913960400191505060405180910390fd5b60075460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613bf257600080fd5b505afa158015613c06573d6000803e3d6000fd5b505050506040513d6020811015613c1c57600080fd5b505115613c5a5760405162461bcd60e51b8152600401808060200182810382526035815260200180614f8b6035913960400191505060405180910390fd5b6008546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613ca757600080fd5b505afa158015613cbb573d6000803e3d6000fd5b505050506040513d6020811015613cd157600080fd5b505115613d0f5760405162461bcd60e51b8152600401808060200182810382526037815260200180614fc06037913960400191505060405180910390fd5b60085460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613d5c57600080fd5b505afa158015613d70573d6000803e3d6000fd5b505050506040513d6020811015613d8657600080fd5b505115613dc45760405162461bcd60e51b81526004018080602001828103825260348152602001806150176034913960400191505060405180910390fd5b6009546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b158015613e1157600080fd5b505afa158015613e25573d6000803e3d6000fd5b505050506040513d6020811015613e3b57600080fd5b505115613e795760405162461bcd60e51b8152600401808060200182810382526035815260200180614f1e6035913960400191505060405180910390fd5b60095460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b158015613ec657600080fd5b505afa158015613eda573d6000803e3d6000fd5b505050506040513d6020811015613ef057600080fd5b505115613f2e5760405162461bcd60e51b8152600401808060200182810382526032815260200180614ecb6032913960400191505060405180910390fd5b600d5460408051631ccdc0d760e21b81526001600160a01b03848116600483015291519190921691637337035c916024808301926020929190829003018186803b158015613f7b57600080fd5b505afa158015613f8f573d6000803e3d6000fd5b505050506040513d6020811015613fa557600080fd5b505115613fe35760405162461bcd60e51b815260040180806020018281038252603c815260200180614e24603c913960400191505060405180910390fd5b600d5460408051635b8de71560e11b81526001600160a01b0384811660048301529151919092169163b71bce2a916024808301926020929190829003018186803b15801561403057600080fd5b505afa158015614044573d6000803e3d6000fd5b505050506040513d602081101561405a57600080fd5b5051156140985760405162461bcd60e51b8152600401808060200182810382526039815260200180614cb96039913960400191505060405180910390fd5b600a546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b1580156140e557600080fd5b505afa1580156140f9573d6000803e3d6000fd5b505050506040513d602081101561410f57600080fd5b50511561414d5760405162461bcd60e51b8152600401808060200182810382526037815260200180614ded6037913960400191505060405180910390fd5b600a5460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b15801561419a57600080fd5b505afa1580156141ae573d6000803e3d6000fd5b505050506040513d60208110156141c457600080fd5b5051156142025760405162461bcd60e51b8152600401808060200182810382526034815260200180614d386034913960400191505060405180910390fd5b600b546040805163a318021760e01b81526001600160a01b0384811660048301529151919092169163a3180217916024808301926020929190829003018186803b15801561424f57600080fd5b505afa158015614263573d6000803e3d6000fd5b505050506040513d602081101561427957600080fd5b5051156142b75760405162461bcd60e51b81526004018080602001828103825260348152602001806150956034913960400191505060405180910390fd5b600b5460408051633792def360e01b81526001600160a01b03848116600483015291519190921691633792def3916024808301926020929190829003018186803b15801561430457600080fd5b505afa158015614318573d6000803e3d6000fd5b505050506040513d602081101561432e57600080fd5b50511561436c5760405162461bcd60e51b81526004018080602001828103825260318152602001806150c96031913960400191505060405180910390fd5b600e5460408051631ccdc0d760e21b81526001600160a01b03848116600483015291519190921691637337035c916024808301926020929190829003018186803b1580156143b957600080fd5b505afa1580156143cd573d6000803e3d6000fd5b505050506040513d60208110156143e357600080fd5b5051156144215760405162461bcd60e51b815260040180806020018281038252603c815260200180614e24603c913960400191505060405180910390fd5b600e5460408051635b8de71560e11b81526001600160a01b0384811660048301529151919092169163b71bce2a916024808301926020929190829003018186803b15801561446e57600080fd5b505afa158015614482573d6000803e3d6000fd5b505050506040513d602081101561449857600080fd5b5051156144d65760405162461bcd60e51b8152600401808060200182810382526039815260200180614cb96039913960400191505060405180910390fd5b600d54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b15801561452357600080fd5b505afa158015614537573d6000803e3d6000fd5b505050506040513d602081101561454d57600080fd5b50511561458b5760405162461bcd60e51b8152600401808060200182810382526024815260200180614e606024913960400191505060405180910390fd5b600e54604080516370a0823160e01b81526001600160a01b038481166004830152915191909216916370a08231916024808301926020929190829003018186803b1580156145d857600080fd5b505afa1580156145ec573d6000803e3d6000fd5b505050506040513d602081101561460257600080fd5b5051156137f95760405162461bcd60e51b8152600401808060200182810382526023815260200180614ea86023913960400191505060405180910390fd5b6060614695826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166149f59092919063ffffffff16565b805190915015610a8f578080602001905160208110156146b457600080fd5b5051610a8f5760405162461bcd60e51b815260040180806020018281038252602a81526020018061506b602a913960400191505060405180910390fd5b6000826147005750600061474d565b8282028284828161470d57fe5b041461474a5760405162461bcd60e51b8152600401808060200182810382526021815260200180614efd6021913960400191505060405180910390fd5b90505b92915050565b600061474a83836040518060400160405280601a815260200179536166654d6174683a206469766973696f6e206279207a65726f60301b815250614a0e565b600754604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b1580156147eb57600080fd5b505af11580156147ff573d6000803e3d6000fd5b505050506040513d602081101561481557600080fd5b5051905080156148395760045461483990839081906001600160a01b0316846138e1565b600854604080516309f4173d60e11b81526001600160a01b03858116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b15801561489257600080fd5b505af11580156148a6573d6000803e3d6000fd5b505050506040513d60208110156148bc57600080fd5b505190508015610a8f5760095460055460408051631e42d69b60e21b81526001600160a01b038781166004830181905260248301529283166044820152606481018590529051919092169163790b5a6c91608480830192600092919082900301818387803b15801561492d57600080fd5b505af1158015614941573d6000803e3d6000fd5b50505050505050565b600a54604080516309f4173d60e11b81526001600160a01b03848116600483018190526024830152915160009392909216916313e82e7a9160448082019260209290919082900301818787803b1580156149a357600080fd5b505af11580156149b7573d6000803e3d6000fd5b505050506040513d60208110156149cd57600080fd5b5051905080156149f1576004546149f190839081906001600160a01b0316846138e1565b5050565b6060614a048484600085614ab0565b90505b9392505050565b60008183614a9a5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614a5f578181015183820152602001614a47565b50505050905090810190601f168015614a8c5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506000838581614aa657fe5b0495945050505050565b606082471015614af15760405162461bcd60e51b8152600401808060200182810382526026815260200180614dc76026913960400191505060405180910390fd5b614afa85614c0c565b614b4b576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310614b8a5780518252601f199092019160209182019101614b6b565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614bec576040519150601f19603f3d011682016040523d82523d6000602084013e614bf1565b606091505b5091509150614c01828286614c12565b979650505050505050565b3b151590565b60608315614c21575081614a07565b825115614c315782518084602001fd5b60405162461bcd60e51b8152602060048201818152845160248401528451859391928392604401919085019080838360008315614a5f578181015183820152602001614a4756fe5265656e7472616e637947756172643a207265656e7472616e742063616c6c00590f78242b486137ed0130a565e7dd5376d88cd0a3d45ce3e49634ae4af35b8d526577617264526f757465723a206f70656e5665737465722e7472616e7366657272656443756d756c617469766552657761726473203e2030526577617264526f757465723a2073656e646572206861732076657374656420746f6b656e73476f7665726e61626c653a20666f7262696464656e0000000000000000000000526577617264526f757465723a207374616b65644f6170547261636b65722e63756d756c617469766552657761726473203e2030416464726573733a20756e61626c6520746f2073656e642076616c75652c20726563697069656e74206d61792068617665207265766572746564526577617264526f757465723a20616c726561647920696e697469616c697a6564416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c526577617264526f757465723a207374616b65644f6170547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206f70656e5665737465722e7472616e73666572726564417665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206f70656e5665737465722e62616c616e6365203e2030526577617264526f757465723a207472616e73666572206e6f74207369676e616c6c6564526577617264526f757465723a206f61705665737465722e62616c616e6365203e2030526577617264526f757465723a206665654f70656e547261636b65722e63756d756c617469766552657761726473203e2030536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77526577617264526f757465723a206665654f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a207374616b65644f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a207374616b65644f70656e547261636b65722e63756d756c617469766552657761726473203e2030526577617264526f757465723a20626f6e75734f70656e547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a20696e76616c6964205f6f6170416d6f756e74526577617264526f757465723a20626f6e75734f70656e547261636b65722e63756d756c617469766552657761726473203e2030cc23fc66e1bbcc39c6c2eb751f29b706cbb99681d2c1f02e7f8a59e92dedf2d85361666545524332303a204552433230206f7065726174696f6e20646964206e6f742073756363656564526577617264526f757465723a206665654f6170547261636b65722e617665726167655374616b6564416d6f756e7473203e2030526577617264526f757465723a206665654f6170547261636b65722e63756d756c617469766552657761726473203e2030526577617264526f757465723a20696e76616c6964205f616d6f756e74000000a2646970667358221220ab0a2752f07d51f9fdb15ff68170d33704bf40ee5c72e6cf6f3bb0284e0be0df64736f6c634300060c0033", + "linkReferences": {}, + "deployedLinkReferences": {} +} diff --git a/src/components/Exchange/SwapBox.js b/src/components/Exchange/SwapBox.js index 1c781f0a..833d395f 100644 --- a/src/components/Exchange/SwapBox.js +++ b/src/components/Exchange/SwapBox.js @@ -199,14 +199,6 @@ export default function SwapBox(props) { minExecutionFeeErrorMessage, } = props; - const [{ wallet, connecting }] = useConnectWallet(); - - let ethersProvider; - - if (wallet) { - ethersProvider = new ethers.providers.Web3Provider(wallet.provider, "any"); - } - const [fromValue, setFromValue] = useState(""); const [toValue, setToValue] = useState(""); const [anchorOnFromAmount, setAnchorOnFromAmount] = useState(true); diff --git a/src/components/Glp/GlpSwap.js b/src/components/Glp/GlpSwap.js index 8dbcb439..bcaa10a0 100644 --- a/src/components/Glp/GlpSwap.js +++ b/src/components/Glp/GlpSwap.js @@ -1,67 +1,69 @@ -import React, { useState, useEffect } from "react"; -import { useHistory } from "react-router-dom"; -import { Trans, t } from "@lingui/macro"; +import { t, Trans } from "@lingui/macro"; import { useWeb3React } from "@web3-react/core"; -import useSWR from "swr"; -import { ethers } from "ethers"; -import Tab from "../Tab/Tab"; import cx from "classnames"; import { getContract } from "config/contracts"; +import { BigNumber, ethers } from "ethers"; import { - getBuyGlpToAmount, + adjustForDecimals, + BASIS_POINTS_DIVISOR, getBuyGlpFromAmount, + getBuyGlpToAmount, getSellGlpFromAmount, getSellGlpToAmount, - adjustForDecimals, - GLP_DECIMALS, - USD_DECIMALS, - BASIS_POINTS_DIVISOR, GLP_COOLDOWN_DURATION, + GLP_DECIMALS, + PLACEHOLDER_ACCOUNT, SECONDS_PER_YEAR, USDG_DECIMALS, - PLACEHOLDER_ACCOUNT, - importImage, + USD_DECIMALS, } from "lib/legacy"; +import { useEffect, useState } from "react"; +import { useHistory } from "react-router-dom"; +import useSWR from "swr"; +import Tab from "../Tab/Tab"; import { useGmxPrice } from "domain/legacy"; -import TokenSelector from "../Exchange/TokenSelector"; import BuyInputSection from "../BuyInputSection/BuyInputSection"; +import TokenSelector from "../Exchange/TokenSelector"; import Tooltip from "../Tooltip/Tooltip"; +import GlpManager from "abis/GlpManager.json"; +import OapRouter from "abis/OapRouter.json"; import ReaderV2 from "abis/ReaderV2.json"; import RewardReader from "abis/RewardReader.json"; -import VaultV2 from "abis/VaultV2.json"; -import GlpManager from "abis/GlpManager.json"; -import RewardTracker from "abis/RewardTracker.json"; -import Vester from "abis/Vester.json"; import RewardRouter from "abis/RewardRouter.json"; +import RewardTracker from "abis/RewardTracker.json"; import Token from "abis/Token.json"; +import VaultV2 from "abis/VaultV2.json"; +import Vester from "abis/Vester.json"; import glp24Icon from "img/ic_gmx_24.svg"; import logoOAP from "img/logo_oap_white.svg"; -import arrowIcon from "img/ic_convert_down.svg"; -import avalanche16Icon from "img/ic_avalanche_16.svg"; -import arbitrum16Icon from "img/ic_arbitrum_16.svg"; - -import bnbIcon from "img/ic_binance_logo.svg"; - -import "./GlpSwap.css"; -import AssetDropdown from "pages/Dashboard/AssetDropdown"; -import SwapErrorModal from "./SwapErrorModal"; -import StatsTooltipRow from "../StatsTooltip/StatsTooltipRow"; -import { ARBITRUM, getChainName, HARMONY, IS_NETWORK_DISABLED } from "config/chains"; -import { callContract, contractFetcher } from "lib/contracts"; +import ExternalLink from "components/ExternalLink/ExternalLink"; +import { ARBITRUM, getChainName, IS_NETWORK_DISABLED, TESTNET } from "config/chains"; +import { + getNativeToken, + getToken, + getTokenBySymbol, + getTokens, + getWhitelistedTokens, + getWrappedToken, +} from "config/tokens"; import { approveTokens, useInfoTokens } from "domain/tokens"; -import { useLocalStorageByChainId } from "lib/localStorage"; -import { helperToast } from "lib/helperToast"; import { getTokenInfo, getUsd } from "domain/tokens/utils"; -import { bigNumberify, expandDecimals, formatAmount, formatAmountFree, formatKeyAmount, parseValue } from "lib/numbers"; -import { getNativeToken, getToken, getTokens, getWhitelistedTokens, getWrappedToken } from "config/tokens"; +import { parseEther } from "ethers/lib/utils"; import { useChainId } from "lib/chains"; -import ExternalLink from "components/ExternalLink/ExternalLink"; +import { callContract, contractFetcher } from "lib/contracts"; +import { helperToast } from "lib/helperToast"; +import { useLocalStorageByChainId } from "lib/localStorage"; +import { bigNumberify, expandDecimals, formatAmount, formatAmountFree, formatKeyAmount, parseValue } from "lib/numbers"; +import AssetDropdown from "pages/Dashboard/AssetDropdown"; import { IoMdSwap } from "react-icons/io"; +import StatsTooltipRow from "../StatsTooltip/StatsTooltipRow"; +import "./GlpSwap.css"; +import SwapErrorModal from "./SwapErrorModal"; const { AddressZero } = ethers.constants; @@ -145,6 +147,7 @@ export default function GlpSwap(props) { const usdgAddress = getContract(chainId, "USDG"); const glpManagerAddress = getContract(chainId, "GlpManager"); const rewardRouterAddress = getContract(chainId, "RewardRouter"); + const oapRouterAddress = getContract(chainId, "OAPRouter"); const tokensForBalanceAndSupplyQuery = [stakedGlpTrackerAddress, usdgAddress]; const tokenAddresses = tokens.map((token) => token.address); @@ -187,6 +190,13 @@ export default function GlpSwap(props) { } ); + const { data: tokenAllowanceOap } = useSWR( + [active, chainId, tokenAllowanceAddress, "allowance", account || PLACEHOLDER_ACCOUNT, oapRouterAddress], + { + fetcher: contractFetcher(library, Token), + } + ); + const { data: lastPurchaseTime } = useSWR( [`GlpSwap:lastPurchaseTime:${active}`, chainId, glpManagerAddress, "lastAddedAt", account || PLACEHOLDER_ACCOUNT], { @@ -278,8 +288,18 @@ export default function GlpSwap(props) { const swapAmount = parseValue(swapValue, swapToken && swapToken.decimals); const glpAmount = parseValue(glpValue, GLP_DECIMALS); - const needApproval = - isBuying && swapTokenAddress !== AddressZero && tokenAllowance && swapAmount && swapAmount.gt(tokenAllowance); + let needApproval = false; + if (swapTokenAddress === AddressZero) { + needApproval = + isBuying && tokenAllowance && swapAmount && (swapAmount.gt(tokenAllowance) || swapAmount.gt(tokenAllowanceOap)); + } else { + needApproval = + isBuying && + swapTokenAddress !== AddressZero && + tokenAllowance && + swapAmount && + (swapAmount.gt(tokenAllowance) || swapAmount.gt(tokenAllowanceOap)); + } const swapUsdMin = getUsd(swapAmount, swapTokenAddress, false, infoTokens); const glpUsdMax = glpAmount && glpPrice ? glpAmount.mul(glpPrice).div(expandDecimals(1, GLP_DECIMALS)) : undefined; @@ -568,6 +588,32 @@ export default function GlpSwap(props) { }; const approveFromToken = () => { + if (swapToken.address === AddressZero) { + approveTokens({ + setIsApproving, + library, + tokenAddress: getTokenBySymbol(chainId, "WBNB").address, + spender: glpManagerAddress, + chainId: chainId, + onApproveSubmitted: () => { + setIsWaitingForApproval(true); + }, + infoTokens, + getTokenInfo, + }); + approveTokens({ + setIsApproving, + library, + tokenAddress: getTokenBySymbol(chainId, "WBNB").address, + spender: oapRouterAddress, + chainId: chainId, + onApproveSubmitted: () => { + setIsWaitingForApproval(true); + }, + infoTokens, + getTokenInfo, + }); + } approveTokens({ setIsApproving, library, @@ -580,19 +626,82 @@ export default function GlpSwap(props) { infoTokens, getTokenInfo, }); + approveTokens({ + setIsApproving, + library, + tokenAddress: swapToken.address, + spender: oapRouterAddress, + chainId: chainId, + onApproveSubmitted: () => { + setIsWaitingForApproval(true); + }, + infoTokens, + getTokenInfo, + }); }; const buyGlp = () => { setIsSubmitting(true); + let minGlp = 0; + if (chainId === TESTNET) { + minGlp = glpAmount.mul(BASIS_POINTS_DIVISOR - savedSlippageAmount).div(BASIS_POINTS_DIVISOR * 2); + } else { + minGlp = glpAmount.mul(BASIS_POINTS_DIVISOR - savedSlippageAmount).div(BASIS_POINTS_DIVISOR); + } - const minGlp = glpAmount.mul(BASIS_POINTS_DIVISOR - savedSlippageAmount).div(BASIS_POINTS_DIVISOR); + const contractOapRouter = new ethers.Contract(oapRouterAddress, OapRouter.abi, library.getSigner()); + const contractRewardRouter = new ethers.Contract(rewardRouterAddress, RewardRouter.abi, library.getSigner()); + const method = swapTokenAddress === AddressZero ? "swapAndStakeETH" : "swapAndStake"; + const methodRewardRouter = swapTokenAddress === AddressZero ? "mintAndStakeOapETH" : "mintAndStakeOap"; - const contract = new ethers.Contract(rewardRouterAddress, RewardRouter.abi, library.getSigner()); - const method = swapTokenAddress === AddressZero ? "mintAndStakeOapETH" : "mintAndStakeOap"; - const params = swapTokenAddress === AddressZero ? [0, minGlp] : [swapTokenAddress, swapAmount, 0, minGlp]; const value = swapTokenAddress === AddressZero ? swapAmount : 0; + let adjustedUsdgSupply = bigNumberify(0); + for (let i = 0; i < tokenList.length; i++) { + const token = tokenList[i]; + const tokenInfo = infoTokens[token.address]; + if (tokenInfo && tokenInfo.usdgAmount) { + adjustedUsdgSupply = adjustedUsdgSupply.add(tokenInfo.usdgAmount); + } + } + let minWeightToken = infoTokens[visibleTokens[0].address]; - callContract(chainId, contract, method, params, { + let minWeight = infoTokens[visibleTokens[0].address].usdgAmount.mul(BASIS_POINTS_DIVISOR).div(adjustedUsdgSupply); + visibleTokens.forEach((token) => { + // console.log("hahaha", formatEther(infoTokens[token?.address].weight)); + const currentWeightBps = infoTokens[token?.address].usdgAmount.mul(BASIS_POINTS_DIVISOR).div(adjustedUsdgSupply); + + if (currentWeightBps < minWeight) { + minWeightToken = token; + } + }); + + if (minWeightToken.address === swapTokenAddress) { + const params = [swapTokenAddress, swapAmount.toString(), "0", "0"]; + callContract(chainId, contractRewardRouter, methodRewardRouter, params, { + value, + sentMsg: t`Buy submitted.`, + failMsg: t`Buy failed.`, + successMsg: t`${formatAmount(glpAmount, 18, 4, true)} OAP bought with ${formatAmount( + swapAmount, + swapTokenInfo.decimals, + 4, + true + )} ${swapTokenInfo.symbol}!`, + setPendingTxns, + }) + .then(async () => {}) + .finally(() => { + setIsSubmitting(false); + }); + return; + } + let _minGlp = chainId === TESTNET ? 0 : minGlp; + const params = + swapTokenAddress === AddressZero + ? [minWeightToken.address, _minGlp, 0, 0] + : [swapTokenAddress, minWeightToken.address, parseEther(swapValue).toString(), 0, 0, 0]; + + callContract(chainId, contractOapRouter, method, params, { value, sentMsg: t`Buy submitted.`, failMsg: t`Buy failed.`, @@ -1190,9 +1299,7 @@ export default function GlpSwap(props) {
-
- {/* {token.symbol} */} -
+
{token.name}
{token.symbol}
@@ -1325,7 +1432,6 @@ export default function GlpSwap(props) { return ""; } } - // const tokenImage = importImage("ic_" + token.symbol.toLowerCase() + "_24.svg"); return (
@@ -1337,7 +1443,6 @@ export default function GlpSwap(props) {
- {/*
*/}
diff --git a/src/config/contracts.ts b/src/config/contracts.ts index 6142e831..11edb5ac 100644 --- a/src/config/contracts.ts +++ b/src/config/contracts.ts @@ -90,6 +90,7 @@ const CONTRACTS = { OpenStaking: "0x214cEc9402F81622Ee97837Ced73C43f4f7f4a89", OapRewardRouter: "0x0a27866A7943E90d3c65A60151ecfB0f79212BbA", FeeSwap: "0x62b03139c01eE27f5CF046391D3c7AB4498cD363", + OAPRouter: "0x00F8f46081192F4F5a28239F3dd3212257362810", }, [TESTNET]: { // bsc testnet @@ -124,7 +125,7 @@ const CONTRACTS = { VaultReader: "0xedd72c61c4cDB7DD27a80d0E9759ae0B29f57DB4", Reader: "0x63CFA7667eD8DeC340c4c8C174f86B7D6c2a2E54", GlpManager: "0x5b7a04b9f5f88f215920fdcc704084349530dcc7", - RewardRouter: "0xdb49dE9C4812A36b724dcd82F7a3433bAd01b9D5", + RewardRouter: "0x26E8F916643fbfF603f2DD7348bA50b63A11b6b7", RewardReader: "0x5A53FBfBc993f5dF1B2af6c41C7935e2Ef84f85e", NATIVE_TOKEN: "0x612777Eea37a44F7a95E3B101C39e1E2695fa6C2", OAP: "0xC6012955CEF9137FE9B1C01361c41FBf7E8dFfD9", @@ -137,7 +138,7 @@ const CONTRACTS = { BonusGmxTracker: "0x4e30C59431681800A23CD0E4dcdA651A92ef247e", FeeGmxTracker: "0x710F155CCA8df2DC653356272d8186b5fAF406cc", StakedGlpTracker: "0xb71493222f5899407e01b840a428c33b9c03211d", - FeeGlpTracker: "0xa5c9f9deebaafcf46836c20105aeece58057634b", + FeeGlpTracker: "0xAa36DA9a236181052EB0c10d36e9459f9cEB641D", StakedGmxDistributor: "0x4980dF9955868fBB580b6c2D7D68Cbf61E00850c", StakedGlpDistributor: "0xf9063fBC9481C13EB23883473E8B435857039d88", @@ -169,8 +170,9 @@ const CONTRACTS = { FastPriceFeed: "0xAE11B05Bf243b234F850E745327B06CAf08af4Cb", VaultPriceFeed: "0xeaE0398FBD233f8b50bCC3Ba9e81F92598B77dd0", OpenStaking: "0x52c0bf0C0bF20377A478d7DD88B9c08358D9f1Fd", - OapRewardRouter: "0xdb49dE9C4812A36b724dcd82F7a3433bAd01b9D5", + OapRewardRouter: "0xc12c23162d0D9Cb956E42dB3d90f512E9f3F4A33", FeeSwap: "0xE94bC997f8Ad62f29683BA6dd1cE7d3B8C5fd315", + OAPRouter: "0xC1aFE17a22520C5ee89d4A644C447BDe86C377fF", }, [ARBITRUM_TESTNET]: { // arbitrum testnet diff --git a/src/config/tokens.ts b/src/config/tokens.ts index dc75404d..b4629dc7 100644 --- a/src/config/tokens.ts +++ b/src/config/tokens.ts @@ -96,6 +96,7 @@ export const TOKENS: { [chainId: number]: Token[] } = { decimals: 18, address: "0x612777Eea37a44F7a95E3B101C39e1E2695fa6C2", imageUrl: "https://assets.coingecko.com/coins/images/279/small/ethereum.png?1595348880", + isTempHidden: true, }, { name: "Binance Coin", diff --git a/src/lib/contracts/callContract.tsx b/src/lib/contracts/callContract.tsx index 84d58a38..19b50eba 100644 --- a/src/lib/contracts/callContract.tsx +++ b/src/lib/contracts/callContract.tsx @@ -37,7 +37,7 @@ export async function callContract( if (opts.value) { txnOpts.value = opts.value; } - + // txnOpts.gasLimit = 1000000; txnOpts.gasLimit = opts.gasLimit ? opts.gasLimit : await getGasLimit(contract, method, params, opts.value); await setGasPrice(txnOpts, contract.provider, chainId); @@ -73,11 +73,6 @@ export async function callContract( const [message, type, errorData] = extractError(e); - console.log("message", message); - console.log("========"); - console.log("type", type); - console.log("========"); - console.log("error data", errorData); switch (type) { case NOT_ENOUGH_FUNDS: failMsg = ( diff --git a/src/pages/Dashboard/DashboardV2.js b/src/pages/Dashboard/DashboardV2.js index d257189e..09f1b3e9 100644 --- a/src/pages/Dashboard/DashboardV2.js +++ b/src/pages/Dashboard/DashboardV2.js @@ -55,7 +55,7 @@ import SEO from "components/Common/SEO"; import useTotalVolume from "domain/useTotalVolume"; import StatsTooltip from "components/StatsTooltip/StatsTooltip"; import StatsTooltipRow from "components/StatsTooltip/StatsTooltipRow"; -import { ARBITRUM, AVALANCHE, getChainName, MAINNET } from "config/chains"; +import { ARBITRUM, AVALANCHE, getChainName, MAINNET, TESTNET } from "config/chains"; import { getServerUrl, KEEPER_BOT_API } from "config/backend"; import { contractFetcher } from "lib/contracts"; import { useInfoTokens } from "domain/tokens"; @@ -948,6 +948,7 @@ export default function DashboardV2() { {chainId === AVALANCHE && {t`Avalanche} {chainId === ARBITRUM && {t`Arbitrum} {chainId === MAINNET && bscIcon} + {chainId === TESTNET && bscIcon}
@@ -1046,6 +1047,7 @@ export default function DashboardV2() { {chainId === AVALANCHE && {t`Avalanche} {chainId === ARBITRUM && {t`Arbitrum} {chainId === MAINNET && bscIcon} + {chainId === TESTNET && bscIcon}
{visibleTokens.map((token) => {