UNPKG

@dolomite-exchange/dolomite-margin

Version:

Ethereum Smart Contracts and TypeScript library used for the DolomiteMargin trading protocol

401 lines 524 kB
{ "contractName": "TestIsolationModeUnwrapperTrader", "abi": [ { "inputs": [ { "internalType": "address", "name": "_inputToken", "type": "address" }, { "internalType": "address", "name": "_outputToken", "type": "address" }, { "internalType": "address", "name": "_dolomiteMargin", "type": "address" } ], "payable": false, "stateMutability": "nonpayable", "type": "constructor" }, { "constant": true, "inputs": [], "name": "ACTIONS_LENGTH", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "DOLOMITE_MARGIN", "outputs": [ { "internalType": "contract IDolomiteMargin", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "OUTPUT_TOKEN", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "UNDERLYING_TOKEN", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "address", "name": "_makerToken", "type": "address" }, { "internalType": "address", "name": "_takerToken", "type": "address" }, { "internalType": "uint256", "name": "_takerTokenAmount", "type": "uint256" }, { "internalType": "bytes", "name": "_orderData", "type": "bytes" } ], "name": "exchange", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "nonpayable", "type": "function" }, { "constant": true, "inputs": [], "name": "token", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "_outputToken", "type": "address" } ], "name": "isValidOutputToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "components": [ { "internalType": "uint256", "name": "primaryAccountId", "type": "uint256" }, { "internalType": "uint256", "name": "otherAccountId", "type": "uint256" }, { "internalType": "address", "name": "primaryAccountOwner", "type": "address" }, { "internalType": "uint256", "name": "primaryAccountNumber", "type": "uint256" }, { "internalType": "address", "name": "otherAccountOwner", "type": "address" }, { "internalType": "uint256", "name": "otherAccountNumber", "type": "uint256" }, { "internalType": "uint256", "name": "outputMarket", "type": "uint256" }, { "internalType": "uint256", "name": "inputMarket", "type": "uint256" }, { "internalType": "uint256", "name": "minOutputAmount", "type": "uint256" }, { "internalType": "uint256", "name": "inputAmount", "type": "uint256" }, { "internalType": "bytes", "name": "orderData", "type": "bytes" } ], "internalType": "struct IIsolationModeUnwrapperTrader.CreateActionsForUnwrappingParams", "name": "_params", "type": "tuple" } ], "name": "createActionsForUnwrapping", "outputs": [ { "components": [ { "internalType": "enum Actions.ActionType", "name": "actionType", "type": "uint8" }, { "internalType": "uint256", "name": "accountId", "type": "uint256" }, { "components": [ { "internalType": "bool", "name": "sign", "type": "bool" }, { "internalType": "enum Types.AssetDenomination", "name": "denomination", "type": "uint8" }, { "internalType": "enum Types.AssetReference", "name": "ref", "type": "uint8" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "internalType": "struct Types.AssetAmount", "name": "amount", "type": "tuple" }, { "internalType": "uint256", "name": "primaryMarketId", "type": "uint256" }, { "internalType": "uint256", "name": "secondaryMarketId", "type": "uint256" }, { "internalType": "address", "name": "otherAddress", "type": "address" }, { "internalType": "uint256", "name": "otherAccountId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "internalType": "struct Actions.ActionArgs[]", "name": "", "type": "tuple[]" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [ { "internalType": "address", "name": "_makerToken", "type": "address" }, { "internalType": "address", "name": "_takerToken", "type": "address" }, { "internalType": "uint256", "name": "_desiredMakerToken", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "getExchangeCost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "view", "type": "function" }, { "constant": true, "inputs": [], "name": "actionsLength", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "payable": false, "stateMutability": "pure", "type": "function" }, { "constant": false, "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "components": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "number", "type": "uint256" } ], "internalType": "struct Account.Info", "name": "", "type": "tuple" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "callFunction", "outputs": [], "payable": false, "stateMutability": "nonpayable", "type": "function" } ], "metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_inputToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_outputToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_dolomiteMargin\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"constant\":true,\"inputs\":[],\"name\":\"ACTIONS_LENGTH\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"DOLOMITE_MARGIN\",\"outputs\":[{\"internalType\":\"contract IDolomiteMargin\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"OUTPUT_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"UNDERLYING_TOKEN\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"actionsLength\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"pure\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"number\",\"type\":\"uint256\"}],\"internalType\":\"struct Account.Info\",\"name\":\"\",\"type\":\"tuple\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"callFunction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"primaryAccountId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"otherAccountId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"primaryAccountOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"primaryAccountNumber\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"otherAccountOwner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"otherAccountNumber\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"outputMarket\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"inputMarket\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minOutputAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"inputAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"orderData\",\"type\":\"bytes\"}],\"internalType\":\"struct IIsolationModeUnwrapperTrader.CreateActionsForUnwrappingParams\",\"name\":\"_params\",\"type\":\"tuple\"}],\"name\":\"createActionsForUnwrapping\",\"outputs\":[{\"components\":[{\"internalType\":\"enum Actions.ActionType\",\"name\":\"actionType\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"accountId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"bool\",\"name\":\"sign\",\"type\":\"bool\"},{\"internalType\":\"enum Types.AssetDenomination\",\"name\":\"denomination\",\"type\":\"uint8\"},{\"internalType\":\"enum Types.AssetReference\",\"name\":\"ref\",\"type\":\"uint8\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"internalType\":\"struct Types.AssetAmount\",\"name\":\"amount\",\"type\":\"tuple\"},{\"internalType\":\"uint256\",\"name\":\"primaryMarketId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"secondaryMarketId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"otherAddress\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"otherAccountId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"internalType\":\"struct Actions.ActionArgs[]\",\"name\":\"\",\"type\":\"tuple[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_receiver\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_makerToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_takerToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_takerTokenAmount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_orderData\",\"type\":\"bytes\"}],\"name\":\"exchange\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_makerToken\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_takerToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_desiredMakerToken\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"getExchangeCost\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"_outputToken\",\"type\":\"address\"}],\"name\":\"isValidOutputToken\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"token\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestIsolationModeUnwrapperTrader.sol\":\"TestIsolationModeUnwrapperTrader\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IExpiry.sol\":{\"keccak256\":\"0xa7b197139e570e823cab42c3b8500c9c5edc8a40110970a7d6fe60f05864ba10\",\"urls\":[\"bzz-raw://4f469be063d8f694c5277650bc53ac2c0d164f62e36c6a9ab7dad126479990a9\",\"dweb:/ipfs/Qme4sTbGi4T2QhsJSweqGzqm5rxQkypy27g1vLy8ipVijV\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/interfaces/IIsolationModeUnwrapperTrader.sol\":{\"keccak256\":\"0x6b46e389ec0dff927670d76a98902763b517bf81967f9e5b73c3ff6ced2a78c8\",\"urls\":[\"bzz-raw://17cd690e571d488432192852db474420c7e8d54db3169ab9b9c7d6963e9a708a\",\"dweb:/ipfs/Qmaam6B6WyYZmrtVWkJTKc6njrbZXHnERK2ngbwyK9WckM\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/AccountActionLib.sol\":{\"keccak256\":\"0x5488dd7eae5ce96e479445f19301d9dd44d292a2d6739b9da1fe948eeb41edc4\",\"urls\":[\"bzz-raw://06977e07aea4d893db696173f3ee01a84008770c4e0d81fb5eb82af3a597ceaa\",\"dweb:/ipfs/QmYiH8CsXEbHypJ2gN31LnZv2tfzd2RBuSKoRgx2EbBw26\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/lib/AccountBalanceLib.sol\":{\"keccak256\":\"0x76fd16d615fe7cfceaf775b4e6524fd0462606c802b082498c768a7a4ca01a20\",\"urls\":[\"bzz-raw://56068145e300cde1c77c22e38cb753378abf2f0d4613dcb203e33ff101f169e2\",\"dweb:/ipfs/QmXvMzr9n7vzMHdUPgnc58KX4mrbQAqkq4kDETaj5Y55ZY\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IAccountRiskOverrideSetter.sol\":{\"keccak256\":\"0x5b9fde139ddfdaae7b650b3c3f6699e0e44605f0d9d3daadc1622eb06ad4c3f8\",\"urls\":[\"bzz-raw://2dfd5af24b6de63f94519c99fd8777a264d7cd11266fa2d525c7d72d96a9c7cf\",\"dweb:/ipfs/QmPg9fjhbnmBayZMh6yTG79xsK1PWSoAHA5pfwSXfnKKjF\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/ICallee.sol\":{\"keccak256\":\"0x0b65209369307041e67c28634fc17a19e953199ac42a88198b76578f7fa9b0f8\",\"urls\":[\"bzz-raw://46618851882c2bc5a6212bb0a8ad095e0f38049f24ecf404163ad6b493c728a1\",\"dweb:/ipfs/QmRx4VabTaXTGSyMt8NCTZ7nMiWCHfrvqZjRaKNRir3zEe\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IDolomiteMargin.sol\":{\"keccak256\":\"0x7e86ed1ed04dc205245db9f4e7cf7cca60c3bfc46c57ade8129a463780647967\",\"urls\":[\"bzz-raw://f8fbd85afd334c12bdccbb6523ebea9172b27b7b4b132c4a48b4b4dd03ceeb2b\",\"dweb:/ipfs/QmU1srfSqBTz3kw7oz1KEzfTUJvphZiE4K8MRZcy9uJjv1\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IERC20Detailed.sol\":{\"keccak256\":\"0x22a62e2a8155e70300773721902f4b9118e17aa0bb5d9d1b046050a014cfb223\",\"urls\":[\"bzz-raw://03af737a33c552fbe58f6f1fbd5496854fdc28dd57be4365d56663725c083a18\",\"dweb:/ipfs/QmbgLqGAQEd6tXsZB8QaPNCAMiU6nNzP75wNbKdS65BuUF\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IExchangeWrapper.sol\":{\"keccak256\":\"0x74799c3fac16738be41e270a70d3f7ad4f75d1dc7e5d8c58f0fe4c6128345112\",\"urls\":[\"bzz-raw://d9602af1001189d199736d17266d5fb34a32f71cd05fbcf4c0f97c0b3a642eee\",\"dweb:/ipfs/QmPto2DkZ1nKqicBMdMkaek7kGSSXqSKnf697h5zuthvsy\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IInterestSetter.sol\":{\"keccak256\":\"0x546825f65490a30e29d0f6446acec49c1e895ce6b33d48ca5c05092725a63a57\",\"urls\":[\"bzz-raw://6ad3013aed985bdf6e6234ae0f7f37e6bba76c3470c33bfa24678cf19b3b412c\",\"dweb:/ipfs/QmfYaSBzxGpgiHoR7ontMJY66S5L26XwkLYoEuzsEjpbQH\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IOracleSentinel.sol\":{\"keccak256\":\"0xa94499fda55ef112640daed2cb1d06062e72c51c7b925c323b4e0ffa9b456ce5\",\"urls\":[\"bzz-raw://18b4a16acac577590a57f34f7ec6583e3cb35f575c948abb928b308d29cac1ab\",\"dweb:/ipfs/QmR1jLkzj6w7SjrdZ7GVW4V2vofSdMJwzjTqKpeUKABvxu\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/interfaces/IPriceOracle.sol\":{\"keccak256\":\"0x3f7c3d1397390ea44c6d5e5730d49476431c3df3b28334fe38218de5edc31138\",\"urls\":[\"bzz-raw://63ebf926fca9ce33aaabaf93805686acc25daded1648d6dab59c8c4d05116918\",\"dweb:/ipfs/QmeGkDp7ycYstpfqCYBiqoCYwy876gabx8r42o5koj3H5A\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Account.sol\":{\"keccak256\":\"0x2059276ea5e478bd5ac7f2712e7b1b6c85d291c647a54b264909044844828e67\",\"urls\":[\"bzz-raw://f153777051d12131b13a57e5c3af10a2670927cfc7d22c9519ab20c9b4b9bc89\",\"dweb:/ipfs/QmQMP3qS5xDAVGYKDfNkbkSqBKozQGQsGqX4e8VyjRtxPS\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Actions.sol\":{\"keccak256\":\"0x7b2fcf441c034952dd042b6c8b20b148359db771e7c9ac07d06369560a9f0301\",\"urls\":[\"bzz-raw://84665ee4a780360fe6160d197ba98f0bf0ab0d7c6ad87bfed6226bf2f88d8d30\",\"dweb:/ipfs/QmRDfRdAd8hSXeu4SAeeYKkKoXBhStu7n4uReYBce2JD5Z\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Bits.sol\":{\"keccak256\":\"0x6d9a641163b2dd25e648c65f5d9e4949a57938e29ddc4c9dddefd74a9964aeef\",\"urls\":[\"bzz-raw://67e5a04ed4055faafbc100d6ccca9c54448ed378a1a8c71171562edda7bcbf7c\",\"dweb:/ipfs/QmYRikK3Xbgiq3UBJkgoo2zNUSSrShVabpRHmQj6iQHhrc\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Cache.sol\":{\"keccak256\":\"0xe57c80a7621a77fcb2acb9f883fb5248e71a6dce03bc2db56df0db3fee332950\",\"urls\":[\"bzz-raw://28e221c04629674490b9a0041d4f9a5f15e669dc0cc192a5df6e2c701c36369f\",\"dweb:/ipfs/QmaL3oh8c7v9cx91pB175pyCEuzxnhNTab4UxmBMsDYfUx\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Decimal.sol\":{\"keccak256\":\"0xd9a348c2b1eec076609ba12bbec6b9c2e4ea135790a7ef4f5411feb050af2144\",\"urls\":[\"bzz-raw://d5bcff29e47d5cd02d7a9966e9f44c46ccbb4f0e4adfc4b0b86646880677db39\",\"dweb:/ipfs/QmRKfJD4FFM1AvTynSFNx1NcDg94o9SAcjz7dvMaJCfecp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/DolomiteMarginMath.sol\":{\"keccak256\":\"0x53f205f6a779d579be29faa9412c806a892b3e605fff092dfd9d14d936fa019f\",\"urls\":[\"bzz-raw://0ff936f89602a63b8e6a4eb4ce8f87673c0f45b7ce29694920905a3f0b5a6a69\",\"dweb:/ipfs/QmbYME9BeEvPC1ndV8EaUDX5fDMghLc3rocNUxFtgHmg8m\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/EnumerableSet.sol\":{\"keccak256\":\"0x41a3460e34b7b8635d936e35e6568ceb5354b638f53b884530e0d4875fa0f151\",\"urls\":[\"bzz-raw://d1a5ba866ee95d455afe5075dadd91fc71c2806371f2c1b358a1f67c632bb0df\",\"dweb:/ipfs/QmW4qCjmsG8J3UJv97GwDLDM7wt1K4yLDKAwzWMY7TFYi5\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Interest.sol\":{\"keccak256\":\"0x141a0ecb4a746f0e5767df4b99dbe33c6362df507ae9d5c02da1c1c17bc26df3\",\"urls\":[\"bzz-raw://9ff03e64a8ce5231acde07788624bf8c7a8ff55d90b157fa32f62fa887a0eff0\",\"dweb:/ipfs/QmUVxxWeE954RDXbmHJAYnHsXcit6rSXGqZUigu8t9oH2z\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Monetary.sol\":{\"keccak256\":\"0x5257274f2d4d3605f3e97ec45fb902111fe9a22506f0b4cf308ea933bc81bfe2\",\"urls\":[\"bzz-raw://85b8023b78805063a2ec8d376f1f5983994eabd96efd8ceadb0224dbb71c5678\",\"dweb:/ipfs/QmaDhzCzRqsuHuJfhToEC4pATQHwhh7yWWsjwfuRzFT1kG\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Require.sol\":{\"keccak256\":\"0x05a2a90b41b6a5f42f0a72da63d015fb0b406a9ba2172823352e522e8bf3a606\",\"urls\":[\"bzz-raw://19883f0c6d33266f756ec5c3d17539524aa24b993c46c33f8400801d09373a6c\",\"dweb:/ipfs/QmYX2fwK3vQQDSZLMrc5wMfeb8RWrcC9CGX8XECLty8QDk\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Storage.sol\":{\"keccak256\":\"0x9c27f3cd52af28c9b6bca18097b1793f114d08284d78417467d0d05f67e9e2a9\",\"urls\":[\"bzz-raw://d1ed0e7a7f76d59f30572996d4e164ab8fb5b2ec4bfca127983f9e936b904813\",\"dweb:/ipfs/QmePVYbgrY8Yw3Vf76pmEvE9pX916Jaa9we4kjM8tGM4J1\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Time.sol\":{\"keccak256\":\"0x87ee8d3c1d6e315a116426d8c8fc6f083e220fd14dda27fad4e8d7cab3dc7305\",\"urls\":[\"bzz-raw://7c20f2c52da682c3b5917fb6a19e81f43699b1d13c62b569ed723f34da72e766\",\"dweb:/ipfs/QmbXWYXi67nHBVNDKYUpo2E9ZaEVcHLvmXQkpYLMm1d5Vm\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Token.sol\":{\"keccak256\":\"0x095b5f8eb3665f6e246200311efc8a654fa3e90f9a1a522e27a4d089e8ab3917\",\"urls\":[\"bzz-raw://5db812b752a03d601d424e6e21be38153477082af0acf51b5c98eefa5553ed18\",\"dweb:/ipfs/QmbE549QUXYTurpx8hSMLBJvuBpfYqyNE6FBCgHJDY8PLf\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/protocol/lib/Types.sol\":{\"keccak256\":\"0xe1bab8c8799d83e86c7a49aaf815d8e3bc8d09562d46d44d921500db5e98de0e\",\"urls\":[\"bzz-raw://8ea3d0cc4fdab6dd9bba545a792170f939b342d8d1a7051c1c6365009af72658\",\"dweb:/ipfs/QmaLJgbavu88eEit6JPqfWnw6NmGBDZfveMXxumgWywBFG\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestIsolationModeUnwrapperTrader.sol\":{\"keccak256\":\"0x463c88efa0fd02056952a1edacc0ccfa5ea3c3794fce364677fdbc6b9091af0a\",\"urls\":[\"bzz-raw://d52803011bed5af85af55ba45430afda18ae817b369b18076971307fd3dda5c1\",\"dweb:/ipfs/QmbEEPwNRS7BxPzGM8hqdEDJte4gRanJpGVG9QWmvUbgsp\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/testing/TestToken.sol\":{\"keccak256\":\"0xfbf238308c7b72cfc85387bdcf3a88145ab193c82268bed81f6eeea470c8e1bb\",\"urls\":[\"bzz-raw://ee425eb5d26cf169e6fc1ec50c66a59596bb4af77c9b190e5d8b3a0abd26efa1\",\"dweb:/ipfs/QmRKFYpuX7Q3pJ3UuLMcAHJ8SF1Gegp7Q99r2wZo57hDrR\"]},\"@openzeppelin/contracts/math/SafeMath.sol\":{\"keccak256\":\"0x640b6dee7a4b830bdfd52b5031a07fc2b12209f5b2e29e5d364a7d37f69d8076\",\"urls\":[\"bzz-raw://31113152e1ddb78fe7a4197f247591ca894e93f916867beb708d8e747b6cc74f\",\"dweb:/ipfs/QmbZaJyXdpsYGykVhHH9qpVGQg9DGCxE2QufbCUy3daTgq\"]},\"@openzeppelin/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xe5bb0f57cff3e299f360052ba50f1ea0fff046df2be070b6943e0e3c3fdad8a9\",\"urls\":[\"bzz-raw://59fd025151435da35faa8093a5c7a17de02de9d08ad27275c5cdf05050820d91\",\"dweb:/ipfs/QmQMvwEcPhoRXzbXyrdoeRtvLoifUW9Qh7Luho7bmUPRkc\"]}},\"version\":1}", "bytecode": "0x60806040523480156200001157600080fd5b50604051620021f5380380620021f583398101604081905262000034916200008a565b600180546001600160a01b039485166001600160a01b0319918216179091556002805493851693821693909317909255600080549190931691161790556200010a565b80516200008481620000f0565b92915050565b600080600060608486031215620000a057600080fd5b6000620000ae868662000077565b9350506020620000c18682870162000077565b9250506040620000d48682870162000077565b9150509250925092565b60006001600160a01b03821662000084565b620000fb81620000de565b81146200010757600080fd5b50565b6120db806200011a6000396000f3fe608060405234801561001057600080fd5b50600436106100c95760003560e01c80638b41871311610081578063f1a1f8fa1161005b578063f1a1f8fa14610161578063f93cffde14610181578063fc0c546a146101a1576100c9565b80638b4187131461013c578063b189111a14610151578063c2ac34a414610159576100c9565b806329db1be6116100b257806329db1be6146101015780633a8fdd7d146101095780637d98ebac14610129576100c9565b806315c14a4a146100ce57806323be76d9146100ec575b600080fd5b6100d66101a9565b6040516100e39190611e73565b60405180910390f35b6100f46101c5565b6040516100e39190611e2b565b6100f46101e1565b61011c61011736600461196a565b6101fd565b6040516100e39190611ea2565b61011c6101373660046118c5565b610532565b61014f61014a3660046119e8565b6109f3565b005b61011c610ab2565b61011c610ab7565b61017461016f36600461189f565b610abc565b6040516100e39190611e65565b61019461018f366004611a6b565b610ae0565b6040516100e39190611e54565b6100f4610d93565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015460009061026a9073ffffffffffffffffffffffffffffffffffffffff8881169116147f5465737449736f6c6174696f6e4d6f6465556e777261707065725472616465727f4d616b657220746f6b656e206d7573742062652077726170706572000000000089610daf565b600080546040517f8fae3be100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690638fae3be1906102c1908a90600401611e2b565b60206040518083038186803b1580156102d957600080fd5b505afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103119190810190611adc565b600080546040517f8fae3be1000000000000000000000000000000000000000000000000000000008152929350909173ffffffffffffffffffffffffffffffffffffffff90911690638fae3be19061036d908a90600401611e2b565b60206040518083038186803b15801561038557600080fd5b505afa158015610399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103bd9190810190611adc565b600080546040517f8928378e000000000000000000000000000000000000000000000000000000008152929350909173ffffffffffffffffffffffffffffffffffffffff90911690638928378e90610419908690600401611ea2565b60206040518083038186803b15801561043157600080fd5b505afa158015610445573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104699190810190611aa0565b51600080546040517f8928378e000000000000000000000000000000000000000000000000000000008152929350909173ffffffffffffffffffffffffffffffffffffffff90911690638928378e906104c6908690600401611ea2565b60206040518083038186803b1580156104de57600080fd5b505afa1580156104f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105169190810190611aa0565b519050610524888383610eb4565b9a9950505050505050505050565b60015460009061059f9073ffffffffffffffffffffffffffffffffffffffff8781169116147f5465737449736f6c6174696f6e4d6f6465556e777261707065725472616465727f54616b657220746f6b656e206d75737420626520554e4445524c59494e47000088610daf565b600080546040517f8fae3be100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690638fae3be1906105f6908990600401611e2b565b60206040518083038186803b15801561060e57600080fd5b505afa158015610622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106469190810190611adc565b600080546040517f8fae3be1000000000000000000000000000000000000000000000000000000008152929350909173ffffffffffffffffffffffffffffffffffffffff90911690638fae3be1906106a2908b90600401611e2b565b60206040518083038186803b1580156106ba57600080fd5b505afa1580156106ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106f29190810190611adc565b600080546040517f8928378e000000000000000000000000000000000000000000000000000000008152929350909173ffffffffffffffffffffffffffffffffffffffff90911690638928378e9061074e908690600401611ea2565b60206040518083038186803b15801561076657600080fd5b505afa15801561077a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061079e9190810190611aa0565b51600080546040517f8928378e000000000000000000000000000000000000000000000000000000008152929350909173ffffffffffffffffffffffffffffffffffffffff90911690638928378e906107fb908690600401611ea2565b60206040518083038186803b15801561081357600080fd5b505afa158015610827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061084b9190810190611aa0565b519050600061085b838a84610eb4565b90506108b661086c888a018a611abe565b8210157f5465737449736f6c6174696f6e4d6f6465556e777261707065725472616465727f496e73756666696369656e74206f757470757420616d6f756e74000000000000610ee0565b6040517fe30443bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c169063e30443bc9061090a9030908590600401611e39565b600060405180830381600087803b15801561092457600080fd5b505af1158015610938573d6000803e3d6000fd5b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8e16925063095ea7b39150610990908f908590600401611e39565b602060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109e29190810190611a4d565b509c9b505050505050505050505050565b600054610a5e9073ffffffffffffffffffffffffffffffffffffffff1633908114907f5465737449736f6c6174696f6e4d6f6465556e77726170706572547261646572907f496e76616c69642063616c6c657200000000000000000000000000000000000090610daf565b610aad81516000147f5465737449736f6c6174696f6e4d6f6465556e777261707065725472616465727f63616c6c46756e6374696f6e2073686f756c64206265206e6f6f700000000000610ee0565b505050565b600290565b600281565b60025473ffffffffffffffffffffffffffffffffffffffff8281169116145b919050565b60e08101516000546001546040517f8fae3be1000000000000000000000000000000000000000000000000000000008152606093610be493909273ffffffffffffffffffffffffffffffffffffffff91821692638fae3be192610b47921690600401611e2b565b60206040518083038186803b158015610b5f57600080fd5b505afa158015610b73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b979190810190611adc565b147f5465737449736f6c6174696f6e4d6f6465556e777261707065725472616465727f496e76616c696420696e707574206d61726b65740000000000000000000000008560e00151610f2a565b60c08201516000546002546040517f8fae3be1000000000000000000000000000000000000000000000000000000008152610ce6939273ffffffffffffffffffffffffffffffffffffffff90811692638fae3be192610c499290911690600401611e2b565b60206040518083038186803b158015610c6157600080fd5b505afa158015610c75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c999190810190611adc565b147f5465737449736f6c6174696f6e4d6f6465556e777261707065725472616465727f496e76616c6964206f7574707574206d61726b657400000000000000000000008560c00151610f2a565b6040805160028082526060828101909352816020015b610d046115b9565b815260200190600190039081610cfc579050509050610d3f83600001518460e001518560c00151308761012001516001896101400151610f8c565b81600081518110610d4c57fe5b6020026020010181905250610d75836000015130604051806020016040528060008152506110be565b81600181518110610d8257fe5b602090810291909101015292915050565b60015473ffffffffffffffffffffffffffffffffffffffff1690565b83610eae57610dbd83611149565b7f3a20000000000000000000000000000000000000000000000000000000000000610de784611149565b7f203c000000000000000000000000000000000000000000000000000000000000610e1185611221565b604051610e479594939291907f3e0000000000000000000000000000000000000000000000000000000000000090602001611dcd565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152908290527f08c379a0000000000000000000000000000000000000000000000000000000008252610ea591600401611e81565b60405180910390fd5b50505050565b6000610ed682610eca868663ffffffff61139816565b9063ffffffff6113f516565b90505b9392505050565b82610aad57610eee82611149565b7f3a20000000000000000000000000000000000000000000000000000000000000610f1883611149565b604051602001610e4793929190611da5565b83610eae57610f3883611149565b7f3a20000000000000000000000000000000000000000000000000000000000000610f6284611149565b7f203c000000000000000000000000000000000000000000000000000000000000610e1185611437565b610f946115b9565b60408051610100810182526004815260208082018b9052825160808101845260008082529293840192909182019081526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8814610ff5576000610ff8565b60015b600181111561100357fe5b81526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff88146110355787611038565b60005b81525081526020018881526020018781526020018673ffffffffffffffffffffffffffffffffffffffff168152602001600081526020018484604051602001611082929190611eb0565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905298975050505050505050565b6110c66115b9565b60408051610100810190915280600881526020808201879052604080516080810182526001815292019190810160008152602001600081526020016000815250815260200160008152602001600081526020018473ffffffffffffffffffffffffffffffffffffffff168152602001600081526020018381525090509392505050565b6060808260405160200161115d9190611d90565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905060205b80156112065781517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909101908290829081106111c957fe5b01602001517fff0000000000000000000000000000000000000000000000000000000000000016156112015760010181529050610adb565b611190565b5060408051600080825260208201909252905b509392505050565b60408051602a808252606082810190935273ffffffffffffffffffffffffffffffffffffffff8416918391602082018180388339019050509050603060f81b8160008151811061126d57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350607860f81b816001815181106112ae57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060005b601481101561121957600281026112f9600f8516611546565b83826029038151811061130857fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600484901c935061134a600f8516611546565b83826028038151811061135957fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053505060049290921c916001016112e0565b6000826113a7575060006113ef565b828202828482816113b457fe5b04146113ec576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea590611e92565b90505b92915050565b60006113ec83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250611568565b606081611478575060408051808201909152600181527f30000000000000000000000000000000000000000000000000000000000000006020820152610adb565b8160005b811561149057600101600a8204915061147c565b6060816040519080825280601f01601f1916602001820160405280156114bd576020820181803883390190505b508593509050815b801561153d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01600a840660300160f81b82828151811061150357fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a840493506114c5565b50949350505050565b6000600a82101561155e57506030810160f81b610adb565b5060570160f81b90565b600081836115a3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ea59190611e81565b5060008385816115af57fe5b0495945050505050565b6040805161010081018252600080825260208201529081016115d9611618565b81526020016000815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001606081525090565b604080516080810190915260008082526020820190815260200160008152602001600081525090565b80356113ef81612072565b80516113ef81612086565b60008083601f84011261166957600080fd5b50813567ffffffffffffffff81111561168157600080fd5b60208301915083600182028301111561169957600080fd5b9250929050565b600082601f8301126116b157600080fd5b81356116c46116bf82611ef7565b611ed0565b915080825260208301602083018583830111156116e057600080fd5b6116eb838284611ffb565b50505092915050565b6000610160828403121561170757600080fd5b611712610160611ed0565b905060006117208484611889565b825250602061173184848301611889565b602083015250604061174584828501611641565b604083015250606061175984828501611889565b606083015250608061176d84828501611641565b60808301525060a061178184828501611889565b60a08301525060c061179584828501611889565b60c08301525060e06117a984828501611889565b60e0830152506101006117be84828501611889565b610100830152506101206117d484828501611889565b6101208301525061014082013567ffffffffffffffff8111156117f657600080fd5b611802848285016116a0565b6101408301525092915050565b60006040828403121561182157600080fd5b61182b6040611ed0565b905060006118398484611641565b825250602061184a84848301611889565b60208301525092915050565b60006020828403121561186857600080fd5b6118726020611ed0565b905060006118808484611894565b82525092915050565b80356113ef8161208f565b80516113ef8161208f565b6000602082840312156118b157600080fd5b60006118bd8484611641565b949350505050565b600080600080600080600060c0888a0312156118e057600080fd5b60006118ec8a8a611641565b97505060206118fd8a828b01611641565b965050604061190e8a828b01611641565b955050606061191f8a828b01611641565b94505060806119308a828b01611889565b93505060a088013567ffffffffffffffff81111561194d57600080fd5b6119598a828b01611657565b925092505092959891949750929550565b60008060008060006080868803121561198257600080fd5b600061198e8888611641565b955050602061199f88828901611641565b94505060406119b088828901611889565b935050606086013567ffffffffffffffff8111156119cd57600080fd5b6119d988828901611657565b92509250509295509295909350565b6000806000608084860312156119fd57600080fd5b6000611a098686611641565b9350506020611a1a8682870161180f565b925050606084013567ffffffffffffffff811115611a3757600080fd5b611a43868287016116a0565b9150509250925092565b600060208284031215611a5f57600080fd5b60006118bd848461164c565b600060208284031215611a7d57600080fd5b813567ffffffffffffffff811115611a9457600080fd5b6118bd848285016116f4565b600060208284031215611ab257600080fd5b60006118bd8484611856565b600060208284031215611ad057600080fd5b60006118bd8484611889565b600060208284031215611aee57600080fd5b60006118bd8484611894565b60006113ec8383611c96565b611b0f81611f50565b82525050565b6000611b2082611f43565b611b2a8185611f47565b935083602082028501611b3c85611f3d565b8060005b85811015611b765784840389528151611b598582611afa565b9450611b6483611f3d565b60209a909a0199925050600101611b40565b5091979650505050505050565b611b0f81611f5b565b611b0f611b9882611f60565b611faa565b611b0f611b9882611f85565b611b0f611b9882611faa565b6000611bc082611f43565b611bca8185611f47565b9350611bda818560208601612007565b611be381612033565b9093019392505050565b6000611bf882611f43565b611c028185610adb565b9350611c12818560208601612007565b9290920192915050565b611b0f81611fda565b611b0f81611fe5565b611b0f81611ff0565b6000611c44602183611f47565b7f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f81527f7700000000000000000000000000000000000000000000000000000000000000602082015260400192915050565b8051600090610160840190611cab8582611c25565b506020830151611cbe6020860182611d87565b506040830151611cd16040860182611d41565b506060830151611ce460c0860182611d87565b506080830151611cf760e0860182611d87565b5060a0830151611d0b610100860182611b06565b5060c0830151611d1f610120860182611d87565b5060e0830151848203610140860152611d388282611bb5565b95945050505050565b80516080830190611d528482611b83565b506020820151611d656020850182611c2e565b506040820151611d786040850182611c2e565b506060820151610eae60608501825b611b0f81611faa565b6000611d9c8284611ba9565b50602001919050565b6000611db18286611bed565b9150611dbd8285611b9d565b600282019150611d388284611bed565b6000611dd98289611bed565b9150611de58288611b9d565b600282019150611df58287611bed565b9150611e018286611b9d565b600282019150611e118285611bed565b9150611e1d8284611b8c565b506001019695505050505050565b602081016113ef8284611b06565b60408101611e478285611b06565b610ed96020830184611d87565b602080825281016113ec8184611b15565b602081016113ef8284611b83565b602081016113ef8284611c1c565b602080825281016113ec8184611bb5565b602080825281016113ef81611c37565b602081016113ef8284611d87565b60408101611ebe8285611d87565b8181036020830152610ed68184611bb5565b60405181810167ffffffffffffffff81118282101715611eef57600080fd5b604052919050565b600067ffffffffffffffff821115611f0e57600080fd5b506020601f919091017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0160190565b60200190565b5190565b90815260200190565b60006113ef82611fc1565b151590565b7fff000000000000000000000000000000000000000000000000000000000000001690565b7fffff0000000000000000000000000000000000000000000000000000000000001690565b90565b80610adb8161205b565b80610adb81612068565b73ffffffffffffffffffffffffffffffffffffffff1690565b60006113ef82611f50565b60006113ef82611fad565b60006113ef82611fb7565b82818337506000910152565b60005b8381101561202257818101518382015260200161200a565b83811115610eae5750506000910152565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe01690565b6009811061206557fe5b50565b6002811061206557fe5b61207b81611f50565b811461206557600080fd5b61207b81611f5b565b61207b81611faa56fea365627a7a723158202eb1e0dcbd2f153a08db9743197384890f8cd24fc50e138070576a8a02fd8d156c6578706572696d656e74616cf564736f6c63430005100040", "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100c95760003560e01c80638b41871311610081578063f1a1f8fa1161005b578063f1a1f8fa14610161578063f93cffde14610181578063fc0c546a146101a1576100c9565b80638b4187131461013c578063b189111a14610151578063c2ac34a414610159576100c9565b806329db1be6116100b257806329db1be6146101015780633a8fdd7d146101095780637d98ebac14610129576100c9565b806315c14a4a146100ce57806323be76d9146100ec575b600080fd5b6100d66101a9565b6040516100e39190611e73565b60405180910390f35b6100f46101c5565b6040516100e39190611e2b565b6100f46101e1565b61011c61011736600461196a565b6101fd565b6040516100e39190611ea2565b61011c6101373660046118c5565b610532565b61014f61014a3660046119e8565b6109f3565b005b61011c610ab2565b61011c610ab7565b61017461016f36600461189f565b610abc565b6040516100e39190611e65565b61019461018f366004611a6b565b610ae0565b6040516100e39190611e54565b6100f4610d93565b60005473ffffffffffffffffffffffffffffffffffffffff1681565b60025473ffffffffffffffffffffffffffffffffffffffff1681565b60015473ffffffffffffffffffffffffffffffffffffffff1681565b60015460009061026a9073ffffffffffffffffffffffffffffffffffffffff8881169116147f5465737449736f6c6174696f6e4d6f6465556e777261707065725472616465727f4d616b657220746f6b656e206d7573742062652077726170706572000000000089610daf565b600080546040517f8fae3be100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690638fae3be1906102c1908a90600401611e2b565b60206040518083038186803b1580156102d957600080fd5b505afa1580156102ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103119190810190611adc565b600080546040517f8fae3be1000000000000000000000000000000000000000000000000000000008152929350909173ffffffffffffffffffffffffffffffffffffffff90911690638fae3be19061036d908a90600401611e2b565b60206040518083038186803b15801561038557600080fd5b505afa158015610399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506103bd9190810190611adc565b600080546040517f8928378e000000000000000000000000000000000000000000000000000000008152929350909173ffffffffffffffffffffffffffffffffffffffff90911690638928378e90610419908690600401611ea2565b60206040518083038186803b15801561043157600080fd5b505afa158015610445573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506104699190810190611aa0565b51600080546040517f8928378e000000000000000000000000000000000000000000000000000000008152929350909173ffffffffffffffffffffffffffffffffffffffff90911690638928378e906104c6908690600401611ea2565b60206040518083038186803b1580156104de57600080fd5b505afa1580156104f2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506105169190810190611aa0565b519050610524888383610eb4565b9a9950505050505050505050565b60015460009061059f9073ffffffffffffffffffffffffffffffffffffffff8781169116147f5465737449736f6c6174696f6e4d6f6465556e777261707065725472616465727f54616b657220746f6b656e206d75737420626520554e4445524c59494e47000088610daf565b600080546040517f8fae3be100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690638fae3be1906105f6908990600401611e2b565b60206040518083038186803b15801561060e57600080fd5b505afa158015610622573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106469190810190611adc565b600080546040517f8fae3be1000000000000000000000000000000000000000000000000000000008152929350909173ffffffffffffffffffffffffffffffffffffffff90911690638fae3be1906106a2908b90600401611e2b565b60206040518083038186803b1580156106ba57600080fd5b505afa1580156106ce573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506106f29190810190611adc565b600080546040517f8928378e000000000000000000000000000000000000000000000000000000008152929350909173ffffffffffffffffffffffffffffffffffffffff90911690638928378e9061074e908690600401611ea2565b60206040518083038186803b15801561076657600080fd5b505afa15801561077a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061079e9190810190611aa0565b51600080546040517f8928378e000000000000000000000000000000000000000000000000000000008152929350909173ffffffffffffffffffffffffffffffffffffffff90911690638928378e906107fb908690600401611ea2565b60206040518083038186803b15801561081357600080fd5b505afa158015610827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525061084b9190810190611aa0565b519050600061085b838a84610eb4565b90506108b661086c888a018a611abe565b8210157f5465737449736f6c6174696f6e4d6f6465556e777261707065725472616465727f496e73756666696369656e74206f757470757420616d6f756e74000000000000610ee0565b6040517fe30443bc00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8c169063e30443bc9061090a9030908590600401611e39565b600060405180830381600087803b15801561092457600080fd5b505af1158015610938573d6000803e3d6000fd5b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8e16925063095ea7b39150610990908f908590600401611e39565b602060405180830381600087803b1580156109aa57600080fd5b505af11580156109be573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052506109e29190810190611a4d565b509c9b505050505050505050505050565b600054610a5e9073ffffffffffffffffffffffffffffffffffffffff1633908114907f5465737449736f6c6174696f6e4d6f6465556e77726170706572547261646572907f496e76616c69642063616c6c657200000000000000000000000000000000000090610daf565b610aad81516000147f5465737449736f6c6174696f6e4d6f6465556e777261707065725472616465727f63616c6c46756e6374696f6e2073686f756c64206265206e6f6f700000000000610ee0565b505050565b600290565b600281565b60025473ffffffffffffffffffffffffffffffffffffffff8281169116145b919050565b60e08101516000546001546040517f8fae3be1000000000000000000000000000000000000000000000000000000008152606093610be493909273ffffffffffffffffffffffffffffffffffffffff91821692638fae3be192610b47921690600401611e2b565b60206040518083038186803b158015610b5f57600080fd5b505afa158015610b73573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610b979190810190611adc565b147f5465737449736f6c6174696f6e4d6f6465556e777261707065725472616465727f496e76616c696420696e707574206d61726b65740000000000000000000000008560e00151610f2a565b60c08201516000546002546040517f8fae3be1000000000000000000000000000000000000000000000000000000008152610ce6939273ffffffffffffffffffffffffffffffffffffffff90811692638fae3be192610c499290911690600401611e2b565b60206040518083038186803b158015610c6157600080fd5b505afa158015610c75573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250610c999190810190611adc565b147f5465737449736f6c6174696f6e4d6f6465556e777261707065725472616465727f496e76616c6964206f7574707574206d61726b657400000000000000000000008560c00151610f2a565b6040805160028082526060828101909352816020015b610d046115b9565b815260200190600190039081610cfc579050509050610d3f83600001518460e001518560c00151308761012001516001896101400151610f8c565b81600081518110610d4c57fe5b6020026020010181905250610d75836000015130604051806020016040528060008152506110be565b81600181518110610d8257fe5b602090810291909101015292915050565b60015473ffffffffffffffffffffffffffffffffffffffff