@dolomite-exchange/dolomite-margin
Version:
Ethereum Smart Contracts and TypeScript library used for the DolomiteMargin trading protocol
764 lines • 361 kB
JSON
{
"contractName": "PartiallyDelayedMultiSig",
"abi": [
{
"inputs": [
{
"internalType": "address[]",
"name": "_owners",
"type": "address[]"
},
{
"internalType": "uint256",
"name": "_required",
"type": "uint256"
},
{
"internalType": "uint32",
"name": "_secondsTimeLocked",
"type": "uint32"
},
{
"internalType": "address[]",
"name": "_noDelayDestinations",
"type": "address[]"
},
{
"internalType": "bytes4[]",
"name": "_noDelaySelectors",
"type": "bytes4[]"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "transactionId",
"type": "uint256"
}
],
"name": "Confirmation",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "transactionId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "confirmationTime",
"type": "uint256"
}
],
"name": "ConfirmationTimeSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "transactionId",
"type": "uint256"
}
],
"name": "Execution",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "transactionId",
"type": "uint256"
},
{
"indexed": false,
"internalType": "string",
"name": "error",
"type": "string"
}
],
"name": "ExecutionFailure",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "OwnerAddition",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "OwnerRemoval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint256",
"name": "required",
"type": "uint256"
}
],
"name": "RequirementChange",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "transactionId",
"type": "uint256"
}
],
"name": "Revocation",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "destination",
"type": "address"
},
{
"indexed": false,
"internalType": "bytes4",
"name": "selector",
"type": "bytes4"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "SelectorSet",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "transactionId",
"type": "uint256"
}
],
"name": "Submission",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint32",
"name": "secondsTimeLocked",
"type": "uint32"
}
],
"name": "TimeLockChange",
"type": "event"
},
{
"constant": true,
"inputs": [],
"name": "MAX_OWNER_COUNT",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "addOwner",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "_required",
"type": "uint256"
}
],
"name": "changeRequirement",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint32",
"name": "_secondsTimeLocked",
"type": "uint32"
}
],
"name": "changeTimeLock",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "transactionId",
"type": "uint256"
}
],
"name": "confirmTransaction",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "confirmationTimes",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "confirmations",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256[]",
"name": "transactionIds",
"type": "uint256[]"
}
],
"name": "executeMultipleTransactions",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "transactionId",
"type": "uint256"
}
],
"name": "executeTransaction",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "transactionId",
"type": "uint256"
}
],
"name": "getConfirmationCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "transactionId",
"type": "uint256"
}
],
"name": "getConfirmations",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "getOwners",
"outputs": [
{
"internalType": "address[]",
"name": "",
"type": "address[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "bool",
"name": "pending",
"type": "bool"
},
{
"internalType": "bool",
"name": "executed",
"type": "bool"
}
],
"name": "getTransactionCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "from",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "to",
"type": "uint256"
},
{
"internalType": "bool",
"name": "pending",
"type": "bool"
},
{
"internalType": "bool",
"name": "executed",
"type": "bool"
}
],
"name": "getTransactionIds",
"outputs": [
{
"internalType": "uint256[]",
"name": "",
"type": "uint256[]"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "bytes4",
"name": "",
"type": "bytes4"
}
],
"name": "instantData",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "transactionId",
"type": "uint256"
}
],
"name": "isConfirmed",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "isOwner",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "owners",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "removeOwner",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "replaceOwner",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "required",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "uint256",
"name": "transactionId",
"type": "uint256"
}
],
"name": "revokeConfirmation",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "secondsTimeLocked",
"outputs": [
{
"internalType": "uint32",
"name": "",
"type": "uint32"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "destination",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "submitTransaction",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
},
{
"constant": true,
"inputs": [],
"name": "transactionCount",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": true,
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "transactions",
"outputs": [
{
"internalType": "address",
"name": "destination",
"type": "address"
},
{
"internalType": "uint256",
"name": "value",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
},
{
"internalType": "bool",
"name": "executed",
"type": "bool"
}
],
"payable": false,
"stateMutability": "view",
"type": "function"
},
{
"constant": false,
"inputs": [
{
"internalType": "address",
"name": "destination",
"type": "address"
},
{
"internalType": "bytes4",
"name": "selector",
"type": "bytes4"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setSelector",
"outputs": [],
"payable": false,
"stateMutability": "nonpayable",
"type": "function"
}
],
"metadata": "{\"compiler\":{\"version\":\"0.5.16+commit.9c3226ce\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"_owners\",\"type\":\"address[]\"},{\"internalType\":\"uint256\",\"name\":\"_required\",\"type\":\"uint256\"},{\"internalType\":\"uint32\",\"name\":\"_secondsTimeLocked\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"_noDelayDestinations\",\"type\":\"address[]\"},{\"internalType\":\"bytes4[]\",\"name\":\"_noDelaySelectors\",\"type\":\"bytes4[]\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"Confirmation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"confirmationTime\",\"type\":\"uint256\"}],\"name\":\"ConfirmationTimeSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"Execution\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"error\",\"type\":\"string\"}],\"name\":\"ExecutionFailure\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnerAddition\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnerRemoval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"required\",\"type\":\"uint256\"}],\"name\":\"RequirementChange\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"Revocation\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"SelectorSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"Submission\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint32\",\"name\":\"secondsTimeLocked\",\"type\":\"uint32\"}],\"name\":\"TimeLockChange\",\"type\":\"event\"},{\"constant\":true,\"inputs\":[],\"name\":\"MAX_OWNER_COUNT\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"addOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_required\",\"type\":\"uint256\"}],\"name\":\"changeRequirement\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint32\",\"name\":\"_secondsTimeLocked\",\"type\":\"uint32\"}],\"name\":\"changeTimeLock\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"confirmTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"confirmationTimes\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"confirmations\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256[]\",\"name\":\"transactionIds\",\"type\":\"uint256[]\"}],\"name\":\"executeMultipleTransactions\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"executeTransaction\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"getConfirmationCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"getConfirmations\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"name\":\"getTransactionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"from\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"to\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"pending\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"name\":\"getTransactionIds\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"\",\"type\":\"bytes4\"}],\"name\":\"instantData\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"isConfirmed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"owners\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"removeOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"replaceOwner\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"required\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"transactionId\",\"type\":\"uint256\"}],\"name\":\"revokeConfirmation\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"secondsTimeLocked\",\"outputs\":[{\"internalType\":\"uint32\",\"name\":\"\",\"type\":\"uint32\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"bytes4\",\"name\":\"selector\",\"type\":\"bytes4\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setSelector\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"submitTransaction\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"transactionCount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"transactions\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"destination\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"},{\"internalType\":\"bool\",\"name\":\"executed\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"dYdX * Multi-Signature Wallet with delay in execution except for some function selectors.\",\"methods\":{\"addOwner(address)\":{\"params\":{\"owner\":\"Address of new owner.\"}},\"changeRequirement(uint256)\":{\"params\":{\"_required\":\"Number of required confirmations.\"}},\"changeTimeLock(uint32)\":{\"params\":{\"_secondsTimeLocked\":\"Duration needed after a transaction is confirmed and before it becomes executable, in seconds.\"}},\"confirmTransaction(uint256)\":{\"params\":{\"transactionId\":\"Transaction ID.\"}},\"constructor\":{\"params\":{\"_noDelayDestinations\":\"List of destinations that correspond with the selectors. Zero address allows the function selector to be used with any address.\",\"_noDelaySelectors\":\"All function selectors that do not require a delay to execute. Fallback function is 0x00000000.\",\"_owners\":\"List of initial owners.\",\"_required\":\"Number of required confirmations.\",\"_secondsTimeLocked\":\"Duration needed after a transaction is confirmed and before it becomes executable, in seconds.\"}},\"executeMultipleTransactions(uint256[])\":{\"params\":{\"transactionIds\":\"List of transaction IDs.\"}},\"executeTransaction(uint256)\":{\"params\":{\"transactionId\":\"Transaction ID.\"}},\"getConfirmationCount(uint256)\":{\"params\":{\"transactionId\":\"Transaction ID.\"},\"return\":\"Number of confirmations.\"},\"getConfirmations(uint256)\":{\"params\":{\"transactionId\":\"Transaction ID.\"},\"return\":\"Array of owner addresses.\"},\"getOwners()\":{\"return\":\"Array of owner addresses.\"},\"getTransactionCount(bool,bool)\":{\"params\":{\"executed\":\"Include executed transactions.\",\"pending\":\"Include pending transactions.\"},\"return\":\"Total number of transactions after filters are applied.\"},\"getTransactionIds(uint256,uint256,bool,bool)\":{\"params\":{\"executed\":\"Include executed transactions.\",\"from\":\"Index start position of transaction array.\",\"pending\":\"Include pending transactions.\",\"to\":\"Index end position of transaction array.\"},\"return\":\"Array of transaction IDs.\"},\"isConfirmed(uint256)\":{\"params\":{\"transactionId\":\"Transaction ID.\"},\"return\":\"Confirmation status.\"},\"removeOwner(address)\":{\"params\":{\"owner\":\"Address of owner.\"}},\"replaceOwner(address,address)\":{\"params\":{\"newOwner\":\"Address of new owner.\",\"owner\":\"Address of owner to be replaced.\"}},\"revokeConfirmation(uint256)\":{\"params\":{\"transactionId\":\"Transaction ID.\"}},\"setSelector(address,bytes4,bool)\":{\"params\":{\"approved\":\"True if adding approval, false if removing approval.\",\"destination\":\"Destination address of function. Zero address allows the function to be sent to any address.\",\"selector\":\"4-byte selector of the function. Fallback function is 0x00000000.\"}},\"submitTransaction(address,uint256,bytes)\":{\"params\":{\"data\":\"Transaction data payload.\",\"destination\":\"Transaction target address.\",\"value\":\"Transaction ether value.\"},\"return\":\"Transaction ID.\"}},\"title\":\"PartiallyDelayedMultiSig\"},\"userdoc\":{\"methods\":{\"addOwner(address)\":{\"notice\":\"Allows to add a new owner. Transaction has to be sent by wallet.\"},\"changeRequirement(uint256)\":{\"notice\":\"Allows to change the number of required confirmations. Transaction has to be sent by wallet.\"},\"changeTimeLock(uint32)\":{\"notice\":\"Changes the duration of the time lock for transactions.\"},\"confirmTransaction(uint256)\":{\"notice\":\"Allows an owner to confirm a transaction. Overrides the function in MultiSig.\"},\"constructor\":\"Contract constructor sets initial owners, required number of confirmations, and time lock.\",\"executeMultipleTransactions(uint256[])\":{\"notice\":\"Allows an owner to execute multiple confirmed transactions.\"},\"executeTransaction(uint256)\":{\"notice\":\"Allows an owner to execute a confirmed transaction. Overrides the function in MultiSig.\"},\"getConfirmationCount(uint256)\":{\"notice\":\"Returns number of confirmations of a transaction.\"},\"getConfirmations(uint256)\":{\"notice\":\"Returns array with owner addresses, which confirmed transaction.\"},\"getOwners()\":{\"notice\":\"Returns array of owners.\"},\"getTransactionCount(bool,bool)\":{\"notice\":\"Returns total number of transactions after filers are applied.\"},\"getTransactionIds(uint256,uint256,bool,bool)\":{\"notice\":\"Returns list of transaction IDs in defined range.\"},\"isConfirmed(uint256)\":{\"notice\":\"Returns the confirmation status of a transaction.\"},\"removeOwner(address)\":{\"notice\":\"Allows to remove an owner. Transaction has to be sent by wallet.\"},\"replaceOwner(address,address)\":{\"notice\":\"Allows to replace an owner with a new owner. Transaction has to be sent by wallet.\"},\"revokeConfirmation(uint256)\":{\"notice\":\"Allows an owner to revoke a confirmation for a transaction.\"},\"setSelector(address,bytes4,bool)\":{\"notice\":\"Adds or removes functions that can be executed instantly. Transaction must be sent by wallet.\"},\"submitTransaction(address,uint256,bytes)\":{\"notice\":\"Allows an owner to submit and confirm a transaction.\"}}}},\"settings\":{\"compilationTarget\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/multisig/PartiallyDelayedMultiSig.sol\":\"PartiallyDelayedMultiSig\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"optimizer\":{\"enabled\":true,\"runs\":10000},\"remappings\":[]},\"sources\":{\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/multisig/DelayedMultiSig.sol\":{\"keccak256\":\"0xfc2705d2fc228ca0fc4467d1537c6d2ef3ac4f8533a8dea9f750a6bf9aae4ddb\",\"urls\":[\"bzz-raw://039d27717c12e87f96ba964cdd56aed5a8932bb3e1cf0ffd7f729b467dbbed8c\",\"dweb:/ipfs/QmYVLytCxcUZkXrda2cJr4oSMd2kKcm7hSpZHB9nWSJAvS\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/multisig/MultiSig.sol\":{\"keccak256\":\"0x3c0776aedd29b782018b6ad2c3810ac64a84f19c32a5c05bb3577fc2c96364b1\",\"urls\":[\"bzz-raw://268ea85da028f8a4a73e023a88da6c608eb94c08d6f39591540670025b298ce1\",\"dweb:/ipfs/Qmea9fLLdTzmbuNqQY2ct9Mi4AuyCntDWQR8P5fD81HEKJ\"]},\"/home/cdc218/projects/dolomite-protocol-v2/contracts/external/multisig/PartiallyDelayedMultiSig.sol\":{\"keccak256\":\"0xd59d3d1d96636c60e23494c55de3446b3f043214e71f93b27d09d7508028655e\",\"urls\":[\"bzz-raw://1acbf3d5c08fac99542dac8283e1c86eacc8ba673a07797de38e61048e9e5c41\",\"dweb:/ipfs/QmYom4oeLjUwFe9u4v2NA25kuXMR7XtkHRtbWtxKaGqNUv\"]}},\"version\":1}",
"bytecode": "0x60806040523480156200001157600080fd5b506040516200325e3803806200325e833981016040819052620000349162000471565b8484848282815181603282111580156200004e5750818111155b80156200005a57508015155b80156200006657508115155b6200008e5760405162461bcd60e51b815260040162000085906200063a565b60405180910390fd5b60005b8451811015620001755760026000868381518110620000ac57fe5b6020908102919091018101516001600160a01b031682528101919091526040016000205460ff1615801562000108575060006001600160a01b0316858281518110620000f457fe5b60200260200101516001600160a01b031614155b620001275760405162461bcd60e51b815260040162000085906200064c565b6001600260008784815181106200013a57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010162000091565b5083516200018b906003906020870190620002a1565b505050600455506006805463ffffffff191663ffffffff9290921691909117905550508051825114620001d25760405162461bcd60e51b8152600401620000859062000628565b60005b815181101562000295576000838281518110620001ee57fe5b6020026020010151905060008383815181106200020757fe5b6020908102919091018101516001600160a01b03841660009081526008835260408082206001600160e01b031984168352909352829020805460ff1916600190811790915591519092507f167b34692fcade222029b0e3d79a409a03911f7f8006adc78a23f48e1fb177ff91620002829185918591620005f2565b60405180910390a15050600101620001d5565b5050505050506200071e565b828054828255906000526020600020908101928215620002f9579160200282015b82811115620002f957825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190620002c2565b50620003079291506200030b565b5090565b6200033291905b80821115620003075780546001600160a01b031916815560010162000312565b90565b80516200034281620006e3565b92915050565b600082601f8301126200035a57600080fd5b8151620003716200036b8262000685565b6200065e565b915081818352602084019350602081019050838560208402820111156200039757600080fd5b60005b83811015620003c75781620003b0888262000335565b84525060209283019291909101906001016200039a565b5050505092915050565b600082601f830112620003e357600080fd5b8151620003f46200036b8262000685565b915081818352602084019350602081019050838560208402820111156200041a57600080fd5b60005b83811015620003c757816200043388826200044a565b84525060209283019291909101906001016200041d565b80516200034281620006fd565b8051620003428162000708565b8051620003428162000713565b600080600080600060a086880312156200048a57600080fd5b85516001600160401b03811115620004a157600080fd5b620004af8882890162000348565b9550506020620004c28882890162000457565b9450506040620004d58882890162000464565b93505060608601516001600160401b03811115620004f257600080fd5b620005008882890162000348565b92505060808601516001600160401b038111156200051d57600080fd5b6200052b88828901620003d1565b9150509295509295909350565b6200054381620006af565b82525050565b6200054381620006bc565b6200054381620006c1565b60006200056e601d83620006a6565b7f414444524553535f414e445f53454c4543544f525f4d49534d41544348000000815260200192915050565b6000620005a9600f83620006a6565b6e4e4f5f524551554952454d454e545360881b815260200192915050565b6000620005d6600d83620006a6565b6c20a62922a0a22cafa7aba722a960991b815260200192915050565b6060810162000602828662000538565b62000611602083018562000554565b62000620604083018462000549565b949350505050565b6020808252810162000342816200055f565b6020808252810162000342816200059a565b602080825281016200034281620005c7565b6040518181016001600160401b03811182821017156200067d57600080fd5b604052919050565b60006001600160401b038211156200069c57600080fd5b5060209081020190565b90815260200190565b60006200034282620006ce565b151590565b6001600160e01b03191690565b6001600160a01b031690565b63ffffffff1690565b620006ee81620006af565b8114620006fa57600080fd5b50565b620006ee81620006c1565b620006ee8162000332565b620006ee81620006da565b612b30806200072e6000396000f3fe608060405234801561001057600080fd5b50600436106101b95760003560e01c8063a029b36b116100f9578063c642747411610097578063dc8452cd11610071578063dc8452cd146103b0578063e20056e6146103b8578063ee22610b146103cb578063f83f4432146103de576101b9565b8063c642747414610382578063d38f2d8214610395578063d74f8edd146103a8576101b9565b8063b5dc40c3116100d3578063b5dc40c314610341578063b77bf60014610354578063ba51a6df1461035c578063c01a8c841461036f576101b9565b8063a029b36b146102f9578063a0e67e2b1461030c578063a8abe69a14610321576101b9565b80634bde5e0a11610166578063784547a711610140578063784547a71461029d57806380bc148f146102b05780638b51d13f146102c35780639ace38c2146102d6576101b9565b80634bde5e0a14610257578063547415251461026a5780637065cb481461028a576101b9565b80632f54bf6e116101975780632f54bf6e1461020f5780633411c81c1461022f57806337bd78a014610242576101b9565b8063025e7c27146101be578063173825d9146101e757806320ea8d86146101fc575b600080fd5b6101d16101cc3660046121d1565b6103f1565b6040516101de91906127c7565b60405180910390f35b6101fa6101f5366004612007565b610425565b005b6101fa61020a3660046121d1565b610628565b61022261021d366004612007565b610717565b6040516101de919061285b565b61022261023d3660046121ef565b61072c565b61024a61074c565b6040516101de9190612948565b61022261026536600461205f565b610758565b61027d61027836600461216c565b610778565b6040516101de919061293a565b6101fa610298366004612007565b6107e8565b6102226102ab3660046121d1565b610987565b6101fa6102be366004612137565b610a1f565b61027d6102d13660046121d1565b610a83565b6102e96102e43660046121d1565b610b01565b6040516101de94939291906127fd565b6101fa61030736600461226f565b610bcc565b610314610c56565b6040516101de9190612839565b61033461032f36600461220e565b610cc6565b6040516101de919061284a565b61031461034f3660046121d1565b610dfa565b61027d610fcd565b6101fa61036a3660046121d1565b610fd3565b6101fa61037d3660046121d1565b61107b565b61027d6103903660046120dc565b6111bf565b61027d6103a33660046121d1565b6111d8565b61027d6111ea565b61027d6111ef565b6101fa6103c6366004612025565b6111f5565b6101fa6103d93660046121d1565b611448565b6101fa6103ec36600461208f565b61164d565b600381815481106103fe57fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16905081565b33301461044d5760405162461bcd60e51b8152600401610444906128aa565b60405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040902054819060ff166104945760405162461bcd60e51b8152600401610444906128ea565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600260205260408120805460ff191690555b600354600019018110156105b6578273ffffffffffffffffffffffffffffffffffffffff16600382815481106104f457fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff1614156105ae5760038054600019810190811061052e57fe5b6000918252602090912001546003805473ffffffffffffffffffffffffffffffffffffffff909216918390811061056157fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506105b6565b6001016104c2565b506003805460001901906105ca9082611dc0565b5060035460045411156105e3576003546105e390610fd3565b60405173ffffffffffffffffffffffffffffffffffffffff8316907f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9090600090a25050565b3360008181526002602052604090205460ff166106575760405162461bcd60e51b8152600401610444906128ea565b60008281526001602090815260408083203380855292529091205483919060ff166106945760405162461bcd60e51b8152600401610444906128da565b600084815260208190526040902060030154849060ff16156106c85760405162461bcd60e51b8152600401610444906128ca565b6000858152600160209081526040808320338085529252808320805460ff191690555187927ff6a317157440607f36269043eb55f1287a5a19ba2216afeab88cd46cbcfb88e991a35050505050565b60026020526000908152604090205460ff1681565b600160209081526000928352604080842090915290825290205460ff1681565b60065463ffffffff1681565b600860209081526000928352604080842090915290825290205460ff1681565b600080805b6005548110156107de578480156107a6575060008181526020819052604090206003015460ff16155b806107ca57508380156107ca575060008181526020819052604090206003015460ff165b156107d6576001820191505b60010161077d565b5090505b92915050565b3330146108075760405162461bcd60e51b8152600401610444906128aa565b73ffffffffffffffffffffffffffffffffffffffff8116600090815260026020526040902054819060ff161561084f5760405162461bcd60e51b81526004016104449061287a565b8173ffffffffffffffffffffffffffffffffffffffff81166108835760405162461bcd60e51b8152600401610444906128fa565b600380549050600101600454603282111580156108a05750818111155b80156108ab57508015155b80156108b657508115155b6108d25760405162461bcd60e51b81526004016104449061289a565b73ffffffffffffffffffffffffffffffffffffffff8516600081815260026020526040808220805460ff1916600190811790915560038054918201815583527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b0180547fffffffffffffffffffffffff00000000000000000000000000000000000000001684179055517ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d9190a25050505050565b600080805b600354811015610a1357600084815260016020526040812060038054919291849081106109b557fe5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205460ff16156109f6576001820191505b600454821415610a0b57600192505050610a1a565b60010161098c565b5060009150505b919050565b3360008181526002602052604090205460ff16610a4e5760405162461bcd60e51b8152600401610444906128ea565b60005b8251811015610a7e57610a76838281518110610a6957fe5b6020026020010151611448565b600101610a51565b505050565b600080805b600354811015610afa5760008481526001602052604081206003805491929184908110610ab157fe5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205460ff1615610af2576001820191505b600101610a88565b5092915050565b6000602081815291815260409081902080546001808301546002808501805487516101009582161595909502600019011691909104601f810188900488028401880190965285835273ffffffffffffffffffffffffffffffffffffffff90931695909491929190830182828015610bb95780601f10610b8e57610100808354040283529160200191610bb9565b820191906000526020600020905b815481529060010190602001808311610b9c57829003601f168201915b5050506003909301549192505060ff1684565b333014610beb5760405162461bcd60e51b8152600401610444906128aa565b600680547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001663ffffffff83161790556040517f8b01775fda0a3eb53a1e7b3a734cd346761d446aeb72745e17951c0f0ec2b16490610c4b908390612948565b60405180910390a150565b60606003805480602002602001604051908101604052809291908181526020018280548015610cbb57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610c90575b505050505090505b90565b606080600554604051908082528060200260200182016040528015610cf5578160200160208202803883390190505b5090506000805b600554811015610d7657858015610d25575060008181526020819052604090206003015460ff16155b80610d495750848015610d49575060008181526020819052604090206003015460ff165b15610d6e5780838381518110610d5b57fe5b6020026020010181815250506001820191505b600101610cfc565b6060888803604051908082528060200260200182016040528015610da4578160200160208202803883390190505b5090508891505b87821015610dec57838281518110610dbf57fe5b6020026020010151818a840381518110610dd557fe5b602002602001018181525050816001019150610dab565b93505050505b949350505050565b606080600380549050604051908082528060200260200182016040528015610e2c578160200160208202803883390190505b5090506000805b600354811015610f235760008581526001602052604081206003805491929184908110610e5c57fe5b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16835282019290925260400190205460ff1615610f1b5760038181548110610ea357fe5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838381518110610eda57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506001820191505b600101610e33565b606082604051908082528060200260200182016040528015610f4f578160200160208202803883390190505b509050600091505b82821015610fc457838281518110610f6b57fe5b6020026020010151818381518110610f7f57fe5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050816001019150610f57565b95945050505050565b60055481565b333014610ff25760405162461bcd60e51b8152600401610444906128aa565b60035481603282118015906110075750818111155b801561101257508015155b801561101d57508115155b6110395760405162461bcd60e51b81526004016104449061289a565b60048390556040517fa3f1ee9126a074d9326c682f561767f710e927faa811f7a99829d49dc421797a9061106e90859061293a565b60405180910390a1505050565b3360008181526002602052604090205460ff166110aa5760405162461bcd60e51b8152600401610444906128ea565b600082815260208190526040902054829073ffffffffffffffffffffffffffffffffffffffff166110ed5760405162461bcd60e51b8152600401610444906128ba565b60008381526001602090815260408083203380855292529091205484919060ff161561112b5760405162461bcd60e51b81526004016104449061290a565b8461113581610987565b156111525760405162461bcd60e51b81526004016104449061292a565b6000868152600160208181526040808420338086529252808420805460ff1916909317909255905188927f4a504a94899432a9846e1aa406dceb1bcfd538bb839071d49d1e5e23f5be30ef91a36111a886610987565b156111b7576111b786426116fe565b505050505050565b6000806111cd85858561174d565b9050610df28161107b565b60076020526000908152604090205481565b603281565b60045481565b3330146112145760405162461bcd60e51b8152600401610444906128aa565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902054829060ff1661125b5760405162461bcd60e51b8152600401610444906128ea565b73ffffffffffffffffffffffffffffffffffffffff8216600090815260026020526040902054829060ff16156112a35760405162461bcd60e51b81526004016104449061287a565b8273ffffffffffffffffffffffffffffffffffffffff81166112d75760405162461bcd60e51b8152600401610444906128fa565b60005b600354811015611393578573ffffffffffffffffffffffffffffffffffffffff166003828154811061130857fe5b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff16141561138b57846003828154811061133e57fe5b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550611393565b6001016112da565b5073ffffffffffffffffffffffffffffffffffffffff808616600081815260026020526040808220805460ff1990811690915593881682528082208054909416600117909355915190917f8001553a916ef2f495d26a907cc54d96ed840d7bda71e73194bf5a9df7a76b9091a260405173ffffffffffffffffffffffffffffffffffffffff8516907ff39e6e1eb0edcf53c221607b54b00cd28f3196fed0a24994dc308b8f611b682d90600090a25050505050565b3360008181526002602052604090205460ff166114775760405162461bcd60e51b8152600401610444906128ea565b600082815260208190526040902060030154829060ff16156114ab5760405162461bcd60e51b8152600401610444906128ca565b826114b581610987565b6114d15760405162461bcd60e51b81526004016104449061288a565b600654600085815260076020526040902054859163ffffffff1601421015806114fe57506114fe81611870565b61151a5760405162461bcd60e51b81526004016104449061291a565b600085815260208181526040808320600381018054600160ff1990911681179091558154818301546002808501805487516101009682161596909602600019011691909104601f81018890048802850188019096528584529396956060956115f39573ffffffffffffffffffffffffffffffffffffffff909416949293918301828280156115e95780601f106115be576101008083540402835291602001916115e9565b820191906000526020600020905b8154815290600101906020018083116115cc57829003601f168201915b50505050506119b4565b915091508181906116175760405162461bcd60e51b81526004016104449190612869565b5060405188907f33e13ecb54c3076d8e8bb8c2881800a4d972b792045ffae98fdf46df365fed7590600090a25050505050505050565b33301461166c5760405162461bcd60e51b8152600401610444906128aa565b73ffffffffffffffffffffffffffffffffffffffff831660009081526008602090815260408083207fffffffff000000000000000000000000000000000000000000000000000000008616845290915290819020805460ff1916831515179055517f167b34692fcade222029b0e3d79a409a03911f7f8006adc78a23f48e1fb177ff9061106e908590859085906127d5565b600082815260076020526040908190208290555182907f0b237afe65f1514fd7ea3f923ea4fe792bdd07000a912b6cd1602a8e7f573c8d9061174190849061293a565b60405180910390a25050565b60008373ffffffffffffffffffffffffffffffffffffffff81166117835760405162461bcd60e51b8152600401610444906128fa565b6005546040805160808101825273ffffffffffffffffffffffffffffffffffffffff8881168252602080830189815283850189815260006060860181905287815280845295909520845181547fffffffffffffffffffffffff000000000000000000000000000000000000000016941693909317835551600183015592518051929391926118179260028501920190611de4565b50606091909101516003909101805460ff191691151591909117905560058054600101905560405181907fc0ba8fe4b176c1714197d43b9cc6bcf797a4a7461c5fe8d0ef6e184ae7601e5190600090a295945050505050565b600061187a611e62565b600083815260208181526040918290208251608081018452815473ffffffffffffffffffffffffffffffffffffffff168152600180830154828501526002808401805487516101009482161594909402600019011691909104601f810186900486028301860187528083529295939493860193919290918301828280156119425780601f1061191757610100808354040283529160200191611942565b820191906000526020600020905b81548152906001019060200180831161192