UNPKG

synthetix

Version:

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

1,068 lines 1.11 MB
{ "targets": { "SafeDecimalMath": { "name": "SafeDecimalMath", "address": "0x0142F40c25CE1F1177Ed131101FA19217396cB88", "source": "SafeDecimalMath", "link": "https://etherscan.io/address/0x0142F40c25CE1F1177Ed131101FA19217396cB88", "timestamp": "2021-01-15T05:40:43.101Z", "txn": "", "network": "mainnet" }, "Math": { "name": "Math", "address": "0x0B3A73EE0740b3130e40B2A6b5aaf59E7E3Ef74c", "source": "Math", "link": "https://etherscan.io/address/0x0B3A73EE0740b3130e40B2A6b5aaf59E7E3Ef74c", "timestamp": "2021-01-15T05:40:44.427Z", "txn": "", "network": "mainnet" }, "AddressResolver": { "name": "AddressResolver", "address": "0x95A6a3f44a70172E7d50a9e28c85Dfd712756B8C", "source": "AddressResolver", "link": "https://etherscan.io/address/0x95A6a3f44a70172E7d50a9e28c85Dfd712756B8C", "timestamp": "2021-01-15T05:40:45.820Z", "txn": "", "network": "mainnet" }, "ReadProxyAddressResolver": { "name": "ReadProxyAddressResolver", "address": "0x1Cb059b7e74fD21665968C908806143E744D5F30", "source": "ReadProxy", "link": "https://etherscan.io/address/0x1Cb059b7e74fD21665968C908806143E744D5F30", "timestamp": "2021-01-15T05:40:47.164Z", "txn": "", "network": "mainnet" }, "FlexibleStorage": { "name": "FlexibleStorage", "address": "0x47649022380d182DA8010Ae5d257fea4227b21ff", "source": "FlexibleStorage", "link": "https://etherscan.io/address/0x47649022380d182DA8010Ae5d257fea4227b21ff", "timestamp": "2021-01-15T05:40:50.897Z", "txn": "", "network": "mainnet" }, "SystemSettings": { "name": "SystemSettings", "address": "0x8454190C164e52664Af2c9C24ab58c4e14D6bbE4", "source": "SystemSettings", "link": "https://etherscan.io/address/0x8454190C164e52664Af2c9C24ab58c4e14D6bbE4", "timestamp": "2021-01-15T05:40:52.990Z", "txn": "", "network": "mainnet" }, "SystemStatus": { "name": "SystemStatus", "address": "0x357b58E0b1Be9d8A944380048fa1080c57c7A362", "source": "SystemStatus", "link": "https://etherscan.io/address/0x357b58E0b1Be9d8A944380048fa1080c57c7A362", "timestamp": "2021-01-15T05:40:54.610Z", "txn": "", "network": "mainnet" }, "ExchangeRates": { "name": "ExchangeRates", "address": "0x631E93A0fb06B5eC6d52c0A2D89a3f9672d6Ba64", "source": "ExchangeRatesWithoutInvPricing", "link": "https://etherscan.io/address/0x631E93A0fb06B5eC6d52c0A2D89a3f9672d6Ba64", "timestamp": "2021-01-15T05:40:57.042Z", "txn": "", "network": "mainnet" }, "RewardEscrow": { "name": "RewardEscrow", "address": "0xd32138018210edA0028240638f35b70ECC0D8C22", "source": "RewardEscrow", "link": "https://etherscan.io/address/0xd32138018210edA0028240638f35b70ECC0D8C22", "timestamp": "2021-01-15T05:40:59.117Z", "txn": "", "network": "mainnet" }, "RewardEscrowV2": { "name": "RewardEscrowV2", "address": "0x47eE58801C1AC44e54FF2651aE50525c5cfc66d0", "source": "ImportableRewardEscrowV2", "link": "https://etherscan.io/address/0x47eE58801C1AC44e54FF2651aE50525c5cfc66d0", "timestamp": "2021-01-15T05:41:01.548Z", "txn": "", "network": "mainnet" }, "SynthetixEscrow": { "name": "SynthetixEscrow", "address": "0x06C6D063896ac733673c4474E44d9268f2402A55", "source": "SynthetixEscrow", "link": "https://etherscan.io/address/0x06C6D063896ac733673c4474E44d9268f2402A55", "timestamp": "2021-01-15T05:41:03.357Z", "txn": "", "network": "mainnet" }, "SynthetixState": { "name": "SynthetixState", "address": "0x9770239D49Db97E77fc5Adcb5413654C9e45A510", "source": "SynthetixStateWithLimitedSetup", "link": "https://etherscan.io/address/0x9770239D49Db97E77fc5Adcb5413654C9e45A510", "timestamp": "2021-01-17T03:23:18.386Z", "txn": "", "network": "mainnet" }, "ProxyFeePool": { "name": "ProxyFeePool", "address": "0x4a16A42407AA491564643E1dfc1fd50af29794eF", "source": "Proxy", "link": "https://etherscan.io/address/0x4a16A42407AA491564643E1dfc1fd50af29794eF", "timestamp": "2021-01-15T05:41:06.241Z", "txn": "", "network": "mainnet" }, "DelegateApprovalsEternalStorage": { "name": "DelegateApprovalsEternalStorage", "address": "0x02f7fB66B55e6ca476d126d96f14c5732Eeb4363", "source": "EternalStorage", "link": "https://etherscan.io/address/0x02f7fB66B55e6ca476d126d96f14c5732Eeb4363", "timestamp": "2021-01-15T05:41:08.129Z", "txn": "", "network": "mainnet" }, "DelegateApprovals": { "name": "DelegateApprovals", "address": "0x2A23bc0EA97A89abD91214E8e4d20F02Fe14743f", "source": "DelegateApprovals", "link": "https://etherscan.io/address/0x2A23bc0EA97A89abD91214E8e4d20F02Fe14743f", "timestamp": "2021-01-15T05:41:09.484Z", "txn": "", "network": "mainnet" }, "Liquidations": { "name": "Liquidations", "address": "0x14E6f8e6Da00a32C069b11b64e48EA1FEF2361D4", "source": "Liquidations", "link": "https://etherscan.io/address/0x14E6f8e6Da00a32C069b11b64e48EA1FEF2361D4", "timestamp": "2021-01-15T05:41:12.472Z", "txn": "", "network": "mainnet" }, "EternalStorageLiquidations": { "name": "EternalStorageLiquidations", "address": "0x76d2de36936005A0182a1BB61dA501A8A044D477", "source": "EternalStorage", "link": "https://etherscan.io/address/0x76d2de36936005A0182a1BB61dA501A8A044D477", "timestamp": "2021-01-15T05:41:14.302Z", "txn": "", "network": "mainnet" }, "FeePoolEternalStorage": { "name": "FeePoolEternalStorage", "address": "0x41140Bf6498a36f2E44eFd49f21dAe3bbb7367c8", "source": "FeePoolEternalStorage", "link": "https://etherscan.io/address/0x41140Bf6498a36f2E44eFd49f21dAe3bbb7367c8", "timestamp": "2021-01-15T05:41:16.528Z", "txn": "", "network": "mainnet" }, "FeePool": { "name": "FeePool", "address": "0xF950a48E9463a13b13D75F452200E711c1c426b6", "source": "FeePool", "link": "https://etherscan.io/address/0xF950a48E9463a13b13D75F452200E711c1c426b6", "timestamp": "2021-01-17T03:23:19.758Z", "txn": "", "network": "mainnet" }, "FeePoolState": { "name": "FeePoolState", "address": "0x6e0d26cffc3a63d763F1546f749bf62ebC7d72D8", "source": "FeePoolState", "link": "https://etherscan.io/address/0x6e0d26cffc3a63d763F1546f749bf62ebC7d72D8", "timestamp": "2021-01-17T03:23:21.273Z", "txn": "", "network": "mainnet" }, "RewardsDistribution": { "name": "RewardsDistribution", "address": "0x5d9187630E99dBce4BcAB8733B76757f7F44aA2e", "source": "RewardsDistribution", "link": "https://etherscan.io/address/0x5d9187630E99dBce4BcAB8733B76757f7F44aA2e", "timestamp": "2021-01-15T05:41:25.252Z", "txn": "", "network": "mainnet" }, "ProxyERC20": { "name": "ProxyERC20", "address": "0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4", "source": "ProxyERC20", "link": "https://etherscan.io/address/0x8700dAec35aF8Ff88c16BdF0418774CB3D7599B4", "timestamp": "2021-01-15T05:41:26.674Z", "txn": "", "network": "mainnet" }, "TokenStateSynthetix": { "name": "TokenStateSynthetix", "address": "0xB9c6CA25452E7f6D0D3340CE1e9B573421afc2eE", "source": "TokenState", "link": "https://etherscan.io/address/0xB9c6CA25452E7f6D0D3340CE1e9B573421afc2eE", "timestamp": "2021-01-15T05:41:28.112Z", "txn": "", "network": "mainnet" }, "Synthetix": { "name": "Synthetix", "address": "0xD85eAFa37734E4ad237C3A3443D64DC94ae998E7", "source": "MintableSynthetix", "link": "https://etherscan.io/address/0xD85eAFa37734E4ad237C3A3443D64DC94ae998E7", "timestamp": "2021-01-15T05:41:30.256Z", "txn": "", "network": "mainnet" }, "ProxySynthetix": { "name": "ProxySynthetix", "address": "0x218067172e9E0460A883458D44BD1f56ea609502", "source": "Proxy", "link": "https://etherscan.io/address/0x218067172e9E0460A883458D44BD1f56ea609502", "timestamp": "2021-01-15T05:41:32.973Z", "txn": "", "network": "mainnet" }, "DebtCache": { "name": "DebtCache", "address": "0x5A528e35165e19f3392c9631243dd04d1229D324", "source": "RealtimeDebtCache", "link": "https://etherscan.io/address/0x5A528e35165e19f3392c9631243dd04d1229D324", "timestamp": "2021-01-15T05:41:36.130Z", "txn": "", "network": "mainnet" }, "Exchanger": { "name": "Exchanger", "address": "0xe318E4618E5684668992935d7231Cb837a44E670", "source": "Exchanger", "link": "https://etherscan.io/address/0xe318E4618E5684668992935d7231Cb837a44E670", "timestamp": "2021-01-15T05:41:38.867Z", "txn": "", "network": "mainnet" }, "ExchangeState": { "name": "ExchangeState", "address": "0x7EF87c14f50CFFe2e73d2C87916C3128c56593A8", "source": "ExchangeState", "link": "https://etherscan.io/address/0x7EF87c14f50CFFe2e73d2C87916C3128c56593A8", "timestamp": "2021-01-15T05:41:40.250Z", "txn": "", "network": "mainnet" }, "Issuer": { "name": "Issuer", "address": "0x8377b25B8564f6Be579865639776c5082CB37163", "source": "IssuerWithoutLiquidations", "link": "https://etherscan.io/address/0x8377b25B8564f6Be579865639776c5082CB37163", "timestamp": "2021-01-15T05:41:51.372Z", "txn": "", "network": "mainnet" }, "TradingRewards": { "name": "TradingRewards", "address": "0x2DcAD1A019fba8301b77810Ae14007cc88ED004B", "source": "TradingRewards", "link": "https://etherscan.io/address/0x2DcAD1A019fba8301b77810Ae14007cc88ED004B", "timestamp": "2021-01-15T05:41:53.303Z", "txn": "", "network": "mainnet" }, "EscrowChecker": { "name": "EscrowChecker", "address": "0xcdb7D0a946223255d39A6e29B54f08f3291cc118", "source": "EscrowChecker", "link": "https://etherscan.io/address/0xcdb7D0a946223255d39A6e29B54f08f3291cc118", "timestamp": "2021-01-15T05:41:56.647Z", "txn": "", "network": "mainnet" }, "TokenStatesUSD": { "name": "TokenStatesUSD", "address": "0x92bAc115d89cA17fd02Ed9357CEcA32842ACB4c2", "source": "TokenState", "link": "https://etherscan.io/address/0x92bAc115d89cA17fd02Ed9357CEcA32842ACB4c2", "timestamp": "2021-01-15T05:42:03.802Z", "txn": "", "network": "mainnet" }, "ProxysUSD": { "name": "ProxysUSD", "address": "0xbecc58c6D7Ca71b6FCC4cC8c9c5294A0eA7A0397", "source": "Proxy", "link": "https://etherscan.io/address/0xbecc58c6D7Ca71b6FCC4cC8c9c5294A0eA7A0397", "timestamp": "2021-01-15T05:42:05.158Z", "txn": "", "network": "mainnet" }, "ProxyERC20sUSD": { "name": "ProxyERC20sUSD", "address": "0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9", "source": "ProxyERC20", "link": "https://etherscan.io/address/0x8c6f28f2F1A3C87F0f938b96d27520d9751ec8d9", "timestamp": "2021-01-15T05:42:06.522Z", "txn": "", "network": "mainnet" }, "SynthsUSD": { "name": "SynthsUSD", "address": "0xF2FF43DA7B6e5963059b7004df43b5c5870EEb18", "source": "Synth", "link": "https://etherscan.io/address/0xF2FF43DA7B6e5963059b7004df43b5c5870EEb18", "timestamp": "2021-01-15T05:42:08.403Z", "txn": "", "network": "mainnet" }, "EtherCollateral": { "name": "EtherCollateral", "address": "0xC8E91c926E04BE1cb94e51c5379d14774D51ae6C", "source": "EmptyEtherCollateral", "link": "https://etherscan.io/address/0xC8E91c926E04BE1cb94e51c5379d14774D51ae6C", "timestamp": "2021-01-15T05:42:13.462Z", "txn": "", "network": "mainnet" }, "EtherCollateralsUSD": { "name": "EtherCollateralsUSD", "address": "0xC0c66470E766AE2026E6695966C56C90741811AA", "source": "EmptyEtherCollateral", "link": "https://etherscan.io/address/0xC0c66470E766AE2026E6695966C56C90741811AA", "timestamp": "2021-01-15T05:42:14.826Z", "txn": "", "network": "mainnet" }, "SynthetixBridgeToBase": { "name": "SynthetixBridgeToBase", "address": "0x4D7186818daBFe88bD80421656BbD07Dffc979Cc", "source": "SynthetixBridgeToBase", "link": "https://etherscan.io/address/0x4D7186818daBFe88bD80421656BbD07Dffc979Cc", "timestamp": "2021-01-15T05:42:16.675Z", "txn": "", "network": "mainnet" }, "CollateralManager": { "name": "CollateralManager", "address": "0x70B21B422Dade467659522892A857F0Ee31cebb4", "source": "EmptyCollateralManager", "link": "https://etherscan.io/address/0x70B21B422Dade467659522892A857F0Ee31cebb4", "timestamp": "2021-01-15T05:42:18.053Z", "txn": "", "network": "mainnet" }, "SynthUtil": { "name": "SynthUtil", "address": "0x87b1481c82913301Fc6c884Ac266a7c430F92cFA", "source": "SynthUtil", "link": "https://etherscan.io/address/0x87b1481c82913301Fc6c884Ac266a7c430F92cFA", "timestamp": "2021-01-15T05:42:19.657Z", "txn": "", "network": "mainnet" }, "DappMaintenance": { "name": "DappMaintenance", "address": "0x54581A23F62D147AC76d454f0b3eF77F9D766058", "source": "DappMaintenance", "link": "https://etherscan.io/address/0x54581A23F62D147AC76d454f0b3eF77F9D766058", "timestamp": "2021-01-15T05:42:21.010Z", "txn": "", "network": "mainnet" } }, "sources": { "SafeDecimalMath": { "bytecode": "6101d761007e600b82828239805160001a60731461001957fe5b5a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b604081101561006f57600082820152602001610058565b505050600052607381538281f3fe7300000000000000000000000000000000000000005a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b604081101561006a57600082820152602001610053565b505050146080604052600436106100c45760003560e01c8063313ce567146100d2578063864029e7146100f0578063907af6c01461010a5780639d8e217714610112578063d5e5e6e61461011a578063def4419d14610122575b6000806100cf61016c565b50505b6100da61012a565b60405160ff909116815260200160405180910390f35b6100f861012f565b60405190815260200160405180910390f35b6100f861013f565b6100f861014b565b6100f8610157565b6100da610167565b601281565b6b033b2e3c9fd0803ce800000081565b670de0b6b3a764000090565b670de0b6b3a764000081565b6b033b2e3c9fd0803ce800000090565b601b81565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156101a4578086015182820160400152602001610189565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b50505056", "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": "0x8406c1c67896f334676cfedd96a31eb55c23f1e9d4153de30bfc5eddfa22c0b5", "urls": [ "bzz-raw://76b301b161758599aedd2587a00c4a18cd5d24e96ab32f8f18dbbca1e12b8462", "dweb:/ipfs/QmQVauoKVbSHNWNshoZkWxMePWPZACGVoxA1v2GsggnZVB" ] }, "metadata": { "compiler": { "version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d" }, "language": "Solidity", "settings": { "compilationTarget": { "SafeDecimalMath.sol": "SafeDecimalMath" }, "evmVersion": "istanbul", "libraries": {}, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [] }, "sources": { "SafeDecimalMath.sol": { "keccak256": "0x8406c1c67896f334676cfedd96a31eb55c23f1e9d4153de30bfc5eddfa22c0b5", "urls": [ "bzz-raw://76b301b161758599aedd2587a00c4a18cd5d24e96ab32f8f18dbbca1e12b8462", "dweb:/ipfs/QmQVauoKVbSHNWNshoZkWxMePWPZACGVoxA1v2GsggnZVB" ] } }, "version": 1 } }, "Math": { "bytecode": "60e661007d600b82828239805160001a60731461001857fe5b5a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b604081101561006e57600082820152602001610057565b505050600052607381538281f3fe7300000000000000000000000000000000000000005a63996d79a5598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051925060005b60408110156068576000828201526020016053565b505050146080604052600080607a607d565b50505b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101560b3578086015182820160400152602001609a565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b50505056", "abi": [], "source": { "keccak256": "0xc39ebf28d65885b91f0900eea387e002381d098c5ed65d4b3eb57b2413edec03", "urls": [ "bzz-raw://7f4b7bcbc524c892fa636e5bfb73e8b3cec42c5c74839ed887976297ce234e3c", "dweb:/ipfs/QmWoXRPKhngyz5i2iXdBHZURg6zDQRX3PoS7ts8D1gjpnr" ] }, "metadata": { "compiler": { "version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d" }, "language": "Solidity", "settings": { "compilationTarget": { "Math.sol": "Math" }, "evmVersion": "istanbul", "libraries": {}, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [] }, "sources": { "Math.sol": { "keccak256": "0xc39ebf28d65885b91f0900eea387e002381d098c5ed65d4b3eb57b2413edec03", "urls": [ "bzz-raw://7f4b7bcbc524c892fa636e5bfb73e8b3cec42c5c74839ed887976297ce234e3c", "dweb:/ipfs/QmWoXRPKhngyz5i2iXdBHZURg6zDQRX3PoS7ts8D1gjpnr" ] } }, "version": 1 } }, "AddressResolver": { "bytecode": "60806040523480156200001c576000806200001962000145565b50505b506040516200124938038062001249833981810160405260208110156200004d576000806200004a62000145565b50505b8101908080519250829150506001600160a01b038116620000bf5760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f74206265203000000000000000604482015260640160405180910390620000bc62000145565b50505b806000600181620000cf620001b2565b816001600160a01b0302191690836001600160a01b0316021790620000f362000214565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000826040516001600160a01b039283168152911660208201526040908101905180910390a1505062000263565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156200017f57808601518282016040015260200162000162565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156200020f57600082820152602001620001f6565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b600081526020620001f6565b610fd680620002736000396000f3fe608060405234801561001957600080610016610c18565b50505b50600436106100b25760003560e01c8063766f78151161007a578063766f78151461018757806379ba5097146102195780638da5cb5b146102215780639f42102f14610229578063ab0b8f771461033a578063dacb2d0114610437576100b2565b80631627540c146100c0578063187f7935146100f157806321f8a72114610133578063514560611461015957806353a47bb71461017f575b6000806100bd610c18565b50505b6100ef600480360360208110156100df576000806100dc610c18565b50505b50356001600160a01b03166104d0565b005b610117600480360360208110156101105760008061010d610c18565b50505b503561054a565b6040516001600160a01b03909116815260200160405180910390f35b610117600480360360208110156101525760008061014f610c18565b50505b5035610577565b6101176004803603602081101561017857600080610175610c18565b50505b50356105a7565b6101176106e8565b6100ef600480360360208110156101a6576000806101a3610c18565b50505b810190602081018135600160201b8111156101c9576000806101c6610c18565b50505b8201836020820111156101e4576000806101e1610c18565b50505b803590602001918460208302840111600160201b8311171561020e5760008061020b610c18565b50505b5090925090506106f4565b6100ef6107a4565b610117610922565b6103266004803603604081101561024857600080610245610c18565b50505b810190602081018135600160201b81111561026b57600080610268610c18565b50505b82018360208201111561028657600080610283610c18565b50505b803590602001918460208302840111600160201b831117156102b0576000806102ad610c18565b50505b919390929091602081019035600160201b8111156102d6576000806102d3610c18565b50505b8201836020820111156102f1576000806102ee610c18565b50505b803590602001918460208302840111600160201b8311171561031b57600080610318610c18565b50505b50909250905061092d565b604051901515815260200160405180910390f35b6100ef6004803603604081101561035957600080610356610c18565b50505b810190602081018135600160201b81111561037c57600080610379610c18565b50505b82018360208201111561039757600080610394610c18565b50505b803590602001918460208302840111600160201b831117156103c1576000806103be610c18565b50505b919390929091602081019035600160201b8111156103e7576000806103e4610c18565b50505b820183602082011115610402576000806103ff610c18565b50505b803590602001918460208302840111600160201b8311171561042c57600080610429610c18565b50505b5090925090506109cc565b6101176004803603604081101561045657600080610453610c18565b50505b81359190810190604081016020820135600160201b8111156104805760008061047d610c18565b50505b82018360208201111561049b57600080610498610c18565b50505b803590602001918460018302840111600160201b831117156104c5576000806104c2610c18565b50505b509092509050610b0a565b6104d8610b9b565b80600180806104e5610c83565b816001600160a01b0302191690836001600160a01b0316021790610507610cde565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516001600160a01b03909116815260200160405180910390a150565b600260205280600052604060002060009150610564610c83565b906101000a90046001600160a01b031681565b6000818152600260205260408120600090610590610c83565b906101000a90046001600160a01b03169050919050565b6524b9b9bab2b960d11b6000908152600260205280604081206000906105cb610c83565b6001600160a01b036101009290920a9004169050806106395760405162461bcd60e51b815260206004820152601a60248201527f43616e6e6f742066696e64204973737565722061646472657373000000000000604482015260640160405180910390610636610c18565b50505b806001600160a01b03166332608039846040516001600160e01b031960e084901b1681526004810191909152602401602060405180830381868061067b610d2c565b1580156106905760008061068d610c18565b50505b505a61069a610d78565b50505050501580156106b9573d6000803e3d60006106b6610c18565b50505b505050506040513d60208110156106d8576000806106d5610c18565b50505b8101908080519695505050505050565b60006001610564610c83565b60005b8181101561079f5782828281811061070b57fe5b905060200201356001600160a01b03166001600160a01b031663741853606040518163ffffffff1660e01b815260040160006040518083038160008780610750610d2c565b15801561076557600080610762610c18565b50505b505a61076f610e65565b50505050505015801561078f573d6000803e3d600061078c610c18565b50505b5050600190920191506106f79050565b505050565b600060016107b0610c83565b906101000a90046001600160a01b03166001600160a01b03165a6107d2610f2b565b6001600160a01b0316146108205760405162461bcd60e51b8152600401808060200182810382526035815260200180610f72603591396040019150506040518091039061081d610c18565b50505b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c60008061084c610c83565b906101000a90046001600160a01b03166001600090610869610c83565b906101000a90046001600160a01b03166040516001600160a01b039283168152911660208201526040908101905180910390a1600060016108a8610c83565b906101000a90046001600160a01b03166000806101000a816108c8610c83565b816001600160a01b0302191690836001600160a01b03160217906108ea610cde565b5050506000600160006101000a81610900610c83565b816001600160a01b0302191690836001600160a01b031602179061079f610cde565b600080610564610c83565b6000805b848110156109be5783838281811061094557fe5b905060200201356001600160a01b03166001600160a01b03166002600088888581811061096e57fe5b90506020020135815260200190815260200160002060009061098e610c83565b906101000a90046001600160a01b03166001600160a01b0316146109b65760009150506109c4565b600101610931565b50600190505b949350505050565b6109d4610b9b565b828114610a305760405162461bcd60e51b815260206004820152601860248201527f496e707574206c656e67746873206d757374206d617463680000000000000000604482015260640160405180910390610a2d610c18565b50505b60005b83811015610b03576000858583818110610a4957fe5b9050602002013590506000848484818110610a6057fe5b905060200201356001600160a01b031690508060026000848152602001908152602001600020600181610a91610c83565b816001600160a01b0302191690836001600160a01b0316021790610ab3610cde565b5050507fefe884cc7f82a6cf3cf68f64221519dcf96b5cae9048e1bb008ee32cd05aaa9182826040519182526001600160a01b031660208201526040908101905180910390a15050600101610a33565b5050505050565b600083815260026020528060408120600090610b24610c83565b6001600160a01b036101009290920a9004169050838382610b905760405162461bcd60e51b815260206004820190815260248201839052908190604401848480828437600083820152601f01601f19169091019450604093505050505180910390610b8d610c18565b50505b509095945050505050565b600080610ba6610c83565b906101000a90046001600160a01b03166001600160a01b03165a610bc8610f2b565b6001600160a01b031614610c165760405162461bcd60e51b815260040180806020018281038252602f815260200180610fa7602f913960400191505060405180910390610c13610c18565b50505b565b632a2a7adb598160e01b8152600481016020815285602082015260005b86811015610c50578086015182820160400152602001610c35565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b604081101561079f57600082820152602001610cc7565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b600081526020610cc7565b638435035b598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020610cc7565b638540661f598160e01b8152610dab565b8080831115610d955750815b92915050565b8080831015610d95575090919050565b836004820152846024820152606060448201528660648201526084810160005b88811015610de3578088015182820152602001610dcb565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af15059610e388d3d610d9b565b8c01610e448187610d89565b5b82811015610e595760008152602001610e45565b50929c50505050505050565b6385979f76598160e01b8152836004820152846024820152606060448201528760648201526084810160005b89811015610ea9578089015182820152602001610e91565b506060828a60a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8c8c82606087013350600060045af15059610efe8e3d610d9b565b8d01610f0a8187610d89565b5b82811015610f1f5760008152602001610f0b565b50929d50505050505050565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b80516000825293506020610cc756fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e", "abi": [ { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor", "signature": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bytes32", "name": "name", "type": "bytes32" }, { "indexed": false, "internalType": "address", "name": "destination", "type": "address" } ], "name": "AddressImported", "type": "event", "signature": "0xefe884cc7f82a6cf3cf68f64221519dcf96b5cae9048e1bb008ee32cd05aaa91" }, { "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": "names", "type": "bytes32[]" }, { "internalType": "address[]", "name": "destinations", "type": "address[]" } ], "name": "areAddressesImported", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function", "signature": "0x9f42102f" }, { "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": false, "inputs": [ { "internalType": "contract MixinResolver[]", "name": "destinations", "type": "address[]" } ], "name": "rebuildCaches", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function", "signature": "0x766f7815" }, { "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": "0xccde4273f5b8b687e3af99e7a3b58a2cf73611a3a8c76e5e283ea5277cb16d72", "urls": [ "bzz-raw://66b49e0945a9d1becb4e02bfbbd16ebd1df13aa640bef7219b3d1450e70a4c3b", "dweb:/ipfs/QmRcxCGhAjDmzvj8GkFDCfGMHrT2jJL945zqYuVKo48W7B" ] }, "metadata": { "compiler": { "version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d" }, "language": "Solidity", "settings": { "compilationTarget": { "AddressResolver.sol": "AddressResolver" }, "evmVersion": "istanbul", "libraries": {}, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [] }, "sources": { "AddressResolver.sol": { "keccak256": "0xccde4273f5b8b687e3af99e7a3b58a2cf73611a3a8c76e5e283ea5277cb16d72", "urls": [ "bzz-raw://66b49e0945a9d1becb4e02bfbbd16ebd1df13aa640bef7219b3d1450e70a4c3b", "dweb:/ipfs/QmRcxCGhAjDmzvj8GkFDCfGMHrT2jJL945zqYuVKo48W7B" ] } }, "version": 1 } }, "ReadProxy": { "bytecode": "608060405234801561001957600080610016610135565b50505b506040516109973803806109978339818101604052602081101561004557600080610042610135565b50505b8101908080519250829150506001600160a01b0381166100b45760405162461bcd60e51b815260206004820152601960248201527f4f776e657220616464726573732063616e6e6f742062652030000000000000006044820152606401604051809103906100b1610135565b50505b8060006001816100c26101a0565b816001600160a01b0302191690836001600160a01b03160217906100e4610200565b5050507fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c6000826040516001600160a01b039283168152911660208201526040908101905180910390a1505061024e565b632a2a7adb598160e01b8152600481016020815285602082015260005b8681101561016d578086015182820160400152602001610152565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156101fb576000828201526020016101e4565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b6000815260206101e4565b61073a8061025d6000396000f3fe60806040523480156100195760008061001661048e565b50505b506004361061006b5760003560e01c80631627540c146100ab57806353a47bb7146100dc578063776d1a011461010057806379ba50971461012f5780638da5cb5b14610137578063d4b839921461013f575b366000803760008036600060026100806104f9565b5a610089610554565b50505050503d6000803e806100a6573d60006100a361048e565b50505b3d6000f35b6100da600480360360208110156100ca576000806100c761048e565b50505b50356001600160a01b0316610147565b005b6100e46101c1565b6040516001600160a01b03909116815260200160405180910390f35b6100da6004803603602081101561011f5760008061011c61048e565b50505b50356001600160a01b03166101e0565b6100da610277565b6100e46103fa565b6100e4610405565b61014f610411565b806001808061015c6104f9565b816001600160a01b0302191690836001600160a01b031602179061017e610641565b5050507f906a1c6bd7e3091ea86693dd029a831c19049ce77f1dce2ce0bab1cacbabce22816040516001600160a01b03909116815260200160405180910390a150565b600060016101cd6104f9565b906101000a90046001600160a01b031681565b6101e8610411565b8060026001816101f66104f9565b816001600160a01b0302191690836001600160a01b0316021790610218610641565b5050507f814250a3b8c79fcbe2ead2c131c952a278491c8f4322a79fe84b5040a810373e60026000906102496104f9565b906101000a90046001600160a01b03166040516001600160a01b03909116815260200160405180910390a150565b600060016102836104f9565b906101000a90046001600160a01b03166001600160a01b03165a6102a561068f565b6001600160a01b0316146102f35760405162461bcd60e51b81526004018080602001828103825260358152602001806106d660359139604001915050604051809103906102f061048e565b50505b7fb532073b38c83145e3e5135377a08bf9aab55bc0fd7c1179cd4fb995d2a5159c60008061031f6104f9565b906101000a90046001600160a01b0316600160009061033c6104f9565b906101000a90046001600160a01b03166040516001600160a01b039283168152911660208201526040908101905180910390a16000600161037b6104f9565b906101000a90046001600160a01b03166000806101000a8161039b6104f9565b816001600160a01b0302191690836001600160a01b03160217906103bd610641565b5050506000600160006101000a816103d36104f9565b816001600160a01b0302191690836001600160a01b03160217906103f5610641565b505050565b6000806101cd6104f9565b600060026101cd6104f9565b60008061041c6104f9565b906101000a90046001600160a01b03166001600160a01b03165a61043e61068f565b6001600160a01b03161461048c5760405162461bcd60e51b815260040180806020018281038252602f81526020018061070b602f91396040019150506040518091039061048961048e565b50505b565b632a2a7adb598160e01b8152600481016020815285602082015260005b868110156104c65780860151828201604001526020016104ab565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b60408110156103f55760008282015260200161053d565b638540661f598160e01b8152610587565b80808311156105715750815b92915050565b8080831015610571575090919050565b836004820152846024820152606060448201528660648201526084810160005b888110156105bf5780880151828201526020016105a7565b506060828960a40184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b815160408301513d6000853e8b8b82606087013350600060045af150596106148d3d610577565b8c016106208187610565565b5b828110156106355760008152602001610621565b50929c50505050505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b60008152602061053d565b6373509064598160e01b8152602081600483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051600082529350602061053d56fe596f75206d757374206265206e6f6d696e61746564206265666f726520796f752063616e20616363657074206f776e6572736869704f6e6c792074686520636f6e7472616374206f776e6572206d617920706572666f726d207468697320616374696f6e", "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": "0x0f47492c2ef0af7c5585141508c53024190f06b5c526430caca1cc91fac188a5", "urls": [ "bzz-raw://2a5b99fc53091d9b5188ac0be8bde3ff6f3d5f0159cee894be2c3f547169f186", "dweb:/ipfs/QmUHzChcTasUbfR2ESxmCB32zjWYkgrjPvbzComYPJaJ1C" ] }, "metadata": { "compiler": { "version": "0.5.16-develop.2020.12.10+ovm+commit.25adf37d" }, "language": "Solidity", "settings": { "compilationTarget": { "ReadProxy.sol": "ReadProxy" }, "evmVersion": "istanbul", "libraries": {}, "optimizer": { "enabled": true, "runs": 200 }, "remappings": [] }, "sources": { "ReadProxy.sol": { "keccak256": "0x0f47492c2ef0af7c5585141508c53024190f06b5c526430caca1cc91fac188a5", "urls": [ "bzz-raw://2a5b99fc53091d9b5188ac0be8bde3ff6f3d5f0159cee894be2c3f547169f186", "dweb:/ipfs/QmUHzChcTasUbfR2ESxmCB32zjWYkgrjPvbzComYPJaJ1C" ] } }, "version": 1 } }, "FlexibleStorage": { "bytecode": "60806040523480156200001c576000806200001962000099565b50505b506040516200374b3803806200374b833981810160405260208110156200004d576000806200004a62000099565b50505b810190808051925082915081905060006001816200006a62000106565b816001600160a01b0302191690836001600160a01b03160217906200008e62000168565b5050505050620001b7565b632a2a7adb598160e01b8152600481016020815285602082015260005b86811015620000d3578086015182820160400152602001620000b6565b506020828760640184336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b505050565b6303daa959598160e01b8152836004820152602081602483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b8051935060005b604081101562000163576000828201526020016200014a565b505050565b6322bd64c0598160e01b8152836004820152846024820152600081604483336000905af158600e01573d6000803e3d6000fd5b3d6001141558600a015760016000f35b6000815260206200014a565b61358480620001c76000396000f3fe608060405234801561001957600080610016613231565b50505b50600436106101cc5760003560e01c80638ca0adaf11610102578063c89eb562116100a0578063d994502d1161007a578063d994502d14610c05578063f7833c5d14610c45578063f9c39d2f14610c71578063fdfc4c1314610d75576101cc565b8063c89eb56214610aa9578063d658d2e914610bad578063d71a9b0114610bd3576101cc565b8063ab15985d116100dc578063ab15985d14610847578063b67fa7ed1461094b578063c13a2b0c146109e4578063c4f610ed14610a7d576101cc565b80638ca0adaf146107565780638f6b95a3146107ef5780639ee5955a1461081b576101cc565b806335ab27081161016f5780634dca0978116101495780634dca09781461062a5780635bda91e2146106655780636a59e495146106995780638408a5e5146106bd576101cc565b806335ab2708146104c65780633bd6ad89146104f25780633f28a6fc146105f6576101cc565b80631625e3ef116101ab5780631625e3ef146103fe57806318f662ed1461042a5780631d5b277f1461045657806323257c2b14610488576101cc565b80624b62d6146101da57806303cdc0171461020e578063142a391e14610312575b6000806101d7613231565b50505b61020c600480360360608110156101f9576000806101f6613231565b50505b5080359060208101359060400135610da1565b005b61020c6004803603606081101561022d5760008061022a613231565b50505b81359190810190604081016020820135600160201b81111561025757600080610254613231565b50505b8201836020820111156102725760008061026f613231565b50505b803590602001918460208302840111600160201b8311171561029c57600080610299613231565b50505b919390929091602081019035600160201b8111156102c2576000806102bf613231565b50505b8201836020820111156102dd576000806102da613231565b50505b803590602001918460208302840111600160201b8311171561030757600080610304613231565b50505b509092509050610ef3565b6103ab600480360360408110156103315760008061032e613231565b50505b81359190810190604081016020820135600160201b81111561035b57600080610358613231565b50505b82018360208201111561037657600080610373613231565b50505b803590602001918460208302840111600160201b831117156103a05760008061039d613231565b50505b5090925090506110c9565b60405160208082528190810183818151815260200191508051906020019060200280838360005b838110156103ea5780820151838201526020016103d2565b505050509050019250505060405180910390f35b61020c6004803603604081101561041d5760008061041a613231565b50505b5080359060200135611184565b61020c6004803603604081101561044957600080610446613231565b50505b50803590602001356113b3565b61020c6004803603606081101561047557600080610472613231565b50505b50803590602081013590604001356115bb565b6104b4600480360360408110156104a7576000806104a4613231565b50505b5080359060200135611706565b60405190815260200160405180910390f35b61020c600480360360408110156104e5576000806104e2613231565b50505b508035906020013561174d565b61020c600480360360608110156105115760008061050e613231565b50505b81359190810190604081016020820135600160201b81111561053b57600080610538613231565b50505b82018360208201111561055657600080610553613231565b50505b803590602001918460208302840111600160201b831117156105805760008061057d613231565b50505b919390929091602081019035600160201b8111156105a6576000806105a3613231565b50505b8201836020820111156105c1576000806105be613231565b50505b803590602001918460208302840111600160201b831117156105eb576000806105e8613231565b50505b50909250905061192d565b61020c6004803603606081101561061557600080610612613231565b50505b50803590602081013590604001351515611b02565b61020c6004803603606081101561064957600080610646613231565b50505b50803590602081013590604001356001600160a01b0316611c4d565b61020c6004803603606081101561068457600080610681613231565b50505b50803590602081013590604001351515611d98565b6106a1611fec565b6040516001600160a01b03909116815260200160405180910390f35b6103ab600480360360408110156106dc576000806106d9613231565b50505b81359190810190604081016020820135600160201b81111561070657600080610703613231565b50505b8201836020820111156107215760008061071e613231565b50505b803590602001918460208302840111600160201b8311171561074b57600080610748613231565b50505b50909250905061200a565b6103ab6004803603604081101561077557600080610772613231565b50505b81359190810190604081016020820135600160201b81111561079f5760008061079c613231565b50505b8201836020820111156107ba576000806107b7613231565b50505b803590602001918460208302840111600160201b831117156107e4576000806107e1613231565b50505b5090925090506120ba565b61020c6004803603604081101561080e5760008061080b613231565b50505b508035906020013561218a565b6106a16004803603604081101561083a57600080610837613231565b50505b50803590602001356123c3565b61020c6004803603606081101561086657600080610863613231565b50505b81359190810190604081016020820135600160201b8111156108905760008061088d613231565b50505b8201836020820111156108ab576000806108a8613231565b50505b803590602001918460208302840111600160201b831117156108d5576000806108d2613231565b50505b919390929091602081019035600160201b8111156108fb576000806108f8613231565b50505b82018360208201111561091657600080610913613231565b50505b803590602001918460208302840111600160201b831117156109405760008061093d6