UNPKG

synthetix

Version:

The smart contracts which make up the Synthetix system. (synthetix.io)

996 lines 1.2 MB
{ "targets": { "SafeDecimalMath": { "name": "SafeDecimalMath", "address": "0x905c5ff75c58213d6e873D5BE576e3479456c9f4", "source": "SafeDecimalMath", "link": "https://goerli.etherscan.io/address/0x905c5ff75c58213d6e873D5BE576e3479456c9f4", "timestamp": "2020-09-25T00:15:35.572Z", "txn": "", "network": "goerli" }, "Math": { "name": "Math", "address": "0x5F010E3010d46cBdE975e65D97Ec3C12bB83D1ae", "source": "Math", "link": "https://goerli.etherscan.io/address/0x5F010E3010d46cBdE975e65D97Ec3C12bB83D1ae", "timestamp": "2020-09-25T00:15:35.855Z", "txn": "", "network": "goerli" }, "AddressResolver": { "name": "AddressResolver", "address": "0xCDe046E1c635d2D9F69E2081d46732d249c8465F", "source": "AddressResolver", "link": "https://goerli.etherscan.io/address/0xCDe046E1c635d2D9F69E2081d46732d249c8465F", "timestamp": "2020-09-25T00:15:36.613Z", "txn": "", "network": "goerli" }, "ReadProxyAddressResolver": { "name": "ReadProxyAddressResolver", "address": "0x5f3D814ccA40b364c38655E30aE94905146c938D", "source": "ReadProxy", "link": "https://goerli.etherscan.io/address/0x5f3D814ccA40b364c38655E30aE94905146c938D", "timestamp": "2020-09-25T00:15:36.841Z", "txn": "", "network": "goerli" }, "FlexibleStorage": { "name": "FlexibleStorage", "address": "0x541A50739e35078aBF4Ce890DBE887e75A8B5Db4", "source": "FlexibleStorage", "link": "https://goerli.etherscan.io/address/0x541A50739e35078aBF4Ce890DBE887e75A8B5Db4", "timestamp": "2020-09-25T00:15:37.748Z", "txn": "", "network": "goerli" }, "SystemSettings": { "name": "SystemSettings", "address": "0xF3B9E277095eacB82Fc565AF41fa334F422f1cc8", "source": "SystemSettings", "link": "https://goerli.etherscan.io/address/0xF3B9E277095eacB82Fc565AF41fa334F422f1cc8", "timestamp": "2020-10-13T21:40:35.835Z", "txn": "", "network": "goerli" }, "SystemStatus": { "name": "SystemStatus", "address": "0xEeF008BFEC2E89FA833F764059442Cc06a006903", "source": "SystemStatus", "link": "https://goerli.etherscan.io/address/0xEeF008BFEC2E89FA833F764059442Cc06a006903", "timestamp": "2020-09-25T00:15:38.375Z", "txn": "", "network": "goerli" }, "ExchangeRates": { "name": "ExchangeRates", "address": "0xaDA5F96e7fc44523E4d1c14DF7D79e3A9708dBc6", "source": "ExchangeRates", "link": "https://goerli.etherscan.io/address/0xaDA5F96e7fc44523E4d1c14DF7D79e3A9708dBc6", "timestamp": "2020-11-20T16:16:10.675Z", "txn": "", "network": "goerli" }, "RewardEscrow": { "name": "RewardEscrow", "address": "0xD5290dad339b7e6e05Fe3B93BAd20480d84e7a43", "source": "RewardEscrow", "link": "https://goerli.etherscan.io/address/0xD5290dad339b7e6e05Fe3B93BAd20480d84e7a43", "timestamp": "2020-09-25T00:15:39.267Z", "txn": "", "network": "goerli" }, "SynthetixEscrow": { "name": "SynthetixEscrow", "address": "0x7E9E608a8167aC07BfDBb871B3eF59356c72B3d9", "source": "SynthetixEscrow", "link": "https://goerli.etherscan.io/address/0x7E9E608a8167aC07BfDBb871B3eF59356c72B3d9", "timestamp": "2020-09-25T00:15:39.495Z", "txn": "", "network": "goerli" }, "SynthetixState": { "name": "SynthetixState", "address": "0x15Bd1F44324c9A6960CA286e4F985D6109063B08", "source": "SynthetixState", "link": "https://goerli.etherscan.io/address/0x15Bd1F44324c9A6960CA286e4F985D6109063B08", "timestamp": "2020-09-25T00:15:39.754Z", "txn": "", "network": "goerli" }, "ProxyFeePool": { "name": "ProxyFeePool", "address": "0xc0c03aC23ee7E4aB81C4b8ccC32e5EA2e247709E", "source": "Proxy", "link": "https://goerli.etherscan.io/address/0xc0c03aC23ee7E4aB81C4b8ccC32e5EA2e247709E", "timestamp": "2020-09-25T00:15:39.950Z", "txn": "", "network": "goerli" }, "DelegateApprovalsEternalStorage": { "name": "DelegateApprovalsEternalStorage", "address": "0x86cC20E50BeC265E43855389b5BC5B95CB065668", "source": "EternalStorage", "link": "https://goerli.etherscan.io/address/0x86cC20E50BeC265E43855389b5BC5B95CB065668", "timestamp": "2020-09-25T00:15:40.349Z", "txn": "", "network": "goerli" }, "DelegateApprovals": { "name": "DelegateApprovals", "address": "0x299A0df558B16B31d7E911651637f4C8109CCdb0", "source": "DelegateApprovals", "link": "https://goerli.etherscan.io/address/0x299A0df558B16B31d7E911651637f4C8109CCdb0", "timestamp": "2020-09-25T00:15:40.572Z", "txn": "", "network": "goerli" }, "Liquidations": { "name": "Liquidations", "address": "0x26C8b55fFa1f1bE8b44c971C78d666715Ab876e4", "source": "Liquidations", "link": "https://goerli.etherscan.io/address/0x26C8b55fFa1f1bE8b44c971C78d666715Ab876e4", "timestamp": "2020-09-25T00:15:41.362Z", "txn": "", "network": "goerli" }, "EternalStorageLiquidations": { "name": "EternalStorageLiquidations", "address": "0x3c1ec450eEE19F0374D9025421645845cF9bF28c", "source": "EternalStorage", "link": "https://goerli.etherscan.io/address/0x3c1ec450eEE19F0374D9025421645845cF9bF28c", "timestamp": "2020-09-25T00:15:41.595Z", "txn": "", "network": "goerli" }, "FeePoolEternalStorage": { "name": "FeePoolEternalStorage", "address": "0x4160D670f33D6a45bFb4009C8E958004651dfCA6", "source": "FeePoolEternalStorage", "link": "https://goerli.etherscan.io/address/0x4160D670f33D6a45bFb4009C8E958004651dfCA6", "timestamp": "2020-09-25T00:15:42.646Z", "txn": "", "network": "goerli" }, "FeePool": { "name": "FeePool", "address": "0xDD130ed8644E42D7f961711543D6601c07a291B7", "source": "FeePool", "link": "https://goerli.etherscan.io/address/0xDD130ed8644E42D7f961711543D6601c07a291B7", "timestamp": "2020-09-25T00:15:42.999Z", "txn": "", "network": "goerli" }, "FeePoolState": { "name": "FeePoolState", "address": "0x6D4Cb3495739DA23edC585f9dd91343641Ac1940", "source": "FeePoolState", "link": "https://goerli.etherscan.io/address/0x6D4Cb3495739DA23edC585f9dd91343641Ac1940", "timestamp": "2020-09-25T00:15:43.925Z", "txn": "", "network": "goerli" }, "RewardsDistribution": { "name": "RewardsDistribution", "address": "0x557c7C8d97526E65D007262267d6F25F35489c1D", "source": "RewardsDistribution", "link": "https://goerli.etherscan.io/address/0x557c7C8d97526E65D007262267d6F25F35489c1D", "timestamp": "2020-09-25T00:15:44.721Z", "txn": "", "network": "goerli" }, "ProxyERC20": { "name": "ProxyERC20", "address": "0x4093eB7D7DeF2dcaE3e53555fc99CE46C8E458B1", "source": "ProxyERC20", "link": "https://goerli.etherscan.io/address/0x4093eB7D7DeF2dcaE3e53555fc99CE46C8E458B1", "timestamp": "2020-09-25T00:15:45.022Z", "txn": "", "network": "goerli" }, "TokenStateSynthetix": { "name": "TokenStateSynthetix", "address": "0xc449ce6cd726c0bf7373ecf4888E5f6Ee6dB5aF4", "source": "TokenState", "link": "https://goerli.etherscan.io/address/0xc449ce6cd726c0bf7373ecf4888E5f6Ee6dB5aF4", "timestamp": "2020-09-25T00:15:45.657Z", "txn": "", "network": "goerli" }, "Synthetix": { "name": "Synthetix", "address": "0xa1Ad2d2Bcc5bDf8c48840e11a71297B15F610Fe1", "source": "MintableSynthetix", "link": "https://goerli.etherscan.io/address/0xa1Ad2d2Bcc5bDf8c48840e11a71297B15F610Fe1", "timestamp": "2020-11-20T16:16:13.885Z", "txn": "", "network": "goerli" }, "ProxySynthetix": { "name": "ProxySynthetix", "address": "0x86272D814a997a46EB21fF56DBfE21921b2C0406", "source": "Proxy", "link": "https://goerli.etherscan.io/address/0x86272D814a997a46EB21fF56DBfE21921b2C0406", "timestamp": "2020-09-25T00:15:46.796Z", "txn": "", "network": "goerli" }, "Exchanger": { "name": "Exchanger", "address": "0x1c1335475Aa4Ad3d937c5df4954E4f3677Da48a6", "source": "Exchanger", "link": "https://goerli.etherscan.io/address/0x1c1335475Aa4Ad3d937c5df4954E4f3677Da48a6", "timestamp": "2020-11-20T16:16:18.613Z", "txn": "", "network": "goerli" }, "ExchangeState": { "name": "ExchangeState", "address": "0x75EbcFA47ABE47b012061D045c53017E55b94C6e", "source": "ExchangeState", "link": "https://goerli.etherscan.io/address/0x75EbcFA47ABE47b012061D045c53017E55b94C6e", "timestamp": "2020-09-25T00:15:48.079Z", "txn": "", "network": "goerli" }, "Issuer": { "name": "Issuer", "address": "0xF45B14ddaBF0F0e275E215b94dD24Ae013a27F12", "source": "Issuer", "link": "https://goerli.etherscan.io/address/0xF45B14ddaBF0F0e275E215b94dD24Ae013a27F12", "timestamp": "2020-11-20T16:16:22.674Z", "txn": "", "network": "goerli" }, "TradingRewards": { "name": "TradingRewards", "address": "0x45602503BF457df5D206e9E800Da4B786d6BC5dc", "source": "TradingRewards", "link": "https://goerli.etherscan.io/address/0x45602503BF457df5D206e9E800Da4B786d6BC5dc", "timestamp": "2020-09-25T00:15:49.929Z", "txn": "", "network": "goerli" }, "EscrowChecker": { "name": "EscrowChecker", "address": "0x48364120c2330e780678ACb6da7C98B6842C5679", "source": "EscrowChecker", "link": "https://goerli.etherscan.io/address/0x48364120c2330e780678ACb6da7C98B6842C5679", "timestamp": "2020-09-25T00:15:50.451Z", "txn": "", "network": "goerli" }, "SupplySchedule": { "name": "SupplySchedule", "address": "0x159B105D8f9F1341C7aAAafF19aFb569c17297F3", "source": "FixedSupplySchedule", "link": "https://goerli.etherscan.io/address/0x159B105D8f9F1341C7aAAafF19aFb569c17297F3", "timestamp": "2020-09-25T00:15:51.485Z", "txn": "", "network": "goerli" }, "TokenStatesUSD": { "name": "TokenStatesUSD", "address": "0xc081FB7104e7eC62bfdaE4983A782b110b162C39", "source": "TokenState", "link": "https://goerli.etherscan.io/address/0xc081FB7104e7eC62bfdaE4983A782b110b162C39", "timestamp": "2020-09-25T00:15:52.920Z", "txn": "", "network": "goerli" }, "ProxysUSD": { "name": "ProxysUSD", "address": "0xd5cCFDD54E82E2aceFF1cF5479a925228380a503", "source": "ProxyERC20", "link": "https://goerli.etherscan.io/address/0xd5cCFDD54E82E2aceFF1cF5479a925228380a503", "timestamp": "2020-09-25T00:15:53.118Z", "txn": "", "network": "goerli" }, "ProxyERC20sUSD": { "name": "ProxyERC20sUSD", "address": "0x85a02d90B62c454d69eE1F3660BA5c2135Da0cd2", "source": "ProxyERC20", "link": "https://goerli.etherscan.io/address/0x85a02d90B62c454d69eE1F3660BA5c2135Da0cd2", "timestamp": "2020-09-25T00:15:53.419Z", "txn": "", "network": "goerli" }, "SynthsUSD": { "name": "SynthsUSD", "address": "0xF0DCA25941c5Fd1D440868a41a5581898e6d6d07", "source": "Synth", "link": "https://goerli.etherscan.io/address/0xF0DCA25941c5Fd1D440868a41a5581898e6d6d07", "timestamp": "2020-09-25T00:15:53.654Z", "txn": "", "network": "goerli" }, "EtherCollateral": { "name": "EtherCollateral", "address": "0x02831AFf776e03aD633E518f167c21a0d9d587fC", "source": "EmptyEtherCollateral", "link": "https://goerli.etherscan.io/address/0x02831AFf776e03aD633E518f167c21a0d9d587fC", "timestamp": "2020-09-25T00:15:55.605Z", "txn": "", "network": "goerli" }, "EtherCollateralsUSD": { "name": "EtherCollateralsUSD", "address": "0x1b022bA8333d6b942FC02917D86564855Bd5F3B9", "source": "EmptyEtherCollateral", "link": "https://goerli.etherscan.io/address/0x1b022bA8333d6b942FC02917D86564855Bd5F3B9", "timestamp": "2020-09-25T00:15:55.796Z", "txn": "", "network": "goerli" }, "SynthUtil": { "name": "SynthUtil", "address": "0xa88f384F338f7d80510faf1e35B2633719f51289", "source": "SynthUtil", "link": "https://goerli.etherscan.io/address/0xa88f384F338f7d80510faf1e35B2633719f51289", "timestamp": "2020-09-25T00:15:56.289Z", "txn": "", "network": "goerli" }, "DappMaintenance": { "name": "DappMaintenance", "address": "0x2cab1E6f4c055EF765724165c85eAEA6Fc8725cc", "source": "DappMaintenance", "link": "https://goerli.etherscan.io/address/0x2cab1E6f4c055EF765724165c85eAEA6Fc8725cc", "timestamp": "2020-09-25T00:15:56.588Z", "txn": "", "network": "goerli" }, "DebtCache": { "name": "DebtCache", "address": "0xa6e5DA838D3b8338783E0710E1D5F6C8e8E998CE", "source": "RealtimeDebtCache", "link": "https://goerli.etherscan.io/address/0xa6e5DA838D3b8338783E0710E1D5F6C8e8E998CE", "timestamp": "2020-11-20T16:16:16.436Z", "txn": "", "network": "goerli" }, "SynthetixBridgeToBase": { "name": "SynthetixBridgeToBase", "address": "0x5A081fa7e3483504385e7C804AB1509499e2A408", "source": "SynthetixBridgeToBase", "link": "https://goerli.etherscan.io/address/0x5A081fa7e3483504385e7C804AB1509499e2A408", "timestamp": "2020-12-03T00:26:12.697Z", "txn": "", "network": "goerli" } }, "sources": { "SafeDecimalMath": { "bytecode": "61013b610056600b82828239805160001a60731461001957fe5b5a63996d79a5598160e01b8152602081600483336000905af180610043576040513d6000823e3d81fd5b81519350505050600052607381538281f3fe7300000000000000000000000000000000000000005a63996d79a5598160e01b8152602081600483336000905af18061003e576040513d6000823e3d81fd5b815193505050501460806040526004361061009c5760003560e01c8063313ce567146100a1578063864029e7146100bf578063907af6c0146100d95780639d8e2177146100e1578063d5e5e6e6146100e9578063def4419d146100f1575b600080fd5b6100a96100f9565b60405160ff909116815260200160405180910390f35b6100c76100fe565b60405190815260200160405180910390f35b6100c761010e565b6100c761011a565b6100c7610126565b6100a9610136565b601281565b6b033b2e3c9fd0803ce800000081565b670de0b6b3a764000090565b670de0b6b3a764000081565b6b033b2e3c9fd0803ce800000090565b601b8156", "abi": [ { "constant": true, "inputs": [], "name": "PRECISE_UNIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x864029e7" }, { "constant": true, "inputs": [], "name": "UNIT", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x9d8e2177" }, { "constant": true, "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x313ce567" }, { "constant": true, "inputs": [], "name": "highPrecisionDecimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0xdef4419d" }, { "constant": true, "inputs": [], "name": "preciseUnit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "pure", "type": "function", "signature": "0xd5e5e6e6" }, { "constant": true, "inputs": [], "name": "unit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "pure", "type": "function", "signature": "0x907af6c0" } ], "source": { "keccak256": "0xbcc09d9e0a315788c29a9c5800737f6a4743b938f04628056a2640a63cb47715", "urls": [ "bzz-raw://694e78fb8d5c57be39da4d8252801bbbe1fa76e00ba4002083878208e78709d0", "dweb:/ipfs/QmapHe8ZjoSx9PJvCBqxVHZaL5UyCJhch6hh7cYBECEsF8" ] }, "metadata": { "compiler": { "version": "0.5.16+commit.ff18a1b2" }, "language": "Solidity", "settings": { "compilationTarget": { "SafeDecimalMath.sol": "SafeDecimalMath" }, "evmVersion": "istanbul", "libraries": {}, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [] }, "sources": { "SafeDecimalMath.sol": { "keccak256": "0xbcc09d9e0a315788c29a9c5800737f6a4743b938f04628056a2640a63cb47715", "urls": [ "bzz-raw://694e78fb8d5c57be39da4d8252801bbbe1fa76e00ba4002083878208e78709d0", "dweb:/ipfs/QmapHe8ZjoSx9PJvCBqxVHZaL5UyCJhch6hh7cYBECEsF8" ] } }, "version": 1 } }, "Math": { "bytecode": "604f610055600b82828239805160001a60731461001857fe5b5a63996d79a5598160e01b8152602081600483336000905af180610042576040513d6000823e3d81fd5b81519350505050600052607381538281f3fe7300000000000000000000000000000000000000005a63996d79a5598160e01b8152602081600483336000905af180603d576040513d6000823e3d81fd5b81519350505050146080604052600080fd", "abi": [], "source": { "keccak256": "0xa613ae2a85dbfbbad71e4b441b6c801f012a9e6690fd7dd7c2f9684ccd644799", "urls": [ "bzz-raw://0727d0a172c6202350c9d489e84e9776f3240160684db318e6412b2e117b9266", "dweb:/ipfs/QmWDXTz8P6L5G52j4Wv8LQX4BQ276aV71LB8S3X6ACdKBv" ] }, "metadata": { "compiler": { "version": "0.5.16+commit.ff18a1b2" }, "language": "Solidity", "settings": { "compilationTarget": { "Math.sol": "Math" }, "evmVersion": "istanbul", "libraries": {}, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [] }, "sources": { "Math.sol": { "keccak256": "0xa613ae2a85dbfbbad71e4b441b6c801f012a9e6690fd7dd7c2f9684ccd644799", "urls": [ "bzz-raw://0727d0a172c6202350c9d489e84e9776f3240160684db318e6412b2e117b9266", "dweb:/ipfs/QmWDXTz8P6L5G52j4Wv8LQX4BQ276aV71LB8S3X6ACdKBv" ] } }, "version": 1 } }, "AddressResolver": { "bytecode": "608060405234801561001057600080fd5b50604051610b05380380610b058339818101604052602081101561003357600080fd5b8101908080519250829150506001600160a01b0381166100995760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015260640160405180910390fd5b8060006001816100a761011a565b816001600160a01b0302191690836001600160a01b03160217906100c9610152565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000826040516001600160a01b039283168152911660208201526040908101905180910390a1505061018c565b6320966208598160e01b8152836004820152602081602483336000905af180610149576040513d6000823e3d81fd5b81519450505050565b6328dcb2a0598160e01b8152836004820152846024820152600081604483336000905af180610187576040513d6000823e3d81fd5b505050565b61096a8061019b6000396000f3fe608060405234801561001057600080fd5b50600436106100935760003560e01c806353a47bb71161006657806353a47bb71461013357806379ba50971461013b5780638da5cb5b14610143578063ab0b8f771461014b578063dacb2d011461020d57610093565b80631627540c14610098578063187f7935146100c057806321f8a721146100f95780635145606114610116575b600080fd5b6100be600480360360208110156100ae57600080fd5b50356001600160a01b0316610284565b005b6100dd600480360360208110156100d657600080fd5b50356102fe565b6040516001600160a01b03909116815260200160405180910390f35b6100dd6004803603602081101561010f57600080fd5b503561032b565b6100dd6004803603602081101561012c57600080fd5b503561035b565b6100dd610478565b6100be610484565b6100dd6105fe565b6100be6004803603604081101561016157600080fd5b81019060208101813564010000000081111561017c57600080fd5b82018360208201111561018e57600080fd5b803590602001918460208302840111640100000000831117156101b057600080fd5b9193909290916020810190356401000000008111156101ce57600080fd5b8201836020820111156101e057600080fd5b8035906020019184602083028401116401000000008311171561020257600080fd5b509092509050610609565b6100dd6004803603604081101561022357600080fd5b8135919081019060408101602082013564010000000081111561024557600080fd5b82018360208201111561025757600080fd5b8035906020019184600183028401116401000000008311171561027957600080fd5b5090925090506106ef565b61028c610777565b80600180806102996107eb565b816001600160a01b0302191690836001600160a01b03160217906102bb610823565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516001600160a01b03909116815260200160405180910390a150565b6002602052806000526040600020600091506103186107eb565b906101000a90046001600160a01b031681565b60008181526002602052604081206000906103446107eb565b906101000a90046001600160a01b03169050919050565b6524b9b9bab2b960d11b60009081526002602052806040812060009061037f6107eb565b6001600160a01b036101009290920a9004169050806103e45760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742066696e64204973737565722061646472657373000000000000604482015260640160405180910390fd5b806001600160a01b03166332608039846040516001600160e01b031960e084901b16815260048101919091526024016020604051808303818680610426610858565b15801561043257600080fd5b505a61043c610887565b5050505050158015610452573d6000803e3d6000fd5b505050506040513d602081101561046857600080fd5b8101908080519695505050505050565b600060016103186107eb565b600060016104906107eb565b906101000a90046001600160a01b03166001600160a01b03165a6104b26108dc565b6001600160a01b0316146104f75760405162461bcd60e51b81526004018080602001828103825260358152602001806109066035913960400191505060405180910390fd5b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000806105236107eb565b906101000a90046001600160a01b031660016000906105406107eb565b906101000a90046001600160a01b03166040516001600160a01b039283168152911660208201526040908101905180910390a16000600161057f6107eb565b906101000a90046001600160a01b03166000806101000a8161059f6107eb565b816001600160a01b0302191690836001600160a01b03160217906105c1610823565b5050506000600160006101000a816105d76107eb565b816001600160a01b0302191690836001600160a01b03160217906105f9610823565b505050565b6000806103186107eb565b610611610777565b8281146106645760405162461bcd60e51b815260206004820152601860248201527f496e707574206c656e67746873206d757374206d617463680000000000000000604482015260640160405180910390fd5b60005b838110156106e85782828281811061067b57fe5b905060200201356001600160a01b03166002600087878581811061069b57fe5b9050602002013581526020019081526020016000206001816106bb6107eb565b816001600160a01b0302191690836001600160a01b03160217906106dd610823565b505050600101610667565b5050505050565b6000838152600260205280604081206000906107096107eb565b6001600160a01b036101009290920a900416905083838261076c5760405162461bcd60e51b815260206004820190815260248201839052908190604401848480828437600083820152601f01601f19169091019450604093505050505180910390fd5b509095945050505050565b6000806107826107eb565b906101000a90046001600160a01b03166001600160a01b03165a6107a46108dc565b6001600160a01b0316146107e95760405162461bcd60e51b815260040180806020018281038252602f81526020018061093b602f913960400191505060405180910390fd5b565b6320966208598160e01b8152836004820152602081602483336000905af18061081a576040513d6000823e3d81fd5b81519450505050565b6328dcb2a0598160e01b8152836004820152846024820152600081604483336000905af1806105f9576040513d6000823e3d81fd5b63c3382d0f598160e01b8152836004820152602081602483336000905af18061081a576040513d6000823e3d81fd5b63fbb0f79d598160e01b815284600482015260005b878110156108b757808701518282016024015260200161089c565b5088888860240183336000905af1806108d6576040513d6000823e3d81fd5b98505050565b6373509064598160e01b8152602081600483336000905af18061081a576040513d6000823e3d81fdfe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e", "abi": [ { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor", "signature": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldOwner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnerChanged", "type": "event", "signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnerNominated", "type": "event", "signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22" }, { "constant": false, "inputs": [], "name": "acceptOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0x79ba5097" }, { "constant": true, "inputs": [ { "internalType": "bytes32", "name": "name", "type": "bytes32" } ], "name": "getAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x21f8a721" }, { "constant": true, "inputs": [ { "internalType": "bytes32", "name": "key", "type": "bytes32" } ], "name": "getSynth", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x51456061" }, { "constant": false, "inputs": [ { "internalType": "bytes32[]", "name": "names", "type": "bytes32[]" }, { "internalType": "address[]", "name": "destinations", "type": "address[]" } ], "name": "importAddresses", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0xab0b8f77" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "nominateNewOwner", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0x1627540c" }, { "constant": true, "inputs": [], "name": "nominatedOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x53a47bb7" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x8da5cb5b" }, { "constant": true, "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "repository", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x187f7935" }, { "constant": true, "inputs": [ { "internalType": "bytes32", "name": "name", "type": "bytes32" }, { "internalType": "string", "name": "reason", "type": "string" } ], "name": "requireAndGetAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0xdacb2d01" } ], "source": { "keccak256": "0x9c12bd129e71f48aaea820e7617a561571ea25b10c6a90d69f9614bfb05556b3", "urls": [ "bzz-raw://8478a08eeab609d91834bb3ea2562b3b528adb9167caeceb41299caf4746b0d2", "dweb:/ipfs/QmdE6Eemm6bwxRaQnaqxGMo8dajJ4FSHBAVMPHk4iLByEn" ] }, "metadata": { "compiler": { "version": "0.5.16+commit.ff18a1b2" }, "language": "Solidity", "settings": { "compilationTarget": { "AddressResolver.sol": "AddressResolver" }, "evmVersion": "istanbul", "libraries": {}, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [] }, "sources": { "AddressResolver.sol": { "keccak256": "0x9c12bd129e71f48aaea820e7617a561571ea25b10c6a90d69f9614bfb05556b3", "urls": [ "bzz-raw://8478a08eeab609d91834bb3ea2562b3b528adb9167caeceb41299caf4746b0d2", "dweb:/ipfs/QmdE6Eemm6bwxRaQnaqxGMo8dajJ4FSHBAVMPHk4iLByEn" ] } }, "version": 1 } }, "ReadProxy": { "bytecode": "608060405234801561001057600080fd5b506040516107433803806107438339818101604052602081101561003357600080fd5b8101908080519250829150506001600160a01b0381166100995760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015260640160405180910390fd5b8060006001816100a761011a565b816001600160a01b0302191690836001600160a01b03160217906100c9610152565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000826040516001600160a01b039283168152911660208201526040908101905180910390a1505061018c565b6320966208598160e01b8152836004820152602081602483336000905af180610149576040513d6000823e3d81fd5b81519450505050565b6328dcb2a0598160e01b8152836004820152846024820152600081604483336000905af180610187576040513d6000823e3d81fd5b505050565b6105a88061019b6000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c80631627540c1461009957806353a47bb7146100c1578063776d1a01146100e557806379ba50971461010b5780638da5cb5b14610113578063d4b839921461011b575b36600080376000803660006002610077610458565b5a610080610490565b50505050503d6000803e80610094573d6000fd5b3d6000f35b6100bf600480360360208110156100af57600080fd5b50356001600160a01b0316610123565b005b6100c961019d565b6040516001600160a01b03909116815260200160405180910390f35b6100bf600480360360208110156100fb57600080fd5b50356001600160a01b03166101bc565b6100bf610253565b6100c96103cd565b6100c96103d8565b61012b6103e4565b8060018080610138610458565b816001600160a01b0302191690836001600160a01b031602179061015a6104e5565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516001600160a01b03909116815260200160405180910390a150565b600060016101a9610458565b906101000a90046001600160a01b031681565b6101c46103e4565b8060026001816101d2610458565b816001600160a01b0302191690836001600160a01b03160217906101f46104e5565b5050507f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e6002600090610225610458565b906101000a90046001600160a01b03166040516001600160a01b03909116815260200160405180910390a150565b6000600161025f610458565b906101000a90046001600160a01b03166001600160a01b03165a61028161051a565b6001600160a01b0316146102c65760405162461bcd60e51b81526004018080602001828103825260358152602001806105446035913960400191505060405180910390fd5b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000806102f2610458565b906101000a90046001600160a01b0316600160009061030f610458565b906101000a90046001600160a01b03166040516001600160a01b039283168152911660208201526040908101905180910390a16000600161034e610458565b906101000a90046001600160a01b03166000806101000a8161036e610458565b816001600160a01b0302191690836001600160a01b03160217906103906104e5565b5050506000600160006101000a816103a6610458565b816001600160a01b0302191690836001600160a01b03160217906103c86104e5565b505050565b6000806101a9610458565b600060026101a9610458565b6000806103ef610458565b906101000a90046001600160a01b03166001600160a01b03165a61041161051a565b6001600160a01b0316146104565760405162461bcd60e51b815260040180806020018281038252602f815260200180610579602f913960400191505060405180910390fd5b565b6320966208598160e01b8152836004820152602081602483336000905af180610487576040513d6000823e3d81fd5b81519450505050565b63fbb0f79d598160e01b815284600482015260005b878110156104c05780870151828201602401526020016104a5565b5088888860240183336000905af1806104df576040513d6000823e3d81fd5b98505050565b6328dcb2a0598160e01b8152836004820152846024820152600081604483336000905af1806103c8576040513d6000823e3d81fd5b6373509064598160e01b8152602081600483336000905af180610487576040513d6000823e3d81fdfe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e", "abi": [ { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor", "signature": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldOwner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnerChanged", "type": "event", "signature": "0xb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnerNominated", "type": "event", "signature": "0x906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "newTarget", "type": "address" } ], "name": "TargetUpdated", "type": "event", "signature": "0x814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e" }, { "payable": false, "stateMutability": "nonpayable", "type": "fallback" }, { "constant": false, "inputs": [], "name": "acceptOwnership", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0x79ba5097" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "nominateNewOwner", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0x1627540c" }, { "constant": true, "inputs": [], "name": "nominatedOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x53a47bb7" }, { "constant": true, "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x8da5cb5b" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "_target", "type": "address" } ], "name": "setTarget", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0x776d1a01" }, { "constant": true, "inputs": [], "name": "target", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0xd4b83992" } ], "source": { "keccak256": "0xd2601016da827c10373daaf03fd5a2f07227cccc4db763a5165909c6d3cd56a9", "urls": [ "bzz-raw://81fe1fce1c17ec640fd7ed214fe9e578af63a5c78e35c47780c5d8c8ac4f7922", "dweb:/ipfs/QmaN7DtNSjEmvU1ELaNqDfxs26JEZ4GdDWE9EyhtNQzXL4" ] }, "metadata": { "compiler": { "version": "0.5.16+commit.ff18a1b2" }, "language": "Solidity", "settings": { "compilationTarget": { "ReadProxy.sol": "ReadProxy" }, "evmVersion": "istanbul", "libraries": {}, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [] }, "sources": { "ReadProxy.sol": { "keccak256": "0xd2601016da827c10373daaf03fd5a2f07227cccc4db763a5165909c6d3cd56a9", "urls": [ "bzz-raw://81fe1fce1c17ec640fd7ed214fe9e578af63a5c78e35c47780c5d8c8ac4f7922", "dweb:/ipfs/QmaN7DtNSjEmvU1ELaNqDfxs26JEZ4GdDWE9EyhtNQzXL4" ] } }, "version": 1 } }, "FlexibleStorage": { "bytecode": "60806040523480156200001157600080fd5b5060405162002fb538038062002fb5833981810160405260208110156200003757600080fd5b810190808051925082915081905060006001816200005462000083565b816001600160a01b0302191690836001600160a01b031602179062000078620000bc565b5050505050620000f7565b6320966208598160e01b8152836004820152602081602483336000905af180620000b3576040513d6000823e3d81fd5b81519450505050565b6328dcb2a0598160e01b8152836004820152846024820152600081604483336000905af180620000f2576040513d6000823e3d81fd5b505050565b612eae80620001076000396000f3fe608060405234801561001057600080fd5b50600436106101c35760003560e01c80638ca0adaf116100f9578063c89eb56211610097578063d994502d11610071578063d994502d146109c5578063f7833c5d146109fc578063f9c39d2f14610a1f578063fdfc4c1314610ae4576101c3565b8063c89eb562146108ba578063d658d2e91461097f578063d71a9b011461099c576101c3565b8063ab15985d116100d3578063ab15985d146106e8578063b67fa7ed146107ad578063c13a2b0c14610822578063c4f610ed14610897576101c3565b80638ca0adaf1461062d5780638f6b95a3146106a25780639ee5955a146106c5576101c3565b806335ab2708116101665780634dca0978116101405780634dca0978146105375780635bda91e2146105695780636a59e495146105945780638408a5e5146105b8576101c3565b806335ab2708146104245780633bd6ad89146104475780633f28a6fc1461050c576101c3565b80631625e3ef116101a25780631625e3ef1461038057806318f662ed146103a35780631d5b277f146103c657806323257c2b146103ef576101c3565b80624b62d6146101c857806303cdc017146101f3578063142a391e146102b8575b600080fd5b6101f1600480360360608110156101de57600080fd5b5080359060208101359060400135610b07565b005b6101f16004803603606081101561020957600080fd5b81359190810190604081016020820135600160201b81111561022a57600080fd5b82018360208201111561023c57600080fd5b803590602001918460208302840111600160201b8311171561025d57600080fd5b919390929091602081019035600160201b81111561027a57600080fd5b82018360208201111561028c57600080fd5b803590602001918460208302840111600160201b831117156102ad57600080fd5b509092509050610c35565b61032d600480360360408110156102ce57600080fd5b81359190810190604081016020820135600160201b8111156102ef57600080fd5b82018360208201111561030157600080fd5b803590602001918460208302840111600160201b8311171561032257600080fd5b509092509050610dde565b60405160208082528190810183818151815260200191508051906020019060200280838360005b8381101561036c578082015183820152602001610354565b505050509050019250505060405180910390f35b6101f16004803603604081101561039657600080fd5b5080359060200135610e99565b6101f1600480360360408110156103b957600080fd5b50803590602001356110a4565b6101f1600480360360608110156103dc57600080fd5b5080359060208101359060400135611288565b6104126004803603604081101561040557600080fd5b50803590602001356113af565b60405190815260200160405180910390f35b6101f16004803603604081101561043a57600080fd5b50803590602001356113f4565b6101f16004803603606081101561045d57600080fd5b81359190810190604081016020820135600160201b81111561047e57600080fd5b82018360208201111561049057600080fd5b803590602001918460208302840111600160201b831117156104b157600080fd5b919390929091602081019035600160201b8111156104ce57600080fd5b8201836020820111156104e057600080fd5b803590602001918460208302840111600160201b8311171561050157600080fd5b5090925090506115b0565b6101f16004803603606081101561052257600080fd5b50803590602081013590604001351515611758565b6101f16004803603606081101561054d57600080fd5b50803590602081013590604001356001600160a01b031661187f565b6101f16004803603606081101561057f57600080fd5b508035906020810135906040013515156119a6565b61059c611bcd565b6040516001600160a01b03909116815260200160405180910390f35b61032d600480360360408110156105ce57600080fd5b81359190810190604081016020820135600160201b8111156105ef57600080fd5b82018360208201111561060157600080fd5b803590602001918460208302840111600160201b8311171561062257600080fd5b509092509050611beb565b61032d6004803603604081101561064357600080fd5b81359190810190604081016020820135600160201b81111561066457600080fd5b82018360208201111561067657600080fd5b803590602001918460208302840111600160201b8311171561069757600080fd5b509092509050611c9b565b6101f1600480360360408110156106b857600080fd5b5080359060200135611d6b565b61059c600480360360408110156106db57600080fd5b5080359060200135611f80565b6101f1600480360360608110156106fe57600080fd5b81359190810190604081016020820135600160201b81111561071f57600080fd5b82018360208201111561073157600080fd5b803590602001918460208302840111600160201b8311171561075257600080fd5b919390929091602081019035600160201b81111561076f57600080fd5b82018360208201111561078157600080fd5b803590602001918460208302840111600160201b831117156107a257600080fd5b509092509050611fd9565b61032d600480360360408110156107c357600080fd5b81359190810190604081016020820135600160201b8111156107e457600080fd5b8201836020820111156107f657600080fd5b803590602001918460208302840111600160201b8311171561081757600080fd5b509092509050612178565b61032d6004803603604081101561083857600080fd5b81359190810190604081016020820135600160201b81111561085957600080fd5b82018360208201111561086b57600080fd5b803590602001918460208302840111600160201b8311171561088c57600080fd5b509092509050612228565b610412600480360360408110156108ad57600080fd5b50803590602001356122ea565b6101f1600480360360608110156108d057600080fd5b81359190810190604081016020820135600160201b8111156108f157600080fd5b82018360208201111561090357600080fd5b803590602001918460208302840111600160201b8311171561092457600080fd5b919390929091602081019035600160201b81111561094157600080fd5b82018360208201111561095357600080fd5b803590602001918460208302840111600160201b8311171561097457600080fd5b509092509050612303565b6104126004803603602081101561099557600080fd5b50356124a2565b6101f1600480360360608110156109b257600080fd5b50803590602081013590604001356124bd565b6109e8600480360360408110156109db57600080fd5b50803590602001356125e4565b604051901515815260200160405180910390f35b61041260048036036040811015610a1257600080fd5b5080359060200135612637565b6101f160048036036060811015610a3557600080fd5b81359190810190604081016020820135600160201b811115610a5657600080fd5b820183602082011115610a6857600080fd5b803590602001918460208302840111600160201b83111715610a8957600080fd5b919390929091602081019035600160201b811115610aa657600080fd5b820183602082011115610ab857600080fd5b803590602001918460208302840111600160201b83111715610ad957600080fd5b509092509050612650565b6101f160048036036040811015610afa57600080fd5b50803590602001356127f1565b8260008080610b14612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e3860289139604001925050506020604051808303818680610b7e612d50565b158015610b8a57600080fd5b505a610b94612d7f565b5050505050158015610baa573d6000803e3d6000fd5b505050506040513d6020811015610bc057600080fd5b81019080805193505050505a610bd4612dd4565b6001600160a01b0316816001600160a01b031614610c235760405162461bcd60e51b815260040180806020018281038252602e815260200180612e60602e913960400191505060405180910390fd5b610c2e8585856129ad565b5050505050565b8460008080610c42612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e3860289139604001925050506020604051808303818680610cac612d50565b158015610cb857600080fd5b505a610cc2612d7f565b5050505050158015610cd8573d6000803e3d6000fd5b505050506040513d6020811015610cee57600080fd5b81019080805193505050505a610d02612dd4565b6001600160a01b0316816001600160a01b031614610d515760405162461bcd60e51b815260040180806020018281038252602e815260200180612e60602e913960400191505060405180910390fd5b848314610d925760405162461bcd60e51b81526020600482015260186024820152600080516020612e8e833981519152604482015260640160405180910390fd5b60005b85811015610dd457610dcc88888884818110610dad57fe5b90506020020135878785818110610dc057fe5b90506020020135612a31565b600101610d95565b5050505050505050565b60608082604051908082528060200260200182016040528015610e0b578160200160208202803883390190505b506000868152600160205290915060038160408120610e28612d18565b8152602001908152602001600020905060005b84811015610e8e57816000878784818110610e5257fe5b905060200201358152602001908152602001600020610e6f612d18565b838281518110610e7b57fe5b6020908102919091010152600101610e3b565b509095945050505050565b8160008080610ea6612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e3860289139604001925050506020604051808303818680610f10612d50565b158015610f1c57600080fd5b505a610f26612d7f565b5050505050158015610f3c573d6000803e3d6000fd5b505050506040513d6020811015610f5257600080fd5b81019080805193505050505a610f66612dd4565b6001600160a01b0316816001600160a01b031614610fb55760405162461bcd60e51b815260040180806020018281038252602e815260200180612e60602e913960400191505060405180910390fd5b6000848152600160205260058160408120610fce612d18565b8152602001908152602001600020600085815260209190915260409020600090610ff6612d18565b906101000a900460ff1690507f321123223c2c7bffd7484ae8fb80c6eb45aa5537df0a621c47833ab9376a4a9c858583604051928352602083019190915215156040808301919091526060909101905180910390a16000858152600160205260059060408120611064612d18565b815260200190815260200160002060008581526020919091526040902060018161108c612d18565b9060ff0219169061109b612dfd565b50505050505050565b81600080806110b1612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e386028913960400192505050602060405180830381868061111b612d50565b15801561112757600080fd5b505a611131612d7f565b5050505050158015611147573d6000803e3d6000fd5b505050506040513d602081101561115d57600080fd5b81019080805193505050505a611171612dd4565b6001600160a01b0316816001600160a01b0316146111c05760405162461bcd60e51b815260040180806020018281038252602e815260200180612e60602e913960400191505060405180910390fd5b60008481526001602052600281604081206111d9612d18565b81526020019081526020016000206000858152602091909152604090206111fe612d18565b90507f8a6b612c1a1e056bc504f34fe56106a878fca2d1a50be35360d02ac39d4d466285858360405180848152602001838152602001828152602001935050505060405180910390a16000858152600160205260029060408120611260612d18565b815260200190815260200160002060008581526020919091526040902060009061109b612dfd565b8260008080611295612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e38602891396040019250505060206040518083038186806112ff612d50565b15801561130b57600080fd5b505a611315612d7f565b505050505015801561132b573d6000803e3d6000fd5b505050506040513d602081101561134157600080fd5b81019080805193505050505a611355612dd4565b6001600160a01b0316816001600160a01b0316146113a45760405162461bcd60e51b815260040180806020018281038252602e815260200180612e60602e913960400191505060405180910390fd5b610c2e858585612a31565b60008281526001602052600281604081206113c8612d18565b81526020019081526020016000206000838152602091909152604090206113ed612d18565b9392505050565b8160008080611401612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e386028913960400192505050602060405180830381868061146b612d50565b15801561147757600080fd5b505a611481612d7f565b5050505050158015611497573d6000803e3d6000fd5b505050506040513d60208110156114ad57600080fd5b81019080805193505050505a6114c1612dd4565b6001600160a01b0316816001600160a01b0316146115105760405162461bcd60e51b815260040180806020018281038252602e815260200180612e60602e913960400191505060405180910390fd5b6000848152600160205260068160408120611529612d18565b815260200190815260200160002060008581526020919091526040902061154e612d18565b90507f1f751825a531bf2a176e42d5cb792bb7228163cf53e36b033509ccbe869cfd9385858360405180848152602001838152602001828152602001935050505060405180910390a16000858152600160205260069060408120611260612d18565b84600080806115bd612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e3860289139604001925050506020604051808303818680611627612d50565b15801561163357600080fd5b505a61163d612d7f565b5050505050158015611653573d6000803e3d6000fd5b505050506040513d602081101561166957600080fd5b81019080805193505050505a61167d612dd4565b6001600160a01b0316816001600160a01b0316146116cc5760405162461bcd60e51b815260040180806020018281038252602e815260200180612e60602e913960400191505060405180910390fd5b84831461170d5760405162461bcd60e51b81526020600482015260186024820152600080516020612e8e833981519152604482015260640160405180910390fd5b60005b85811015610dd4576117508888888481811061172857fe5b9050602002013587878581811061173b57fe5b905060200201356001600160a01b0316612ab5565b600101611710565b8260008080611765612d18565b906101000a90046001600160a01b03166001600160a01b031663dacb2d01836040518263ffffffff1660e01b8152600401808281526020018060200182810382526028815260200180612e38602891396040019250505060206040518083038186806117cf612d50565b1580156117db57600080fd5b505a6117e5612d7f565b50505050501580156117fb573d6000803e3d6000fd5b505050506040513d602081101561181157600080fd5b81019080805193505050505a611825612dd4565b6001600160a