Obligation Receipt
The ObligationReceipt
contract is used to handle rights and obligations of NFTs held in collateral by the borrower. The holder of an obligation receipt receives the underlying NFT when the loan is repaid and is able to control rights delegation; for example, to receive airdrops or gain access to token-gated events.
Methods
setDelegate()
function setDelegate(uint256 tokenId, address to, bool value)
Sets delegation rights for the underlying of a given obligation receipt tokenId to a given address.
tokenId
uint256
tokenId of the obligation receipt which is linked to a specific loan
to
address
target address for rights delegation
value
bool
true to grant delegation rights, false to remove
View Methods
exists()
function exists(uint256 tokenId)
Checks if there exists an obligation receipt for a given tokenId
.
tokenId
uint256
tokenId of the obligation receipt which is linked to a specific loan
Returns true
if the tokenId
exists.
getLoan()
function getLoan(uint256 tokenId)
Retrieves loan data for a given tokenId
.
tokenId
uint256
tokenId of the obligation receipt which is linked to a specific loan
Return
loan
DataTypes.TokenizedLoan memory
tokenized loan data consisting of the collatateral
address, tokenId
and loan id
ABI
Obligation Receipts ABI
{
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "baseURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "exists",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "getLoan",
"outputs": [
{
"components": [
{
"internalType": "address",
"name": "collateral",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"internalType": "struct DataTypes.TokenizedLoan",
"name": "",
"type": "tuple"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_addressProvider_",
"type": "address"
},
{
"internalType": "bool",
"name": "_isLiquidDelegate_",
"type": "bool"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
},
{
"internalType": "string",
"name": "_customBaseURI",
"type": "string"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "loans",
"outputs": [
{
"internalType": "address",
"name": "collateral",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenizedId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_customBaseURI",
"type": "string"
}
],
"name": "setBaseURI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "bool",
"name": "value",
"type": "bool"
}
],
"name": "setDelegate",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "_interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": {
"object": "0x608060405234801561001057600080fd5b50612817806100206000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80636352211e116100f9578063a217fddf11610097578063c87b56dd11610071578063c87b56dd146103ea578063d547741f146103fd578063e1ec3c6814610410578063e985e9c51461046e57600080fd5b8063a217fddf146103bc578063a22cb465146103c4578063b88d4fde146103d757600080fd5b806390bd6748116100d357806390bd67481461037b57806391d148541461038e57806394d008ef146103a157806395d89b41146103b457600080fd5b80636352211e1461034d5780636c0360eb1461036057806370a082311461036857600080fd5b80632f2ff15d1161016657806342966c681161014057806342966c68146102d65780634f558e79146102e9578063504006ca146102fc57806355f804b31461033a57600080fd5b80632f2ff15d1461029d57806336568abe146102b057806342842e0e146102c357600080fd5b8063081812fc116101a2578063081812fc1461021b578063095ea7b31461024657806323b872dd14610259578063248a9ca31461026c57600080fd5b806301ffc9a7146101c957806303baae35146101f157806306fdde0314610206575b600080fd5b6101dc6101d7366004611eff565b6104aa565b60405190151581526020015b60405180910390f35b6102046101ff366004611fe9565b6104bb565b005b61020e610608565b6040516101e891906120e5565b61022e6102293660046120f8565b61069a565b6040516001600160a01b0390911681526020016101e8565b610204610254366004612111565b6106c1565b61020461026736600461213d565b6107d6565b61028f61027a3660046120f8565b60009081526097602052604090206001015490565b6040519081526020016101e8565b6102046102ab36600461217e565b610807565b6102046102be36600461217e565b61082c565b6102046102d136600461213d565b6108aa565b6102046102e43660046120f8565b6108c5565b6101dc6102f73660046120f8565b6109be565b61030f61030a3660046120f8565b6109dd565b6040805182516001600160a01b031681526020808401519082015291810151908201526060016101e8565b6102046103483660046121ae565b610a4c565b61022e61035b3660046120f8565b610b1b565b61020e610b7b565b61028f6103763660046121e3565b610c09565b610204610389366004612200565b610c8f565b6101dc61039c36600461217e565b610df2565b6102046103af36600461223e565b610e1d565b61020e6110a9565b61028f600081565b6102046103d2366004612297565b6110b8565b6102046103e53660046122cc565b6110c3565b61020e6103f83660046120f8565b6110fb565b61020461040b36600461217e565b611162565b61044961041e3660046120f8565b60cb602052600090815260409020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b0390941684526020840192909252908201526060016101e8565b6101dc61047c366004612338565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006104b582611187565b92915050565b600054610100900460ff16158080156104db5750600054600160ff909116105b806104f55750303b1580156104f5575060005460ff166001145b61055d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610580576000805461ff0019166101001790555b61058a84846111ac565b610593826111dd565b60c98054861515600160a01b026001600160a81b03199091166001600160a01b038916171790558015610600576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60606065805461061790612366565b80601f016020809104026020016040519081016040528092919081815260200182805461064390612366565b80156106905780601f1061066557610100808354040283529160200191610690565b820191906000526020600020905b81548152906001019060200180831161067357829003601f168201915b5050505050905090565b60006106a58261122b565b506000908152606960205260409020546001600160a01b031690565b60006106cc82610b1b565b9050806001600160a01b0316836001600160a01b0316036107395760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610554565b336001600160a01b03821614806107555750610755813361047c565b6107c75760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610554565b6107d1838361128a565b505050565b6107e033826112f8565b6107fc5760405162461bcd60e51b8152600401610554906123a0565b6107d1838383611377565b600082815260976020526040902060010154610822816114e8565b6107d183836114f2565b6001600160a01b038116331461089c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610554565b6108a68282611578565b5050565b6107d1838383604051806020016040528060008152506110c3565b60c960009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610918573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093c91906123ed565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203530360ec1b8152509061098a5760405162461bcd60e51b815260040161055491906120e5565b50600081815260cb6020526040812080546001600160a01b031916815560018101829055600201556109bb816115df565b50565b6000818152606760205260408120546001600160a01b031615156104b5565b610a0a604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b50600090815260cb6020908152604091829020825160608101845281546001600160a01b03168152600182015492810192909252600201549181019190915290565b60c960009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac391906123ed565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203430360ec1b81525090610b115760405162461bcd60e51b815260040161055491906120e5565b506109bb816111dd565b6000818152606760205260408120546001600160a01b0316806104b55760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610554565b60ca8054610b8890612366565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb490612366565b8015610c015780601f10610bd657610100808354040283529160200191610c01565b820191906000526020600020905b815481529060010190602001808311610be457829003601f168201915b505050505081565b60006001600160a01b038216610c735760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610554565b506001600160a01b031660009081526068602052604090205490565b610c9883610b1b565b6001600160a01b0316336001600160a01b031614610cea5760405162461bcd60e51b815260206004820152600f60248201526e3297b6bab9ba16b13296b7bbb732b960891b6044820152606401610554565b60c960009054906101000a90046001600160a01b03166001600160a01b03166357d600a16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6191906123ed565b600084815260cb6020526040908190208054600190910154915163537a5c3d60e01b81526001600160a01b038681166004830152918216602482015260448101929092528315156064830152919091169063537a5c3d90608401600060405180830381600087803b158015610dd557600080fd5b505af1158015610de9573d6000803e3d6000fd5b50505050505050565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60c960009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9491906123ed565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203530360ec1b81525090610ee25760405162461bcd60e51b815260040161055491906120e5565b5060008151116040518060400160405280600381526020016238303160e81b81525090610f225760405162461bcd60e51b815260040161055491906120e5565b50600080600083806020019051810190610f3c919061240a565b604080516060810182526001600160a01b038581168252602080830186815283850186815260008e815260cb90935294909120925183546001600160a01b0319169216919091178255516001820155905160029091015591945092509050610fa5868686611682565b60c954600160a01b900460ff16156106005760c960009054906101000a90046001600160a01b03166001600160a01b03166357d600a16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102e91906123ed565b60405163537a5c3d60e01b81526001600160a01b03888116600483015285811660248301526044820185905260016064830152919091169063537a5c3d90608401600060405180830381600087803b15801561108957600080fd5b505af115801561109d573d6000803e3d6000fd5b50505050505050505050565b60606066805461061790612366565b6108a63383836116b5565b6110cd33836112f8565b6110e95760405162461bcd60e51b8152600401610554906123a0565b6110f584848484611783565b50505050565b60606111068261122b565b60006111106117b6565b90506000815111611130576040518060200160405280600081525061115b565b8061113a846117c5565b60405160200161114b929190612441565b6040516020818303038152906040525b9392505050565b60008281526097602052604090206001015461117d816114e8565b6107d18383611578565b60006001600160e01b03198216637965db0b60e01b14806104b557506104b582611858565b600054610100900460ff166111d35760405162461bcd60e51b815260040161055490612470565b6108a682826118a8565b60008151116111fb576040518060200160405280600081525061121e565b804660405160200161120e9291906124bb565b6040516020818303038152906040525b60ca906108a69082612533565b6000818152606760205260409020546001600160a01b03166109bb5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610554565b600081815260696020526040902080546001600160a01b0319166001600160a01b03841690811790915581906112bf82610b1b565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061130483610b1b565b9050806001600160a01b0316846001600160a01b0316148061134b57506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b8061136f5750836001600160a01b03166113648461069a565b6001600160a01b0316145b949350505050565b826001600160a01b031661138a82610b1b565b6001600160a01b0316146113b05760405162461bcd60e51b8152600401610554906125f3565b6001600160a01b0382166114125760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610554565b61141f83838360016118e8565b826001600160a01b031661143282610b1b565b6001600160a01b0316146114585760405162461bcd60e51b8152600401610554906125f3565b600081815260696020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260688552838620805460001901905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6109bb8133611970565b6114fc8282610df2565b6108a65760008281526097602090815260408083206001600160a01b03851684529091529020805460ff191660011790556115343390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6115828282610df2565b156108a65760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006115ea82610b1b565b90506115fa8160008460016118e8565b61160382610b1b565b600083815260696020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526068845282852080546000190190558785526067909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b61168c83836119c9565b6116996000848484611b62565b6107d15760405162461bcd60e51b815260040161055490612638565b816001600160a01b0316836001600160a01b0316036117165760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610554565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61178e848484611377565b61179a84848484611b62565b6110f55760405162461bcd60e51b815260040161055490612638565b606060ca805461061790612366565b606060006117d283611c63565b600101905060008167ffffffffffffffff8111156117f2576117f2611f46565b6040519080825280601f01601f19166020018201604052801561181c576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461182657509392505050565b60006001600160e01b031982166380ac58cd60e01b148061188957506001600160e01b03198216635b5e139f60e01b145b806104b557506301ffc9a760e01b6001600160e01b03198316146104b5565b600054610100900460ff166118cf5760405162461bcd60e51b815260040161055490612470565b60656118db8382612533565b5060666107d18282612533565b60018111156110f5576001600160a01b0384161561192e576001600160a01b038416600090815260686020526040812080548392906119289084906126a0565b90915550505b6001600160a01b038316156110f5576001600160a01b038316600090815260686020526040812080548392906119659084906126b3565b909155505050505050565b61197a8282610df2565b6108a65761198781611d3b565b611992836020611d4d565b6040516020016119a39291906126c6565b60408051601f198184030181529082905262461bcd60e51b8252610554916004016120e5565b6001600160a01b038216611a1f5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610554565b6000818152606760205260409020546001600160a01b031615611a845760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610554565b611a926000838360016118e8565b6000818152606760205260409020546001600160a01b031615611af75760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610554565b6001600160a01b038216600081815260686020908152604080832080546001019055848352606790915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160a01b0384163b15611c5857604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611ba690339089908890889060040161273b565b6020604051808303816000875af1925050508015611be1575060408051601f3d908101601f19168201909252611bde91810190612778565b60015b611c3e573d808015611c0f576040519150601f19603f3d011682016040523d82523d6000602084013e611c14565b606091505b508051600003611c365760405162461bcd60e51b815260040161055490612638565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061136f565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611ca25772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611cce576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611cec57662386f26fc10000830492506010015b6305f5e1008310611d04576305f5e100830492506008015b6127108310611d1857612710830492506004015b60648310611d2a576064830492506002015b600a83106104b55760010192915050565b60606104b56001600160a01b03831660145b60606000611d5c836002612795565b611d679060026126b3565b67ffffffffffffffff811115611d7f57611d7f611f46565b6040519080825280601f01601f191660200182016040528015611da9576020820181803683370190505b509050600360fc1b81600081518110611dc457611dc46127b4565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611df357611df36127b4565b60200101906001600160f81b031916908160001a9053506000611e17846002612795565b611e229060016126b3565b90505b6001811115611e9a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611e5657611e566127b4565b1a60f81b828281518110611e6c57611e6c6127b4565b60200101906001600160f81b031916908160001a90535060049490941c93611e93816127ca565b9050611e25565b50831561115b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610554565b6001600160e01b0319811681146109bb57600080fd5b600060208284031215611f1157600080fd5b813561115b81611ee9565b6001600160a01b03811681146109bb57600080fd5b80358015158114611f4157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611f6d57600080fd5b813567ffffffffffffffff80821115611f8857611f88611f46565b604051601f8301601f19908116603f01168101908282118183101715611fb057611fb0611f46565b81604052838152866020858801011115611fc957600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561200157600080fd5b853561200c81611f1c565b945061201a60208701611f31565b9350604086013567ffffffffffffffff8082111561203757600080fd5b61204389838a01611f5c565b9450606088013591508082111561205957600080fd5b61206589838a01611f5c565b9350608088013591508082111561207b57600080fd5b5061208888828901611f5c565b9150509295509295909350565b60005b838110156120b0578181015183820152602001612098565b50506000910152565b600081518084526120d1816020860160208601612095565b601f01601f19169290920160200192915050565b60208152600061115b60208301846120b9565b60006020828403121561210a57600080fd5b5035919050565b6000806040838503121561212457600080fd5b823561212f81611f1c565b946020939093013593505050565b60008060006060848603121561215257600080fd5b833561215d81611f1c565b9250602084013561216d81611f1c565b929592945050506040919091013590565b6000806040838503121561219157600080fd5b8235915060208301356121a381611f1c565b809150509250929050565b6000602082840312156121c057600080fd5b813567ffffffffffffffff8111156121d757600080fd5b61136f84828501611f5c565b6000602082840312156121f557600080fd5b813561115b81611f1c565b60008060006060848603121561221557600080fd5b83359250602084013561222781611f1c565b915061223560408501611f31565b90509250925092565b60008060006060848603121561225357600080fd5b833561225e81611f1c565b925060208401359150604084013567ffffffffffffffff81111561228157600080fd5b61228d86828701611f5c565b9150509250925092565b600080604083850312156122aa57600080fd5b82356122b581611f1c565b91506122c360208401611f31565b90509250929050565b600080600080608085870312156122e257600080fd5b84356122ed81611f1c565b935060208501356122fd81611f1c565b925060408501359150606085013567ffffffffffffffff81111561232057600080fd5b61232c87828801611f5c565b91505092959194509250565b6000806040838503121561234b57600080fd5b823561235681611f1c565b915060208301356121a381611f1c565b600181811c9082168061237a57607f821691505b60208210810361239a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6000602082840312156123ff57600080fd5b815161115b81611f1c565b60008060006060848603121561241f57600080fd5b835161242a81611f1c565b602085015160409095015190969495509392505050565b60008351612453818460208801612095565b835190830190612467818360208801612095565b01949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600083516124cd818460208801612095565b602f60f81b92018281526001810193909352506021820152602201919050565b601f8211156107d157600081815260208120601f850160051c810160208610156125145750805b601f850160051c820191505b8181101561060057828155600101612520565b815167ffffffffffffffff81111561254d5761254d611f46565b6125618161255b8454612366565b846124ed565b602080601f831160018114612596576000841561257e5750858301515b600019600386901b1c1916600185901b178555610600565b600085815260208120601f198616915b828110156125c5578886015182559484019460019091019084016125a6565b50858210156125e35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156104b5576104b561268a565b808201808211156104b5576104b561268a565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516126fe816017850160208801612095565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161272f816028840160208801612095565b01602801949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061276e908301846120b9565b9695505050505050565b60006020828403121561278a57600080fd5b815161115b81611ee9565b60008160001904831182151516156127af576127af61268a565b500290565b634e487b7160e01b600052603260045260246000fd5b6000816127d9576127d961268a565b50600019019056fea2646970667358221220d4068efbf84400b60cda169f6074a2a96ca499a2d6aa63d578341ba5e624fd2f64736f6c63430008100033",
"sourceMap": "198:1328:159:-:0;;;;;;;;;;;;;;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80636352211e116100f9578063a217fddf11610097578063c87b56dd11610071578063c87b56dd146103ea578063d547741f146103fd578063e1ec3c6814610410578063e985e9c51461046e57600080fd5b8063a217fddf146103bc578063a22cb465146103c4578063b88d4fde146103d757600080fd5b806390bd6748116100d357806390bd67481461037b57806391d148541461038e57806394d008ef146103a157806395d89b41146103b457600080fd5b80636352211e1461034d5780636c0360eb1461036057806370a082311461036857600080fd5b80632f2ff15d1161016657806342966c681161014057806342966c68146102d65780634f558e79146102e9578063504006ca146102fc57806355f804b31461033a57600080fd5b80632f2ff15d1461029d57806336568abe146102b057806342842e0e146102c357600080fd5b8063081812fc116101a2578063081812fc1461021b578063095ea7b31461024657806323b872dd14610259578063248a9ca31461026c57600080fd5b806301ffc9a7146101c957806303baae35146101f157806306fdde0314610206575b600080fd5b6101dc6101d7366004611eff565b6104aa565b60405190151581526020015b60405180910390f35b6102046101ff366004611fe9565b6104bb565b005b61020e610608565b6040516101e891906120e5565b61022e6102293660046120f8565b61069a565b6040516001600160a01b0390911681526020016101e8565b610204610254366004612111565b6106c1565b61020461026736600461213d565b6107d6565b61028f61027a3660046120f8565b60009081526097602052604090206001015490565b6040519081526020016101e8565b6102046102ab36600461217e565b610807565b6102046102be36600461217e565b61082c565b6102046102d136600461213d565b6108aa565b6102046102e43660046120f8565b6108c5565b6101dc6102f73660046120f8565b6109be565b61030f61030a3660046120f8565b6109dd565b6040805182516001600160a01b031681526020808401519082015291810151908201526060016101e8565b6102046103483660046121ae565b610a4c565b61022e61035b3660046120f8565b610b1b565b61020e610b7b565b61028f6103763660046121e3565b610c09565b610204610389366004612200565b610c8f565b6101dc61039c36600461217e565b610df2565b6102046103af36600461223e565b610e1d565b61020e6110a9565b61028f600081565b6102046103d2366004612297565b6110b8565b6102046103e53660046122cc565b6110c3565b61020e6103f83660046120f8565b6110fb565b61020461040b36600461217e565b611162565b61044961041e3660046120f8565b60cb602052600090815260409020805460018201546002909201546001600160a01b03909116919083565b604080516001600160a01b0390941684526020840192909252908201526060016101e8565b6101dc61047c366004612338565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b60006104b582611187565b92915050565b600054610100900460ff16158080156104db5750600054600160ff909116105b806104f55750303b1580156104f5575060005460ff166001145b61055d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610580576000805461ff0019166101001790555b61058a84846111ac565b610593826111dd565b60c98054861515600160a01b026001600160a81b03199091166001600160a01b038916171790558015610600576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050505050565b60606065805461061790612366565b80601f016020809104026020016040519081016040528092919081815260200182805461064390612366565b80156106905780601f1061066557610100808354040283529160200191610690565b820191906000526020600020905b81548152906001019060200180831161067357829003601f168201915b5050505050905090565b60006106a58261122b565b506000908152606960205260409020546001600160a01b031690565b60006106cc82610b1b565b9050806001600160a01b0316836001600160a01b0316036107395760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610554565b336001600160a01b03821614806107555750610755813361047c565b6107c75760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610554565b6107d1838361128a565b505050565b6107e033826112f8565b6107fc5760405162461bcd60e51b8152600401610554906123a0565b6107d1838383611377565b600082815260976020526040902060010154610822816114e8565b6107d183836114f2565b6001600160a01b038116331461089c5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610554565b6108a68282611578565b5050565b6107d1838383604051806020016040528060008152506110c3565b60c960009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610918573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093c91906123ed565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203530360ec1b8152509061098a5760405162461bcd60e51b815260040161055491906120e5565b50600081815260cb6020526040812080546001600160a01b031916815560018101829055600201556109bb816115df565b50565b6000818152606760205260408120546001600160a01b031615156104b5565b610a0a604051806060016040528060006001600160a01b0316815260200160008152602001600081525090565b50600090815260cb6020908152604091829020825160608101845281546001600160a01b03168152600182015492810192909252600201549181019190915290565b60c960009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ac391906123ed565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203430360ec1b81525090610b115760405162461bcd60e51b815260040161055491906120e5565b506109bb816111dd565b6000818152606760205260408120546001600160a01b0316806104b55760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610554565b60ca8054610b8890612366565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb490612366565b8015610c015780601f10610bd657610100808354040283529160200191610c01565b820191906000526020600020905b815481529060010190602001808311610be457829003601f168201915b505050505081565b60006001600160a01b038216610c735760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610554565b506001600160a01b031660009081526068602052604090205490565b610c9883610b1b565b6001600160a01b0316336001600160a01b031614610cea5760405162461bcd60e51b815260206004820152600f60248201526e3297b6bab9ba16b13296b7bbb732b960891b6044820152606401610554565b60c960009054906101000a90046001600160a01b03166001600160a01b03166357d600a16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d3d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d6191906123ed565b600084815260cb6020526040908190208054600190910154915163537a5c3d60e01b81526001600160a01b038681166004830152918216602482015260448101929092528315156064830152919091169063537a5c3d90608401600060405180830381600087803b158015610dd557600080fd5b505af1158015610de9573d6000803e3d6000fd5b50505050505050565b60009182526097602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60c960009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e70573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e9491906123ed565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203530360ec1b81525090610ee25760405162461bcd60e51b815260040161055491906120e5565b5060008151116040518060400160405280600381526020016238303160e81b81525090610f225760405162461bcd60e51b815260040161055491906120e5565b50600080600083806020019051810190610f3c919061240a565b604080516060810182526001600160a01b038581168252602080830186815283850186815260008e815260cb90935294909120925183546001600160a01b0319169216919091178255516001820155905160029091015591945092509050610fa5868686611682565b60c954600160a01b900460ff16156106005760c960009054906101000a90046001600160a01b03166001600160a01b03166357d600a16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561100a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102e91906123ed565b60405163537a5c3d60e01b81526001600160a01b03888116600483015285811660248301526044820185905260016064830152919091169063537a5c3d90608401600060405180830381600087803b15801561108957600080fd5b505af115801561109d573d6000803e3d6000fd5b50505050505050505050565b60606066805461061790612366565b6108a63383836116b5565b6110cd33836112f8565b6110e95760405162461bcd60e51b8152600401610554906123a0565b6110f584848484611783565b50505050565b60606111068261122b565b60006111106117b6565b90506000815111611130576040518060200160405280600081525061115b565b8061113a846117c5565b60405160200161114b929190612441565b6040516020818303038152906040525b9392505050565b60008281526097602052604090206001015461117d816114e8565b6107d18383611578565b60006001600160e01b03198216637965db0b60e01b14806104b557506104b582611858565b600054610100900460ff166111d35760405162461bcd60e51b815260040161055490612470565b6108a682826118a8565b60008151116111fb576040518060200160405280600081525061121e565b804660405160200161120e9291906124bb565b6040516020818303038152906040525b60ca906108a69082612533565b6000818152606760205260409020546001600160a01b03166109bb5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610554565b600081815260696020526040902080546001600160a01b0319166001600160a01b03841690811790915581906112bf82610b1b565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061130483610b1b565b9050806001600160a01b0316846001600160a01b0316148061134b57506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b8061136f5750836001600160a01b03166113648461069a565b6001600160a01b0316145b949350505050565b826001600160a01b031661138a82610b1b565b6001600160a01b0316146113b05760405162461bcd60e51b8152600401610554906125f3565b6001600160a01b0382166114125760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610554565b61141f83838360016118e8565b826001600160a01b031661143282610b1b565b6001600160a01b0316146114585760405162461bcd60e51b8152600401610554906125f3565b600081815260696020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260688552838620805460001901905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6109bb8133611970565b6114fc8282610df2565b6108a65760008281526097602090815260408083206001600160a01b03851684529091529020805460ff191660011790556115343390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6115828282610df2565b156108a65760008281526097602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006115ea82610b1b565b90506115fa8160008460016118e8565b61160382610b1b565b600083815260696020908152604080832080546001600160a01b03199081169091556001600160a01b0385168085526068845282852080546000190190558785526067909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b61168c83836119c9565b6116996000848484611b62565b6107d15760405162461bcd60e51b815260040161055490612638565b816001600160a01b0316836001600160a01b0316036117165760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610554565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61178e848484611377565b61179a84848484611b62565b6110f55760405162461bcd60e51b815260040161055490612638565b606060ca805461061790612366565b606060006117d283611c63565b600101905060008167ffffffffffffffff8111156117f2576117f2611f46565b6040519080825280601f01601f19166020018201604052801561181c576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461182657509392505050565b60006001600160e01b031982166380ac58cd60e01b148061188957506001600160e01b03198216635b5e139f60e01b145b806104b557506301ffc9a760e01b6001600160e01b03198316146104b5565b600054610100900460ff166118cf5760405162461bcd60e51b815260040161055490612470565b60656118db8382612533565b5060666107d18282612533565b60018111156110f5576001600160a01b0384161561192e576001600160a01b038416600090815260686020526040812080548392906119289084906126a0565b90915550505b6001600160a01b038316156110f5576001600160a01b038316600090815260686020526040812080548392906119659084906126b3565b909155505050505050565b61197a8282610df2565b6108a65761198781611d3b565b611992836020611d4d565b6040516020016119a39291906126c6565b60408051601f198184030181529082905262461bcd60e51b8252610554916004016120e5565b6001600160a01b038216611a1f5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610554565b6000818152606760205260409020546001600160a01b031615611a845760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610554565b611a926000838360016118e8565b6000818152606760205260409020546001600160a01b031615611af75760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610554565b6001600160a01b038216600081815260686020908152604080832080546001019055848352606790915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160a01b0384163b15611c5857604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290611ba690339089908890889060040161273b565b6020604051808303816000875af1925050508015611be1575060408051601f3d908101601f19168201909252611bde91810190612778565b60015b611c3e573d808015611c0f576040519150601f19603f3d011682016040523d82523d6000602084013e611c14565b606091505b508051600003611c365760405162461bcd60e51b815260040161055490612638565b805181602001fd5b6001600160e01b031916630a85bd0160e11b14905061136f565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611ca25772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611cce576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611cec57662386f26fc10000830492506010015b6305f5e1008310611d04576305f5e100830492506008015b6127108310611d1857612710830492506004015b60648310611d2a576064830492506002015b600a83106104b55760010192915050565b60606104b56001600160a01b03831660145b60606000611d5c836002612795565b611d679060026126b3565b67ffffffffffffffff811115611d7f57611d7f611f46565b6040519080825280601f01601f191660200182016040528015611da9576020820181803683370190505b509050600360fc1b81600081518110611dc457611dc46127b4565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110611df357611df36127b4565b60200101906001600160f81b031916908160001a9053506000611e17846002612795565b611e229060016126b3565b90505b6001811115611e9a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110611e5657611e566127b4565b1a60f81b828281518110611e6c57611e6c6127b4565b60200101906001600160f81b031916908160001a90535060049490941c93611e93816127ca565b9050611e25565b50831561115b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610554565b6001600160e01b0319811681146109bb57600080fd5b600060208284031215611f1157600080fd5b813561115b81611ee9565b6001600160a01b03811681146109bb57600080fd5b80358015158114611f4157600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f830112611f6d57600080fd5b813567ffffffffffffffff80821115611f8857611f88611f46565b604051601f8301601f19908116603f01168101908282118183101715611fb057611fb0611f46565b81604052838152866020858801011115611fc957600080fd5b836020870160208301376000602085830101528094505050505092915050565b600080600080600060a0868803121561200157600080fd5b853561200c81611f1c565b945061201a60208701611f31565b9350604086013567ffffffffffffffff8082111561203757600080fd5b61204389838a01611f5c565b9450606088013591508082111561205957600080fd5b61206589838a01611f5c565b9350608088013591508082111561207b57600080fd5b5061208888828901611f5c565b9150509295509295909350565b60005b838110156120b0578181015183820152602001612098565b50506000910152565b600081518084526120d1816020860160208601612095565b601f01601f19169290920160200192915050565b60208152600061115b60208301846120b9565b60006020828403121561210a57600080fd5b5035919050565b6000806040838503121561212457600080fd5b823561212f81611f1c565b946020939093013593505050565b60008060006060848603121561215257600080fd5b833561215d81611f1c565b9250602084013561216d81611f1c565b929592945050506040919091013590565b6000806040838503121561219157600080fd5b8235915060208301356121a381611f1c565b809150509250929050565b6000602082840312156121c057600080fd5b813567ffffffffffffffff8111156121d757600080fd5b61136f84828501611f5c565b6000602082840312156121f557600080fd5b813561115b81611f1c565b60008060006060848603121561221557600080fd5b83359250602084013561222781611f1c565b915061223560408501611f31565b90509250925092565b60008060006060848603121561225357600080fd5b833561225e81611f1c565b925060208401359150604084013567ffffffffffffffff81111561228157600080fd5b61228d86828701611f5c565b9150509250925092565b600080604083850312156122aa57600080fd5b82356122b581611f1c565b91506122c360208401611f31565b90509250929050565b600080600080608085870312156122e257600080fd5b84356122ed81611f1c565b935060208501356122fd81611f1c565b925060408501359150606085013567ffffffffffffffff81111561232057600080fd5b61232c87828801611f5c565b91505092959194509250565b6000806040838503121561234b57600080fd5b823561235681611f1c565b915060208301356121a381611f1c565b600181811c9082168061237a57607f821691505b60208210810361239a57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b6000602082840312156123ff57600080fd5b815161115b81611f1c565b60008060006060848603121561241f57600080fd5b835161242a81611f1c565b602085015160409095015190969495509392505050565b60008351612453818460208801612095565b835190830190612467818360208801612095565b01949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600083516124cd818460208801612095565b602f60f81b92018281526001810193909352506021820152602201919050565b601f8211156107d157600081815260208120601f850160051c810160208610156125145750805b601f850160051c820191505b8181101561060057828155600101612520565b815167ffffffffffffffff81111561254d5761254d611f46565b6125618161255b8454612366565b846124ed565b602080601f831160018114612596576000841561257e5750858301515b600019600386901b1c1916600185901b178555610600565b600085815260208120601f198616915b828110156125c5578886015182559484019460019091019084016125a6565b50858210156125e35787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b818103818111156104b5576104b561268a565b808201808211156104b5576104b561268a565b7f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008152600083516126fe816017850160208801612095565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835161272f816028840160208801612095565b01602801949350505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061276e908301846120b9565b9695505050505050565b60006020828403121561278a57600080fd5b815161115b81611ee9565b60008160001904831182151516156127af576127af61268a565b500290565b634e487b7160e01b600052603260045260246000fd5b6000816127d9576127d961268a565b50600019019056fea2646970667358221220d4068efbf84400b60cda169f6074a2a96ca499a2d6aa63d578341ba5e624fd2f64736f6c63430008100033",
"sourceMap": "198:1328:159:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3310:198:164;;;;;;:::i;:::-;;:::i;:::-;;;565:14:187;;558:22;540:41;;528:2;513:18;3310:198:164;;;;;;;;1066:407;;;;;;:::i;:::-;;:::i;:::-;;2932:98:28;;;:::i;:::-;;;;;;;:::i;4407:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;3807:32:187;;;3789:51;;3777:2;3762:18;4407:167:28;3643:203:187;3929:417:28;;;;;;:::i;:::-;;:::i;5084:326::-;;;;;;:::i;:::-;;:::i;4708:129:16:-;;;;;;:::i;:::-;4782:7;4808:12;;;:6;:12;;;;;:22;;;;4708:129;;;;4963:25:187;;;4951:2;4936:18;4708:129:16;4817:177:187;5133:145:16;;;;;;:::i;:::-;;:::i;6242:214::-;;;;;;:::i;:::-;;:::i;5476:179:28:-;;;;;;:::i;:::-;;:::i;2615:129:164:-;;;;;;:::i;:::-;;:::i;2880:102::-;;;;;;:::i;:::-;;:::i;2988:127::-;;;;;;:::i;:::-;;:::i;:::-;;;;5551:13:187;;-1:-1:-1;;;;;5547:39:187;5529:58;;5643:4;5631:17;;;5625:24;5603:20;;;5596:54;5694:17;;;5688:24;5666:20;;;5659:54;5517:2;5502:18;2988:127:164;5319:400:187;2750:121:164;;;;;;:::i;:::-;;:::i;2651:219:28:-;;;;;;:::i;:::-;;:::i;952:21:164:-;;;:::i;2390:204:28:-;;;;;;:::i;:::-;;:::i;627:354:159:-;;;;;;:::i;:::-;;:::i;3203:145:16:-;;;;;;:::i;:::-;;:::i;1793:816:164:-;;;;;;:::i;:::-;;:::i;3094:102:28:-;;;:::i;2324:49:16:-;;2369:4;2324:49;;4641:153:28;;;;;;:::i;:::-;;:::i;5721:314::-;;;;;;:::i;:::-;;:::i;3262:276::-;;;;;;:::i;:::-;;:::i;5558:147:16:-;;;;;;:::i;:::-;;:::i;1003:56:164:-;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1003:56:164;;;;;;;;;;;-1:-1:-1;;;;;8613:32:187;;;8595:51;;8677:2;8662:18;;8655:34;;;;8705:18;;;8698:34;8583:2;8568:18;1003:56:164;8393:345:187;4860:162:28;;;;;;:::i;:::-;-1:-1:-1;;;;;4980:25:28;;;4957:4;4980:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4860:162;3310:198:164;3441:4;3464:37;3488:12;3464:23;:37::i;:::-;3457:44;3310:198;-1:-1:-1;;3310:198:164:o;1066:407::-;3268:19:18;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:18;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:18;1476:19:32;:23;;;3376:66:18;;-1:-1:-1;3425:12:18;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:18;;9338:2:187;3314:201:18;;;9320:21:187;9377:2;9357:18;;;9350:30;9416:34;9396:18;;;9389:62;-1:-1:-1;;;9467:18:187;;;9460:44;9521:19;;3314:201:18;;;;;;;;;3525:12;:16;;-1:-1:-1;;3525:16:18;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;-1:-1:-1;;3585:20:18;;;;;3551:65;1288:29:164::1;1302:5;1309:7;1288:13;:29::i;:::-;1327:27;1339:14;1327:11;:27::i;:::-;1364:16;:54:::0;;1428:38;::::1;;-1:-1:-1::0;;;1428:38:164::1;-1:-1:-1::0;;;;;;1428:38:164;;;-1:-1:-1;;;;;1364:54:164;::::1;1428:38:::0;::::1;::::0;;3636:99:18;;;;3686:5;3670:21;;-1:-1:-1;;3670:21:18;;;3710:14;;-1:-1:-1;9703:36:187;;3710:14:18;;9691:2:187;9676:18;3710:14:18;;;;;;;3636:99;3258:483;1066:407:164;;;;;:::o;2932:98:28:-;2986:13;3018:5;3011:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2932:98;:::o;4407:167::-;4483:7;4502:23;4517:7;4502:14;:23::i;:::-;-1:-1:-1;4543:24:28;;;;:15;:24;;;;;;-1:-1:-1;;;;;4543:24:28;;4407:167::o;3929:417::-;4009:13;4025:34;4051:7;4025:25;:34::i;:::-;4009:50;;4083:5;-1:-1:-1;;;;;4077:11:28;:2;-1:-1:-1;;;;;4077:11:28;;4069:57;;;;-1:-1:-1;;;4069:57:28;;10337:2:187;4069:57:28;;;10319:21:187;10376:2;10356:18;;;10349:30;10415:34;10395:18;;;10388:62;-1:-1:-1;;;10466:18:187;;;10459:31;10507:19;;4069:57:28;10135:397:187;4069:57:28;929:10:33;-1:-1:-1;;;;;4158:21:28;;;;:62;;-1:-1:-1;4183:37:28;4200:5;929:10:33;4860:162:28;:::i;4183:37::-;4137:170;;;;-1:-1:-1;;;4137:170:28;;10739:2:187;4137:170:28;;;10721:21:187;10778:2;10758:18;;;10751:30;10817:34;10797:18;;;10790:62;10888:31;10868:18;;;10861:59;10937:19;;4137:170:28;10537:425:187;4137:170:28;4318:21;4327:2;4331:7;4318:8;:21::i;:::-;3999:347;3929:417;;:::o;5084:326::-;5273:41;929:10:33;5306:7:28;5273:18;:41::i;:::-;5265:99;;;;-1:-1:-1;;;5265:99:28;;;;;;;:::i;:::-;5375:28;5385:4;5391:2;5395:7;5375:9;:28::i;5133:145:16:-;4782:7;4808:12;;;:6;:12;;;;;:22;;;2802:16;2813:4;2802:10;:16::i;:::-;5246:25:::1;5257:4;5263:7;5246:10;:25::i;6242:214::-:0;-1:-1:-1;;;;;6337:23:16;;929:10:33;6337:23:16;6329:83;;;;-1:-1:-1;;;6329:83:16;;11583:2:187;6329:83:16;;;11565:21:187;11622:2;11602:18;;;11595:30;11661:34;11641:18;;;11634:62;-1:-1:-1;;;11712:18:187;;;11705:45;11767:19;;6329:83:16;11381:411:187;6329:83:16;6423:26;6435:4;6441:7;6423:11;:26::i;:::-;6242:214;;:::o;5476:179:28:-;5609:39;5626:4;5632:2;5636:7;5609:39;;;;;;;;;;;;:16;:39::i;2615:129:164:-;1540:16;;;;;;;;;-1:-1:-1;;;;;1540:16:164;-1:-1:-1;;;;;1540:31:164;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1524:49:164;929:10:33;-1:-1:-1;;;;;1524:49:164;;1575:37;;;;;;;;;;;;;-1:-1:-1;;;1575:37:164;;;1516:97;;;;;-1:-1:-1;;;1516:97:164;;;;;;;;:::i;:::-;-1:-1:-1;2697:15:164::1;::::0;;;:5:::1;:15;::::0;;;;2690:22;;-1:-1:-1;;;;;;2690:22:164::1;::::0;;;;::::1;::::0;;;::::1;;::::0;2722:15:::1;2703:8:::0;2722:5:::1;:15::i;:::-;2615:129:::0;:::o;2880:102::-;2935:4;7402:16:28;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:28;7816:31;;2958:17:164;7728:126:28;2988:127:164;3044:30;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3044:30:164;-1:-1:-1;3093:15:164;;;;:5;:15;;;;;;;;;3086:22;;;;;;;;;-1:-1:-1;;;;;3086:22:164;;;;;;;;;;;;;;;;;;;;;;;;;2988:127::o;2750:121::-;1699:16;;;;;;;;;-1:-1:-1;;;;;1699:16:164;-1:-1:-1;;;;;1699:32:164;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1683:50:164;929:10:33;-1:-1:-1;;;;;1683:50:164;;1735:33;;;;;;;;;;;;;-1:-1:-1;;;1735:33:164;;;1675:94;;;;;-1:-1:-1;;;1675:94:164;;;;;;;;:::i;:::-;;2837:27:::1;2849:14;2837:11;:27::i;2651:219:28:-:0;2723:7;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:28;;2785:56;;;;-1:-1:-1;;;2785:56:28;;12255:2:187;2785:56:28;;;12237:21:187;12294:2;12274:18;;;12267:30;-1:-1:-1;;;12313:18:187;;;12306:54;12377:18;;2785:56:28;12053:348:187;952:21:164;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2390:204:28:-;2462:7;-1:-1:-1;;;;;2489:19:28;;2481:73;;;;-1:-1:-1;;;2481:73:28;;12608:2:187;2481:73:28;;;12590:21:187;12647:2;12627:18;;;12620:30;12686:34;12666:18;;;12659:62;-1:-1:-1;;;12737:18:187;;;12730:39;12786:19;;2481:73:28;12406:405:187;2481:73:28;-1:-1:-1;;;;;;2571:16:28;;;;;:9;:16;;;;;;;2390:204::o;627:354:159:-;730:16;738:7;730;:16::i;:::-;-1:-1:-1;;;;;716:30:159;:10;-1:-1:-1;;;;;716:30:159;;708:58;;;;-1:-1:-1;;;708:58:159;;13018:2:187;708:58:159;;;13000:21:187;13057:2;13037:18;;;13030:30;-1:-1:-1;;;13076:18:187;;;13069:45;13131:18;;708:58:159;12816:339:187;708:58:159;796:16;;;;;;;;;-1:-1:-1;;;;;796:16:159;-1:-1:-1;;;;;796:38:159;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;884:14;;;;:5;:14;;;;;;;:25;;;923:22;;;;776:198;;-1:-1:-1;;;776:198:159;;-1:-1:-1;;;;;13441:15:187;;;776:198:159;;;13423:34:187;884:25:159;;;13473:18:187;;;13466:43;13525:18;;;13518:34;;;;13595:14;;13588:22;13568:18;;;13561:50;776:78:159;;;;;;;13357:19:187;;776:198:159;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;627:354;;;:::o;3203:145:16:-;3289:4;3312:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3312:29:16;;;;;;;;;;;;;;;3203:145::o;1793:816:164:-;1540:16;;;;;;;;;-1:-1:-1;;;;;1540:16:164;-1:-1:-1;;;;;1540:31:164;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1524:49:164;929:10:33;-1:-1:-1;;;;;1524:49:164;;1575:37;;;;;;;;;;;;;-1:-1:-1;;;1575:37:164;;;1516:97;;;;;-1:-1:-1;;;1516:97:164;;;;;;;;:::i;:::-;;1922:1:::1;1907:5;:12;:16;1925:29;;;;;;;;;;;;;-1:-1:-1::0;;;1925:29:164::1;;::::0;1899:56:::1;;;;;-1:-1:-1::0;;;1899:56:164::1;;;;;;;;:::i;:::-;;1979:18;2011:15:::0;2040:14:::1;2079:5;2068:46;;;;;;;;;;;;:::i;:::-;2146:125;::::0;;::::1;::::0;::::1;::::0;;-1:-1:-1;;;;;2146:125:164;;::::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;-1:-1:-1;2124:19:164;;;:5:::1;:19:::0;;;;;;;:147;;;;-1:-1:-1;;;;;;2124:147:164::1;::::0;::::1;::::0;;;::::1;::::0;;;-1:-1:-1;2124:147:164;::::1;::::0;;;::::1;::::0;;::::1;::::0;2146:125;;-1:-1:-1;2146:125:164;-1:-1:-1;2146:125:164;-1:-1:-1;2282:37:164::1;2292:5:::0;2124:19;2313:5;2282:9:::1;:37::i;:::-;2334:17;::::0;-1:-1:-1;;;2334:17:164;::::1;;;2330:273;;;2422:16;;;;;;;;;-1:-1:-1::0;;;;;2422:16:164::1;-1:-1:-1::0;;;;;2422:38:164::1;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2402:190;::::0;-1:-1:-1;;;2402:190:164;;-1:-1:-1;;;;;13441:15:187;;;2402:190:164::1;::::0;::::1;13423:34:187::0;13493:15;;;13473:18;;;13466:43;13525:18;;;13518:34;;;2574:4:164::1;13568:18:187::0;;;13561:50;2402:78:164;;;::::1;::::0;::::1;::::0;13357:19:187;;2402:190:164::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1889:720;;;1793:816:::0;;;:::o;3094:102:28:-;3150:13;3182:7;3175:14;;;;;:::i;4641:153::-;4735:52;929:10:33;4768:8:28;4778;4735:18;:52::i;5721:314::-;5889:41;929:10:33;5922:7:28;5889:18;:41::i;:::-;5881:99;;;;-1:-1:-1;;;5881:99:28;;;;;;;:::i;:::-;5990:38;6004:4;6010:2;6014:7;6023:4;5990:13;:38::i;:::-;5721:314;;;;:::o;3262:276::-;3335:13;3360:23;3375:7;3360:14;:23::i;:::-;3394:21;3418:10;:8;:10::i;:::-;3394:34;;3469:1;3451:7;3445:21;:25;:86;;;;;;;;;;;;;;;;;3497:7;3506:18;:7;:16;:18::i;:::-;3480:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3445:86;3438:93;3262:276;-1:-1:-1;;;3262:276:28:o;5558:147:16:-;4782:7;4808:12;;;:6;:12;;;;;:22;;;2802:16;2813:4;2802:10;:16::i;:::-;5672:26:::1;5684:4;5690:7;5672:11;:26::i;2903:213::-:0;2988:4;-1:-1:-1;;;;;;3011:58:16;;-1:-1:-1;;;3011:58:16;;:98;;;3073:36;3097:11;3073:23;:36::i;1605:149:28:-;5363:13:18;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:18;;;;;;;:::i;:::-;1708:39:28::1;1732:5;1739:7;1708:23;:39::i;3618:215:164:-:0;3729:1;3704:14;3698:28;:32;:128;;;;;;;;;;;;;;;;;3769:14;3790:13;3752:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3698:128;3688:7;;:138;;:7;:138;:::i;14004:133:28:-;7793:4;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:28;14077:53;;;;-1:-1:-1;;;14077:53:28;;12255:2:187;14077:53:28;;;12237:21:187;12294:2;12274:18;;;12267:30;-1:-1:-1;;;12313:18:187;;;12306:54;12377:18;;14077:53:28;12053:348:187;13295:182:28;13369:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;13369:29:28;-1:-1:-1;;;;;13369:29:28;;;;;;;;:24;;13422:34;13369:24;13422:25;:34::i;:::-;-1:-1:-1;;;;;13413:57:28;;;;;;;;;;;13295:182;;:::o;8012:272::-;8105:4;8121:13;8137:34;8163:7;8137:25;:34::i;:::-;8121:50;;8200:5;-1:-1:-1;;;;;8189:16:28;:7;-1:-1:-1;;;;;8189:16:28;;:52;;;-1:-1:-1;;;;;;4980:25:28;;;4957:4;4980:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;8209:32;8189:87;;;;8269:7;-1:-1:-1;;;;;8245:31:28;:20;8257:7;8245:11;:20::i;:::-;-1:-1:-1;;;;;8245:31:28;;8189:87;8181:96;8012:272;-1:-1:-1;;;;8012:272:28:o;11928:1255::-;12093:4;-1:-1:-1;;;;;12055:42:28;:34;12081:7;12055:25;:34::i;:::-;-1:-1:-1;;;;;12055:42:28;;12047:92;;;;-1:-1:-1;;;12047:92:28;;;;;;;:::i;:::-;-1:-1:-1;;;;;12157:16:28;;12149:65;;;;-1:-1:-1;;;12149:65:28;;18414:2:187;12149:65:28;;;18396:21:187;18453:2;18433:18;;;18426:30;18492:34;18472:18;;;18465:62;-1:-1:-1;;;18543:18:187;;;18536:34;18587:19;;12149:65:28;18212:400:187;12149:65:28;12225:42;12246:4;12252:2;12256:7;12265:1;12225:20;:42::i;:::-;12405:4;-1:-1:-1;;;;;12367:42:28;:34;12393:7;12367:25;:34::i;:::-;-1:-1:-1;;;;;12367:42:28;;12359:92;;;;-1:-1:-1;;;12359:92:28;;;;;;;:::i;:::-;12520:24;;;;:15;:24;;;;;;;;12513:31;;-1:-1:-1;;;;;;12513:31:28;;;;;;-1:-1:-1;;;;;12988:15:28;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;12988:20:28;;;13022:13;;;;;;;;;:18;;12513:31;13022:18;;;13060:16;;;:7;:16;;;;;;:21;;;;;;;;;;13097:27;;12536:7;;13097:27;;;3999:347;3929:417;;:::o;3642:103:16:-;3708:30;3719:4;929:10:33;3708::16;:30::i;7791:233::-;7874:22;7882:4;7888:7;7874;:22::i;:::-;7869:149;;7912:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7912:29:16;;;;;;;;;:36;;-1:-1:-1;;7912:36:16;7944:4;7912:36;;;7994:12;929:10:33;;850:96;7994:12:16;-1:-1:-1;;;;;7967:40:16;7985:7;-1:-1:-1;;;;;7967:40:16;7979:4;7967:40;;;;;;;;;;7791:233;;:::o;8195:234::-;8278:22;8286:4;8292:7;8278;:22::i;:::-;8274:149;;;8348:5;8316:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8316:29:16;;;;;;;;;;:37;;-1:-1:-1;;8316:37:16;;;8372:40;929:10:33;;8316:12:16;;8372:40;;8348:5;8372:40;8195:234;;:::o;10820:784:28:-;10879:13;10895:34;10921:7;10895:25;:34::i;:::-;10879:50;;10940:51;10961:5;10976:1;10980:7;10989:1;10940:20;:51::i;:::-;11101:34;11127:7;11101:25;:34::i;:::-;11180:24;;;;:15;:24;;;;;;;;11173:31;;-1:-1:-1;;;;;;11173:31:28;;;;;;-1:-1:-1;;;;;11420:16:28;;;;;:9;:16;;;;;:21;;-1:-1:-1;;11420:21:28;;;11468:16;;;:7;:16;;;;;;11461:23;;;;;;;11500:36;11093:42;;-1:-1:-1;11196:7:28;;11500:36;;11180:24;;11500:36;6242:214:16;;:::o;8943:309:28:-;9067:18;9073:2;9077:7;9067:5;:18::i;:::-;9116:53;9147:1;9151:2;9155:7;9164:4;9116:22;:53::i;:::-;9095:150;;;;-1:-1:-1;;;9095:150:28;;;;;;;:::i;13613:307::-;13763:8;-1:-1:-1;;;;;13754:17:28;:5;-1:-1:-1;;;;;13754:17:28;;13746:55;;;;-1:-1:-1;;;13746:55:28;;19238:2:187;13746:55:28;;;19220:21:187;19277:2;19257:18;;;19250:30;19316:27;19296:18;;;19289:55;19361:18;;13746:55:28;19036:349:187;13746:55:28;-1:-1:-1;;;;;13811:25:28;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13811:46:28;;;;;;;;;;13872:41;;540::187;;;13872::28;;513:18:187;13872:41:28;;;;;;;13613:307;;;:::o;6896:305::-;7046:28;7056:4;7062:2;7066:7;7046:9;:28::i;:::-;7092:47;7115:4;7121:2;7125:7;7134:4;7092:22;:47::i;:::-;7084:110;;;;-1:-1:-1;;;7084:110:28;;;;;;;:::i;3514:98:164:-;3566:13;3598:7;3591:14;;;;;:::i;437:707:35:-;493:13;542:14;559:28;581:5;559:21;:28::i;:::-;590:1;559:32;542:49;;605:20;639:6;628:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:18:35;-1:-1:-1;605:41:35;-1:-1:-1;766:28:35;;;782:2;766:28;821:280;-1:-1:-1;;852:5:35;-1:-1:-1;;;986:2:35;975:14;;970:30;852:5;957:44;1045:2;1036:11;;;-1:-1:-1;1065:21:35;821:280;1065:21;-1:-1:-1;1121:6:35;437:707;-1:-1:-1;;;437:707:35:o;1987:344:28:-;2111:4;-1:-1:-1;;;;;;2146:51:28;;-1:-1:-1;;;2146:51:28;;:126;;-1:-1:-1;;;;;;;2213:59:28;;-1:-1:-1;;;2213:59:28;2146:126;:178;;;-1:-1:-1;;;;;;;;;;1168:51:36;;;2288:36:28;1060:166:36;1760:160:28;5363:13:18;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:18;;;;;;;:::i;:::-;1873:5:28::1;:13;1881:5:::0;1873;:13:::1;:::i;:::-;-1:-1:-1::0;1896:7:28::1;:17;1906:7:::0;1896;:17:::1;:::i;16258:396::-:0;16442:1;16430:9;:13;16426:222;;;-1:-1:-1;;;;;16463:18:28;;;16459:85;;-1:-1:-1;;;;;16501:15:28;;;;;;:9;:15;;;;;:28;;16520:9;;16501:15;:28;;16520:9;;16501:28;:::i;:::-;;;;-1:-1:-1;;16459:85:28;-1:-1:-1;;;;;16561:16:28;;;16557:81;;-1:-1:-1;;;;;16597:13:28;;;;;;:9;:13;;;;;:26;;16614:9;;16597:13;:26;;16614:9;;16597:26;:::i;:::-;;;;-1:-1:-1;;16258:396:28;;;;:::o;4026:501:16:-;4114:22;4122:4;4128:7;4114;:22::i;:::-;4109:412;;4297:39;4328:7;4297:30;:39::i;:::-;4407:49;4446:4;4453:2;4407:30;:49::i;:::-;4204:274;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4204:274:16;;;;;;;;;;-1:-1:-1;;;4152:358:16;;;;;;;:::i;9574:920:28:-;-1:-1:-1;;;;;9653:16:28;;9645:61;;;;-1:-1:-1;;;9645:61:28;;20936:2:187;9645:61:28;;;20918:21:187;;;20955:18;;;20948:30;21014:34;20994:18;;;20987:62;21066:18;;9645:61:28;20734:356:187;9645:61:28;7793:4;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:28;7816:31;9716:58;;;;-1:-1:-1;;;9716:58:28;;21297:2:187;9716:58:28;;;21279:21:187;21336:2;21316:18;;;21309:30;21375;21355:18;;;21348:58;21423:18;;9716:58:28;21095:352:187;9716:58:28;9785:48;9814:1;9818:2;9822:7;9831:1;9785:20;:48::i;:::-;7793:4;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:28;7816:31;9920:58;;;;-1:-1:-1;;;9920:58:28;;21297:2:187;9920:58:28;;;21279:21:187;21336:2;21316:18;;;21309:30;21375;21355:18;;;21348:58;21423:18;;9920:58:28;21095:352:187;9920:58:28;-1:-1:-1;;;;;10320:13:28;;;;;;:9;:13;;;;;;;;:18;;10337:1;10320:18;;;10359:16;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;10359:21:28;;;;;10396:33;10367:7;;10320:13;;10396:33;;10320:13;;10396:33;6242:214:16;;:::o;14689:853:28:-;14838:4;-1:-1:-1;;;;;14858:13:28;;1476:19:32;:23;14854:682:28;;14893:82;;-1:-1:-1;;;14893:82:28;;-1:-1:-1;;;;;14893:47:28;;;;;:82;;929:10:33;;14955:4:28;;14961:7;;14970:4;;14893:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14893:82:28;;;;;;;;-1:-1:-1;;14893:82:28;;;;;;;;;;;;:::i;:::-;;;14889:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15153:6;:13;15170:1;15153:18;15149:321;;15195:60;;-1:-1:-1;;;15195:60:28;;;;;;;:::i;15149:321::-;15422:6;15416:13;15407:6;15403:2;15399:15;15392:38;14889:595;-1:-1:-1;;;;;;15025:62:28;-1:-1:-1;;;15025:62:28;;-1:-1:-1;15018:69:28;;14854:682;-1:-1:-1;15521:4:28;14689:853;;;;;;:::o;9900:890:38:-;9953:7;;-1:-1:-1;;;10028:15:38;;10024:99;;-1:-1:-1;;;10063:15:38;;;-1:-1:-1;10106:2:38;10096:12;10024:99;10149:6;10140:5;:15;10136:99;;10184:6;10175:15;;;-1:-1:-1;10218:2:38;10208:12;10136:99;10261:6;10252:5;:15;10248:99;;10296:6;10287:15;;;-1:-1:-1;10330:2:38;10320:12;10248:99;10373:5;10364;:14;10360:96;;10407:5;10398:14;;;-1:-1:-1;10440:1:38;10430:11;10360:96;10482:5;10473;:14;10469:96;;10516:5;10507:14;;;-1:-1:-1;10549:1:38;10539:11;10469:96;10591:5;10582;:14;10578:96;;10625:5;10616:14;;;-1:-1:-1;10658:1:38;10648:11;10578:96;10700:5;10691;:14;10687:64;;10735:1;10725:11;10777:6;9900:890;-1:-1:-1;;9900:890:38:o;2146:149:35:-;2204:13;2236:52;-1:-1:-1;;;;;2248:22:35;;333:2;1557:437;1632:13;1657:19;1689:10;1693:6;1689:1;:10;:::i;:::-;:14;;1702:1;1689:14;:::i;:::-;1679:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1679:25:35;;1657:47;;-1:-1:-1;;;1714:6:35;1721:1;1714:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1714:15:35;;;;;;;;;-1:-1:-1;;;1739:6:35;1746:1;1739:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1739:15:35;;;;;;;;-1:-1:-1;1769:9:35;1781:10;1785:6;1781:1;:10;:::i;:::-;:14;;1794:1;1781:14;:::i;:::-;1769:26;;1764:128;1801:1;1797;:5;1764:128;;;-1:-1:-1;;;1844:5:35;1852:3;1844:11;1835:21;;;;;;;:::i;:::-;;;;1823:6;1830:1;1823:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;1823:33:35;;;;;;;;-1:-1:-1;1880:1:35;1870:11;;;;;1804:3;;;:::i;:::-;;;1764:128;;;-1:-1:-1;1909:10:35;;1901:55;;;;-1:-1:-1;;;1901:55:35;;22848:2:187;1901:55:35;;;22830:21:187;;;22867:18;;;22860:30;22926:34;22906:18;;;22899:62;22978:18;;1901:55:35;22646:356:187;14:131;-1:-1:-1;;;;;;88:32:187;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:131::-;-1:-1:-1;;;;;667:31:187;;657:42;;647:70;;713:1;710;703:12;728:160;793:20;;849:13;;842:21;832:32;;822:60;;878:1;875;868:12;822:60;728:160;;;:::o;893:127::-;954:10;949:3;945:20;942:1;935:31;985:4;982:1;975:15;1009:4;1006:1;999:15;1025:719;1068:5;1121:3;1114:4;1106:6;1102:17;1098:27;1088:55;;1139:1;1136;1129:12;1088:55;1175:6;1162:20;1201:18;1238:2;1234;1231:10;1228:36;;;1244:18;;:::i;:::-;1319:2;1313:9;1287:2;1373:13;;-1:-1:-1;;1369:22:187;;;1393:2;1365:31;1361:40;1349:53;;;1417:18;;;1437:22;;;1414:46;1411:72;;;1463:18;;:::i;:::-;1503:10;1499:2;1492:22;1538:2;1530:6;1523:18;1584:3;1577:4;1572:2;1564:6;1560:15;1556:26;1553:35;1550:55;;;1601:1;1598;1591:12;1550:55;1665:2;1658:4;1650:6;1646:17;1639:4;1631:6;1627:17;1614:54;1712:1;1705:4;1700:2;1692:6;1688:15;1684:26;1677:37;1732:6;1723:15;;;;;;1025:719;;;;:::o;1749:948::-;1871:6;1879;1887;1895;1903;1956:3;1944:9;1935:7;1931:23;1927:33;1924:53;;;1973:1;1970;1963:12;1924:53;2012:9;1999:23;2031:31;2056:5;2031:31;:::i;:::-;2081:5;-1:-1:-1;2105:35:187;2136:2;2121:18;;2105:35;:::i;:::-;2095:45;;2191:2;2180:9;2176:18;2163:32;2214:18;2255:2;2247:6;2244:14;2241:34;;;2271:1;2268;2261:12;2241:34;2294:50;2336:7;2327:6;2316:9;2312:22;2294:50;:::i;:::-;2284:60;;2397:2;2386:9;2382:18;2369:32;2353:48;;2426:2;2416:8;2413:16;2410:36;;;2442:1;2439;2432:12;2410:36;2465:52;2509:7;2498:8;2487:9;2483:24;2465:52;:::i;:::-;2455:62;;2570:3;2559:9;2555:19;2542:33;2526:49;;2600:2;2590:8;2587:16;2584:36;;;2616:1;2613;2606:12;2584:36;;2639:52;2683:7;2672:8;2661:9;2657:24;2639:52;:::i;:::-;2629:62;;;1749:948;;;;;;;;:::o;2702:250::-;2787:1;2797:113;2811:6;2808:1;2805:13;2797:113;;;2887:11;;;2881:18;2868:11;;;2861:39;2833:2;2826:10;2797:113;;;-1:-1:-1;;2944:1:187;2926:16;;2919:27;2702:250::o;2957:271::-;2999:3;3037:5;3031:12;3064:6;3059:3;3052:19;3080:76;3149:6;3142:4;3137:3;3133:14;3126:4;3119:5;3115:16;3080:76;:::i;:::-;3210:2;3189:15;-1:-1:-1;;3185:29:187;3176:39;;;;3217:4;3172:50;;2957:271;-1:-1:-1;;2957:271:187:o;3233:220::-;3382:2;3371:9;3364:21;3345:4;3402:45;3443:2;3432:9;3428:18;3420:6;3402:45;:::i;3458:180::-;3517:6;3570:2;3558:9;3549:7;3545:23;3541:32;3538:52;;;3586:1;3583;3576:12;3538:52;-1:-1:-1;3609:23:187;;3458:180;-1:-1:-1;3458:180:187:o;3851:315::-;3919:6;3927;3980:2;3968:9;3959:7;3955:23;3951:32;3948:52;;;3996:1;3993;3986:12;3948:52;4035:9;4022:23;4054:31;4079:5;4054:31;:::i;:::-;4104:5;4156:2;4141:18;;;;4128:32;;-1:-1:-1;;;3851:315:187:o;4171:456::-;4248:6;4256;4264;4317:2;4305:9;4296:7;4292:23;4288:32;4285:52;;;4333:1;4330;4323:12;4285:52;4372:9;4359:23;4391:31;4416:5;4391:31;:::i;:::-;4441:5;-1:-1:-1;4498:2:187;4483:18;;4470:32;4511:33;4470:32;4511:33;:::i;:::-;4171:456;;4563:7;;-1:-1:-1;;;4617:2:187;4602:18;;;;4589:32;;4171:456::o;4999:315::-;5067:6;5075;5128:2;5116:9;5107:7;5103:23;5099:32;5096:52;;;5144:1;5141;5134:12;5096:52;5180:9;5167:23;5157:33;;5240:2;5229:9;5225:18;5212:32;5253:31;5278:5;5253:31;:::i;:::-;5303:5;5293:15;;;4999:315;;;;;:::o;5724:322::-;5793:6;5846:2;5834:9;5825:7;5821:23;5817:32;5814:52;;;5862:1;5859;5852:12;5814:52;5902:9;5889:23;5935:18;5927:6;5924:30;5921:50;;;5967:1;5964;5957:12;5921:50;5990;6032:7;6023:6;6012:9;6008:22;5990:50;:::i;6051:247::-;6110:6;6163:2;6151:9;6142:7;6138:23;6134:32;6131:52;;;6179:1;6176;6169:12;6131:52;6218:9;6205:23;6237:31;6262:5;6237:31;:::i;6485:383::-;6559:6;6567;6575;6628:2;6616:9;6607:7;6603:23;6599:32;6596:52;;;6644:1;6641;6634:12;6596:52;6680:9;6667:23;6657:33;;6740:2;6729:9;6725:18;6712:32;6753:31;6778:5;6753:31;:::i;:::-;6803:5;-1:-1:-1;6827:35:187;6858:2;6843:18;;6827:35;:::i;:::-;6817:45;;6485:383;;;;;:::o;6873:524::-;6959:6;6967;6975;7028:2;7016:9;7007:7;7003:23;6999:32;6996:52;;;7044:1;7041;7034:12;6996:52;7083:9;7070:23;7102:31;7127:5;7102:31;:::i;:::-;7152:5;-1:-1:-1;7204:2:187;7189:18;;7176:32;;-1:-1:-1;7259:2:187;7244:18;;7231:32;7286:18;7275:30;;7272:50;;;7318:1;7315;7308:12;7272:50;7341;7383:7;7374:6;7363:9;7359:22;7341:50;:::i;:::-;7331:60;;;6873:524;;;;;:::o;7402:315::-;7467:6;7475;7528:2;7516:9;7507:7;7503:23;7499:32;7496:52;;;7544:1;7541;7534:12;7496:52;7583:9;7570:23;7602:31;7627:5;7602:31;:::i;:::-;7652:5;-1:-1:-1;7676:35:187;7707:2;7692:18;;7676:35;:::i;:::-;7666:45;;7402:315;;;;;:::o;7722:666::-;7817:6;7825;7833;7841;7894:3;7882:9;7873:7;7869:23;7865:33;7862:53;;;7911:1;7908;7901:12;7862:53;7950:9;7937:23;7969:31;7994:5;7969:31;:::i;:::-;8019:5;-1:-1:-1;8076:2:187;8061:18;;8048:32;8089:33;8048:32;8089:33;:::i;:::-;8141:7;-1:-1:-1;8195:2:187;8180:18;;8167:32;;-1:-1:-1;8250:2:187;8235:18;;8222:32;8277:18;8266:30;;8263:50;;;8309:1;8306;8299:12;8263:50;8332;8374:7;8365:6;8354:9;8350:22;8332:50;:::i;:::-;8322:60;;;7722:666;;;;;;;:::o;8743:388::-;8811:6;8819;8872:2;8860:9;8851:7;8847:23;8843:32;8840:52;;;8888:1;8885;8878:12;8840:52;8927:9;8914:23;8946:31;8971:5;8946:31;:::i;:::-;8996:5;-1:-1:-1;9053:2:187;9038:18;;9025:32;9066:33;9025:32;9066:33;:::i;9750:380::-;9829:1;9825:12;;;;9872;;;9893:61;;9947:4;9939:6;9935:17;9925:27;;9893:61;10000:2;9992:6;9989:14;9969:18;9966:38;9963:161;;10046:10;10041:3;10037:20;10034:1;10027:31;10081:4;10078:1;10071:15;10109:4;10106:1;10099:15;9963:161;;9750:380;;;:::o;10967:409::-;11169:2;11151:21;;;11208:2;11188:18;;;11181:30;11247:34;11242:2;11227:18;;11220:62;-1:-1:-1;;;11313:2:187;11298:18;;11291:43;11366:3;11351:19;;10967:409::o;11797:251::-;11867:6;11920:2;11908:9;11899:7;11895:23;11891:32;11888:52;;;11936:1;11933;11926:12;11888:52;11968:9;11962:16;11987:31;12012:5;11987:31;:::i;13622:381::-;13718:6;13726;13734;13787:2;13775:9;13766:7;13762:23;13758:32;13755:52;;;13803:1;13800;13793:12;13755:52;13835:9;13829:16;13854:31;13879:5;13854:31;:::i;:::-;13949:2;13934:18;;13928:25;13993:2;13978:18;;;13972:25;13904:5;;13928:25;;-1:-1:-1;13972:25:187;13622:381;-1:-1:-1;;;13622:381:187:o;14008:496::-;14187:3;14225:6;14219:13;14241:66;14300:6;14295:3;14288:4;14280:6;14276:17;14241:66;:::i;:::-;14370:13;;14329:16;;;;14392:70;14370:13;14329:16;14439:4;14427:17;;14392:70;:::i;:::-;14478:20;;14008:496;-1:-1:-1;;;;14008:496:187:o;14509:407::-;14711:2;14693:21;;;14750:2;14730:18;;;14723:30;14789:34;14784:2;14769:18;;14762:62;-1:-1:-1;;;14855:2:187;14840:18;;14833:41;14906:3;14891:19;;14509:407::o;14921:676::-;15282:3;15320:6;15314:13;15336:66;15395:6;15390:3;15383:4;15375:6;15371:17;15336:66;:::i;:::-;-1:-1:-1;;;15424:16:187;;15471:17;;;15515:1;15504:13;;15497:29;;;;-1:-1:-1;15553:2:187;15542:14;;15535:26;15588:2;15577:14;;14921:676;-1:-1:-1;14921:676:187:o;15728:545::-;15830:2;15825:3;15822:11;15819:448;;;15866:1;15891:5;15887:2;15880:17;15936:4;15932:2;15922:19;16006:2;15994:10;15990:19;15987:1;15983:27;15977:4;15973:38;16042:4;16030:10;16027:20;16024:47;;;-1:-1:-1;16065:4:187;16024:47;16120:2;16115:3;16111:12;16108:1;16104:20;16098:4;16094:31;16084:41;;16175:82;16193:2;16186:5;16183:13;16175:82;;;16238:17;;;16219:1;16208:13;16175:82;;16449:1352;16575:3;16569:10;16602:18;16594:6;16591:30;16588:56;;;16624:18;;:::i;:::-;16653:97;16743:6;16703:38;16735:4;16729:11;16703:38;:::i;:::-;16697:4;16653:97;:::i;:::-;16805:4;;16869:2;16858:14;;16886:1;16881:663;;;;17588:1;17605:6;17602:89;;;-1:-1:-1;17657:19:187;;;17651:26;17602:89;-1:-1:-1;;16406:1:187;16402:11;;;16398:24;16394:29;16384:40;16430:1;16426:11;;;16381:57;17704:81;;16851:944;;16881:663;15675:1;15668:14;;;15712:4;15699:18;;-1:-1:-1;;16917:20:187;;;17035:236;17049:7;17046:1;17043:14;17035:236;;;17138:19;;;17132:26;17117:42;;17230:27;;;;17198:1;17186:14;;;;17065:19;;17035:236;;;17039:3;17299:6;17290:7;17287:19;17284:201;;;17360:19;;;17354:26;-1:-1:-1;;17443:1:187;17439:14;;;17455:3;17435:24;17431:37;17427:42;17412:58;17397:74;;17284:201;-1:-1:-1;;;;;17531:1:187;17515:14;;;17511:22;17498:36;;-1:-1:-1;16449:1352:187:o;17806:401::-;18008:2;17990:21;;;18047:2;18027:18;;;18020:30;18086:34;18081:2;18066:18;;18059:62;-1:-1:-1;;;18152:2:187;18137:18;;18130:35;18197:3;18182:19;;17806:401::o;18617:414::-;18819:2;18801:21;;;18858:2;18838:18;;;18831:30;18897:34;18892:2;18877:18;;18870:62;-1:-1:-1;;;18963:2:187;18948:18;;18941:48;19021:3;19006:19;;18617:414::o;19522:127::-;19583:10;19578:3;19574:20;19571:1;19564:31;19614:4;19611:1;19604:15;19638:4;19635:1;19628:15;19654:128;19721:9;;;19742:11;;;19739:37;;;19756:18;;:::i;19787:125::-;19852:9;;;19873:10;;;19870:36;;;19886:18;;:::i;19917:812::-;20328:25;20323:3;20316:38;20298:3;20383:6;20377:13;20399:75;20467:6;20462:2;20457:3;20453:12;20446:4;20438:6;20434:17;20399:75;:::i;:::-;-1:-1:-1;;;20533:2:187;20493:16;;;20525:11;;;20518:40;20583:13;;20605:76;20583:13;20667:2;20659:11;;20652:4;20640:17;;20605:76;:::i;:::-;20701:17;20720:2;20697:26;;19917:812;-1:-1:-1;;;;19917:812:187:o;21452:489::-;-1:-1:-1;;;;;21721:15:187;;;21703:34;;21773:15;;21768:2;21753:18;;21746:43;21820:2;21805:18;;21798:34;;;21868:3;21863:2;21848:18;;21841:31;;;21646:4;;21889:46;;21915:19;;21907:6;21889:46;:::i;:::-;21881:54;21452:489;-1:-1:-1;;;;;;21452:489:187:o;21946:249::-;22015:6;22068:2;22056:9;22047:7;22043:23;22039:32;22036:52;;;22084:1;22081;22074:12;22036:52;22116:9;22110:16;22135:30;22159:5;22135:30;:::i;22200:168::-;22240:7;22306:1;22302;22298:6;22294:14;22291:1;22288:21;22283:1;22276:9;22269:17;22265:45;22262:71;;;22313:18;;:::i;:::-;-1:-1:-1;22353:9:187;;22200:168::o;22373:127::-;22434:10;22429:3;22425:20;22422:1;22415:31;22465:4;22462:1;22455:15;22489:4;22486:1;22479:15;22505:136;22544:3;22572:5;22562:39;;22581:18;;:::i;:::-;-1:-1:-1;;;22617:18:187;;22505:136::o",
"linkReferences": {}
},
"methodIdentifiers": {
"DEFAULT_ADMIN_ROLE()": "a217fddf",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"baseURI()": "6c0360eb",
"burn(uint256)": "42966c68",
"exists(uint256)": "4f558e79",
"getApproved(uint256)": "081812fc",
"getLoan(uint256)": "504006ca",
"getRoleAdmin(bytes32)": "248a9ca3",
"grantRole(bytes32,address)": "2f2ff15d",
"hasRole(bytes32,address)": "91d14854",
"initialize(address,bool,string,string,string)": "03baae35",
"isApprovedForAll(address,address)": "e985e9c5",
"loans(uint256)": "e1ec3c68",
"mint(address,uint256,bytes)": "94d008ef",
"name()": "06fdde03",
"ownerOf(uint256)": "6352211e",
"renounceRole(bytes32,address)": "36568abe",
"revokeRole(bytes32,address)": "d547741f",
"safeTransferFrom(address,address,uint256)": "42842e0e",
"safeTransferFrom(address,address,uint256,bytes)": "b88d4fde",
"setApprovalForAll(address,bool)": "a22cb465",
"setBaseURI(string)": "55f804b3",
"setDelegate(uint256,address,bool)": "90bd6748",
"supportsInterface(bytes4)": "01ffc9a7",
"symbol()": "95d89b41",
"tokenURI(uint256)": "c87b56dd",
"transferFrom(address,address,uint256)": "23b872dd"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"getLoan\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"internalType\":\"struct DataTypes.TokenizedLoan\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addressProvider_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isLiquidDelegate_\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_customBaseURI\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"loans\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"collateral\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenizedId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_customBaseURI\",\"type\":\"string\"}],\"name\":\"setBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"value\",\"type\":\"bool\"}],\"name\":\"setDelegate\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"setDelegate(uint256,address,bool)\":{\"details\":\"must be holder of obligation receipt to control delegation rights of the underlying - delegation right transfered to new owner as per _beforeTokenTransfer\",\"params\":{\"to\":\"the target address for delegation rights\",\"tokenId\":\"the tokenId of the obligation receipt\",\"value\":\"true if giving and false if removing delegation rights\"}},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"supportsInterface(bytes4)\":{\"notice\":\"----------------------------------------------------------------------- Internal / Overrides -----------------------------------------------------------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/protocol/tokenization/ObligationReceipt.sol\":\"ObligationReceipt\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xe8f27a3e3e25067334e76799f03d4de6d8f8535c3fc4806468228a9ebd5de51a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://686aaf8725727d94b36c53baad3779e168b31e33eec8d39b41e282382617c626\",\"dweb:/ipfs/QmWVRwPpZyweGCw7uRj1rXQTmcwaXB5Ctz3KvpNJPtxDP8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935\",\"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x2a6a0b9fd2d316dcb4141159a9d13be92654066d6c0ae92757ed908ecdfecff0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05d9be7ee043009eb9f2089b452efc0961345531fc63354a249d7337c69f3bb\",\"dweb:/ipfs/QmTXhzgaYrh6og76BP85i6exNFAv5NYw64uVWyworNogyG\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195\",\"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8\",\"dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4\",\"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt\"]},\"src/integrations/IDelegationRegistry.sol\":{\"keccak256\":\"0x1d09c96620cb6253c701f5f085f5b3d720fed3998cf137ae473f5b46c7f08b00\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://2ccccee556054de055b6b98d477cb3f97a8492246bffb726a99cd2d5c98dbaca\",\"dweb:/ipfs/QmRwW9St3JwZC2o4g2YWv2H6xi7qknqJjqc9TBVBnzcGQd\"]},\"src/interfaces/IAddressProvider.sol\":{\"keccak256\":\"0x6730abfcd8770e3279dad6137bf619ab98ee8b049e6dd85d2fbe87ba6224fde8\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://9b7d1588eab025b049f858ab2f329be7fec220198d956b9b61bf0b9bddc5761a\",\"dweb:/ipfs/QmTaFkYSUfWmbpsyE2TKC1QvP6eTDggZ72ZWodBhydqt5X\"]},\"src/interfaces/IRedeemable.sol\":{\"keccak256\":\"0x31c4714398dee1b9e7b31dd9f74c19d2d9b9e9647756cc34b5c5d2ee1c7110c6\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://288505b7d83d903156e9aa5b8383ed2e779104d8d27f9c45299f556e0e554ac0\",\"dweb:/ipfs/QmSms1HVzDWrneXp74CZqKj6HRuQejhkhAuxVqww14toRX\"]},\"src/protocol/libraries/helpers/Errors.sol\":{\"keccak256\":\"0x490e76871922e89a13ba0bb88977be18c143fa9d0cd9afb033744a3d81479c52\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://1c409d4d1e1689d8d8f3c3e361198d20f3b6476608c5316d8e2d91f52373e8e3\",\"dweb:/ipfs/QmRZaYpxqjmBpbxb51KqswKYPSeCsU3ejbmk5E3MrMxJaM\"]},\"src/protocol/libraries/types/DataTypes.sol\":{\"keccak256\":\"0x070f7865fe84ce4c9ebd86bbe24771607fbdb4e8777510b46cb5064e4d9b90a3\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://504fd0c937cc69cc0737c4ef5dcec477017ccbff609b45b210274fd7bf0792cf\",\"dweb:/ipfs/QmeW1TkAHib7XRBVmgMRTdmsa4Rg9HVToTMnifEE1C7mTi\"]},\"src/protocol/tokenization/ObligationReceipt.sol\":{\"keccak256\":\"0xba811b7cecc33f3345b942324b795ba5c066e74b32642e2d2a7a0b7fb92511e5\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://9c91b8f31b7ecef26cb3028c10f8a00bbb92616c052a922fcc796cf0cf8b76c0\",\"dweb:/ipfs/QmQhikCUeyR1RVgCU4tVp4xet5v5rQRVoqWzy6v2H3ETct\"]},\"src/protocol/tokenization/base/Redeemable.sol\":{\"keccak256\":\"0xb49005bc57bdfb2e2e0f2c155dbdd3a6ff51067d40ee72c3c6c742bec465f413\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://790ae5927466f43419196c9255e44848c57678800003f92d3b28c8848c4533bf\",\"dweb:/ipfs/QmfAEBRJa42D41ziGmitjh8fVfpLG1CFe3dRNqq4EKbfWD\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.16+commit.07a7930e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "approved",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256",
"indexed": true
}
],
"type": "event",
"name": "Approval",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "operator",
"type": "address",
"indexed": true
},
{
"internalType": "bool",
"name": "approved",
"type": "bool",
"indexed": false
}
],
"type": "event",
"name": "ApprovalForAll",
"anonymous": false
},
{
"inputs": [
{
"internalType": "uint8",
"name": "version",
"type": "uint8",
"indexed": false
}
],
"type": "event",
"name": "Initialized",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32",
"indexed": true
},
{
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32",
"indexed": true
},
{
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32",
"indexed": true
}
],
"type": "event",
"name": "RoleAdminChanged",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32",
"indexed": true
},
{
"internalType": "address",
"name": "account",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "sender",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "RoleGranted",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32",
"indexed": true
},
{
"internalType": "address",
"name": "account",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "sender",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "RoleRevoked",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "to",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256",
"indexed": true
}
],
"type": "event",
"name": "Transfer",
"anonymous": false
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "approve"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "baseURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "burn"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "exists",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "getLoan",
"outputs": [
{
"internalType": "struct DataTypes.TokenizedLoan",
"name": "",
"type": "tuple",
"components": [
{
"internalType": "address",
"name": "collateral",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
]
}
]
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function",
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
]
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "grantRole"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "_addressProvider_",
"type": "address"
},
{
"internalType": "bool",
"name": "_isLiquidDelegate_",
"type": "bool"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
},
{
"internalType": "string",
"name": "_customBaseURI",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "initialize"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "loans",
"outputs": [
{
"internalType": "address",
"name": "collateral",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "id",
"type": "uint256"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenizedId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "mint"
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "renounceRole"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "revokeRole"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "safeTransferFrom"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "safeTransferFrom"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setApprovalForAll"
},
{
"inputs": [
{
"internalType": "string",
"name": "_customBaseURI",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setBaseURI"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "bool",
"name": "value",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setDelegate"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "_interfaceId",
"type": "bytes4"
}
],
"stateMutability": "view",
"type": "function",
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "transferFrom"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"approve(address,uint256)": {
"details": "See {IERC721-approve}."
},
"balanceOf(address)": {
"details": "See {IERC721-balanceOf}."
},
"getApproved(uint256)": {
"details": "See {IERC721-getApproved}."
},
"getRoleAdmin(bytes32)": {
"details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."
},
"grantRole(bytes32,address)": {
"details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."
},
"hasRole(bytes32,address)": {
"details": "Returns `true` if `account` has been granted `role`."
},
"isApprovedForAll(address,address)": {
"details": "See {IERC721-isApprovedForAll}."
},
"name()": {
"details": "See {IERC721Metadata-name}."
},
"ownerOf(uint256)": {
"details": "See {IERC721-ownerOf}."
},
"renounceRole(bytes32,address)": {
"details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event."
},
"revokeRole(bytes32,address)": {
"details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."
},
"safeTransferFrom(address,address,uint256)": {
"details": "See {IERC721-safeTransferFrom}."
},
"safeTransferFrom(address,address,uint256,bytes)": {
"details": "See {IERC721-safeTransferFrom}."
},
"setApprovalForAll(address,bool)": {
"details": "See {IERC721-setApprovalForAll}."
},
"setDelegate(uint256,address,bool)": {
"details": "must be holder of obligation receipt to control delegation rights of the underlying - delegation right transfered to new owner as per _beforeTokenTransfer",
"params": {
"to": "the target address for delegation rights",
"tokenId": "the tokenId of the obligation receipt",
"value": "true if giving and false if removing delegation rights"
}
},
"symbol()": {
"details": "See {IERC721Metadata-symbol}."
},
"tokenURI(uint256)": {
"details": "See {IERC721Metadata-tokenURI}."
},
"transferFrom(address,address,uint256)": {
"details": "See {IERC721-transferFrom}."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"supportsInterface(bytes4)": {
"notice": "----------------------------------------------------------------------- Internal / Overrides -----------------------------------------------------------------------"
}
},
"version": 1
}
},
"settings": {
"remappings": [
":@chainlink/=lib/chainlink/",
":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/",
":ds-test/=lib/forge-std/lib/ds-test/src/",
":forge-std/=lib/forge-std/src/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"src/protocol/tokenization/ObligationReceipt.sol": "ObligationReceipt"
},
"libraries": {}
},
"sources": {
"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol": {
"keccak256": "0xe8f27a3e3e25067334e76799f03d4de6d8f8535c3fc4806468228a9ebd5de51a",
"urls": [
"bzz-raw://686aaf8725727d94b36c53baad3779e168b31e33eec8d39b41e282382617c626",
"dweb:/ipfs/QmWVRwPpZyweGCw7uRj1rXQTmcwaXB5Ctz3KvpNJPtxDP8"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol": {
"keccak256": "0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa",
"urls": [
"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c",
"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": {
"keccak256": "0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27",
"urls": [
"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935",
"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol": {
"keccak256": "0x2a6a0b9fd2d316dcb4141159a9d13be92654066d6c0ae92757ed908ecdfecff0",
"urls": [
"bzz-raw://c05d9be7ee043009eb9f2089b452efc0961345531fc63354a249d7337c69f3bb",
"dweb:/ipfs/QmTXhzgaYrh6og76BP85i6exNFAv5NYw64uVWyworNogyG"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol": {
"keccak256": "0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5",
"urls": [
"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a",
"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol": {
"keccak256": "0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229",
"urls": [
"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195",
"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol": {
"keccak256": "0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70",
"urls": [
"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3",
"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol": {
"keccak256": "0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183",
"urls": [
"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06",
"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol": {
"keccak256": "0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149",
"urls": [
"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c",
"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol": {
"keccak256": "0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da",
"urls": [
"bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8",
"dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol": {
"keccak256": "0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a",
"urls": [
"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7",
"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol": {
"keccak256": "0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09",
"urls": [
"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758",
"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol": {
"keccak256": "0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a",
"urls": [
"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4",
"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt"
],
"license": "MIT"
},
"src/integrations/IDelegationRegistry.sol": {
"keccak256": "0x1d09c96620cb6253c701f5f085f5b3d720fed3998cf137ae473f5b46c7f08b00",
"urls": [
"bzz-raw://2ccccee556054de055b6b98d477cb3f97a8492246bffb726a99cd2d5c98dbaca",
"dweb:/ipfs/QmRwW9St3JwZC2o4g2YWv2H6xi7qknqJjqc9TBVBnzcGQd"
],
"license": "CC0-1.0"
},
"src/interfaces/IAddressProvider.sol": {
"keccak256": "0x6730abfcd8770e3279dad6137bf619ab98ee8b049e6dd85d2fbe87ba6224fde8",
"urls": [
"bzz-raw://9b7d1588eab025b049f858ab2f329be7fec220198d956b9b61bf0b9bddc5761a",
"dweb:/ipfs/QmTaFkYSUfWmbpsyE2TKC1QvP6eTDggZ72ZWodBhydqt5X"
],
"license": "AGPL-3.0"
},
"src/interfaces/IRedeemable.sol": {
"keccak256": "0x31c4714398dee1b9e7b31dd9f74c19d2d9b9e9647756cc34b5c5d2ee1c7110c6",
"urls": [
"bzz-raw://288505b7d83d903156e9aa5b8383ed2e779104d8d27f9c45299f556e0e554ac0",
"dweb:/ipfs/QmSms1HVzDWrneXp74CZqKj6HRuQejhkhAuxVqww14toRX"
],
"license": "BUSL-1.1"
},
"src/protocol/libraries/helpers/Errors.sol": {
"keccak256": "0x490e76871922e89a13ba0bb88977be18c143fa9d0cd9afb033744a3d81479c52",
"urls": [
"bzz-raw://1c409d4d1e1689d8d8f3c3e361198d20f3b6476608c5316d8e2d91f52373e8e3",
"dweb:/ipfs/QmRZaYpxqjmBpbxb51KqswKYPSeCsU3ejbmk5E3MrMxJaM"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/types/DataTypes.sol": {
"keccak256": "0x070f7865fe84ce4c9ebd86bbe24771607fbdb4e8777510b46cb5064e4d9b90a3",
"urls": [
"bzz-raw://504fd0c937cc69cc0737c4ef5dcec477017ccbff609b45b210274fd7bf0792cf",
"dweb:/ipfs/QmeW1TkAHib7XRBVmgMRTdmsa4Rg9HVToTMnifEE1C7mTi"
],
"license": "AGPL-3.0"
},
"src/protocol/tokenization/ObligationReceipt.sol": {
"keccak256": "0xba811b7cecc33f3345b942324b795ba5c066e74b32642e2d2a7a0b7fb92511e5",
"urls": [
"bzz-raw://9c91b8f31b7ecef26cb3028c10f8a00bbb92616c052a922fcc796cf0cf8b76c0",
"dweb:/ipfs/QmQhikCUeyR1RVgCU4tVp4xet5v5rQRVoqWzy6v2H3ETct"
],
"license": "BUSL-1.1"
},
"src/protocol/tokenization/base/Redeemable.sol": {
"keccak256": "0xb49005bc57bdfb2e2e0f2c155dbdd3a6ff51067d40ee72c3c6c742bec465f413",
"urls": [
"bzz-raw://790ae5927466f43419196c9255e44848c57678800003f92d3b28c8848c4533bf",
"dweb:/ipfs/QmfAEBRJa42D41ziGmitjh8fVfpLG1CFe3dRNqq4EKbfWD"
],
"license": "BUSL-1.1"
}
},
"version": 1
},
"ast": {
"absolutePath": "src/protocol/tokenization/ObligationReceipt.sol",
"id": 70328,
"exportedSymbols": {
"IDelegationRegistry": [
46025
],
"ObligationReceipt": [
70327
],
"Redeemable": [
72560
]
},
"nodeType": "SourceUnit",
"src": "37:1489:159",
"nodes": [
{
"id": 70242,
"nodeType": "PragmaDirective",
"src": "37:23:159",
"nodes": [],
"literals": [
"solidity",
"0.8",
".16"
]
},
{
"id": 70244,
"nodeType": "ImportDirective",
"src": "62:81:159",
"nodes": [],
"absolutePath": "src/integrations/IDelegationRegistry.sol",
"file": "../../integrations/IDelegationRegistry.sol",
"nameLocation": "-1:-1:-1",
"scope": 70328,
"sourceUnit": 46026,
"symbolAliases": [
{
"foreign": {
"id": 70243,
"name": "IDelegationRegistry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46025,
"src": "71:19:159",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 70246,
"nodeType": "ImportDirective",
"src": "145:51:159",
"nodes": [],
"absolutePath": "src/protocol/tokenization/base/Redeemable.sol",
"file": "./base/Redeemable.sol",
"nameLocation": "-1:-1:-1",
"scope": 70328,
"sourceUnit": 72561,
"symbolAliases": [
{
"foreign": {
"id": 70245,
"name": "Redeemable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 72560,
"src": "154:10:159",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 70327,
"nodeType": "ContractDefinition",
"src": "198:1328:159",
"nodes": [
{
"id": 70287,
"nodeType": "FunctionDefinition",
"src": "627:354:159",
"nodes": [],
"body": {
"id": 70286,
"nodeType": "Block",
"src": "698:283:159",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 70264,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 70259,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "716:3:159",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 70260,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "720:6:159",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "716:10:159",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"id": 70262,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 70251,
"src": "738:7:159",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 70261,
"name": "ownerOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27697,
"src": "730:7:159",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
"typeString": "function (uint256) view returns (address)"
}
},
"id": 70263,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "730:16:159",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "716:30:159",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "652f6d7573742d62652d6f776e6572",
"id": 70265,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "748:17:159",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_fc0ffd4801b2cfa7ffa7968e4a25f9efe53a75d2f2eb0cb8807b39f24737faaf",
"typeString": "literal_string \"e/must-be-owner\""
},
"value": "e/must-be-owner"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_fc0ffd4801b2cfa7ffa7968e4a25f9efe53a75d2f2eb0cb8807b39f24737faaf",
"typeString": "literal_string \"e/must-be-owner\""
}
],
"id": 70258,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "708:7:159",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 70266,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "708:58:159",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 70267,
"nodeType": "ExpressionStatement",
"src": "708:58:159"
},
{
"expression": {
"arguments": [
{
"id": 70274,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 70253,
"src": "868:2:159",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"expression": {
"baseExpression": {
"id": 70275,
"name": "loans",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 72314,
"src": "884:5:159",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TokenizedLoan_$65024_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.TokenizedLoan storage ref)"
}
},
"id": 70277,
"indexExpression": {
"id": 70276,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 70251,
"src": "890:7:159",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "884:14:159",
"typeDescriptions": {
"typeIdentifier": "t_struct$_TokenizedLoan_$65024_storage",
"typeString": "struct DataTypes.TokenizedLoan storage ref"
}
},
"id": 70278,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "899:10:159",
"memberName": "collateral",
"nodeType": "MemberAccess",
"referencedDeclaration": 65019,
"src": "884:25:159",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"expression": {
"baseExpression": {
"id": 70279,
"name": "loans",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 72314,
"src": "923:5:159",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TokenizedLoan_$65024_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.TokenizedLoan storage ref)"
}
},
"id": 70281,
"indexExpression": {
"id": 70280,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 70251,
"src": "929:7:159",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "923:14:159",
"typeDescriptions": {
"typeIdentifier": "t_struct$_TokenizedLoan_$65024_storage",
"typeString": "struct DataTypes.TokenizedLoan storage ref"
}
},
"id": 70282,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "938:7:159",
"memberName": "tokenId",
"nodeType": "MemberAccess",
"referencedDeclaration": 65021,
"src": "923:22:159",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 70283,
"name": "value",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 70255,
"src": "959:5:159",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"expression": {
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 70269,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 72305,
"src": "796:16:159",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$46447",
"typeString": "contract IAddressProvider"
}
},
"id": 70270,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "813:21:159",
"memberName": "getDelegationRegistry",
"nodeType": "MemberAccess",
"referencedDeclaration": 46401,
"src": "796:38:159",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 70271,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "796:40:159",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 70268,
"name": "IDelegationRegistry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46025,
"src": "776:19:159",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IDelegationRegistry_$46025_$",
"typeString": "type(contract IDelegationRegistry)"
}
},
"id": 70272,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "776:61:159",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_IDelegationRegistry_$46025",
"typeString": "contract IDelegationRegistry"
}
},
"id": 70273,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "838:16:159",
"memberName": "delegateForToken",
"nodeType": "MemberAccess",
"referencedDeclaration": 45909,
"src": "776:78:159",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
"typeString": "function (address,address,uint256,bool) external"
}
},
"id": 70284,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "776:198:159",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 70285,
"nodeType": "ExpressionStatement",
"src": "776:198:159"
}
]
},
"documentation": {
"id": 70249,
"nodeType": "StructuredDocumentation",
"src": "250:372:159",
"text": " @dev must be holder of obligation receipt to control delegation rights of the underlying\n - delegation right transfered to new owner as per _beforeTokenTransfer\n @param tokenId the tokenId of the obligation receipt\n @param to the target address for delegation rights\n @param value true if giving and false if removing delegation rights"
},
"functionSelector": "90bd6748",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "setDelegate",
"nameLocation": "636:11:159",
"parameters": {
"id": 70256,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 70251,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "656:7:159",
"nodeType": "VariableDeclaration",
"scope": 70287,
"src": "648:15:159",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 70250,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "648:7:159",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 70253,
"mutability": "mutable",
"name": "to",
"nameLocation": "673:2:159",
"nodeType": "VariableDeclaration",
"scope": 70287,
"src": "665:10:159",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 70252,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "665:7:159",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 70255,
"mutability": "mutable",
"name": "value",
"nameLocation": "682:5:159",
"nodeType": "VariableDeclaration",
"scope": 70287,
"src": "677:10:159",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 70254,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "677:4:159",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "647:41:159"
},
"returnParameters": {
"id": 70257,
"nodeType": "ParameterList",
"parameters": [],
"src": "698:0:159"
},
"scope": 70327,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 70326,
"nodeType": "FunctionDefinition",
"src": "1092:432:159",
"nodes": [],
"body": {
"id": 70325,
"nodeType": "Block",
"src": "1204:320:159",
"nodes": [],
"statements": [
{
"expression": {
"id": 70297,
"name": "from",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 70290,
"src": "1214:4:159",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 70298,
"nodeType": "ExpressionStatement",
"src": "1214:4:159"
},
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 70300,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 72305,
"src": "1248:16:159",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$46447",
"typeString": "contract IAddressProvider"
}
},
"id": 70301,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1265:21:159",
"memberName": "getDelegationRegistry",
"nodeType": "MemberAccess",
"referencedDeclaration": 46401,
"src": "1248:38:159",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 70302,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1248:40:159",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 70299,
"name": "IDelegationRegistry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46025,
"src": "1228:19:159",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IDelegationRegistry_$46025_$",
"typeString": "type(contract IDelegationRegistry)"
}
},
"id": 70303,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1228:61:159",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_IDelegationRegistry_$46025",
"typeString": "contract IDelegationRegistry"
}
},
"id": 70304,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1290:18:159",
"memberName": "revokeAllDelegates",
"nodeType": "MemberAccess",
"referencedDeclaration": 45913,
"src": "1228:80:159",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$__$returns$__$",
"typeString": "function () external"
}
},
"id": 70305,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1228:82:159",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 70306,
"nodeType": "ExpressionStatement",
"src": "1228:82:159"
},
{
"expression": {
"arguments": [
{
"id": 70313,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 70292,
"src": "1412:2:159",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"expression": {
"baseExpression": {
"id": 70314,
"name": "loans",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 72314,
"src": "1428:5:159",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TokenizedLoan_$65024_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.TokenizedLoan storage ref)"
}
},
"id": 70316,
"indexExpression": {
"id": 70315,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 70294,
"src": "1434:7:159",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1428:14:159",
"typeDescriptions": {
"typeIdentifier": "t_struct$_TokenizedLoan_$65024_storage",
"typeString": "struct DataTypes.TokenizedLoan storage ref"
}
},
"id": 70317,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1443:10:159",
"memberName": "collateral",
"nodeType": "MemberAccess",
"referencedDeclaration": 65019,
"src": "1428:25:159",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"expression": {
"baseExpression": {
"id": 70318,
"name": "loans",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 72314,
"src": "1467:5:159",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_TokenizedLoan_$65024_storage_$",
"typeString": "mapping(uint256 => struct DataTypes.TokenizedLoan storage ref)"
}
},
"id": 70320,
"indexExpression": {
"id": 70319,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 70294,
"src": "1473:7:159",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "1467:14:159",
"typeDescriptions": {
"typeIdentifier": "t_struct$_TokenizedLoan_$65024_storage",
"typeString": "struct DataTypes.TokenizedLoan storage ref"
}
},
"id": 70321,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1482:7:159",
"memberName": "tokenId",
"nodeType": "MemberAccess",
"referencedDeclaration": 65021,
"src": "1467:22:159",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"hexValue": "74727565",
"id": 70322,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1503:4:159",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"expression": {
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 70308,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 72305,
"src": "1340:16:159",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$46447",
"typeString": "contract IAddressProvider"
}
},
"id": 70309,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1357:21:159",
"memberName": "getDelegationRegistry",
"nodeType": "MemberAccess",
"referencedDeclaration": 46401,
"src": "1340:38:159",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 70310,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1340:40:159",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 70307,
"name": "IDelegationRegistry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 46025,
"src": "1320:19:159",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IDelegationRegistry_$46025_$",
"typeString": "type(contract IDelegationRegistry)"
}
},
"id": 70311,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1320:61:159",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_IDelegationRegistry_$46025",
"typeString": "contract IDelegationRegistry"
}
},
"id": 70312,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1382:16:159",
"memberName": "delegateForToken",
"nodeType": "MemberAccess",
"referencedDeclaration": 45909,
"src": "1320:78:159",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
"typeString": "function (address,address,uint256,bool) external"
}
},
"id": 70323,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1320:197:159",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 70324,
"nodeType": "ExpressionStatement",
"src": "1320:197:159"
}
]
},
"documentation": {
"id": 70288,
"nodeType": "StructuredDocumentation",
"src": "991:96:159",
"text": " @dev revokes all underlying delegation rights and grants these to the new owner"
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_beforeTokenTransfer",
"nameLocation": "1101:20:159",
"parameters": {
"id": 70295,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 70290,
"mutability": "mutable",
"name": "from",
"nameLocation": "1139:4:159",
"nodeType": "VariableDeclaration",
"scope": 70326,
"src": "1131:12:159",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 70289,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1131:7:159",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 70292,
"mutability": "mutable",
"name": "to",
"nameLocation": "1161:2:159",
"nodeType": "VariableDeclaration",
"scope": 70326,
"src": "1153:10:159",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 70291,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1153:7:159",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 70294,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "1181:7:159",
"nodeType": "VariableDeclaration",
"scope": 70326,
"src": "1173:15:159",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 70293,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1173:7:159",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1121:73:159"
},
"returnParameters": {
"id": 70296,
"nodeType": "ParameterList",
"parameters": [],
"src": "1204:0:159"
},
"scope": 70327,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
}
],
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 70247,
"name": "Redeemable",
"nameLocations": [
"233:10:159"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 72560,
"src": "233:10:159"
},
"id": 70248,
"nodeType": "InheritanceSpecifier",
"src": "233:10:159"
}
],
"canonicalName": "ObligationReceipt",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"linearizedBaseContracts": [
70327,
72560,
25894,
28501,
28662,
28635,
29281,
29293,
25967,
28988,
26136,
48532
],
"name": "ObligationReceipt",
"nameLocation": "207:17:159",
"scope": 70328,
"usedErrors": []
}
],
"license": "BUSL-1.1"
},
"id": 159
}
Redeemable ABI
{
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "approved",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Approval",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"indexed": false,
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "ApprovalForAll",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32"
}
],
"name": "RoleAdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleGranted",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"indexed": true,
"internalType": "address",
"name": "account",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "sender",
"type": "address"
}
],
"name": "RoleRevoked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "from",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "to",
"type": "address"
},
{
"indexed": true,
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "Transfer",
"type": "event"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "approve",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "baseURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "claim",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "exists",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "grantRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_addressProvider_",
"type": "address"
},
{
"internalType": "bool",
"name": "_isLiquidDelegate_",
"type": "bool"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
},
{
"internalType": "string",
"name": "_customBaseURI",
"type": "string"
},
{
"internalType": "uint256",
"name": "_minPercentageIncrease_",
"type": "uint256"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "loans",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "lockBid",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "lockBids",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "lockTokens",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenizedId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"name": "mint",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "renounceRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"name": "revokeRole",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "safeTransferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"name": "setApprovalForAll",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "string",
"name": "_customBaseURI",
"type": "string"
}
],
"name": "setBaseURI",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "_interfaceId",
"type": "bytes4"
}
],
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "transferFrom",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"name": "transferLockBid",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
}
],
"bytecode": {
"object": "0x608060405234801561001057600080fd5b50612f5c806100206000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c80636352211e1161010f578063a217fddf116100a2578063c87b56dd11610071578063c87b56dd14610429578063d547741f1461043c578063e1ec3c681461044f578063e985e9c51461046f57600080fd5b8063a217fddf146103db578063a22cb465146103e3578063b88d4fde146103f6578063c5f68b8b1461040957600080fd5b806391d14854116100de57806391d148541461039a57806392944809146103ad57806394d008ef146103c057806395d89b41146103d357600080fd5b80636352211e146103435780636c0360eb146103565780636e27d8891461035e57806370a082311461038757600080fd5b8063248a9ca31161018757806342966c681161015657806342966c681461030a5780634e71d92d146101fd5780634f558e791461031d57806355f804b31461033057600080fd5b8063248a9ca3146102a05780632f2ff15d146102d157806336568abe146102e457806342842e0e146102f757600080fd5b806306fdde03116101c357806306fdde031461023a578063081812fc1461024f578063095ea7b31461027a57806323b872dd1461028d57600080fd5b806301ac88af146101ea57806301ffc9a7146101ff57806303ac5d7b14610227575b600080fd5b6101fd6101f836600461269f565b6104ab565b005b61021261020d366004612769565b6105fe565b60405190151581526020015b60405180910390f35b6101fd610235366004612786565b61060f565b61024261093f565b60405161021e919061281c565b61026261025d36600461282f565b6109d1565b6040516001600160a01b03909116815260200161021e565b6101fd610288366004612848565b6109f8565b6101fd61029b366004612874565b610b0d565b6102c36102ae36600461282f565b60009081526065602052604090206001015490565b60405190815260200161021e565b6101fd6102df3660046128b5565b610b3e565b6101fd6102f23660046128b5565b610b63565b6101fd610305366004612874565b610be1565b6101fd61031836600461282f565b610bfc565b61021261032b36600461282f565b610dbb565b6101fd61033e3660046128e5565b610dda565b61026261035136600461282f565b610eac565b610242610f0c565b61026261036c36600461282f565b60ce602052600090815260409020546001600160a01b031681565b6102c361039536600461291a565b610f9a565b6102126103a83660046128b5565b611020565b6101fd6103bb366004612786565b61104b565b6101fd6103ce366004612937565b61149a565b6102426116ea565b6102c3600081565b6101fd6103f1366004612990565b6116f9565b6101fd6104043660046129c5565b611704565b6102c361041736600461282f565b60cd6020526000908152604090205481565b61024261043736600461282f565b61173c565b6101fd61044a3660046128b5565b6117a3565b6102c361045d36600461282f565b60cc6020526000908152604090205481565b61021261047d366004612a31565b6001600160a01b039182166000908152609c6020908152604080832093909416825291909152205460ff1690565b600054610100900460ff16158080156104cb5750600054600160ff909116105b806104e55750303b1580156104e5575060005460ff166001145b61054d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610570576000805461ff0019166101001790555b61057a85856117c8565b610583836117f9565b60c98054871515600160a01b026001600160a81b03199091166001600160a01b038a161717905560cb82905580156105f5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b600061060982611847565b92915050565b60c960009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106869190612a5f565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203530360ec1b815250906106d45760405162461bcd60e51b8152600401610544919061281c565b5060c95460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b9160048083019260209291908290030181865afa15801561071f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107439190612a5f565b9050600060c960009054906101000a90046001600160a01b03166001600160a01b03166347f872f16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107be9190612a5f565b9050816001600160a01b03166107d384610eac565b6001600160a01b03161461081d5760405162461bcd60e51b8152602060048201526011602482015270194bd85b1c9958591e4b5b1bd8dad09a59607a1b6044820152606401610544565b60405163368fa33960e21b81526001600160a01b0382169063da3e8ce49061084f9088908a9030908a90600401612a7c565b600060405180830381600087803b15801561086957600080fd5b505af115801561087d573d6000803e3d6000fd5b5050505061090260c960009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fb9190612a5f565b8785611887565b5050600090815260cd602090815260408083209390935560ce90522080546001600160a01b0319166001600160a01b039290921691909117905550565b60606097805461094e90612aa6565b80601f016020809104026020016040519081016040528092919081815260200182805461097a90612aa6565b80156109c75780601f1061099c576101008083540402835291602001916109c7565b820191906000526020600020905b8154815290600101906020018083116109aa57829003601f168201915b5050505050905090565b60006109dc826119f8565b506000908152609b60205260409020546001600160a01b031690565b6000610a0382610eac565b9050806001600160a01b0316836001600160a01b031603610a705760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610544565b336001600160a01b0382161480610a8c5750610a8c813361047d565b610afe5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610544565b610b088383611a57565b505050565b610b173382611ac5565b610b335760405162461bcd60e51b815260040161054490612ae0565b610b08838383611887565b600082815260656020526040902060010154610b5981611b44565b610b088383611b4e565b6001600160a01b0381163314610bd35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610544565b610bdd8282611bd4565b5050565b610b0883838360405180602001604052806000815250611704565b60c95460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b9160048083019260209291908290030181865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190612a5f565b600083815260cc60205260408120559050610c8482611c3b565b600082815260cd602052604090205415610bdd5760c960009054906101000a90046001600160a01b03166001600160a01b03166347f872f16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0f9190612a5f565b600083815260ce602090815260408083205460cd9092529182902054915163368fa33960e21b81526001600160a01b039384169363da3e8ce493610d5d939091169130918791600401612a7c565b600060405180830381600087803b158015610d7757600080fd5b505af1158015610d8b573d6000803e3d6000fd5b5050506000928352505060cd6020908152604080832083905560ce909152902080546001600160a01b0319169055565b6000818152609960205260408120546001600160a01b03161515610609565b60c960009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e519190612a5f565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203430360ec1b81525090610e9f5760405162461bcd60e51b8152600401610544919061281c565b50610ea9816117f9565b50565b6000818152609960205260408120546001600160a01b0316806106095760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610544565b60ca8054610f1990612aa6565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4590612aa6565b8015610f925780601f10610f6757610100808354040283529160200191610f92565b820191906000526020600020905b815481529060010190602001808311610f7557829003601f168201915b505050505081565b60006001600160a01b0382166110045760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610544565b506001600160a01b03166000908152609a602052604090205490565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60c960009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561109e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c29190612a5f565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203530360ec1b815250906111105760405162461bcd60e51b8152600401610544919061281c565b5060c95460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b9160048083019260209291908290030181865afa15801561115b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117f9190612a5f565b600083815260cd602052604081205460cb5492935090916111ac91906111a790612710612b43565b611cde565b9050816001600160a01b03166111c184610eac565b6001600160a01b0316036112075760405162461bcd60e51b815260206004820152600d60248201526c194bdb9bdd0b5b1bd8dad09a59609a1b6044820152606401610544565b80841161124f5760405162461bcd60e51b8152602060048201526016602482015275194bda5b9cdd59999a58da595b9d0b5b1bd8dad09a5960521b6044820152606401610544565b600083815260ce60205260409020546001600160a01b038681169116146112b05760405162461bcd60e51b81526020600482015260156024820152743297b4b731b7b93932b1ba16b637b1b5aa37b5b2b760591b6044820152606401610544565b600083815260cd6020526040812054906112c985610eac565b905060c960009054906101000a90046001600160a01b03166001600160a01b03166347f872f16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561131e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113429190612a5f565b6001600160a01b031663da3e8ce4888a308a6040518563ffffffff1660e01b81526004016113739493929190612a7c565b600060405180830381600087803b15801561138d57600080fd5b505af11580156113a1573d6000803e3d6000fd5b505050506113b0818987611887565b600085815260cd602090815260409182902088905560c95482516347f872f160e01b815292516001600160a01b03909116926347f872f19260048083019391928290030181865afa158015611409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142d9190612a5f565b6001600160a01b031663da3e8ce4883084866040518563ffffffff1660e01b815260040161145e9493929190612a7c565b600060405180830381600087803b15801561147857600080fd5b505af115801561148c573d6000803e3d6000fd5b505050505050505050505050565b60c960009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115119190612a5f565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203530360ec1b8152509061155f5760405162461bcd60e51b8152600401610544919061281c565b5060008151116115a95760405162461bcd60e51b8152602060048201526015602482015274194bd9185d184b5b5a5cdcda5b99cb5b1bd85b9259605a1b6044820152606401610544565b6000806000838060200190518101906115c29190612b56565b600088815260cc60205260409020819055919450925090506115e5868686611d86565b60c954600160a01b900460ff16156116e25760c960009054906101000a90046001600160a01b03166001600160a01b03166357d600a16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561164a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166e9190612a5f565b60405163537a5c3d60e01b81526001600160a01b03888116600483015285811660248301526044820185905260016064830152919091169063537a5c3d90608401600060405180830381600087803b1580156116c957600080fd5b505af11580156116dd573d6000803e3d6000fd5b505050505b505050505050565b60606098805461094e90612aa6565b610bdd338383611db9565b61170e3383611ac5565b61172a5760405162461bcd60e51b815260040161054490612ae0565b61173684848484611e87565b50505050565b6060611747826119f8565b6000611751611eba565b90506000815111611771576040518060200160405280600081525061179c565b8061177b84611ec9565b60405160200161178c929190612b8d565b6040516020818303038152906040525b9392505050565b6000828152606560205260409020600101546117be81611b44565b610b088383611bd4565b600054610100900460ff166117ef5760405162461bcd60e51b815260040161054490612bbc565b610bdd8282611f5c565b6000815111611817576040518060200160405280600081525061183a565b804660405160200161182a929190612c07565b6040516020818303038152906040525b60ca90610bdd9082612c7f565b60006001600160e01b031982166380ac58cd60e01b148061187857506001600160e01b03198216635b5e139f60e01b145b80610609575061060982611f9c565b826001600160a01b031661189a82610eac565b6001600160a01b0316146118c05760405162461bcd60e51b815260040161054490612d3f565b6001600160a01b0382166119225760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610544565b61192f8383836001611fd1565b826001600160a01b031661194282610eac565b6001600160a01b0316146119685760405162461bcd60e51b815260040161054490612d3f565b6000818152609b6020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652609a8552838620805460001901905590871680865283862080546001019055868652609990945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000818152609960205260409020546001600160a01b0316610ea95760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610544565b6000818152609b6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611a8c82610eac565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611ad183610eac565b9050806001600160a01b0316846001600160a01b03161480611b1857506001600160a01b038082166000908152609c602090815260408083209388168352929052205460ff165b80611b3c5750836001600160a01b0316611b31846109d1565b6001600160a01b0316145b949350505050565b610ea98133612059565b611b588282611020565b610bdd5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611b903390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611bde8282611020565b15610bdd5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611c4682610eac565b9050611c56816000846001611fd1565b611c5f82610eac565b6000838152609b6020908152604080832080546001600160a01b03199081169091556001600160a01b038516808552609a845282852080546000190190558785526099909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000821580611ceb575081155b15611cf857506000610609565b81611d066002612710612d84565b611d1290600019612da6565b611d1c9190612d84565b8311156040518060400160405280600381526020016203230360ec1b81525090611d595760405162461bcd60e51b8152600401610544919061281c565b50612710611d68600282612d84565b611d728486612db9565b611d7c9190612b43565b61179c9190612d84565b611d9083836120b2565b611d9d600084848461224b565b610b085760405162461bcd60e51b815260040161054490612dd8565b816001600160a01b0316836001600160a01b031603611e1a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610544565b6001600160a01b038381166000818152609c6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611e92848484611887565b611e9e8484848461224b565b6117365760405162461bcd60e51b815260040161054490612dd8565b606060ca805461094e90612aa6565b60606000611ed68361234c565b600101905060008167ffffffffffffffff811115611ef657611ef66125fc565b6040519080825280601f01601f191660200182016040528015611f20576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611f2a57509392505050565b600054610100900460ff16611f835760405162461bcd60e51b815260040161054490612bbc565b6097611f8f8382612c7f565b506098610b088282612c7f565b60006001600160e01b03198216637965db0b60e01b148061060957506301ffc9a760e01b6001600160e01b0319831614610609565b6001811115611736576001600160a01b03841615612017576001600160a01b0384166000908152609a602052604081208054839290612011908490612da6565b90915550505b6001600160a01b03831615611736576001600160a01b0383166000908152609a60205260408120805483929061204e908490612b43565b909155505050505050565b6120638282611020565b610bdd5761207081612424565b61207b836020612436565b60405160200161208c929190612e2a565b60408051601f198184030181529082905262461bcd60e51b82526105449160040161281c565b6001600160a01b0382166121085760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610544565b6000818152609960205260409020546001600160a01b03161561216d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610544565b61217b600083836001611fd1565b6000818152609960205260409020546001600160a01b0316156121e05760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610544565b6001600160a01b0382166000818152609a6020908152604080832080546001019055848352609990915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160a01b0384163b1561234157604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061228f903390899088908890600401612e9f565b6020604051808303816000875af19250505080156122ca575060408051601f3d908101601f191682019092526122c791810190612edc565b60015b612327573d8080156122f8576040519150601f19603f3d011682016040523d82523d6000602084013e6122fd565b606091505b50805160000361231f5760405162461bcd60e51b815260040161054490612dd8565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611b3c565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061238b5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106123b7576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106123d557662386f26fc10000830492506010015b6305f5e10083106123ed576305f5e100830492506008015b612710831061240157612710830492506004015b60648310612413576064830492506002015b600a83106106095760010192915050565b60606106096001600160a01b03831660145b60606000612445836002612db9565b612450906002612b43565b67ffffffffffffffff811115612468576124686125fc565b6040519080825280601f01601f191660200182016040528015612492576020820181803683370190505b509050600360fc1b816000815181106124ad576124ad612ef9565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106124dc576124dc612ef9565b60200101906001600160f81b031916908160001a9053506000612500846002612db9565b61250b906001612b43565b90505b6001811115612583576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061253f5761253f612ef9565b1a60f81b82828151811061255557612555612ef9565b60200101906001600160f81b031916908160001a90535060049490941c9361257c81612f0f565b905061250e565b50831561179c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610544565b6001600160a01b0381168114610ea957600080fd5b803580151581146125f757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261262357600080fd5b813567ffffffffffffffff8082111561263e5761263e6125fc565b604051601f8301601f19908116603f01168101908282118183101715612666576126666125fc565b8160405283815286602085880101111561267f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c087890312156126b857600080fd5b86356126c3816125d2565b95506126d1602088016125e7565b9450604087013567ffffffffffffffff808211156126ee57600080fd5b6126fa8a838b01612612565b9550606089013591508082111561271057600080fd5b61271c8a838b01612612565b9450608089013591508082111561273257600080fd5b5061273f89828a01612612565b92505060a087013590509295509295509295565b6001600160e01b031981168114610ea957600080fd5b60006020828403121561277b57600080fd5b813561179c81612753565b6000806000806080858703121561279c57600080fd5b84356127a7816125d2565b935060208501356127b7816125d2565b93969395505050506040820135916060013590565b60005b838110156127e75781810151838201526020016127cf565b50506000910152565b600081518084526128088160208601602086016127cc565b601f01601f19169290920160200192915050565b60208152600061179c60208301846127f0565b60006020828403121561284157600080fd5b5035919050565b6000806040838503121561285b57600080fd5b8235612866816125d2565b946020939093013593505050565b60008060006060848603121561288957600080fd5b8335612894816125d2565b925060208401356128a4816125d2565b929592945050506040919091013590565b600080604083850312156128c857600080fd5b8235915060208301356128da816125d2565b809150509250929050565b6000602082840312156128f757600080fd5b813567ffffffffffffffff81111561290e57600080fd5b611b3c84828501612612565b60006020828403121561292c57600080fd5b813561179c816125d2565b60008060006060848603121561294c57600080fd5b8335612957816125d2565b925060208401359150604084013567ffffffffffffffff81111561297a57600080fd5b61298686828701612612565b9150509250925092565b600080604083850312156129a357600080fd5b82356129ae816125d2565b91506129bc602084016125e7565b90509250929050565b600080600080608085870312156129db57600080fd5b84356129e6816125d2565b935060208501356129f6816125d2565b925060408501359150606085013567ffffffffffffffff811115612a1957600080fd5b612a2587828801612612565b91505092959194509250565b60008060408385031215612a4457600080fd5b8235612a4f816125d2565b915060208301356128da816125d2565b600060208284031215612a7157600080fd5b815161179c816125d2565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b600181811c90821680612aba57607f821691505b602082108103612ada57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561060957610609612b2d565b600080600060608486031215612b6b57600080fd5b8351612b76816125d2565b602085015160409095015190969495509392505050565b60008351612b9f8184602088016127cc565b835190830190612bb38183602088016127cc565b01949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008351612c198184602088016127cc565b602f60f81b92018281526001810193909352506021820152602201919050565b601f821115610b0857600081815260208120601f850160051c81016020861015612c605750805b601f850160051c820191505b818110156116e257828155600101612c6c565b815167ffffffffffffffff811115612c9957612c996125fc565b612cad81612ca78454612aa6565b84612c39565b602080601f831160018114612ce25760008415612cca5750858301515b600019600386901b1c1916600185901b1785556116e2565b600085815260208120601f198616915b82811015612d1157888601518255948401946001909101908401612cf2565b5085821015612d2f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b600082612da157634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561060957610609612b2d565b6000816000190483118215151615612dd357612dd3612b2d565b500290565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612e628160178501602088016127cc565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612e938160288401602088016127cc565b01602801949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612ed2908301846127f0565b9695505050505050565b600060208284031215612eee57600080fd5b815161179c81612753565b634e487b7160e01b600052603260045260246000fd5b600081612f1e57612f1e612b2d565b50600019019056fea26469706673582212200320cdefc7c4db17422b5b58974a78e156ca7b0807a95f50ada92f5b036b750e64736f6c63430008100033",
"sourceMap": "1058:5722:129:-:0;;;;;;;;;;;;;;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x608060405234801561001057600080fd5b50600436106101e55760003560e01c80636352211e1161010f578063a217fddf116100a2578063c87b56dd11610071578063c87b56dd14610429578063d547741f1461043c578063e1ec3c681461044f578063e985e9c51461046f57600080fd5b8063a217fddf146103db578063a22cb465146103e3578063b88d4fde146103f6578063c5f68b8b1461040957600080fd5b806391d14854116100de57806391d148541461039a57806392944809146103ad57806394d008ef146103c057806395d89b41146103d357600080fd5b80636352211e146103435780636c0360eb146103565780636e27d8891461035e57806370a082311461038757600080fd5b8063248a9ca31161018757806342966c681161015657806342966c681461030a5780634e71d92d146101fd5780634f558e791461031d57806355f804b31461033057600080fd5b8063248a9ca3146102a05780632f2ff15d146102d157806336568abe146102e457806342842e0e146102f757600080fd5b806306fdde03116101c357806306fdde031461023a578063081812fc1461024f578063095ea7b31461027a57806323b872dd1461028d57600080fd5b806301ac88af146101ea57806301ffc9a7146101ff57806303ac5d7b14610227575b600080fd5b6101fd6101f836600461269f565b6104ab565b005b61021261020d366004612769565b6105fe565b60405190151581526020015b60405180910390f35b6101fd610235366004612786565b61060f565b61024261093f565b60405161021e919061281c565b61026261025d36600461282f565b6109d1565b6040516001600160a01b03909116815260200161021e565b6101fd610288366004612848565b6109f8565b6101fd61029b366004612874565b610b0d565b6102c36102ae36600461282f565b60009081526065602052604090206001015490565b60405190815260200161021e565b6101fd6102df3660046128b5565b610b3e565b6101fd6102f23660046128b5565b610b63565b6101fd610305366004612874565b610be1565b6101fd61031836600461282f565b610bfc565b61021261032b36600461282f565b610dbb565b6101fd61033e3660046128e5565b610dda565b61026261035136600461282f565b610eac565b610242610f0c565b61026261036c36600461282f565b60ce602052600090815260409020546001600160a01b031681565b6102c361039536600461291a565b610f9a565b6102126103a83660046128b5565b611020565b6101fd6103bb366004612786565b61104b565b6101fd6103ce366004612937565b61149a565b6102426116ea565b6102c3600081565b6101fd6103f1366004612990565b6116f9565b6101fd6104043660046129c5565b611704565b6102c361041736600461282f565b60cd6020526000908152604090205481565b61024261043736600461282f565b61173c565b6101fd61044a3660046128b5565b6117a3565b6102c361045d36600461282f565b60cc6020526000908152604090205481565b61021261047d366004612a31565b6001600160a01b039182166000908152609c6020908152604080832093909416825291909152205460ff1690565b600054610100900460ff16158080156104cb5750600054600160ff909116105b806104e55750303b1580156104e5575060005460ff166001145b61054d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff191660011790558015610570576000805461ff0019166101001790555b61057a85856117c8565b610583836117f9565b60c98054871515600160a01b026001600160a81b03199091166001600160a01b038a161717905560cb82905580156105f5576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050565b600061060982611847565b92915050565b60c960009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106869190612a5f565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203530360ec1b815250906106d45760405162461bcd60e51b8152600401610544919061281c565b5060c95460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b9160048083019260209291908290030181865afa15801561071f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107439190612a5f565b9050600060c960009054906101000a90046001600160a01b03166001600160a01b03166347f872f16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561079a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107be9190612a5f565b9050816001600160a01b03166107d384610eac565b6001600160a01b03161461081d5760405162461bcd60e51b8152602060048201526011602482015270194bd85b1c9958591e4b5b1bd8dad09a59607a1b6044820152606401610544565b60405163368fa33960e21b81526001600160a01b0382169063da3e8ce49061084f9088908a9030908a90600401612a7c565b600060405180830381600087803b15801561086957600080fd5b505af115801561087d573d6000803e3d6000fd5b5050505061090260c960009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108fb9190612a5f565b8785611887565b5050600090815260cd602090815260408083209390935560ce90522080546001600160a01b0319166001600160a01b039290921691909117905550565b60606097805461094e90612aa6565b80601f016020809104026020016040519081016040528092919081815260200182805461097a90612aa6565b80156109c75780601f1061099c576101008083540402835291602001916109c7565b820191906000526020600020905b8154815290600101906020018083116109aa57829003601f168201915b5050505050905090565b60006109dc826119f8565b506000908152609b60205260409020546001600160a01b031690565b6000610a0382610eac565b9050806001600160a01b0316836001600160a01b031603610a705760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610544565b336001600160a01b0382161480610a8c5750610a8c813361047d565b610afe5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610544565b610b088383611a57565b505050565b610b173382611ac5565b610b335760405162461bcd60e51b815260040161054490612ae0565b610b08838383611887565b600082815260656020526040902060010154610b5981611b44565b610b088383611b4e565b6001600160a01b0381163314610bd35760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610544565b610bdd8282611bd4565b5050565b610b0883838360405180602001604052806000815250611704565b60c95460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b9160048083019260209291908290030181865afa158015610c46573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c6a9190612a5f565b600083815260cc60205260408120559050610c8482611c3b565b600082815260cd602052604090205415610bdd5760c960009054906101000a90046001600160a01b03166001600160a01b03166347f872f16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ceb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d0f9190612a5f565b600083815260ce602090815260408083205460cd9092529182902054915163368fa33960e21b81526001600160a01b039384169363da3e8ce493610d5d939091169130918791600401612a7c565b600060405180830381600087803b158015610d7757600080fd5b505af1158015610d8b573d6000803e3d6000fd5b5050506000928352505060cd6020908152604080832083905560ce909152902080546001600160a01b0319169055565b6000818152609960205260408120546001600160a01b03161515610609565b60c960009054906101000a90046001600160a01b03166001600160a01b0316639b7ae5ec6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e519190612a5f565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203430360ec1b81525090610e9f5760405162461bcd60e51b8152600401610544919061281c565b50610ea9816117f9565b50565b6000818152609960205260408120546001600160a01b0316806106095760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610544565b60ca8054610f1990612aa6565b80601f0160208091040260200160405190810160405280929190818152602001828054610f4590612aa6565b8015610f925780601f10610f6757610100808354040283529160200191610f92565b820191906000526020600020905b815481529060010190602001808311610f7557829003601f168201915b505050505081565b60006001600160a01b0382166110045760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610544565b506001600160a01b03166000908152609a602052604090205490565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60c960009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561109e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110c29190612a5f565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203530360ec1b815250906111105760405162461bcd60e51b8152600401610544919061281c565b5060c95460408051630261bf8b60e01b815290516000926001600160a01b031691630261bf8b9160048083019260209291908290030181865afa15801561115b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061117f9190612a5f565b600083815260cd602052604081205460cb5492935090916111ac91906111a790612710612b43565b611cde565b9050816001600160a01b03166111c184610eac565b6001600160a01b0316036112075760405162461bcd60e51b815260206004820152600d60248201526c194bdb9bdd0b5b1bd8dad09a59609a1b6044820152606401610544565b80841161124f5760405162461bcd60e51b8152602060048201526016602482015275194bda5b9cdd59999a58da595b9d0b5b1bd8dad09a5960521b6044820152606401610544565b600083815260ce60205260409020546001600160a01b038681169116146112b05760405162461bcd60e51b81526020600482015260156024820152743297b4b731b7b93932b1ba16b637b1b5aa37b5b2b760591b6044820152606401610544565b600083815260cd6020526040812054906112c985610eac565b905060c960009054906101000a90046001600160a01b03166001600160a01b03166347f872f16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561131e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113429190612a5f565b6001600160a01b031663da3e8ce4888a308a6040518563ffffffff1660e01b81526004016113739493929190612a7c565b600060405180830381600087803b15801561138d57600080fd5b505af11580156113a1573d6000803e3d6000fd5b505050506113b0818987611887565b600085815260cd602090815260409182902088905560c95482516347f872f160e01b815292516001600160a01b03909116926347f872f19260048083019391928290030181865afa158015611409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142d9190612a5f565b6001600160a01b031663da3e8ce4883084866040518563ffffffff1660e01b815260040161145e9493929190612a7c565b600060405180830381600087803b15801561147857600080fd5b505af115801561148c573d6000803e3d6000fd5b505050505050505050505050565b60c960009054906101000a90046001600160a01b03166001600160a01b0316630261bf8b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156114ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115119190612a5f565b6001600160a01b0316336001600160a01b0316146040518060400160405280600381526020016203530360ec1b8152509061155f5760405162461bcd60e51b8152600401610544919061281c565b5060008151116115a95760405162461bcd60e51b8152602060048201526015602482015274194bd9185d184b5b5a5cdcda5b99cb5b1bd85b9259605a1b6044820152606401610544565b6000806000838060200190518101906115c29190612b56565b600088815260cc60205260409020819055919450925090506115e5868686611d86565b60c954600160a01b900460ff16156116e25760c960009054906101000a90046001600160a01b03166001600160a01b03166357d600a16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561164a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061166e9190612a5f565b60405163537a5c3d60e01b81526001600160a01b03888116600483015285811660248301526044820185905260016064830152919091169063537a5c3d90608401600060405180830381600087803b1580156116c957600080fd5b505af11580156116dd573d6000803e3d6000fd5b505050505b505050505050565b60606098805461094e90612aa6565b610bdd338383611db9565b61170e3383611ac5565b61172a5760405162461bcd60e51b815260040161054490612ae0565b61173684848484611e87565b50505050565b6060611747826119f8565b6000611751611eba565b90506000815111611771576040518060200160405280600081525061179c565b8061177b84611ec9565b60405160200161178c929190612b8d565b6040516020818303038152906040525b9392505050565b6000828152606560205260409020600101546117be81611b44565b610b088383611bd4565b600054610100900460ff166117ef5760405162461bcd60e51b815260040161054490612bbc565b610bdd8282611f5c565b6000815111611817576040518060200160405280600081525061183a565b804660405160200161182a929190612c07565b6040516020818303038152906040525b60ca90610bdd9082612c7f565b60006001600160e01b031982166380ac58cd60e01b148061187857506001600160e01b03198216635b5e139f60e01b145b80610609575061060982611f9c565b826001600160a01b031661189a82610eac565b6001600160a01b0316146118c05760405162461bcd60e51b815260040161054490612d3f565b6001600160a01b0382166119225760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610544565b61192f8383836001611fd1565b826001600160a01b031661194282610eac565b6001600160a01b0316146119685760405162461bcd60e51b815260040161054490612d3f565b6000818152609b6020908152604080832080546001600160a01b03199081169091556001600160a01b03878116808652609a8552838620805460001901905590871680865283862080546001019055868652609990945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000818152609960205260409020546001600160a01b0316610ea95760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610544565b6000818152609b6020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611a8c82610eac565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600080611ad183610eac565b9050806001600160a01b0316846001600160a01b03161480611b1857506001600160a01b038082166000908152609c602090815260408083209388168352929052205460ff165b80611b3c5750836001600160a01b0316611b31846109d1565b6001600160a01b0316145b949350505050565b610ea98133612059565b611b588282611020565b610bdd5760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611b903390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611bde8282611020565b15610bdd5760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000611c4682610eac565b9050611c56816000846001611fd1565b611c5f82610eac565b6000838152609b6020908152604080832080546001600160a01b03199081169091556001600160a01b038516808552609a845282852080546000190190558785526099909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b6000821580611ceb575081155b15611cf857506000610609565b81611d066002612710612d84565b611d1290600019612da6565b611d1c9190612d84565b8311156040518060400160405280600381526020016203230360ec1b81525090611d595760405162461bcd60e51b8152600401610544919061281c565b50612710611d68600282612d84565b611d728486612db9565b611d7c9190612b43565b61179c9190612d84565b611d9083836120b2565b611d9d600084848461224b565b610b085760405162461bcd60e51b815260040161054490612dd8565b816001600160a01b0316836001600160a01b031603611e1a5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610544565b6001600160a01b038381166000818152609c6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b611e92848484611887565b611e9e8484848461224b565b6117365760405162461bcd60e51b815260040161054490612dd8565b606060ca805461094e90612aa6565b60606000611ed68361234c565b600101905060008167ffffffffffffffff811115611ef657611ef66125fc565b6040519080825280601f01601f191660200182016040528015611f20576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611f2a57509392505050565b600054610100900460ff16611f835760405162461bcd60e51b815260040161054490612bbc565b6097611f8f8382612c7f565b506098610b088282612c7f565b60006001600160e01b03198216637965db0b60e01b148061060957506301ffc9a760e01b6001600160e01b0319831614610609565b6001811115611736576001600160a01b03841615612017576001600160a01b0384166000908152609a602052604081208054839290612011908490612da6565b90915550505b6001600160a01b03831615611736576001600160a01b0383166000908152609a60205260408120805483929061204e908490612b43565b909155505050505050565b6120638282611020565b610bdd5761207081612424565b61207b836020612436565b60405160200161208c929190612e2a565b60408051601f198184030181529082905262461bcd60e51b82526105449160040161281c565b6001600160a01b0382166121085760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610544565b6000818152609960205260409020546001600160a01b03161561216d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610544565b61217b600083836001611fd1565b6000818152609960205260409020546001600160a01b0316156121e05760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610544565b6001600160a01b0382166000818152609a6020908152604080832080546001019055848352609990915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160a01b0384163b1561234157604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061228f903390899088908890600401612e9f565b6020604051808303816000875af19250505080156122ca575060408051601f3d908101601f191682019092526122c791810190612edc565b60015b612327573d8080156122f8576040519150601f19603f3d011682016040523d82523d6000602084013e6122fd565b606091505b50805160000361231f5760405162461bcd60e51b815260040161054490612dd8565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611b3c565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061238b5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106123b7576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106123d557662386f26fc10000830492506010015b6305f5e10083106123ed576305f5e100830492506008015b612710831061240157612710830492506004015b60648310612413576064830492506002015b600a83106106095760010192915050565b60606106096001600160a01b03831660145b60606000612445836002612db9565b612450906002612b43565b67ffffffffffffffff811115612468576124686125fc565b6040519080825280601f01601f191660200182016040528015612492576020820181803683370190505b509050600360fc1b816000815181106124ad576124ad612ef9565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106124dc576124dc612ef9565b60200101906001600160f81b031916908160001a9053506000612500846002612db9565b61250b906001612b43565b90505b6001811115612583576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061253f5761253f612ef9565b1a60f81b82828151811061255557612555612ef9565b60200101906001600160f81b031916908160001a90535060049490941c9361257c81612f0f565b905061250e565b50831561179c5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610544565b6001600160a01b0381168114610ea957600080fd5b803580151581146125f757600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011261262357600080fd5b813567ffffffffffffffff8082111561263e5761263e6125fc565b604051601f8301601f19908116603f01168101908282118183101715612666576126666125fc565b8160405283815286602085880101111561267f57600080fd5b836020870160208301376000602085830101528094505050505092915050565b60008060008060008060c087890312156126b857600080fd5b86356126c3816125d2565b95506126d1602088016125e7565b9450604087013567ffffffffffffffff808211156126ee57600080fd5b6126fa8a838b01612612565b9550606089013591508082111561271057600080fd5b61271c8a838b01612612565b9450608089013591508082111561273257600080fd5b5061273f89828a01612612565b92505060a087013590509295509295509295565b6001600160e01b031981168114610ea957600080fd5b60006020828403121561277b57600080fd5b813561179c81612753565b6000806000806080858703121561279c57600080fd5b84356127a7816125d2565b935060208501356127b7816125d2565b93969395505050506040820135916060013590565b60005b838110156127e75781810151838201526020016127cf565b50506000910152565b600081518084526128088160208601602086016127cc565b601f01601f19169290920160200192915050565b60208152600061179c60208301846127f0565b60006020828403121561284157600080fd5b5035919050565b6000806040838503121561285b57600080fd5b8235612866816125d2565b946020939093013593505050565b60008060006060848603121561288957600080fd5b8335612894816125d2565b925060208401356128a4816125d2565b929592945050506040919091013590565b600080604083850312156128c857600080fd5b8235915060208301356128da816125d2565b809150509250929050565b6000602082840312156128f757600080fd5b813567ffffffffffffffff81111561290e57600080fd5b611b3c84828501612612565b60006020828403121561292c57600080fd5b813561179c816125d2565b60008060006060848603121561294c57600080fd5b8335612957816125d2565b925060208401359150604084013567ffffffffffffffff81111561297a57600080fd5b61298686828701612612565b9150509250925092565b600080604083850312156129a357600080fd5b82356129ae816125d2565b91506129bc602084016125e7565b90509250929050565b600080600080608085870312156129db57600080fd5b84356129e6816125d2565b935060208501356129f6816125d2565b925060408501359150606085013567ffffffffffffffff811115612a1957600080fd5b612a2587828801612612565b91505092959194509250565b60008060408385031215612a4457600080fd5b8235612a4f816125d2565b915060208301356128da816125d2565b600060208284031215612a7157600080fd5b815161179c816125d2565b6001600160a01b039485168152928416602084015292166040820152606081019190915260800190565b600181811c90821680612aba57607f821691505b602082108103612ada57634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052601160045260246000fd5b8082018082111561060957610609612b2d565b600080600060608486031215612b6b57600080fd5b8351612b76816125d2565b602085015160409095015190969495509392505050565b60008351612b9f8184602088016127cc565b835190830190612bb38183602088016127cc565b01949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60008351612c198184602088016127cc565b602f60f81b92018281526001810193909352506021820152602201919050565b601f821115610b0857600081815260208120601f850160051c81016020861015612c605750805b601f850160051c820191505b818110156116e257828155600101612c6c565b815167ffffffffffffffff811115612c9957612c996125fc565b612cad81612ca78454612aa6565b84612c39565b602080601f831160018114612ce25760008415612cca5750858301515b600019600386901b1c1916600185901b1785556116e2565b600085815260208120601f198616915b82811015612d1157888601518255948401946001909101908401612cf2565b5085821015612d2f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b600082612da157634e487b7160e01b600052601260045260246000fd5b500490565b8181038181111561060957610609612b2d565b6000816000190483118215151615612dd357612dd3612b2d565b500290565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612e628160178501602088016127cc565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612e938160288401602088016127cc565b01602801949350505050565b6001600160a01b0385811682528416602082015260408101839052608060608201819052600090612ed2908301846127f0565b9695505050505050565b600060208284031215612eee57600080fd5b815161179c81612753565b634e487b7160e01b600052603260045260246000fd5b600081612f1e57612f1e612b2d565b50600019019056fea26469706673582212200320cdefc7c4db17422b5b58974a78e156ca7b0807a95f50ada92f5b036b750e64736f6c63430008100033",
"sourceMap": "1058:5722:129:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1622:506;;;;;;:::i;:::-;;:::i;:::-;;6255:198;;;;;;:::i;:::-;;:::i;:::-;;;2744:14:156;;2737:22;2719:41;;2707:2;2692:18;6255:198:129;;;;;;;;4030:706;;;;;;:::i;:::-;;:::i;2932:98:28:-;;;:::i;:::-;;;;;;;:::i;4407:167::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;4406:32:156;;;4388:51;;4376:2;4361:18;4407:167:28;4242:203:156;3929:417:28;;;;;;:::i;:::-;;:::i;5084:326::-;;;;;;:::i;:::-;;:::i;4708:129:16:-;;;;;;:::i;:::-;4782:7;4808:12;;;:6;:12;;;;;:22;;;;4708:129;;;;5562:25:156;;;5550:2;5535:18;4708:129:16;5416:177:156;5133:145:16;;;;;;:::i;:::-;;:::i;6242:214::-;;;;;;:::i;:::-;;:::i;5476:179:28:-;;;;;;:::i;:::-;;:::i;3145:543:129:-;;;;;;:::i;:::-;;:::i;3922:102::-;;;;;;:::i;:::-;;:::i;3792:121::-;;;;;;:::i;:::-;;:::i;2651:219:28:-;;;;;;:::i;:::-;;:::i;1340:21:129:-;;;:::i;1570:45::-;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;1570:45:129;;;2390:204:28;;;;;;:::i;:::-;;:::i;3203:145:16:-;;;;;;:::i;:::-;;:::i;4742:1318:129:-;;;;;;:::i;:::-;;:::i;2448:691::-;;;;;;:::i;:::-;;:::i;3094:102:28:-;;;:::i;2324:49:16:-;;2369:4;2324:49;;4641:153:28;;;;;;:::i;:::-;;:::i;5721:314::-;;;;;;:::i;:::-;;:::i;1497:43:129:-;;;;;;:::i;:::-;;;;;;;;;;;;;;3262:276:28;;;;;;:::i;:::-;;:::i;5558:147:16:-;;;;;;:::i;:::-;;:::i;1429:40:129:-;;;;;;:::i;:::-;;;;;;;;;;;;;;4860:162:28;;;;;;:::i;:::-;-1:-1:-1;;;;;4980:25:28;;;4957:4;4980:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;;;4860:162;1622:506:129;3268:19:18;3291:13;;;;;;3290:14;;3336:34;;;;-1:-1:-1;3354:12:18;;3369:1;3354:12;;;;:16;3336:34;3335:108;;;-1:-1:-1;3415:4:18;1476:19:32;:23;;;3376:66:18;;-1:-1:-1;3425:12:18;;;;;:17;3376:66;3314:201;;;;-1:-1:-1;;;3314:201:18;;8794:2:156;3314:201:18;;;8776:21:156;8833:2;8813:18;;;8806:30;8872:34;8852:18;;;8845:62;-1:-1:-1;;;8923:18:156;;;8916:44;8977:19;;3314:201:18;;;;;;;;;3525:12;:16;;-1:-1:-1;;3525:16:18;3540:1;3525:16;;;3551:65;;;;3585:13;:20;;-1:-1:-1;;3585:20:18;;;;;3551:65;1885:29:129::1;1899:5;1906:7;1885:13;:29::i;:::-;1924:27;1936:14;1924:11;:27::i;:::-;1961:16;:54:::0;;2025:38;::::1;;-1:-1:-1::0;;;2025:38:129::1;-1:-1:-1::0;;;;;;2025:38:129;;;-1:-1:-1;;;;;1961:54:129;::::1;2025:38:::0;::::1;::::0;;2073:22:::1;:48:::0;;;3636:99:18;;;;3686:5;3670:21;;-1:-1:-1;;3670:21:18;;;3710:14;;-1:-1:-1;9159:36:156;;3710:14:18;;9147:2:156;9132:18;3710:14:18;;;;;;;3636:99;3258:483;1622:506:129;;;;;;:::o;6255:198::-;6386:4;6409:37;6433:12;6409:23;:37::i;:::-;6402:44;6255:198;-1:-1:-1;;6255:198:129:o;4030:706::-;2195:16;;;;;;;;;-1:-1:-1;;;;;2195:16:129;-1:-1:-1;;;;;2195:31:129;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2179:49:129;929:10:33;-1:-1:-1;;;;;2179:49:129;;2230:37;;;;;;;;;;;;;-1:-1:-1;;;2230:37:129;;;2171:97;;;;;-1:-1:-1;;;2171:97:129;;;;;;;;:::i;:::-;-1:-1:-1;4231:16:129::1;::::0;:33:::1;::::0;;-1:-1:-1;;;4231:33:129;;;;4209:19:::1;::::0;-1:-1:-1;;;;;4231:16:129::1;::::0;:31:::1;::::0;:33:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:16;:33:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4209:55;;4274:25;4302:16;;;;;;;;;-1:-1:-1::0;;;;;4302:16:129::1;-1:-1:-1::0;;;;;4302:37:129::1;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4274:67;;4381:11;-1:-1:-1::0;;;;;4360:32:129::1;:17;4368:8;4360:7;:17::i;:::-;-1:-1:-1::0;;;;;4360:32:129::1;;4352:62;;;::::0;-1:-1:-1;;;4352:62:129;;9664:2:156;4352:62:129::1;::::0;::::1;9646:21:156::0;9703:2;9683:18;;;9676:30;-1:-1:-1;;;9722:18:156;;;9715:47;9779:18;;4352:62:129::1;9462:341:156::0;4352:62:129::1;4424:148;::::0;-1:-1:-1;;;4424:148:129;;-1:-1:-1;;;;;4424:51:129;::::1;::::0;::::1;::::0;:148:::1;::::0;4489:6;;4509:5;;4536:4:::1;::::0;4555:7;;4424:148:::1;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4591:61;4601:16;;;;;;;;;-1:-1:-1::0;;;;;4601:16:129::1;-1:-1:-1::0;;;;;4601:31:129::1;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4636:5;4643:8;4591:9;:61::i;:::-;-1:-1:-1::0;;4662:18:129::1;::::0;;;:8:::1;:18;::::0;;;;;;;:28;;;;4700:10:::1;:20:::0;;;:29;;-1:-1:-1;;;;;;4700:29:129::1;-1:-1:-1::0;;;;;4700:29:129;;;::::1;::::0;;;::::1;::::0;;-1:-1:-1;4030:706:129:o;2932:98:28:-;2986:13;3018:5;3011:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2932:98;:::o;4407:167::-;4483:7;4502:23;4517:7;4502:14;:23::i;:::-;-1:-1:-1;4543:24:28;;;;:15;:24;;;;;;-1:-1:-1;;;;;4543:24:28;;4407:167::o;3929:417::-;4009:13;4025:34;4051:7;4025:25;:34::i;:::-;4009:50;;4083:5;-1:-1:-1;;;;;4077:11:28;:2;-1:-1:-1;;;;;4077:11:28;;4069:57;;;;-1:-1:-1;;;4069:57:28;;10856:2:156;4069:57:28;;;10838:21:156;10895:2;10875:18;;;10868:30;10934:34;10914:18;;;10907:62;-1:-1:-1;;;10985:18:156;;;10978:31;11026:19;;4069:57:28;10654:397:156;4069:57:28;929:10:33;-1:-1:-1;;;;;4158:21:28;;;;:62;;-1:-1:-1;4183:37:28;4200:5;929:10:33;4860:162:28;:::i;4183:37::-;4137:170;;;;-1:-1:-1;;;4137:170:28;;11258:2:156;4137:170:28;;;11240:21:156;11297:2;11277:18;;;11270:30;11336:34;11316:18;;;11309:62;11407:31;11387:18;;;11380:59;11456:19;;4137:170:28;11056:425:156;4137:170:28;4318:21;4327:2;4331:7;4318:8;:21::i;:::-;3999:347;3929:417;;:::o;5084:326::-;5273:41;929:10:33;5306:7:28;5273:18;:41::i;:::-;5265:99;;;;-1:-1:-1;;;5265:99:28;;;;;;;:::i;:::-;5375:28;5385:4;5391:2;5395:7;5375:9;:28::i;5133:145:16:-;4782:7;4808:12;;;:6;:12;;;;;:22;;;2802:16;2813:4;2802:10;:16::i;:::-;5246:25:::1;5257:4;5263:7;5246:10;:25::i;6242:214::-:0;-1:-1:-1;;;;;6337:23:16;;929:10:33;6337:23:16;6329:83;;;;-1:-1:-1;;;6329:83:16;;12102:2:156;6329:83:16;;;12084:21:156;12141:2;12121:18;;;12114:30;12180:34;12160:18;;;12153:62;-1:-1:-1;;;12231:18:156;;;12224:45;12286:19;;6329:83:16;11900:411:156;6329:83:16;6423:26;6435:4;6441:7;6423:11;:26::i;:::-;6242:214;;:::o;5476:179:28:-;5609:39;5626:4;5632:2;5636:7;5609:39;;;;;;;;;;;;:16;:39::i;3145:543:129:-;3218:16;;:33;;;-1:-1:-1;;;3218:33:129;;;;3196:19;;-1:-1:-1;;;;;3218:16:129;;:31;;:33;;;;;;;;;;;;;;:16;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3269:15;;;;:5;:15;;;;;3262:22;3196:55;-1:-1:-1;3294:15:129;3275:8;3294:5;:15::i;:::-;3324:18;;;;:8;:18;;;;;;:23;3320:362;;3382:16;;;;;;;;;-1:-1:-1;;;;;3382:16:129;-1:-1:-1;;;;;3382:37:129;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;3454:20;;;;:10;:20;;;;;;;;;3552:8;:18;;;;;;;;3363:221;;-1:-1:-1;;;3363:221:129;;-1:-1:-1;;;;;3363:73:129;;;;;;:221;;3454:20;;;;3500:4;;3523:11;;3363:221;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;3623:1:129;3602:18;;;-1:-1:-1;;3602:8:129;:18;;;;;;;;:22;;;3638:10;:20;;;;;:33;;-1:-1:-1;;;;;;3638:33:129;;;3145:543::o;3922:102::-;3977:4;7402:16:28;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:28;7816:31;;4000:17:129;7728:126:28;3792:121:129;2354:16;;;;;;;;;-1:-1:-1;;;;;2354:16:129;-1:-1:-1;;;;;2354:32:129;;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2338:50:129;929:10:33;-1:-1:-1;;;;;2338:50:129;;2390:33;;;;;;;;;;;;;-1:-1:-1;;;2390:33:129;;;2330:94;;;;;-1:-1:-1;;;2330:94:129;;;;;;;;:::i;:::-;;3879:27:::1;3891:14;3879:11;:27::i;:::-;3792:121:::0;:::o;2651:219:28:-;2723:7;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:28;;2785:56;;;;-1:-1:-1;;;2785:56:28;;12518:2:156;2785:56:28;;;12500:21:156;12557:2;12537:18;;;12530:30;-1:-1:-1;;;12576:18:156;;;12569:54;12640:18;;2785:56:28;12316:348:156;1340:21:129;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;2390:204:28:-;2462:7;-1:-1:-1;;;;;2489:19:28;;2481:73;;;;-1:-1:-1;;;2481:73:28;;12871:2:156;2481:73:28;;;12853:21:156;12910:2;12890:18;;;12883:30;12949:34;12929:18;;;12922:62;-1:-1:-1;;;13000:18:156;;;12993:39;13049:19;;2481:73:28;12669:405:156;2481:73:28;-1:-1:-1;;;;;;2571:16:28;;;;;:9;:16;;;;;;;2390:204::o;3203:145:16:-;3289:4;3312:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;3312:29:16;;;;;;;;;;;;;;;3203:145::o;4742:1318:129:-;2195:16;;;;;;;;;-1:-1:-1;;;;;2195:16:129;-1:-1:-1;;;;;2195:31:129;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2179:49:129;929:10:33;-1:-1:-1;;;;;2179:49:129;;2230:37;;;;;;;;;;;;;-1:-1:-1;;;2230:37:129;;;2171:97;;;;;-1:-1:-1;;;2171:97:129;;;;;;;;:::i;:::-;-1:-1:-1;4950:16:129::1;::::0;:33:::1;::::0;;-1:-1:-1;;;4950:33:129;;;;4928:19:::1;::::0;-1:-1:-1;;;;;4950:16:129::1;::::0;:31:::1;::::0;:33:::1;::::0;;::::1;::::0;::::1;::::0;;;;;;;;:16;:33:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4993:18;5040::::0;;;:8:::1;:18;::::0;;;;;5095:22:::1;::::0;4928:55;;-1:-1:-1;4993:18:129;;5014:104:::1;::::0;5040:18;5060:57:::1;::::0;470:3:113::1;5060:57:129;:::i;:::-;5014:25;:104::i;:::-;4993:125;;5166:11;-1:-1:-1::0;;;;;5145:32:129::1;:17;5153:8;5145:7;:17::i;:::-;-1:-1:-1::0;;;;;5145:32:129::1;::::0;5137:58:::1;;;::::0;-1:-1:-1;;;5137:58:129;;13543:2:156;5137:58:129::1;::::0;::::1;13525:21:156::0;13582:2;13562:18;;;13555:30;-1:-1:-1;;;13601:18:156;;;13594:43;13654:18;;5137:58:129::1;13341:337:156::0;5137:58:129::1;5223:10;5213:7;:20;5205:55;;;::::0;-1:-1:-1;;;5205:55:129;;13885:2:156;5205:55:129::1;::::0;::::1;13867:21:156::0;13924:2;13904:18;;;13897:30;-1:-1:-1;;;13943:18:156;;;13936:52;14005:18;;5205:55:129::1;13683:346:156::0;5205:55:129::1;5288:20;::::0;;;:10:::1;:20;::::0;;;;;-1:-1:-1;;;;;5278:30:129;;::::1;5288:20:::0;::::1;5278:30;5270:64;;;::::0;-1:-1:-1;;;5270:64:129;;14236:2:156;5270:64:129::1;::::0;::::1;14218:21:156::0;14275:2;14255:18;;;14248:30;-1:-1:-1;;;14294:18:156;;;14287:51;14355:18;;5270:64:129::1;14034:345:156::0;5270:64:129::1;5353:19;5376:18:::0;;;:8:::1;:18;::::0;;;;;;5431:17:::1;5385:8:::0;5431:7:::1;:17::i;:::-;5405:43;;5519:16;;;;;;;;;-1:-1:-1::0;;;;;5519:16:129::1;-1:-1:-1::0;;;;;5519:37:129::1;;:39;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5500:73:129::1;;5587:6;5607:5;5634:4;5653:7;5500:170;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;5717:42;5727:14;5743:5;5750:8;5717:9;:42::i;:::-;5794:18;::::0;;;:8:::1;:18;::::0;;;;;;;;:28;;;5889:16:::1;::::0;:39;;-1:-1:-1;;;5889:39:129;;;;-1:-1:-1;;;;;5889:16:129;;::::1;::::0;:37:::1;::::0;:39:::1;::::0;;::::1;::::0;5794:18;;5889:39;;;;;:16;:39:::1;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5870:73:129::1;;5957:6;5985:4;6004:14;6032:11;5870:183;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;4918:1142;;;;4742:1318:::0;;;;:::o;2448:691::-;2195:16;;;;;;;;;-1:-1:-1;;;;;2195:16:129;-1:-1:-1;;;;;2195:31:129;;:33;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;2179:49:129;929:10:33;-1:-1:-1;;;;;2179:49:129;;2230:37;;;;;;;;;;;;;-1:-1:-1;;;2230:37:129;;;2171:97;;;;;-1:-1:-1;;;2171:97:129;;;;;;;;:::i;:::-;;2577:1:::1;2562:5;:12;:16;2554:50;;;::::0;-1:-1:-1;;;2554:50:129;;14586:2:156;2554:50:129::1;::::0;::::1;14568:21:156::0;14625:2;14605:18;;;14598:30;-1:-1:-1;;;14644:18:156;;;14637:51;14705:18;;2554:50:129::1;14384:345:156::0;2554:50:129::1;2628:18;2660:15:::0;2689:14:::1;2728:5;2717:46;;;;;;;;;;;;:::i;:::-;2773:19;::::0;;;:5:::1;:19;::::0;;;;:28;;;2614:149;;-1:-1:-1;2614:149:129;-1:-1:-1;2614:149:129;-1:-1:-1;2812:37:129::1;2822:5:::0;2779:12;2843:5;2812:9:::1;:37::i;:::-;2864:17;::::0;-1:-1:-1;;;2864:17:129;::::1;;;2860:273;;;2952:16;;;;;;;;;-1:-1:-1::0;;;;;2952:16:129::1;-1:-1:-1::0;;;;;2952:38:129::1;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;2932:190;::::0;-1:-1:-1;;;2932:190:129;;-1:-1:-1;;;;;15401:15:156;;;2932:190:129::1;::::0;::::1;15383:34:156::0;15453:15;;;15433:18;;;15426:43;15485:18;;;15478:34;;;3104:4:129::1;15528:18:156::0;;;15521:50;2932:78:129;;;::::1;::::0;::::1;::::0;15317:19:156;;2932:190:129::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;2860:273;2544:595;;;2448:691:::0;;;:::o;3094:102:28:-;3150:13;3182:7;3175:14;;;;;:::i;4641:153::-;4735:52;929:10:33;4768:8:28;4778;4735:18;:52::i;5721:314::-;5889:41;929:10:33;5922:7:28;5889:18;:41::i;:::-;5881:99;;;;-1:-1:-1;;;5881:99:28;;;;;;;:::i;:::-;5990:38;6004:4;6010:2;6014:7;6023:4;5990:13;:38::i;:::-;5721:314;;;;:::o;3262:276::-;3335:13;3360:23;3375:7;3360:14;:23::i;:::-;3394:21;3418:10;:8;:10::i;:::-;3394:34;;3469:1;3451:7;3445:21;:25;:86;;;;;;;;;;;;;;;;;3497:7;3506:18;:7;:16;:18::i;:::-;3480:45;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3445:86;3438:93;3262:276;-1:-1:-1;;;3262:276:28:o;5558:147:16:-;4782:7;4808:12;;;:6;:12;;;;;:22;;;2802:16;2813:4;2802:10;:16::i;:::-;5672:26:::1;5684:4;5690:7;5672:11;:26::i;1605:149:28:-:0;5363:13:18;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:18;;;;;;;:::i;:::-;1708:39:28::1;1732:5;1739:7;1708:23;:39::i;6563:215:129:-:0;6674:1;6649:14;6643:28;:32;:128;;;;;;;;;;;;;;;;;6714:14;6735:13;6697:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6643:128;6633:7;;:138;;:7;:138;:::i;1987:344:28:-;2111:4;-1:-1:-1;;;;;;2146:51:28;;-1:-1:-1;;;2146:51:28;;:126;;-1:-1:-1;;;;;;;2213:59:28;;-1:-1:-1;;;2213:59:28;2146:126;:178;;;;2288:36;2312:11;2288:23;:36::i;11928:1255::-;12093:4;-1:-1:-1;;;;;12055:42:28;:34;12081:7;12055:25;:34::i;:::-;-1:-1:-1;;;;;12055:42:28;;12047:92;;;;-1:-1:-1;;;12047:92:28;;;;;;;:::i;:::-;-1:-1:-1;;;;;12157:16:28;;12149:65;;;;-1:-1:-1;;;12149:65:28;;19988:2:156;12149:65:28;;;19970:21:156;20027:2;20007:18;;;20000:30;20066:34;20046:18;;;20039:62;-1:-1:-1;;;20117:18:156;;;20110:34;20161:19;;12149:65:28;19786:400:156;12149:65:28;12225:42;12246:4;12252:2;12256:7;12265:1;12225:20;:42::i;:::-;12405:4;-1:-1:-1;;;;;12367:42:28;:34;12393:7;12367:25;:34::i;:::-;-1:-1:-1;;;;;12367:42:28;;12359:92;;;;-1:-1:-1;;;12359:92:28;;;;;;;:::i;:::-;12520:24;;;;:15;:24;;;;;;;;12513:31;;-1:-1:-1;;;;;;12513:31:28;;;;;;-1:-1:-1;;;;;12988:15:28;;;;;;:9;:15;;;;;:20;;-1:-1:-1;;12988:20:28;;;13022:13;;;;;;;;;:18;;12513:31;13022:18;;;13060:16;;;:7;:16;;;;;;:21;;;;;;;;;;13097:27;;12536:7;;13097:27;;;3999:347;3929:417;;:::o;14004:133::-;7793:4;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:28;14077:53;;;;-1:-1:-1;;;14077:53:28;;12518:2:156;14077:53:28;;;12500:21:156;12557:2;12537:18;;;12530:30;-1:-1:-1;;;12576:18:156;;;12569:54;12640:18;;14077:53:28;12316:348:156;13295:182:28;13369:24;;;;:15;:24;;;;;:29;;-1:-1:-1;;;;;;13369:29:28;-1:-1:-1;;;;;13369:29:28;;;;;;;;:24;;13422:34;13369:24;13422:25;:34::i;:::-;-1:-1:-1;;;;;13413:57:28;;;;;;;;;;;13295:182;;:::o;8012:272::-;8105:4;8121:13;8137:34;8163:7;8137:25;:34::i;:::-;8121:50;;8200:5;-1:-1:-1;;;;;8189:16:28;:7;-1:-1:-1;;;;;8189:16:28;;:52;;;-1:-1:-1;;;;;;4980:25:28;;;4957:4;4980:25;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;8209:32;8189:87;;;;8269:7;-1:-1:-1;;;;;8245:31:28;:20;8257:7;8245:11;:20::i;:::-;-1:-1:-1;;;;;8245:31:28;;8189:87;8181:96;8012:272;-1:-1:-1;;;;8012:272:28:o;3642:103:16:-;3708:30;3719:4;929:10:33;3708::16;:30::i;7791:233::-;7874:22;7882:4;7888:7;7874;:22::i;:::-;7869:149;;7912:12;;;;:6;:12;;;;;;;;-1:-1:-1;;;;;7912:29:16;;;;;;;;;:36;;-1:-1:-1;;7912:36:16;7944:4;7912:36;;;7994:12;929:10:33;;850:96;7994:12:16;-1:-1:-1;;;;;7967:40:16;7985:7;-1:-1:-1;;;;;7967:40:16;7979:4;7967:40;;;;;;;;;;7791:233;;:::o;8195:234::-;8278:22;8286:4;8292:7;8278;:22::i;:::-;8274:149;;;8348:5;8316:12;;;:6;:12;;;;;;;;-1:-1:-1;;;;;8316:29:16;;;;;;;;;;:37;;-1:-1:-1;;8316:37:16;;;8372:40;929:10:33;;8316:12:16;;8372:40;;8348:5;8372:40;8195:234;;:::o;10820:784:28:-;10879:13;10895:34;10921:7;10895:25;:34::i;:::-;10879:50;;10940:51;10961:5;10976:1;10980:7;10989:1;10940:20;:51::i;:::-;11101:34;11127:7;11101:25;:34::i;:::-;11180:24;;;;:15;:24;;;;;;;;11173:31;;-1:-1:-1;;;;;;11173:31:28;;;;;;-1:-1:-1;;;;;11420:16:28;;;;;:9;:16;;;;;:21;;-1:-1:-1;;11420:21:28;;;11468:16;;;:7;:16;;;;;;11461:23;;;;;;;11500:36;11093:42;;-1:-1:-1;11196:7:28;;11500:36;;11180:24;;11500:36;6242:214:16;;:::o;1026:333:113:-;1104:7;1123:10;;;:29;;-1:-1:-1;1137:15:113;;1123:29;1119:58;;;-1:-1:-1;1169:1:113;1162:8;;1119:58;1237:10;540:21;560:1;470:3;540:21;:::i;:::-;1201:32;;-1:-1:-1;;1201:32:113;:::i;:::-;1200:47;;;;:::i;:::-;1191:5;:56;;1249:35;;;;;;;;;;;;;-1:-1:-1;;;1249:35:113;;;1183:102;;;;;-1:-1:-1;;;1183:102:113;;;;;;;;:::i;:::-;-1:-1:-1;470:3:113;540:21;560:1;470:3;540:21;:::i;:::-;1300:18;1308:10;1300:5;:18;:::i;:::-;:33;;;;:::i;:::-;1299:55;;;;:::i;8943:309:28:-;9067:18;9073:2;9077:7;9067:5;:18::i;:::-;9116:53;9147:1;9151:2;9155:7;9164:4;9116:22;:53::i;:::-;9095:150;;;;-1:-1:-1;;;9095:150:28;;;;;;;:::i;13613:307::-;13763:8;-1:-1:-1;;;;;13754:17:28;:5;-1:-1:-1;;;;;13754:17:28;;13746:55;;;;-1:-1:-1;;;13746:55:28;;21472:2:156;13746:55:28;;;21454:21:156;21511:2;21491:18;;;21484:30;21550:27;21530:18;;;21523:55;21595:18;;13746:55:28;21270:349:156;13746:55:28;-1:-1:-1;;;;;13811:25:28;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;13811:46:28;;;;;;;;;;13872:41;;2719::156;;;13872::28;;2692:18:156;13872:41:28;;;;;;;13613:307;;;:::o;6896:305::-;7046:28;7056:4;7062:2;7066:7;7046:9;:28::i;:::-;7092:47;7115:4;7121:2;7125:7;7134:4;7092:22;:47::i;:::-;7084:110;;;;-1:-1:-1;;;7084:110:28;;;;;;;:::i;6459:98:129:-;6511:13;6543:7;6536:14;;;;;:::i;437:707:35:-;493:13;542:14;559:28;581:5;559:21;:28::i;:::-;590:1;559:32;542:49;;605:20;639:6;628:18;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;628:18:35;-1:-1:-1;605:41:35;-1:-1:-1;766:28:35;;;782:2;766:28;821:280;-1:-1:-1;;852:5:35;-1:-1:-1;;;986:2:35;975:14;;970:30;852:5;957:44;1045:2;1036:11;;;-1:-1:-1;1065:21:35;821:280;1065:21;-1:-1:-1;1121:6:35;437:707;-1:-1:-1;;;437:707:35:o;1760:160:28:-;5363:13:18;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:18;;;;;;;:::i;:::-;1873:5:28::1;:13;1881:5:::0;1873;:13:::1;:::i;:::-;-1:-1:-1::0;1896:7:28::1;:17;1906:7:::0;1896;:17:::1;:::i;2903:213:16:-:0;2988:4;-1:-1:-1;;;;;;3011:58:16;;-1:-1:-1;;;3011:58:16;;:98;;-1:-1:-1;;;;;;;;;;1168:51:36;;;3073:36:16;1060:166:36;16258:396:28;16442:1;16430:9;:13;16426:222;;;-1:-1:-1;;;;;16463:18:28;;;16459:85;;-1:-1:-1;;;;;16501:15:28;;;;;;:9;:15;;;;;:28;;16520:9;;16501:15;:28;;16520:9;;16501:28;:::i;:::-;;;;-1:-1:-1;;16459:85:28;-1:-1:-1;;;;;16561:16:28;;;16557:81;;-1:-1:-1;;;;;16597:13:28;;;;;;:9;:13;;;;;:26;;16614:9;;16597:13;:26;;16614:9;;16597:26;:::i;:::-;;;;-1:-1:-1;;16258:396:28;;;;:::o;4026:501:16:-;4114:22;4122:4;4128:7;4114;:22::i;:::-;4109:412;;4297:39;4328:7;4297:30;:39::i;:::-;4407:49;4446:4;4453:2;4407:30;:49::i;:::-;4204:274;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;4204:274:16;;;;;;;;;;-1:-1:-1;;;4152:358:16;;;;;;;:::i;9574:920:28:-;-1:-1:-1;;;;;9653:16:28;;9645:61;;;;-1:-1:-1;;;9645:61:28;;22643:2:156;9645:61:28;;;22625:21:156;;;22662:18;;;22655:30;22721:34;22701:18;;;22694:62;22773:18;;9645:61:28;22441:356:156;9645:61:28;7793:4;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:28;7816:31;9716:58;;;;-1:-1:-1;;;9716:58:28;;23004:2:156;9716:58:28;;;22986:21:156;23043:2;23023:18;;;23016:30;23082;23062:18;;;23055:58;23130:18;;9716:58:28;22802:352:156;9716:58:28;9785:48;9814:1;9818:2;9822:7;9831:1;9785:20;:48::i;:::-;7793:4;7402:16;;;:7;:16;;;;;;-1:-1:-1;;;;;7402:16:28;7816:31;9920:58;;;;-1:-1:-1;;;9920:58:28;;23004:2:156;9920:58:28;;;22986:21:156;23043:2;23023:18;;;23016:30;23082;23062:18;;;23055:58;23130:18;;9920:58:28;22802:352:156;9920:58:28;-1:-1:-1;;;;;10320:13:28;;;;;;:9;:13;;;;;;;;:18;;10337:1;10320:18;;;10359:16;;;:7;:16;;;;;;:21;;-1:-1:-1;;;;;;10359:21:28;;;;;10396:33;10367:7;;10320:13;;10396:33;;10320:13;;10396:33;6242:214:16;;:::o;14689:853:28:-;14838:4;-1:-1:-1;;;;;14858:13:28;;1476:19:32;:23;14854:682:28;;14893:82;;-1:-1:-1;;;14893:82:28;;-1:-1:-1;;;;;14893:47:28;;;;;:82;;929:10:33;;14955:4:28;;14961:7;;14970:4;;14893:82;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14893:82:28;;;;;;;;-1:-1:-1;;14893:82:28;;;;;;;;;;;;:::i;:::-;;;14889:595;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15153:6;:13;15170:1;15153:18;15149:321;;15195:60;;-1:-1:-1;;;15195:60:28;;;;;;;:::i;15149:321::-;15422:6;15416:13;15407:6;15403:2;15399:15;15392:38;14889:595;-1:-1:-1;;;;;;15025:62:28;-1:-1:-1;;;15025:62:28;;-1:-1:-1;15018:69:28;;14854:682;-1:-1:-1;15521:4:28;14689:853;;;;;;:::o;9900:890:38:-;9953:7;;-1:-1:-1;;;10028:15:38;;10024:99;;-1:-1:-1;;;10063:15:38;;;-1:-1:-1;10106:2:38;10096:12;10024:99;10149:6;10140:5;:15;10136:99;;10184:6;10175:15;;;-1:-1:-1;10218:2:38;10208:12;10136:99;10261:6;10252:5;:15;10248:99;;10296:6;10287:15;;;-1:-1:-1;10330:2:38;10320:12;10248:99;10373:5;10364;:14;10360:96;;10407:5;10398:14;;;-1:-1:-1;10440:1:38;10430:11;10360:96;10482:5;10473;:14;10469:96;;10516:5;10507:14;;;-1:-1:-1;10549:1:38;10539:11;10469:96;10591:5;10582;:14;10578:96;;10625:5;10616:14;;;-1:-1:-1;10658:1:38;10648:11;10578:96;10700:5;10691;:14;10687:64;;10735:1;10725:11;10777:6;9900:890;-1:-1:-1;;9900:890:38:o;2146:149:35:-;2204:13;2236:52;-1:-1:-1;;;;;2248:22:35;;333:2;1557:437;1632:13;1657:19;1689:10;1693:6;1689:1;:10;:::i;:::-;:14;;1702:1;1689:14;:::i;:::-;1679:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1679:25:35;;1657:47;;-1:-1:-1;;;1714:6:35;1721:1;1714:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1714:15:35;;;;;;;;;-1:-1:-1;;;1739:6:35;1746:1;1739:9;;;;;;;;:::i;:::-;;;;:15;-1:-1:-1;;;;;1739:15:35;;;;;;;;-1:-1:-1;1769:9:35;1781:10;1785:6;1781:1;:10;:::i;:::-;:14;;1794:1;1781:14;:::i;:::-;1769:26;;1764:128;1801:1;1797;:5;1764:128;;;-1:-1:-1;;;1844:5:35;1852:3;1844:11;1835:21;;;;;;;:::i;:::-;;;;1823:6;1830:1;1823:9;;;;;;;;:::i;:::-;;;;:33;-1:-1:-1;;;;;1823:33:35;;;;;;;;-1:-1:-1;1880:1:35;1870:11;;;;;1804:3;;;:::i;:::-;;;1764:128;;;-1:-1:-1;1909:10:35;;1901:55;;;;-1:-1:-1;;;1901:55:35;;24382:2:156;1901:55:35;;;24364:21:156;;;24401:18;;;24394:30;24460:34;24440:18;;;24433:62;24512:18;;1901:55:35;24180:356:156;14:131;-1:-1:-1;;;;;89:31:156;;79:42;;69:70;;135:1;132;125:12;150:160;215:20;;271:13;;264:21;254:32;;244:60;;300:1;297;290:12;244:60;150:160;;;:::o;315:127::-;376:10;371:3;367:20;364:1;357:31;407:4;404:1;397:15;431:4;428:1;421:15;447:719;490:5;543:3;536:4;528:6;524:17;520:27;510:55;;561:1;558;551:12;510:55;597:6;584:20;623:18;660:2;656;653:10;650:36;;;666:18;;:::i;:::-;741:2;735:9;709:2;795:13;;-1:-1:-1;;791:22:156;;;815:2;787:31;783:40;771:53;;;839:18;;;859:22;;;836:46;833:72;;;885:18;;:::i;:::-;925:10;921:2;914:22;960:2;952:6;945:18;1006:3;999:4;994:2;986:6;982:15;978:26;975:35;972:55;;;1023:1;1020;1013:12;972:55;1087:2;1080:4;1072:6;1068:17;1061:4;1053:6;1049:17;1036:54;1134:1;1127:4;1122:2;1114:6;1110:15;1106:26;1099:37;1154:6;1145:15;;;;;;447:719;;;;:::o;1171:1017::-;1302:6;1310;1318;1326;1334;1342;1395:3;1383:9;1374:7;1370:23;1366:33;1363:53;;;1412:1;1409;1402:12;1363:53;1451:9;1438:23;1470:31;1495:5;1470:31;:::i;:::-;1520:5;-1:-1:-1;1544:35:156;1575:2;1560:18;;1544:35;:::i;:::-;1534:45;;1630:2;1619:9;1615:18;1602:32;1653:18;1694:2;1686:6;1683:14;1680:34;;;1710:1;1707;1700:12;1680:34;1733:50;1775:7;1766:6;1755:9;1751:22;1733:50;:::i;:::-;1723:60;;1836:2;1825:9;1821:18;1808:32;1792:48;;1865:2;1855:8;1852:16;1849:36;;;1881:1;1878;1871:12;1849:36;1904:52;1948:7;1937:8;1926:9;1922:24;1904:52;:::i;:::-;1894:62;;2009:3;1998:9;1994:19;1981:33;1965:49;;2039:2;2029:8;2026:16;2023:36;;;2055:1;2052;2045:12;2023:36;;2078:52;2122:7;2111:8;2100:9;2096:24;2078:52;:::i;:::-;2068:62;;;2177:3;2166:9;2162:19;2149:33;2139:43;;1171:1017;;;;;;;;:::o;2193:131::-;-1:-1:-1;;;;;;2267:32:156;;2257:43;;2247:71;;2314:1;2311;2304:12;2329:245;2387:6;2440:2;2428:9;2419:7;2415:23;2411:32;2408:52;;;2456:1;2453;2446:12;2408:52;2495:9;2482:23;2514:30;2538:5;2514:30;:::i;2771:525::-;2857:6;2865;2873;2881;2934:3;2922:9;2913:7;2909:23;2905:33;2902:53;;;2951:1;2948;2941:12;2902:53;2990:9;2977:23;3009:31;3034:5;3009:31;:::i;:::-;3059:5;-1:-1:-1;3116:2:156;3101:18;;3088:32;3129:33;3088:32;3129:33;:::i;:::-;2771:525;;3181:7;;-1:-1:-1;;;;3235:2:156;3220:18;;3207:32;;3286:2;3271:18;3258:32;;2771:525::o;3301:250::-;3386:1;3396:113;3410:6;3407:1;3404:13;3396:113;;;3486:11;;;3480:18;3467:11;;;3460:39;3432:2;3425:10;3396:113;;;-1:-1:-1;;3543:1:156;3525:16;;3518:27;3301:250::o;3556:271::-;3598:3;3636:5;3630:12;3663:6;3658:3;3651:19;3679:76;3748:6;3741:4;3736:3;3732:14;3725:4;3718:5;3714:16;3679:76;:::i;:::-;3809:2;3788:15;-1:-1:-1;;3784:29:156;3775:39;;;;3816:4;3771:50;;3556:271;-1:-1:-1;;3556:271:156:o;3832:220::-;3981:2;3970:9;3963:21;3944:4;4001:45;4042:2;4031:9;4027:18;4019:6;4001:45;:::i;4057:180::-;4116:6;4169:2;4157:9;4148:7;4144:23;4140:32;4137:52;;;4185:1;4182;4175:12;4137:52;-1:-1:-1;4208:23:156;;4057:180;-1:-1:-1;4057:180:156:o;4450:315::-;4518:6;4526;4579:2;4567:9;4558:7;4554:23;4550:32;4547:52;;;4595:1;4592;4585:12;4547:52;4634:9;4621:23;4653:31;4678:5;4653:31;:::i;:::-;4703:5;4755:2;4740:18;;;;4727:32;;-1:-1:-1;;;4450:315:156:o;4770:456::-;4847:6;4855;4863;4916:2;4904:9;4895:7;4891:23;4887:32;4884:52;;;4932:1;4929;4922:12;4884:52;4971:9;4958:23;4990:31;5015:5;4990:31;:::i;:::-;5040:5;-1:-1:-1;5097:2:156;5082:18;;5069:32;5110:33;5069:32;5110:33;:::i;:::-;4770:456;;5162:7;;-1:-1:-1;;;5216:2:156;5201:18;;;;5188:32;;4770:456::o;5598:315::-;5666:6;5674;5727:2;5715:9;5706:7;5702:23;5698:32;5695:52;;;5743:1;5740;5733:12;5695:52;5779:9;5766:23;5756:33;;5839:2;5828:9;5824:18;5811:32;5852:31;5877:5;5852:31;:::i;:::-;5902:5;5892:15;;;5598:315;;;;;:::o;5918:322::-;5987:6;6040:2;6028:9;6019:7;6015:23;6011:32;6008:52;;;6056:1;6053;6046:12;6008:52;6096:9;6083:23;6129:18;6121:6;6118:30;6115:50;;;6161:1;6158;6151:12;6115:50;6184;6226:7;6217:6;6206:9;6202:22;6184:50;:::i;6245:247::-;6304:6;6357:2;6345:9;6336:7;6332:23;6328:32;6325:52;;;6373:1;6370;6363:12;6325:52;6412:9;6399:23;6431:31;6456:5;6431:31;:::i;6679:524::-;6765:6;6773;6781;6834:2;6822:9;6813:7;6809:23;6805:32;6802:52;;;6850:1;6847;6840:12;6802:52;6889:9;6876:23;6908:31;6933:5;6908:31;:::i;:::-;6958:5;-1:-1:-1;7010:2:156;6995:18;;6982:32;;-1:-1:-1;7065:2:156;7050:18;;7037:32;7092:18;7081:30;;7078:50;;;7124:1;7121;7114:12;7078:50;7147;7189:7;7180:6;7169:9;7165:22;7147:50;:::i;:::-;7137:60;;;6679:524;;;;;:::o;7208:315::-;7273:6;7281;7334:2;7322:9;7313:7;7309:23;7305:32;7302:52;;;7350:1;7347;7340:12;7302:52;7389:9;7376:23;7408:31;7433:5;7408:31;:::i;:::-;7458:5;-1:-1:-1;7482:35:156;7513:2;7498:18;;7482:35;:::i;:::-;7472:45;;7208:315;;;;;:::o;7528:666::-;7623:6;7631;7639;7647;7700:3;7688:9;7679:7;7675:23;7671:33;7668:53;;;7717:1;7714;7707:12;7668:53;7756:9;7743:23;7775:31;7800:5;7775:31;:::i;:::-;7825:5;-1:-1:-1;7882:2:156;7867:18;;7854:32;7895:33;7854:32;7895:33;:::i;:::-;7947:7;-1:-1:-1;8001:2:156;7986:18;;7973:32;;-1:-1:-1;8056:2:156;8041:18;;8028:32;8083:18;8072:30;;8069:50;;;8115:1;8112;8105:12;8069:50;8138;8180:7;8171:6;8160:9;8156:22;8138:50;:::i;:::-;8128:60;;;7528:666;;;;;;;:::o;8199:388::-;8267:6;8275;8328:2;8316:9;8307:7;8303:23;8299:32;8296:52;;;8344:1;8341;8334:12;8296:52;8383:9;8370:23;8402:31;8427:5;8402:31;:::i;:::-;8452:5;-1:-1:-1;8509:2:156;8494:18;;8481:32;8522:33;8481:32;8522:33;:::i;9206:251::-;9276:6;9329:2;9317:9;9308:7;9304:23;9300:32;9297:52;;;9345:1;9342;9335:12;9297:52;9377:9;9371:16;9396:31;9421:5;9396:31;:::i;9808:456::-;-1:-1:-1;;;;;10095:15:156;;;10077:34;;10147:15;;;10142:2;10127:18;;10120:43;10199:15;;10194:2;10179:18;;10172:43;10246:2;10231:18;;10224:34;;;;10026:3;10011:19;;9808:456::o;10269:380::-;10348:1;10344:12;;;;10391;;;10412:61;;10466:4;10458:6;10454:17;10444:27;;10412:61;10519:2;10511:6;10508:14;10488:18;10485:38;10482:161;;10565:10;10560:3;10556:20;10553:1;10546:31;10600:4;10597:1;10590:15;10628:4;10625:1;10618:15;10482:161;;10269:380;;;:::o;11486:409::-;11688:2;11670:21;;;11727:2;11707:18;;;11700:30;11766:34;11761:2;11746:18;;11739:62;-1:-1:-1;;;11832:2:156;11817:18;;11810:43;11885:3;11870:19;;11486:409::o;13079:127::-;13140:10;13135:3;13131:20;13128:1;13121:31;13171:4;13168:1;13161:15;13195:4;13192:1;13185:15;13211:125;13276:9;;;13297:10;;;13294:36;;;13310:18;;:::i;14734:381::-;14830:6;14838;14846;14899:2;14887:9;14878:7;14874:23;14870:32;14867:52;;;14915:1;14912;14905:12;14867:52;14947:9;14941:16;14966:31;14991:5;14966:31;:::i;:::-;15061:2;15046:18;;15040:25;15105:2;15090:18;;;15084:25;15016:5;;15040:25;;-1:-1:-1;15084:25:156;14734:381;-1:-1:-1;;;14734:381:156:o;15582:496::-;15761:3;15799:6;15793:13;15815:66;15874:6;15869:3;15862:4;15854:6;15850:17;15815:66;:::i;:::-;15944:13;;15903:16;;;;15966:70;15944:13;15903:16;16013:4;16001:17;;15966:70;:::i;:::-;16052:20;;15582:496;-1:-1:-1;;;;15582:496:156:o;16083:407::-;16285:2;16267:21;;;16324:2;16304:18;;;16297:30;16363:34;16358:2;16343:18;;16336:62;-1:-1:-1;;;16429:2:156;16414:18;;16407:41;16480:3;16465:19;;16083:407::o;16495:676::-;16856:3;16894:6;16888:13;16910:66;16969:6;16964:3;16957:4;16949:6;16945:17;16910:66;:::i;:::-;-1:-1:-1;;;16998:16:156;;17045:17;;;17089:1;17078:13;;17071:29;;;;-1:-1:-1;17127:2:156;17116:14;;17109:26;17162:2;17151:14;;16495:676;-1:-1:-1;16495:676:156:o;17302:545::-;17404:2;17399:3;17396:11;17393:448;;;17440:1;17465:5;17461:2;17454:17;17510:4;17506:2;17496:19;17580:2;17568:10;17564:19;17561:1;17557:27;17551:4;17547:38;17616:4;17604:10;17601:20;17598:47;;;-1:-1:-1;17639:4:156;17598:47;17694:2;17689:3;17685:12;17682:1;17678:20;17672:4;17668:31;17658:41;;17749:82;17767:2;17760:5;17757:13;17749:82;;;17812:17;;;17793:1;17782:13;17749:82;;18023:1352;18149:3;18143:10;18176:18;18168:6;18165:30;18162:56;;;18198:18;;:::i;:::-;18227:97;18317:6;18277:38;18309:4;18303:11;18277:38;:::i;:::-;18271:4;18227:97;:::i;:::-;18379:4;;18443:2;18432:14;;18460:1;18455:663;;;;19162:1;19179:6;19176:89;;;-1:-1:-1;19231:19:156;;;19225:26;19176:89;-1:-1:-1;;17980:1:156;17976:11;;;17972:24;17968:29;17958:40;18004:1;18000:11;;;17955:57;19278:81;;18425:944;;18455:663;17249:1;17242:14;;;17286:4;17273:18;;-1:-1:-1;;18491:20:156;;;18609:236;18623:7;18620:1;18617:14;18609:236;;;18712:19;;;18706:26;18691:42;;18804:27;;;;18772:1;18760:14;;;;18639:19;;18609:236;;;18613:3;18873:6;18864:7;18861:19;18858:201;;;18934:19;;;18928:26;-1:-1:-1;;19017:1:156;19013:14;;;19029:3;19009:24;19005:37;19001:42;18986:58;18971:74;;18858:201;-1:-1:-1;;;;;19105:1:156;19089:14;;;19085:22;19072:36;;-1:-1:-1;18023:1352:156:o;19380:401::-;19582:2;19564:21;;;19621:2;19601:18;;;19594:30;19660:34;19655:2;19640:18;;19633:62;-1:-1:-1;;;19726:2:156;19711:18;;19704:35;19771:3;19756:19;;19380:401::o;20323:217::-;20363:1;20389;20379:132;;20433:10;20428:3;20424:20;20421:1;20414:31;20468:4;20465:1;20458:15;20496:4;20493:1;20486:15;20379:132;-1:-1:-1;20525:9:156;;20323:217::o;20545:128::-;20612:9;;;20633:11;;;20630:37;;;20647:18;;:::i;20678:168::-;20718:7;20784:1;20780;20776:6;20772:14;20769:1;20766:21;20761:1;20754:9;20747:17;20743:45;20740:71;;;20791:18;;:::i;:::-;-1:-1:-1;20831:9:156;;20678:168::o;20851:414::-;21053:2;21035:21;;;21092:2;21072:18;;;21065:30;21131:34;21126:2;21111:18;;21104:62;-1:-1:-1;;;21197:2:156;21182:18;;21175:48;21255:3;21240:19;;20851:414::o;21624:812::-;22035:25;22030:3;22023:38;22005:3;22090:6;22084:13;22106:75;22174:6;22169:2;22164:3;22160:12;22153:4;22145:6;22141:17;22106:75;:::i;:::-;-1:-1:-1;;;22240:2:156;22200:16;;;22232:11;;;22225:40;22290:13;;22312:76;22290:13;22374:2;22366:11;;22359:4;22347:17;;22312:76;:::i;:::-;22408:17;22427:2;22404:26;;21624:812;-1:-1:-1;;;;21624:812:156:o;23159:489::-;-1:-1:-1;;;;;23428:15:156;;;23410:34;;23480:15;;23475:2;23460:18;;23453:43;23527:2;23512:18;;23505:34;;;23575:3;23570:2;23555:18;;23548:31;;;23353:4;;23596:46;;23622:19;;23614:6;23596:46;:::i;:::-;23588:54;23159:489;-1:-1:-1;;;;;;23159:489:156:o;23653:249::-;23722:6;23775:2;23763:9;23754:7;23750:23;23746:32;23743:52;;;23791:1;23788;23781:12;23743:52;23823:9;23817:16;23842:30;23866:5;23842:30;:::i;23907:127::-;23968:10;23963:3;23959:20;23956:1;23949:31;23999:4;23996:1;23989:15;24023:4;24020:1;24013:15;24039:136;24078:3;24106:5;24096:39;;24115:18;;:::i;:::-;-1:-1:-1;;;24151:18:156;;24039:136::o",
"linkReferences": {}
},
"methodIdentifiers": {
"DEFAULT_ADMIN_ROLE()": "a217fddf",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"baseURI()": "6c0360eb",
"burn(uint256)": "42966c68",
"claim()": "4e71d92d",
"exists(uint256)": "4f558e79",
"getApproved(uint256)": "081812fc",
"getRoleAdmin(bytes32)": "248a9ca3",
"grantRole(bytes32,address)": "2f2ff15d",
"hasRole(bytes32,address)": "91d14854",
"initialize(address,bool,string,string,string,uint256)": "01ac88af",
"isApprovedForAll(address,address)": "e985e9c5",
"loans(uint256)": "e1ec3c68",
"lockBid(address,address,uint256,uint256)": "03ac5d7b",
"lockBids(uint256)": "c5f68b8b",
"lockTokens(uint256)": "6e27d889",
"mint(address,uint256,bytes)": "94d008ef",
"name()": "06fdde03",
"ownerOf(uint256)": "6352211e",
"renounceRole(bytes32,address)": "36568abe",
"revokeRole(bytes32,address)": "d547741f",
"safeTransferFrom(address,address,uint256)": "42842e0e",
"safeTransferFrom(address,address,uint256,bytes)": "b88d4fde",
"setApprovalForAll(address,bool)": "a22cb465",
"setBaseURI(string)": "55f804b3",
"supportsInterface(bytes4)": "01ffc9a7",
"symbol()": "95d89b41",
"tokenURI(uint256)": "c87b56dd",
"transferFrom(address,address,uint256)": "23b872dd",
"transferLockBid(address,address,uint256,uint256)": "92944809"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.16+commit.07a7930e\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint8\",\"name\":\"version\",\"type\":\"uint8\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"previousAdminRole\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"newAdminRole\",\"type\":\"bytes32\"}],\"name\":\"RoleAdminChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleGranted\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"RoleRevoked\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"baseURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"claim\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"exists\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"grantRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"hasRole\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_addressProvider_\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"_isLiquidDelegate_\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_customBaseURI\",\"type\":\"string\"},{\"internalType\":\"uint256\",\"name\":\"_minPercentageIncrease_\",\"type\":\"uint256\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"loans\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"lockBid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"lockBids\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"lockTokens\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_tokenizedId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"mint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"renounceRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"revokeRole\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_customBaseURI\",\"type\":\"string\"}],\"name\":\"setBaseURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes4\",\"name\":\"_interfaceId\",\"type\":\"bytes4\"}],\"name\":\"supportsInterface\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"symbol\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_user\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"_token\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_amount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"transferLockBid\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approve(address,uint256)\":{\"details\":\"See {IERC721-approve}.\"},\"balanceOf(address)\":{\"details\":\"See {IERC721-balanceOf}.\"},\"getApproved(uint256)\":{\"details\":\"See {IERC721-getApproved}.\"},\"getRoleAdmin(bytes32)\":{\"details\":\"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}.\"},\"grantRole(bytes32,address)\":{\"details\":\"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event.\"},\"hasRole(bytes32,address)\":{\"details\":\"Returns `true` if `account` has been granted `role`.\"},\"isApprovedForAll(address,address)\":{\"details\":\"See {IERC721-isApprovedForAll}.\"},\"name()\":{\"details\":\"See {IERC721Metadata-name}.\"},\"ownerOf(uint256)\":{\"details\":\"See {IERC721-ownerOf}.\"},\"renounceRole(bytes32,address)\":{\"details\":\"Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event.\"},\"revokeRole(bytes32,address)\":{\"details\":\"Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event.\"},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"tokenURI(uint256)\":{\"details\":\"See {IERC721Metadata-tokenURI}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"supportsInterface(bytes4)\":{\"notice\":\"----------------------------------------------------------------------- Internal / Overrides -----------------------------------------------------------------------\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/protocol/tokenization/ObligationReceipt.sol\":\"Redeemable\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@chainlink/=lib/chainlink/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":forge-std/=lib/forge-std/src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0xe8f27a3e3e25067334e76799f03d4de6d8f8535c3fc4806468228a9ebd5de51a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://686aaf8725727d94b36c53baad3779e168b31e33eec8d39b41e282382617c626\",\"dweb:/ipfs/QmWVRwPpZyweGCw7uRj1rXQTmcwaXB5Ctz3KvpNJPtxDP8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol\":{\"keccak256\":\"0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c\",\"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935\",\"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x2a6a0b9fd2d316dcb4141159a9d13be92654066d6c0ae92757ed908ecdfecff0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c05d9be7ee043009eb9f2089b452efc0961345531fc63354a249d7337c69f3bb\",\"dweb:/ipfs/QmTXhzgaYrh6og76BP85i6exNFAv5NYw64uVWyworNogyG\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol\":{\"keccak256\":\"0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a\",\"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol\":{\"keccak256\":\"0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195\",\"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol\":{\"keccak256\":\"0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3\",\"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol\":{\"keccak256\":\"0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06\",\"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c\",\"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/CountersUpgradeable.sol\":{\"keccak256\":\"0x798741e231b22b81e2dd2eddaaf8832dee4baf5cd8e2dbaa5c1dd12a1c053c4d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c41e8a7a906b8f362c8b760a44edadc61782008ea2ecf377ac5b5325bf6c3912\",\"dweb:/ipfs/QmcXr19zuH3YLzD6RZNE6UTzvsKSckdxZQnagPoDGkCHu2\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol\":{\"keccak256\":\"0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8\",\"dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7\",\"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol\":{\"keccak256\":\"0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758\",\"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol\":{\"keccak256\":\"0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4\",\"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SafeMath.sol\":{\"keccak256\":\"0x0f633a0223d9a1dcccfcf38a64c9de0874dfcbfac0c6941ccf074d63a2ce0e1e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://864a40efcffdf408044c332a5aa38ec5618ed7b4eecb8f65faf45671bd6cdc65\",\"dweb:/ipfs/QmQJquTMtc6fgm5JQzGdsGpA2fqBe3MHWEdt2qzaLySMdN\"]},\"src/integrations/IDelegationRegistry.sol\":{\"keccak256\":\"0x1d09c96620cb6253c701f5f085f5b3d720fed3998cf137ae473f5b46c7f08b00\",\"license\":\"CC0-1.0\",\"urls\":[\"bzz-raw://2ccccee556054de055b6b98d477cb3f97a8492246bffb726a99cd2d5c98dbaca\",\"dweb:/ipfs/QmRwW9St3JwZC2o4g2YWv2H6xi7qknqJjqc9TBVBnzcGQd\"]},\"src/interfaces/IAddressProvider.sol\":{\"keccak256\":\"0xd32a78a57401e888ac903edf3ff6f08e9c335f2204c9288df182a0cb4e09bb5e\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://0f82c05be76bbbfdeb9ba386be1a5b909e564c877d3fb99a3ce0bc19df248dde\",\"dweb:/ipfs/QmcHsetbkj3e3FosLN46NFDWABDRPX2uYuruM4g4mYXDqu\"]},\"src/interfaces/IExecutionDelegate.sol\":{\"keccak256\":\"0x9def180c3c45c492a967182aac61849fc1a77ca9f958abd3f27b689b01e61401\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cf406e8af1c9fa6373a66615022cd5c7edc41c169c46d660d5383df6647d3a5d\",\"dweb:/ipfs/QmRz7aDGbabWAw3BGFV2kbSmehGizSz3f7W87k6VXR3ggR\"]},\"src/interfaces/IRedeemable.sol\":{\"keccak256\":\"0x22d2cfb983b20307f4a8950e442a9007dccb3c637c22380492ba6cfa8e32b846\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://75c42863790291d3481ee10bead35f45abfb2a9844292c1ce2753ac69fc140eb\",\"dweb:/ipfs/QmUiSSYJasAaVQBpUkEvq1zQVzB3Mw65uAjSgDfr4YGvJY\"]},\"src/protocol/libraries/helpers/Errors.sol\":{\"keccak256\":\"0xcc5e914ce902dcd3d8f5cc43871981841a52f62b6d4d0a00e8c40986fadb1082\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://169dd4b842cfda7bf40cfae244cc63ec82b61d899ef4a9ce79256069d5aca934\",\"dweb:/ipfs/QmXPhisqaZu1p7dKzBCdFj5wuYk9HuEepqBZFUzd1crvtb\"]},\"src/protocol/libraries/math/PercentageMath.sol\":{\"keccak256\":\"0xb84274fc3effba81036256cf7fde67b3dbfe86c4ffd0e062711a3270157952a2\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://3ecaf26e713b39d89ee21fb8bfefe55fe2fec4a2f5a2bffba7612f82182b7262\",\"dweb:/ipfs/QmZ6oXpNspwBEkiJEz1EhsU4EVBpG3anNjtzcycNEgAkfe\"]},\"src/protocol/libraries/types/DataTypes.sol\":{\"keccak256\":\"0x5a15c575cacbcc6ace893c48a73858114cfc074030ea28958bb585b2b33c18cd\",\"license\":\"AGPL-3.0\",\"urls\":[\"bzz-raw://7c0a3425f8acff9c573c5fa8e4446488687e4eb8404c967a037105449f5a63ae\",\"dweb:/ipfs/QmNd2F9oDDbE2TCULkRFcR7cjsTk6rw6wi7RgayUaVpqfs\"]},\"src/protocol/tokenization/ObligationReceipt.sol\":{\"keccak256\":\"0x27ff3ca09ca247b17679f3a5733985efe5b69210cff2c99c356d83783ddb6a21\",\"license\":\"BUSL-1.1\",\"urls\":[\"bzz-raw://ef130a434cae00170ea481b393aa30da9739decdf01cd77b92ad789c402c2c8b\",\"dweb:/ipfs/QmQ6jKPx8yVoWqdMWz4KS8zREsnJdfoJ2pVaaNYW7jfpLe\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.16+commit.07a7930e"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "approved",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256",
"indexed": true
}
],
"type": "event",
"name": "Approval",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "operator",
"type": "address",
"indexed": true
},
{
"internalType": "bool",
"name": "approved",
"type": "bool",
"indexed": false
}
],
"type": "event",
"name": "ApprovalForAll",
"anonymous": false
},
{
"inputs": [
{
"internalType": "uint8",
"name": "version",
"type": "uint8",
"indexed": false
}
],
"type": "event",
"name": "Initialized",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32",
"indexed": true
},
{
"internalType": "bytes32",
"name": "previousAdminRole",
"type": "bytes32",
"indexed": true
},
{
"internalType": "bytes32",
"name": "newAdminRole",
"type": "bytes32",
"indexed": true
}
],
"type": "event",
"name": "RoleAdminChanged",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32",
"indexed": true
},
{
"internalType": "address",
"name": "account",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "sender",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "RoleGranted",
"anonymous": false
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32",
"indexed": true
},
{
"internalType": "address",
"name": "account",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "sender",
"type": "address",
"indexed": true
}
],
"type": "event",
"name": "RoleRevoked",
"anonymous": false
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address",
"indexed": true
},
{
"internalType": "address",
"name": "to",
"type": "address",
"indexed": true
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256",
"indexed": true
}
],
"type": "event",
"name": "Transfer",
"anonymous": false
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "approve"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "baseURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "burn"
},
{
"inputs": [],
"stateMutability": "nonpayable",
"type": "function",
"name": "claim"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "exists",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "getApproved",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function",
"name": "getRoleAdmin",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
]
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "grantRole"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"name": "hasRole",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "_addressProvider_",
"type": "address"
},
{
"internalType": "bool",
"name": "_isLiquidDelegate_",
"type": "bool"
},
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
},
{
"internalType": "string",
"name": "_customBaseURI",
"type": "string"
},
{
"internalType": "uint256",
"name": "_minPercentageIncrease_",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "initialize"
},
{
"inputs": [
{
"internalType": "address",
"name": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "loans",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "lockBid"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "lockBids",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "lockTokens",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "uint256",
"name": "_tokenizedId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_data",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "mint"
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "name",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "ownerOf",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
]
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "renounceRole"
},
{
"inputs": [
{
"internalType": "bytes32",
"name": "role",
"type": "bytes32"
},
{
"internalType": "address",
"name": "account",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "revokeRole"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "safeTransferFrom"
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "safeTransferFrom"
},
{
"inputs": [
{
"internalType": "address",
"name": "operator",
"type": "address"
},
{
"internalType": "bool",
"name": "approved",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setApprovalForAll"
},
{
"inputs": [
{
"internalType": "string",
"name": "_customBaseURI",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setBaseURI"
},
{
"inputs": [
{
"internalType": "bytes4",
"name": "_interfaceId",
"type": "bytes4"
}
],
"stateMutability": "view",
"type": "function",
"name": "supportsInterface",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "symbol",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function",
"name": "tokenURI",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "from",
"type": "address"
},
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "transferFrom"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
},
{
"internalType": "address",
"name": "_token",
"type": "address"
},
{
"internalType": "uint256",
"name": "_amount",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "_tokenId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "transferLockBid"
}
],
"devdoc": {
"kind": "dev",
"methods": {
"approve(address,uint256)": {
"details": "See {IERC721-approve}."
},
"balanceOf(address)": {
"details": "See {IERC721-balanceOf}."
},
"getApproved(uint256)": {
"details": "See {IERC721-getApproved}."
},
"getRoleAdmin(bytes32)": {
"details": "Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."
},
"grantRole(bytes32,address)": {
"details": "Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."
},
"hasRole(bytes32,address)": {
"details": "Returns `true` if `account` has been granted `role`."
},
"isApprovedForAll(address,address)": {
"details": "See {IERC721-isApprovedForAll}."
},
"name()": {
"details": "See {IERC721Metadata-name}."
},
"ownerOf(uint256)": {
"details": "See {IERC721-ownerOf}."
},
"renounceRole(bytes32,address)": {
"details": "Revokes `role` from the calling account. Roles are often managed via {grantRole} and {revokeRole}: this function's purpose is to provide a mechanism for accounts to lose their privileges if they are compromised (such as when a trusted device is misplaced). If the calling account had been revoked `role`, emits a {RoleRevoked} event. Requirements: - the caller must be `account`. May emit a {RoleRevoked} event."
},
"revokeRole(bytes32,address)": {
"details": "Revokes `role` from `account`. If `account` had been granted `role`, emits a {RoleRevoked} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleRevoked} event."
},
"safeTransferFrom(address,address,uint256)": {
"details": "See {IERC721-safeTransferFrom}."
},
"safeTransferFrom(address,address,uint256,bytes)": {
"details": "See {IERC721-safeTransferFrom}."
},
"setApprovalForAll(address,bool)": {
"details": "See {IERC721-setApprovalForAll}."
},
"symbol()": {
"details": "See {IERC721Metadata-symbol}."
},
"tokenURI(uint256)": {
"details": "See {IERC721Metadata-tokenURI}."
},
"transferFrom(address,address,uint256)": {
"details": "See {IERC721-transferFrom}."
}
},
"version": 1
},
"userdoc": {
"kind": "user",
"methods": {
"supportsInterface(bytes4)": {
"notice": "----------------------------------------------------------------------- Internal / Overrides -----------------------------------------------------------------------"
}
},
"version": 1
}
},
"settings": {
"remappings": [
":@chainlink/=lib/chainlink/",
":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/",
":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/",
":chainlink/=lib/chainlink/integration-tests/contracts/ethereum/src/",
":ds-test/=lib/forge-std/lib/ds-test/src/",
":forge-std/=lib/forge-std/src/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"src/protocol/tokenization/ObligationReceipt.sol": "Redeemable"
},
"libraries": {}
},
"sources": {
"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol": {
"keccak256": "0xe8f27a3e3e25067334e76799f03d4de6d8f8535c3fc4806468228a9ebd5de51a",
"urls": [
"bzz-raw://686aaf8725727d94b36c53baad3779e168b31e33eec8d39b41e282382617c626",
"dweb:/ipfs/QmWVRwPpZyweGCw7uRj1rXQTmcwaXB5Ctz3KvpNJPtxDP8"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/access/IAccessControlUpgradeable.sol": {
"keccak256": "0xb8f5302f12138c5561362e88a78d061573e6298b7a1a5afe84a1e2c8d4d5aeaa",
"urls": [
"bzz-raw://740cf4dc535e3082560cf5a031473029f322690fc8037fe9d5e3a8bef42e757c",
"dweb:/ipfs/QmTQxFdfxcaueQa23VX34wAPqzruZbkzyeN58tZK2yav2b"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol": {
"keccak256": "0xe798cadb41e2da274913e4b3183a80f50fb057a42238fe8467e077268100ec27",
"urls": [
"bzz-raw://899f850f7df5a270bccfb765d70069959ca1c20d3a7381c1c3bda8a3ffee1935",
"dweb:/ipfs/QmVdnAqwyX2L3nX2HDA5WKGtVBFyH1nKE9A1k7fZnPBkhP"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol": {
"keccak256": "0x2a6a0b9fd2d316dcb4141159a9d13be92654066d6c0ae92757ed908ecdfecff0",
"urls": [
"bzz-raw://c05d9be7ee043009eb9f2089b452efc0961345531fc63354a249d7337c69f3bb",
"dweb:/ipfs/QmTXhzgaYrh6og76BP85i6exNFAv5NYw64uVWyworNogyG"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721ReceiverUpgradeable.sol": {
"keccak256": "0xbb2ed8106d94aeae6858e2551a1e7174df73994b77b13ebd120ccaaef80155f5",
"urls": [
"bzz-raw://8bc3c6a456dba727d8dd9fd33420febede490abb49a07469f61d2a3ace66a95a",
"dweb:/ipfs/QmVAWtEVj7K5AbvgJa9Dz22KiDq9eoptCjnVZqsTMtKXyd"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/IERC721Upgradeable.sol": {
"keccak256": "0x2c0b89cef83f353c6f9488c013d8a5968587ffdd6dfc26aad53774214b97e229",
"urls": [
"bzz-raw://4a68e662c2a82412308b1feb24f3d61a44b3b8772f44cbd440446237313c3195",
"dweb:/ipfs/QmfBuWUE2TQef9hghDzzuVkDskw3UGAyPgLmPifTNV7K6g"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/IERC721MetadataUpgradeable.sol": {
"keccak256": "0x95a471796eb5f030fdc438660bebec121ad5d063763e64d92376ffb4b5ce8b70",
"urls": [
"bzz-raw://4ffbd627e6958983d288801acdedbf3491ee0ebf1a430338bce47c96481ce9e3",
"dweb:/ipfs/QmUM1vpmNgBV34sYf946SthDJNGhwwqjoRggmj4TUUQmdB"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/AddressUpgradeable.sol": {
"keccak256": "0x2edcb41c121abc510932e8d83ff8b82cf9cdde35e7c297622f5c29ef0af25183",
"urls": [
"bzz-raw://72460c66cd1c3b1c11b863e0d8df0a1c56f37743019e468dc312c754f43e3b06",
"dweb:/ipfs/QmPExYKiNb9PUsgktQBupPaM33kzDHxaYoVeJdLhv8s879"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol": {
"keccak256": "0x963ea7f0b48b032eef72fe3a7582edf78408d6f834115b9feadd673a4d5bd149",
"urls": [
"bzz-raw://d6520943ea55fdf5f0bafb39ed909f64de17051bc954ff3e88c9e5621412c79c",
"dweb:/ipfs/QmWZ4rAKTQbNG2HxGs46AcTXShsVytKeLs7CUCdCSv5N7a"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/CountersUpgradeable.sol": {
"keccak256": "0x798741e231b22b81e2dd2eddaaf8832dee4baf5cd8e2dbaa5c1dd12a1c053c4d",
"urls": [
"bzz-raw://c41e8a7a906b8f362c8b760a44edadc61782008ea2ecf377ac5b5325bf6c3912",
"dweb:/ipfs/QmcXr19zuH3YLzD6RZNE6UTzvsKSckdxZQnagPoDGkCHu2"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/StringsUpgradeable.sol": {
"keccak256": "0x6b9a5d35b744b25529a2856a8093e7c03fb35a34b1c4fb5499e560f8ade140da",
"urls": [
"bzz-raw://187b5c3a1c9e77678732a2cc5284237f9cfca6bc28ee8bc0a0f4f951d7b3a2f8",
"dweb:/ipfs/Qmb2KFr7WuQu7btdCiftQG64vTzrG4UyzVmo53EYHcnHYA"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol": {
"keccak256": "0x9a3b990bd56d139df3e454a9edf1c64668530b5a77fc32eb063bc206f958274a",
"urls": [
"bzz-raw://0895399d170daab2d69b4c43a0202e5a07f2e67a93b26e3354dcbedb062232f7",
"dweb:/ipfs/QmUM1VH3XDk559Dsgh4QPvupr3YVKjz87HrSyYzzVFZbxw"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/IERC165Upgradeable.sol": {
"keccak256": "0xc6cef87559d0aeffdf0a99803de655938a7779ec0a3cd5d4383483ad85565a09",
"urls": [
"bzz-raw://92ad7e572cf44e6b4b37631b44b62f9eb9fb1cf14d9ce51c1504d5dc7ccaf758",
"dweb:/ipfs/QmcnbqX85tsWnUXPmtuPLE4SczME2sJaTfmqEFkuAJvWhy"
],
"license": "MIT"
},
"lib/openzeppelin-contracts-upgradeable/contracts/utils/math/MathUpgradeable.sol": {
"keccak256": "0xc1bd5b53319c68f84e3becd75694d941e8f4be94049903232cd8bc7c535aaa5a",
"urls": [
"bzz-raw://056027a78e6f4b78a39be530983551651ee5a052e786ca2c1c6a3bb1222b03b4",
"dweb:/ipfs/QmXRUpywAqNwAfXS89vrtiE2THRM9dX9pQ4QxAkV1Wx9kt"
],
"license": "MIT"
},
"lib/openzeppelin-contracts/contracts/utils/math/SafeMath.sol": {
"keccak256": "0x0f633a0223d9a1dcccfcf38a64c9de0874dfcbfac0c6941ccf074d63a2ce0e1e",
"urls": [
"bzz-raw://864a40efcffdf408044c332a5aa38ec5618ed7b4eecb8f65faf45671bd6cdc65",
"dweb:/ipfs/QmQJquTMtc6fgm5JQzGdsGpA2fqBe3MHWEdt2qzaLySMdN"
],
"license": "MIT"
},
"src/integrations/IDelegationRegistry.sol": {
"keccak256": "0x1d09c96620cb6253c701f5f085f5b3d720fed3998cf137ae473f5b46c7f08b00",
"urls": [
"bzz-raw://2ccccee556054de055b6b98d477cb3f97a8492246bffb726a99cd2d5c98dbaca",
"dweb:/ipfs/QmRwW9St3JwZC2o4g2YWv2H6xi7qknqJjqc9TBVBnzcGQd"
],
"license": "CC0-1.0"
},
"src/interfaces/IAddressProvider.sol": {
"keccak256": "0xd32a78a57401e888ac903edf3ff6f08e9c335f2204c9288df182a0cb4e09bb5e",
"urls": [
"bzz-raw://0f82c05be76bbbfdeb9ba386be1a5b909e564c877d3fb99a3ce0bc19df248dde",
"dweb:/ipfs/QmcHsetbkj3e3FosLN46NFDWABDRPX2uYuruM4g4mYXDqu"
],
"license": "AGPL-3.0"
},
"src/interfaces/IExecutionDelegate.sol": {
"keccak256": "0x9def180c3c45c492a967182aac61849fc1a77ca9f958abd3f27b689b01e61401",
"urls": [
"bzz-raw://cf406e8af1c9fa6373a66615022cd5c7edc41c169c46d660d5383df6647d3a5d",
"dweb:/ipfs/QmRz7aDGbabWAw3BGFV2kbSmehGizSz3f7W87k6VXR3ggR"
],
"license": "MIT"
},
"src/interfaces/IRedeemable.sol": {
"keccak256": "0x22d2cfb983b20307f4a8950e442a9007dccb3c637c22380492ba6cfa8e32b846",
"urls": [
"bzz-raw://75c42863790291d3481ee10bead35f45abfb2a9844292c1ce2753ac69fc140eb",
"dweb:/ipfs/QmUiSSYJasAaVQBpUkEvq1zQVzB3Mw65uAjSgDfr4YGvJY"
],
"license": "BUSL-1.1"
},
"src/protocol/libraries/helpers/Errors.sol": {
"keccak256": "0xcc5e914ce902dcd3d8f5cc43871981841a52f62b6d4d0a00e8c40986fadb1082",
"urls": [
"bzz-raw://169dd4b842cfda7bf40cfae244cc63ec82b61d899ef4a9ce79256069d5aca934",
"dweb:/ipfs/QmXPhisqaZu1p7dKzBCdFj5wuYk9HuEepqBZFUzd1crvtb"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/math/PercentageMath.sol": {
"keccak256": "0xb84274fc3effba81036256cf7fde67b3dbfe86c4ffd0e062711a3270157952a2",
"urls": [
"bzz-raw://3ecaf26e713b39d89ee21fb8bfefe55fe2fec4a2f5a2bffba7612f82182b7262",
"dweb:/ipfs/QmZ6oXpNspwBEkiJEz1EhsU4EVBpG3anNjtzcycNEgAkfe"
],
"license": "AGPL-3.0"
},
"src/protocol/libraries/types/DataTypes.sol": {
"keccak256": "0x5a15c575cacbcc6ace893c48a73858114cfc074030ea28958bb585b2b33c18cd",
"urls": [
"bzz-raw://7c0a3425f8acff9c573c5fa8e4446488687e4eb8404c967a037105449f5a63ae",
"dweb:/ipfs/QmNd2F9oDDbE2TCULkRFcR7cjsTk6rw6wi7RgayUaVpqfs"
],
"license": "AGPL-3.0"
},
"src/protocol/tokenization/ObligationReceipt.sol": {
"keccak256": "0x27ff3ca09ca247b17679f3a5733985efe5b69210cff2c99c356d83783ddb6a21",
"urls": [
"bzz-raw://ef130a434cae00170ea481b393aa30da9739decdf01cd77b92ad789c402c2c8b",
"dweb:/ipfs/QmQ6jKPx8yVoWqdMWz4KS8zREsnJdfoJ2pVaaNYW7jfpLe"
],
"license": "BUSL-1.1"
}
},
"version": 1
},
"ast": {
"absolutePath": "src/protocol/tokenization/ObligationReceipt.sol",
"id": 62323,
"exportedSymbols": {
"AccessControlUpgradeable": [
25894
],
"CountersUpgradeable": [
29062
],
"DataTypes": [
56981
],
"ERC721Upgradeable": [
28501
],
"Errors": [
48478
],
"IAddressProvider": [
38799
],
"IDelegationRegistry": [
38391
],
"IExecutionDelegate": [
39517
],
"IRedeemable": [
40772
],
"Initializable": [
26136
],
"PercentageMath": [
55922
],
"Redeemable": [
62322
],
"SafeMath": [
35409
]
},
"nodeType": "SourceUnit",
"src": "37:6743:129",
"nodes": [
{
"id": 61801,
"nodeType": "PragmaDirective",
"src": "37:23:129",
"nodes": [],
"literals": [
"solidity",
"0.8",
".16"
]
},
{
"id": 61803,
"nodeType": "ImportDirective",
"src": "62:81:129",
"nodes": [],
"absolutePath": "src/integrations/IDelegationRegistry.sol",
"file": "../../integrations/IDelegationRegistry.sol",
"nameLocation": "-1:-1:-1",
"scope": 62323,
"sourceUnit": 38392,
"symbolAliases": [
{
"foreign": {
"id": 61802,
"name": "IDelegationRegistry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 38391,
"src": "71:19:129",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 61805,
"nodeType": "ImportDirective",
"src": "144:77:129",
"nodes": [],
"absolutePath": "src/interfaces/IExecutionDelegate.sol",
"file": "../../interfaces/IExecutionDelegate.sol",
"nameLocation": "-1:-1:-1",
"scope": 62323,
"sourceUnit": 39518,
"symbolAliases": [
{
"foreign": {
"id": 61804,
"name": "IExecutionDelegate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 39517,
"src": "153:18:129",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 61807,
"nodeType": "ImportDirective",
"src": "222:73:129",
"nodes": [],
"absolutePath": "src/interfaces/IAddressProvider.sol",
"file": "../../interfaces/IAddressProvider.sol",
"nameLocation": "-1:-1:-1",
"scope": 62323,
"sourceUnit": 38800,
"symbolAliases": [
{
"foreign": {
"id": 61806,
"name": "IAddressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 38799,
"src": "231:16:129",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 61809,
"nodeType": "ImportDirective",
"src": "296:63:129",
"nodes": [],
"absolutePath": "src/interfaces/IRedeemable.sol",
"file": "../../interfaces/IRedeemable.sol",
"nameLocation": "-1:-1:-1",
"scope": 62323,
"sourceUnit": 40773,
"symbolAliases": [
{
"foreign": {
"id": 61808,
"name": "IRedeemable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 40772,
"src": "305:11:129",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 61811,
"nodeType": "ImportDirective",
"src": "361:70:129",
"nodes": [],
"absolutePath": "src/protocol/libraries/math/PercentageMath.sol",
"file": "../libraries/math/PercentageMath.sol",
"nameLocation": "-1:-1:-1",
"scope": 62323,
"sourceUnit": 55923,
"symbolAliases": [
{
"foreign": {
"id": 61810,
"name": "PercentageMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 55922,
"src": "370:14:129",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 61813,
"nodeType": "ImportDirective",
"src": "432:61:129",
"nodes": [],
"absolutePath": "src/protocol/libraries/types/DataTypes.sol",
"file": "../libraries/types/DataTypes.sol",
"nameLocation": "-1:-1:-1",
"scope": 62323,
"sourceUnit": 56982,
"symbolAliases": [
{
"foreign": {
"id": 61812,
"name": "DataTypes",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 56981,
"src": "441:9:129",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 61815,
"nodeType": "ImportDirective",
"src": "494:57:129",
"nodes": [],
"absolutePath": "src/protocol/libraries/helpers/Errors.sol",
"file": "../libraries/helpers/Errors.sol",
"nameLocation": "-1:-1:-1",
"scope": 62323,
"sourceUnit": 48479,
"symbolAliases": [
{
"foreign": {
"id": 61814,
"name": "Errors",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48478,
"src": "503:6:129",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 61817,
"nodeType": "ImportDirective",
"src": "553:98:129",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol",
"file": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol",
"nameLocation": "-1:-1:-1",
"scope": 62323,
"sourceUnit": 26137,
"symbolAliases": [
{
"foreign": {
"id": 61816,
"name": "Initializable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26136,
"src": "562:13:129",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 61819,
"nodeType": "ImportDirective",
"src": "652:107:129",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol",
"file": "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol",
"nameLocation": "-1:-1:-1",
"scope": 62323,
"sourceUnit": 28502,
"symbolAliases": [
{
"foreign": {
"id": 61818,
"name": "ERC721Upgradeable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 28501,
"src": "661:17:129",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 61821,
"nodeType": "ImportDirective",
"src": "760:104:129",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/utils/CountersUpgradeable.sol",
"file": "@openzeppelin/contracts-upgradeable/utils/CountersUpgradeable.sol",
"nameLocation": "-1:-1:-1",
"scope": 62323,
"sourceUnit": 29063,
"symbolAliases": [
{
"foreign": {
"id": 61820,
"name": "CountersUpgradeable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 29062,
"src": "769:19:129",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 61823,
"nodeType": "ImportDirective",
"src": "865:115:129",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol",
"file": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol",
"nameLocation": "-1:-1:-1",
"scope": 62323,
"sourceUnit": 25895,
"symbolAliases": [
{
"foreign": {
"id": 61822,
"name": "AccessControlUpgradeable",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25894,
"src": "874:24:129",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 61825,
"nodeType": "ImportDirective",
"src": "981:75:129",
"nodes": [],
"absolutePath": "lib/openzeppelin-contracts/contracts/utils/math/SafeMath.sol",
"file": "@openzeppelin/contracts/utils/math/SafeMath.sol",
"nameLocation": "-1:-1:-1",
"scope": 62323,
"sourceUnit": 35410,
"symbolAliases": [
{
"foreign": {
"id": 61824,
"name": "SafeMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 35409,
"src": "990:8:129",
"typeDescriptions": {}
},
"nameLocation": "-1:-1:-1"
}
],
"unitAlias": ""
},
{
"id": 62322,
"nodeType": "ContractDefinition",
"src": "1058:5722:129",
"nodes": [
{
"id": 61836,
"nodeType": "UsingForDirective",
"src": "1179:27:129",
"nodes": [],
"global": false,
"libraryName": {
"id": 61834,
"name": "SafeMath",
"nameLocations": [
"1185:8:129"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 35409,
"src": "1185:8:129"
},
"typeName": {
"id": 61835,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1198:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"id": 61839,
"nodeType": "UsingForDirective",
"src": "1211:33:129",
"nodes": [],
"global": false,
"libraryName": {
"id": 61837,
"name": "PercentageMath",
"nameLocations": [
"1217:14:129"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 55922,
"src": "1217:14:129"
},
"typeName": {
"id": 61838,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1236:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"id": 61842,
"nodeType": "VariableDeclaration",
"src": "1254:42:129",
"nodes": [],
"constant": false,
"mutability": "mutable",
"name": "_addressProvider",
"nameLocation": "1280:16:129",
"scope": 62322,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
},
"typeName": {
"id": 61841,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 61840,
"name": "IAddressProvider",
"nameLocations": [
"1254:16:129"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 38799,
"src": "1254:16:129"
},
"referencedDeclaration": 38799,
"src": "1254:16:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"visibility": "internal"
},
{
"id": 61844,
"nodeType": "VariableDeclaration",
"src": "1302:31:129",
"nodes": [],
"constant": false,
"mutability": "mutable",
"name": "_isLiquidDelegate",
"nameLocation": "1316:17:129",
"scope": 62322,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 61843,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1302:4:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
{
"id": 61846,
"nodeType": "VariableDeclaration",
"src": "1340:21:129",
"nodes": [],
"constant": false,
"functionSelector": "6c0360eb",
"mutability": "mutable",
"name": "baseURI",
"nameLocation": "1354:7:129",
"scope": 62322,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string"
},
"typeName": {
"id": 61845,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1340:6:129",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "public"
},
{
"id": 61848,
"nodeType": "VariableDeclaration",
"src": "1368:30:129",
"nodes": [],
"constant": false,
"mutability": "mutable",
"name": "_minPercentageIncrease",
"nameLocation": "1376:22:129",
"scope": 62322,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 61847,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1368:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"id": 61852,
"nodeType": "VariableDeclaration",
"src": "1429:40:129",
"nodes": [],
"constant": false,
"functionSelector": "e1ec3c68",
"mutability": "mutable",
"name": "loans",
"nameLocation": "1464:5:129",
"scope": 62322,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"typeName": {
"id": 61851,
"keyType": {
"id": 61849,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1437:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "1429:27:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"valueType": {
"id": 61850,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1448:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"visibility": "public"
},
{
"id": 61856,
"nodeType": "VariableDeclaration",
"src": "1497:43:129",
"nodes": [],
"constant": false,
"functionSelector": "c5f68b8b",
"mutability": "mutable",
"name": "lockBids",
"nameLocation": "1532:8:129",
"scope": 62322,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"typeName": {
"id": 61855,
"keyType": {
"id": 61853,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1505:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "1497:27:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
},
"valueType": {
"id": 61854,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1516:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
"visibility": "public"
},
{
"id": 61860,
"nodeType": "VariableDeclaration",
"src": "1570:45:129",
"nodes": [],
"constant": false,
"functionSelector": "6e27d889",
"mutability": "mutable",
"name": "lockTokens",
"nameLocation": "1605:10:129",
"scope": 62322,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
},
"typeName": {
"id": 61859,
"keyType": {
"id": 61857,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1578:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "1570:27:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
},
"valueType": {
"id": 61858,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1589:7:129",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
},
"visibility": "public"
},
{
"id": 61901,
"nodeType": "FunctionDefinition",
"src": "1622:506:129",
"nodes": [],
"body": {
"id": 61900,
"nodeType": "Block",
"src": "1875:253:129",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 61878,
"name": "_name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61866,
"src": "1899:5:129",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"id": 61879,
"name": "_symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61868,
"src": "1906:7:129",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 61877,
"name": "__ERC721_init",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27596,
"src": "1885:13:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory,string memory)"
}
},
"id": 61880,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1885:29:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 61881,
"nodeType": "ExpressionStatement",
"src": "1885:29:129"
},
{
"expression": {
"arguments": [
{
"id": 61883,
"name": "_customBaseURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61870,
"src": "1936:14:129",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 61882,
"name": "_setBaseURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62321,
"src": "1924:11:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory)"
}
},
"id": 61884,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1924:27:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 61885,
"nodeType": "ExpressionStatement",
"src": "1924:27:129"
},
{
"expression": {
"id": 61890,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 61886,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61842,
"src": "1961:16:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 61888,
"name": "_addressProvider_",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61862,
"src": "1997:17:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 61887,
"name": "IAddressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 38799,
"src": "1980:16:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IAddressProvider_$38799_$",
"typeString": "type(contract IAddressProvider)"
}
},
"id": 61889,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1980:35:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"src": "1961:54:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"id": 61891,
"nodeType": "ExpressionStatement",
"src": "1961:54:129"
},
{
"expression": {
"id": 61894,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 61892,
"name": "_isLiquidDelegate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61844,
"src": "2025:17:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 61893,
"name": "_isLiquidDelegate_",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61864,
"src": "2045:18:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"src": "2025:38:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 61895,
"nodeType": "ExpressionStatement",
"src": "2025:38:129"
},
{
"expression": {
"id": 61898,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 61896,
"name": "_minPercentageIncrease",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61848,
"src": "2073:22:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 61897,
"name": "_minPercentageIncrease_",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61872,
"src": "2098:23:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2073:48:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 61899,
"nodeType": "ExpressionStatement",
"src": "2073:48:129"
}
]
},
"functionSelector": "01ac88af",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 61875,
"kind": "modifierInvocation",
"modifierName": {
"id": 61874,
"name": "initializer",
"nameLocations": [
"1863:11:129"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26038,
"src": "1863:11:129"
},
"nodeType": "ModifierInvocation",
"src": "1863:11:129"
}
],
"name": "initialize",
"nameLocation": "1631:10:129",
"parameters": {
"id": 61873,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 61862,
"mutability": "mutable",
"name": "_addressProvider_",
"nameLocation": "1659:17:129",
"nodeType": "VariableDeclaration",
"scope": 61901,
"src": "1651:25:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 61861,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1651:7:129",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 61864,
"mutability": "mutable",
"name": "_isLiquidDelegate_",
"nameLocation": "1692:18:129",
"nodeType": "VariableDeclaration",
"scope": 61901,
"src": "1687:23:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 61863,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "1687:4:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 61866,
"mutability": "mutable",
"name": "_name",
"nameLocation": "1734:5:129",
"nodeType": "VariableDeclaration",
"scope": 61901,
"src": "1720:19:129",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 61865,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1720:6:129",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 61868,
"mutability": "mutable",
"name": "_symbol",
"nameLocation": "1763:7:129",
"nodeType": "VariableDeclaration",
"scope": 61901,
"src": "1749:21:129",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 61867,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1749:6:129",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 61870,
"mutability": "mutable",
"name": "_customBaseURI",
"nameLocation": "1794:14:129",
"nodeType": "VariableDeclaration",
"scope": 61901,
"src": "1780:28:129",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 61869,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1780:6:129",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 61872,
"mutability": "mutable",
"name": "_minPercentageIncrease_",
"nameLocation": "1826:23:129",
"nodeType": "VariableDeclaration",
"scope": 61901,
"src": "1818:31:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 61871,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1818:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1641:214:129"
},
"returnParameters": {
"id": 61876,
"nodeType": "ParameterList",
"parameters": [],
"src": "1875:0:129"
},
"scope": 62322,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"id": 61916,
"nodeType": "ModifierDefinition",
"src": "2134:152:129",
"nodes": [],
"body": {
"id": 61915,
"nodeType": "Block",
"src": "2161:125:129",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 61909,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 61904,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 28973,
"src": "2179:10:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 61905,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2179:12:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 61906,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61842,
"src": "2195:16:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"id": 61907,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2212:14:129",
"memberName": "getLendingPool",
"nodeType": "MemberAccess",
"referencedDeclaration": 38618,
"src": "2195:31:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 61908,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2195:33:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "2179:49:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"expression": {
"id": 61910,
"name": "Errors",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48478,
"src": "2230:6:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Errors_$48478_$",
"typeString": "type(library Errors)"
}
},
"id": 61911,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "2237:30:129",
"memberName": "CT_CALLER_MUST_BE_LENDING_POOL",
"nodeType": "MemberAccess",
"referencedDeclaration": 48378,
"src": "2230:37:129",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 61903,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2171:7:129",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 61912,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2171:97:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 61913,
"nodeType": "ExpressionStatement",
"src": "2171:97:129"
},
{
"id": 61914,
"nodeType": "PlaceholderStatement",
"src": "2278:1:129"
}
]
},
"name": "onlyLendingPool",
"nameLocation": "2143:15:129",
"parameters": {
"id": 61902,
"nodeType": "ParameterList",
"parameters": [],
"src": "2158:2:129"
},
"virtual": false,
"visibility": "internal"
},
{
"id": 61931,
"nodeType": "ModifierDefinition",
"src": "2292:150:129",
"nodes": [],
"body": {
"id": 61930,
"nodeType": "Block",
"src": "2320:122:129",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 61924,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 61919,
"name": "_msgSender",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 28973,
"src": "2338:10:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
"typeString": "function () view returns (address)"
}
},
"id": 61920,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2338:12:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 61921,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61842,
"src": "2354:16:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"id": 61922,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2371:15:129",
"memberName": "getConfigurator",
"nodeType": "MemberAccess",
"referencedDeclaration": 38628,
"src": "2354:32:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 61923,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2354:34:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "2338:50:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"expression": {
"id": 61925,
"name": "Errors",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 48478,
"src": "2390:6:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Errors_$48478_$",
"typeString": "type(library Errors)"
}
},
"id": 61926,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "2397:26:129",
"memberName": "LP_CALLER_NOT_CONFIGURATOR",
"nodeType": "MemberAccess",
"referencedDeclaration": 48276,
"src": "2390:33:129",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 61918,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2330:7:129",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 61927,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2330:94:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 61928,
"nodeType": "ExpressionStatement",
"src": "2330:94:129"
},
{
"id": 61929,
"nodeType": "PlaceholderStatement",
"src": "2434:1:129"
}
]
},
"name": "onlyConfigurator",
"nameLocation": "2301:16:129",
"parameters": {
"id": 61917,
"nodeType": "ParameterList",
"parameters": [],
"src": "2317:2:129"
},
"virtual": false,
"visibility": "internal"
},
{
"id": 61996,
"nodeType": "FunctionDefinition",
"src": "2448:691:129",
"nodes": [],
"body": {
"id": 61995,
"nodeType": "Block",
"src": "2544:595:129",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 61946,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 61943,
"name": "_data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61937,
"src": "2562:5:129",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 61944,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2568:6:129",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "2562:12:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "30",
"id": 61945,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2577:1:129",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2562:16:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "652f646174612d6d697373696e672d6c6f616e4964",
"id": 61947,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2580:23:129",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_5065fda8089c080c8da204d1aca5a715d242ae61d981ed8899ae234512a253cb",
"typeString": "literal_string \"e/data-missing-loanId\""
},
"value": "e/data-missing-loanId"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_5065fda8089c080c8da204d1aca5a715d242ae61d981ed8899ae234512a253cb",
"typeString": "literal_string \"e/data-missing-loanId\""
}
],
"id": 61942,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "2554:7:129",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 61948,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2554:50:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 61949,
"nodeType": "ExpressionStatement",
"src": "2554:50:129"
},
{
"assignments": [
61951,
61953,
61955
],
"declarations": [
{
"constant": false,
"id": 61951,
"mutability": "mutable",
"name": "collateral",
"nameLocation": "2636:10:129",
"nodeType": "VariableDeclaration",
"scope": 61995,
"src": "2628:18:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 61950,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2628:7:129",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 61953,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "2668:7:129",
"nodeType": "VariableDeclaration",
"scope": 61995,
"src": "2660:15:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 61952,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2660:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 61955,
"mutability": "mutable",
"name": "loanId",
"nameLocation": "2697:6:129",
"nodeType": "VariableDeclaration",
"scope": 61995,
"src": "2689:14:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 61954,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2689:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 61967,
"initialValue": {
"arguments": [
{
"id": 61958,
"name": "_data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61937,
"src": "2728:5:129",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
{
"components": [
{
"id": 61960,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2736:7:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 61959,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2736:7:129",
"typeDescriptions": {}
}
},
{
"id": 61962,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2745:7:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 61961,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2745:7:129",
"typeDescriptions": {}
}
},
{
"id": 61964,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "2754:7:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint256_$",
"typeString": "type(uint256)"
},
"typeName": {
"id": 61963,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2754:7:129",
"typeDescriptions": {}
}
}
],
"id": 61965,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "2735:27:129",
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$",
"typeString": "tuple(type(address),type(uint256),type(uint256))"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
},
{
"typeIdentifier": "t_tuple$_t_type$_t_address_$_$_t_type$_t_uint256_$_$_t_type$_t_uint256_$_$",
"typeString": "tuple(type(address),type(uint256),type(uint256))"
}
],
"expression": {
"id": 61956,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "2717:3:129",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 61957,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "2721:6:129",
"memberName": "decode",
"nodeType": "MemberAccess",
"src": "2717:10:129",
"typeDescriptions": {
"typeIdentifier": "t_function_abidecode_pure$__$returns$__$",
"typeString": "function () pure"
}
},
"id": 61966,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2717:46:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$_t_address_payable_$_t_uint256_$_t_uint256_$",
"typeString": "tuple(address payable,uint256,uint256)"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2614:149:129"
},
{
"expression": {
"id": 61972,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 61968,
"name": "loans",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61852,
"src": "2773:5:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 61970,
"indexExpression": {
"id": 61969,
"name": "_tokenizedId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61935,
"src": "2779:12:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2773:19:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 61971,
"name": "loanId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61955,
"src": "2795:6:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "2773:28:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 61973,
"nodeType": "ExpressionStatement",
"src": "2773:28:129"
},
{
"expression": {
"arguments": [
{
"id": 61975,
"name": "_user",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61933,
"src": "2822:5:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 61976,
"name": "_tokenizedId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61935,
"src": "2829:12:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 61977,
"name": "_data",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61937,
"src": "2843:5:129",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 61974,
"name": "_safeMint",
"nodeType": "Identifier",
"overloadedDeclarations": [
28046,
28075
],
"referencedDeclaration": 28075,
"src": "2812:9:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
"typeString": "function (address,uint256,bytes memory)"
}
},
"id": 61978,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2812:37:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 61979,
"nodeType": "ExpressionStatement",
"src": "2812:37:129"
},
{
"condition": {
"id": 61980,
"name": "_isLiquidDelegate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61844,
"src": "2864:17:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 61994,
"nodeType": "IfStatement",
"src": "2860:273:129",
"trueBody": {
"id": 61993,
"nodeType": "Block",
"src": "2883:250:129",
"statements": [
{
"expression": {
"arguments": [
{
"id": 61987,
"name": "_user",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61933,
"src": "3028:5:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 61988,
"name": "collateral",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61951,
"src": "3051:10:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 61989,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61953,
"src": "3079:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"hexValue": "74727565",
"id": 61990,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "bool",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3104:4:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"value": "true"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_bool",
"typeString": "bool"
}
],
"expression": {
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 61982,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61842,
"src": "2952:16:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"id": 61983,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2969:21:129",
"memberName": "getDelegationRegistry",
"nodeType": "MemberAccess",
"referencedDeclaration": 38763,
"src": "2952:38:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 61984,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2952:40:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 61981,
"name": "IDelegationRegistry",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 38391,
"src": "2932:19:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IDelegationRegistry_$38391_$",
"typeString": "type(contract IDelegationRegistry)"
}
},
"id": 61985,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2932:61:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_IDelegationRegistry_$38391",
"typeString": "contract IDelegationRegistry"
}
},
"id": 61986,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2994:16:129",
"memberName": "delegateForToken",
"nodeType": "MemberAccess",
"referencedDeclaration": 38275,
"src": "2932:78:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_bool_$returns$__$",
"typeString": "function (address,address,uint256,bool) external"
}
},
"id": 61991,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2932:190:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 61992,
"nodeType": "ExpressionStatement",
"src": "2932:190:129"
}
]
}
}
]
},
"baseFunctions": [
40754
],
"functionSelector": "94d008ef",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 61940,
"kind": "modifierInvocation",
"modifierName": {
"id": 61939,
"name": "onlyLendingPool",
"nameLocations": [
"2528:15:129"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 61916,
"src": "2528:15:129"
},
"nodeType": "ModifierInvocation",
"src": "2528:15:129"
}
],
"name": "mint",
"nameLocation": "2457:4:129",
"parameters": {
"id": 61938,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 61933,
"mutability": "mutable",
"name": "_user",
"nameLocation": "2470:5:129",
"nodeType": "VariableDeclaration",
"scope": 61996,
"src": "2462:13:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 61932,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "2462:7:129",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 61935,
"mutability": "mutable",
"name": "_tokenizedId",
"nameLocation": "2485:12:129",
"nodeType": "VariableDeclaration",
"scope": 61996,
"src": "2477:20:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 61934,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2477:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 61937,
"mutability": "mutable",
"name": "_data",
"nameLocation": "2512:5:129",
"nodeType": "VariableDeclaration",
"scope": 61996,
"src": "2499:18:129",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 61936,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "2499:5:129",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"src": "2461:57:129"
},
"returnParameters": {
"id": 61941,
"nodeType": "ParameterList",
"parameters": [],
"src": "2544:0:129"
},
"scope": 62322,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 62058,
"nodeType": "FunctionDefinition",
"src": "3145:543:129",
"nodes": [],
"body": {
"id": 62057,
"nodeType": "Block",
"src": "3186:502:129",
"nodes": [],
"statements": [
{
"assignments": [
62002
],
"declarations": [
{
"constant": false,
"id": 62002,
"mutability": "mutable",
"name": "lendingPool",
"nameLocation": "3204:11:129",
"nodeType": "VariableDeclaration",
"scope": 62057,
"src": "3196:19:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 62001,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3196:7:129",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 62006,
"initialValue": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 62003,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61842,
"src": "3218:16:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"id": 62004,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3235:14:129",
"memberName": "getLendingPool",
"nodeType": "MemberAccess",
"referencedDeclaration": 38618,
"src": "3218:31:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 62005,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3218:33:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3196:55:129"
},
{
"expression": {
"id": 62010,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "3262:22:129",
"subExpression": {
"baseExpression": {
"id": 62007,
"name": "loans",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61852,
"src": "3269:5:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 62009,
"indexExpression": {
"id": 62008,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61998,
"src": "3275:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3269:15:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 62011,
"nodeType": "ExpressionStatement",
"src": "3262:22:129"
},
{
"expression": {
"arguments": [
{
"id": 62013,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61998,
"src": "3300:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 62012,
"name": "_burn",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 28219,
"src": "3294:5:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 62014,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3294:15:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 62015,
"nodeType": "ExpressionStatement",
"src": "3294:15:129"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 62020,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"baseExpression": {
"id": 62016,
"name": "lockBids",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61856,
"src": "3324:8:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 62018,
"indexExpression": {
"id": 62017,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61998,
"src": "3333:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3324:18:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"hexValue": "30",
"id": 62019,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3346:1:129",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "3324:23:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 62056,
"nodeType": "IfStatement",
"src": "3320:362:129",
"trueBody": {
"id": 62055,
"nodeType": "Block",
"src": "3349:333:129",
"statements": [
{
"expression": {
"arguments": [
{
"baseExpression": {
"id": 62027,
"name": "lockTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61860,
"src": "3454:10:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
}
},
"id": 62029,
"indexExpression": {
"id": 62028,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61998,
"src": "3465:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3454:20:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"id": 62032,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
"src": "3500:4:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Redeemable_$62322",
"typeString": "contract Redeemable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_Redeemable_$62322",
"typeString": "contract Redeemable"
}
],
"id": 62031,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3492:7:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 62030,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3492:7:129",
"typeDescriptions": {}
}
},
"id": 62033,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3492:13:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 62034,
"name": "lendingPool",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62002,
"src": "3523:11:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"baseExpression": {
"id": 62035,
"name": "lockBids",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61856,
"src": "3552:8:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 62037,
"indexExpression": {
"id": 62036,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61998,
"src": "3561:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3552:18:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 62022,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61842,
"src": "3382:16:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"id": 62023,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3399:20:129",
"memberName": "getExecutionDelegate",
"nodeType": "MemberAccess",
"referencedDeclaration": 38548,
"src": "3382:37:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 62024,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3382:39:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 62021,
"name": "IExecutionDelegate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 39517,
"src": "3363:18:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IExecutionDelegate_$39517_$",
"typeString": "type(contract IExecutionDelegate)"
}
},
"id": 62025,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3363:59:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_IExecutionDelegate_$39517",
"typeString": "contract IExecutionDelegate"
}
},
"id": 62026,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3423:13:129",
"memberName": "transferERC20",
"nodeType": "MemberAccess",
"referencedDeclaration": 39516,
"src": "3363:73:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,address,uint256) external"
}
},
"id": 62038,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3363:221:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 62039,
"nodeType": "ExpressionStatement",
"src": "3363:221:129"
},
{
"expression": {
"id": 62044,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 62040,
"name": "lockBids",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61856,
"src": "3602:8:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 62042,
"indexExpression": {
"id": 62041,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61998,
"src": "3611:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3602:18:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "30",
"id": 62043,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3623:1:129",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "3602:22:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 62045,
"nodeType": "ExpressionStatement",
"src": "3602:22:129"
},
{
"expression": {
"id": 62053,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 62046,
"name": "lockTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61860,
"src": "3638:10:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
}
},
"id": 62048,
"indexExpression": {
"id": 62047,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61998,
"src": "3649:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "3638:20:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"hexValue": "30",
"id": 62051,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3669:1:129",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
}
],
"id": 62050,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3661:7:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 62049,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3661:7:129",
"typeDescriptions": {}
}
},
"id": 62052,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3661:10:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "3638:33:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 62054,
"nodeType": "ExpressionStatement",
"src": "3638:33:129"
}
]
}
}
]
},
"baseFunctions": [
40759
],
"functionSelector": "42966c68",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "burn",
"nameLocation": "3154:4:129",
"parameters": {
"id": 61999,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 61998,
"mutability": "mutable",
"name": "_tokenId",
"nameLocation": "3167:8:129",
"nodeType": "VariableDeclaration",
"scope": 62058,
"src": "3159:16:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 61997,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3159:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "3158:18:129"
},
"returnParameters": {
"id": 62000,
"nodeType": "ParameterList",
"parameters": [],
"src": "3186:0:129"
},
"scope": 62322,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 62062,
"nodeType": "FunctionDefinition",
"src": "3694:92:129",
"nodes": [],
"body": {
"id": 62061,
"nodeType": "Block",
"src": "3720:66:129",
"nodes": [],
"statements": []
},
"functionSelector": "4e71d92d",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "claim",
"nameLocation": "3703:5:129",
"parameters": {
"id": 62059,
"nodeType": "ParameterList",
"parameters": [],
"src": "3708:2:129"
},
"returnParameters": {
"id": 62060,
"nodeType": "ParameterList",
"parameters": [],
"src": "3720:0:129"
},
"scope": 62322,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 62074,
"nodeType": "FunctionDefinition",
"src": "3792:121:129",
"nodes": [],
"body": {
"id": 62073,
"nodeType": "Block",
"src": "3868:45:129",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 62070,
"name": "_customBaseURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62064,
"src": "3891:14:129",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 62069,
"name": "_setBaseURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62321,
"src": "3879:11:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$returns$__$",
"typeString": "function (string memory)"
}
},
"id": 62071,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3879:27:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 62072,
"nodeType": "ExpressionStatement",
"src": "3879:27:129"
}
]
},
"baseFunctions": [
40771
],
"functionSelector": "55f804b3",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 62067,
"kind": "modifierInvocation",
"modifierName": {
"id": 62066,
"name": "onlyConfigurator",
"nameLocations": [
"3851:16:129"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 61931,
"src": "3851:16:129"
},
"nodeType": "ModifierInvocation",
"src": "3851:16:129"
}
],
"name": "setBaseURI",
"nameLocation": "3801:10:129",
"parameters": {
"id": 62065,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 62064,
"mutability": "mutable",
"name": "_customBaseURI",
"nameLocation": "3826:14:129",
"nodeType": "VariableDeclaration",
"scope": 62074,
"src": "3812:28:129",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 62063,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3812:6:129",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "3811:30:129"
},
"returnParameters": {
"id": 62068,
"nodeType": "ParameterList",
"parameters": [],
"src": "3868:0:129"
},
"scope": 62322,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 62086,
"nodeType": "FunctionDefinition",
"src": "3922:102:129",
"nodes": [],
"body": {
"id": 62085,
"nodeType": "Block",
"src": "3983:41:129",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 62082,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62076,
"src": "4008:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 62081,
"name": "_exists",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27997,
"src": "4000:7:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_bool_$",
"typeString": "function (uint256) view returns (bool)"
}
},
"id": 62083,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4000:17:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 62080,
"id": 62084,
"nodeType": "Return",
"src": "3993:24:129"
}
]
},
"baseFunctions": [
40766
],
"functionSelector": "4f558e79",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "exists",
"nameLocation": "3931:6:129",
"parameters": {
"id": 62077,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 62076,
"mutability": "mutable",
"name": "_tokenId",
"nameLocation": "3946:8:129",
"nodeType": "VariableDeclaration",
"scope": 62086,
"src": "3938:16:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 62075,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3938:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "3937:18:129"
},
"returnParameters": {
"id": 62080,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 62079,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 62086,
"src": "3977:4:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 62078,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "3977:4:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "3976:6:129"
},
"scope": 62322,
"stateMutability": "view",
"virtual": false,
"visibility": "public"
},
{
"id": 62154,
"nodeType": "FunctionDefinition",
"src": "4030:706:129",
"nodes": [],
"body": {
"id": 62153,
"nodeType": "Block",
"src": "4199:537:129",
"nodes": [],
"statements": [
{
"assignments": [
62100
],
"declarations": [
{
"constant": false,
"id": 62100,
"mutability": "mutable",
"name": "lendingPool",
"nameLocation": "4217:11:129",
"nodeType": "VariableDeclaration",
"scope": 62153,
"src": "4209:19:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 62099,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4209:7:129",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 62104,
"initialValue": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 62101,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61842,
"src": "4231:16:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"id": 62102,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4248:14:129",
"memberName": "getLendingPool",
"nodeType": "MemberAccess",
"referencedDeclaration": 38618,
"src": "4231:31:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 62103,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4231:33:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4209:55:129"
},
{
"assignments": [
62106
],
"declarations": [
{
"constant": false,
"id": 62106,
"mutability": "mutable",
"name": "executionDelegate",
"nameLocation": "4282:17:129",
"nodeType": "VariableDeclaration",
"scope": 62153,
"src": "4274:25:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 62105,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4274:7:129",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 62110,
"initialValue": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 62107,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61842,
"src": "4302:16:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"id": 62108,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4319:20:129",
"memberName": "getExecutionDelegate",
"nodeType": "MemberAccess",
"referencedDeclaration": 38548,
"src": "4302:37:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 62109,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4302:39:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4274:67:129"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 62116,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"id": 62113,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62094,
"src": "4368:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 62112,
"name": "ownerOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27697,
"src": "4360:7:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
"typeString": "function (uint256) view returns (address)"
}
},
"id": 62114,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4360:17:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"id": 62115,
"name": "lendingPool",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62100,
"src": "4381:11:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "4360:32:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "652f616c72656164792d6c6f636b426964",
"id": 62117,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4394:19:129",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_7769cfc736ada63ab878cbe3ae895c349118af32fa2b3e94b4d333b9804597a2",
"typeString": "literal_string \"e/already-lockBid\""
},
"value": "e/already-lockBid"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_7769cfc736ada63ab878cbe3ae895c349118af32fa2b3e94b4d333b9804597a2",
"typeString": "literal_string \"e/already-lockBid\""
}
],
"id": 62111,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "4352:7:129",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 62118,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4352:62:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 62119,
"nodeType": "ExpressionStatement",
"src": "4352:62:129"
},
{
"expression": {
"arguments": [
{
"id": 62124,
"name": "_token",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62090,
"src": "4489:6:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 62125,
"name": "_user",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62088,
"src": "4509:5:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"id": 62128,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
"src": "4536:4:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Redeemable_$62322",
"typeString": "contract Redeemable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_Redeemable_$62322",
"typeString": "contract Redeemable"
}
],
"id": 62127,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "4528:7:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 62126,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4528:7:129",
"typeDescriptions": {}
}
},
"id": 62129,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4528:13:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 62130,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62092,
"src": "4555:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"arguments": [
{
"id": 62121,
"name": "executionDelegate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62106,
"src": "4443:17:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 62120,
"name": "IExecutionDelegate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 39517,
"src": "4424:18:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IExecutionDelegate_$39517_$",
"typeString": "type(contract IExecutionDelegate)"
}
},
"id": 62122,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4424:37:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_IExecutionDelegate_$39517",
"typeString": "contract IExecutionDelegate"
}
},
"id": 62123,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4462:13:129",
"memberName": "transferERC20",
"nodeType": "MemberAccess",
"referencedDeclaration": 39516,
"src": "4424:51:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,address,uint256) external"
}
},
"id": 62131,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4424:148:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 62132,
"nodeType": "ExpressionStatement",
"src": "4424:148:129"
},
{
"expression": {
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 62134,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61842,
"src": "4601:16:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"id": 62135,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4618:14:129",
"memberName": "getLendingPool",
"nodeType": "MemberAccess",
"referencedDeclaration": 38618,
"src": "4601:31:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 62136,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4601:33:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 62137,
"name": "_user",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62088,
"src": "4636:5:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 62138,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62094,
"src": "4643:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 62133,
"name": "_transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 28304,
"src": "4591:9:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 62139,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4591:61:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 62140,
"nodeType": "ExpressionStatement",
"src": "4591:61:129"
},
{
"expression": {
"id": 62145,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 62141,
"name": "lockBids",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61856,
"src": "4662:8:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 62143,
"indexExpression": {
"id": 62142,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62094,
"src": "4671:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4662:18:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 62144,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62092,
"src": "4683:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "4662:28:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 62146,
"nodeType": "ExpressionStatement",
"src": "4662:28:129"
},
{
"expression": {
"id": 62151,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 62147,
"name": "lockTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61860,
"src": "4700:10:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
}
},
"id": 62149,
"indexExpression": {
"id": 62148,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62094,
"src": "4711:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "4700:20:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 62150,
"name": "_token",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62090,
"src": "4723:6:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "4700:29:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"id": 62152,
"nodeType": "ExpressionStatement",
"src": "4700:29:129"
}
]
},
"functionSelector": "03ac5d7b",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 62097,
"kind": "modifierInvocation",
"modifierName": {
"id": 62096,
"name": "onlyLendingPool",
"nameLocations": [
"4178:15:129"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 61916,
"src": "4178:15:129"
},
"nodeType": "ModifierInvocation",
"src": "4178:15:129"
}
],
"name": "lockBid",
"nameLocation": "4039:7:129",
"parameters": {
"id": 62095,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 62088,
"mutability": "mutable",
"name": "_user",
"nameLocation": "4064:5:129",
"nodeType": "VariableDeclaration",
"scope": 62154,
"src": "4056:13:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 62087,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4056:7:129",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 62090,
"mutability": "mutable",
"name": "_token",
"nameLocation": "4087:6:129",
"nodeType": "VariableDeclaration",
"scope": 62154,
"src": "4079:14:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 62089,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4079:7:129",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 62092,
"mutability": "mutable",
"name": "_amount",
"nameLocation": "4112:7:129",
"nodeType": "VariableDeclaration",
"scope": 62154,
"src": "4104:15:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 62091,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4104:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 62094,
"mutability": "mutable",
"name": "_tokenId",
"nameLocation": "4137:8:129",
"nodeType": "VariableDeclaration",
"scope": 62154,
"src": "4129:16:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 62093,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4129:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "4046:105:129"
},
"returnParameters": {
"id": 62098,
"nodeType": "ParameterList",
"parameters": [],
"src": "4199:0:129"
},
"scope": 62322,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 62266,
"nodeType": "FunctionDefinition",
"src": "4742:1318:129",
"nodes": [],
"body": {
"id": 62265,
"nodeType": "Block",
"src": "4918:1142:129",
"nodes": [],
"statements": [
{
"assignments": [
62168
],
"declarations": [
{
"constant": false,
"id": 62168,
"mutability": "mutable",
"name": "lendingPool",
"nameLocation": "4936:11:129",
"nodeType": "VariableDeclaration",
"scope": 62265,
"src": "4928:19:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 62167,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4928:7:129",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 62172,
"initialValue": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 62169,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61842,
"src": "4950:16:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"id": 62170,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4967:14:129",
"memberName": "getLendingPool",
"nodeType": "MemberAccess",
"referencedDeclaration": 38618,
"src": "4950:31:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 62171,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4950:33:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4928:55:129"
},
{
"assignments": [
62174
],
"declarations": [
{
"constant": false,
"id": 62174,
"mutability": "mutable",
"name": "minLockBid",
"nameLocation": "5001:10:129",
"nodeType": "VariableDeclaration",
"scope": 62265,
"src": "4993:18:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 62173,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4993:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 62185,
"initialValue": {
"arguments": [
{
"baseExpression": {
"id": 62177,
"name": "lockBids",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61856,
"src": "5040:8:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 62179,
"indexExpression": {
"id": 62178,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62162,
"src": "5049:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5040:18:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 62183,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 62180,
"name": "PercentageMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 55922,
"src": "5060:14:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_PercentageMath_$55922_$",
"typeString": "type(library PercentageMath)"
}
},
"id": 62181,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "5075:17:129",
"memberName": "PERCENTAGE_FACTOR",
"nodeType": "MemberAccess",
"referencedDeclaration": 55805,
"src": "5060:32:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "+",
"rightExpression": {
"id": 62182,
"name": "_minPercentageIncrease",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61848,
"src": "5095:22:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5060:57:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 62175,
"name": "PercentageMath",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 55922,
"src": "5014:14:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_PercentageMath_$55922_$",
"typeString": "type(library PercentageMath)"
}
},
"id": 62176,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5029:10:129",
"memberName": "percentMul",
"nodeType": "MemberAccess",
"referencedDeclaration": 55870,
"src": "5014:25:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
"typeString": "function (uint256,uint256) pure returns (uint256)"
}
},
"id": 62184,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5014:104:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "4993:125:129"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 62191,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"id": 62188,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62162,
"src": "5153:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 62187,
"name": "ownerOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27697,
"src": "5145:7:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
"typeString": "function (uint256) view returns (address)"
}
},
"id": 62189,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5145:17:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"id": 62190,
"name": "lendingPool",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62168,
"src": "5166:11:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "5145:32:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "652f6e6f742d6c6f636b426964",
"id": 62192,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5179:15:129",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b5678981f35edd83b1a737e831b54042ee97cc2b66108fa3401629dc0a6d096b",
"typeString": "literal_string \"e/not-lockBid\""
},
"value": "e/not-lockBid"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_b5678981f35edd83b1a737e831b54042ee97cc2b66108fa3401629dc0a6d096b",
"typeString": "literal_string \"e/not-lockBid\""
}
],
"id": 62186,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "5137:7:129",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 62193,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5137:58:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 62194,
"nodeType": "ExpressionStatement",
"src": "5137:58:129"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 62198,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 62196,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62160,
"src": "5213:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"id": 62197,
"name": "minLockBid",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62174,
"src": "5223:10:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5213:20:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "652f696e73756666696369656e742d6c6f636b426964",
"id": 62199,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5235:24:129",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_596d24e5f0858db0696971e51888e4915f07b2216c30c6dde6c0434caa8e7d1c",
"typeString": "literal_string \"e/insufficient-lockBid\""
},
"value": "e/insufficient-lockBid"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_596d24e5f0858db0696971e51888e4915f07b2216c30c6dde6c0434caa8e7d1c",
"typeString": "literal_string \"e/insufficient-lockBid\""
}
],
"id": 62195,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "5205:7:129",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 62200,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5205:55:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 62201,
"nodeType": "ExpressionStatement",
"src": "5205:55:129"
},
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 62207,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"id": 62203,
"name": "_token",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62158,
"src": "5278:6:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"baseExpression": {
"id": 62204,
"name": "lockTokens",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61860,
"src": "5288:10:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
"typeString": "mapping(uint256 => address)"
}
},
"id": 62206,
"indexExpression": {
"id": 62205,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62162,
"src": "5299:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5288:20:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "5278:30:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "652f696e636f72726563742d6c6f636b546f6b656e",
"id": 62208,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5310:23:129",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_1bdca0b76c075d9573597f5ec1f29915ada42a21f87517c2f07277a9eea0bb37",
"typeString": "literal_string \"e/incorrect-lockToken\""
},
"value": "e/incorrect-lockToken"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_1bdca0b76c075d9573597f5ec1f29915ada42a21f87517c2f07277a9eea0bb37",
"typeString": "literal_string \"e/incorrect-lockToken\""
}
],
"id": 62202,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "5270:7:129",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 62209,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5270:64:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 62210,
"nodeType": "ExpressionStatement",
"src": "5270:64:129"
},
{
"assignments": [
62212
],
"declarations": [
{
"constant": false,
"id": 62212,
"mutability": "mutable",
"name": "prevLockBid",
"nameLocation": "5361:11:129",
"nodeType": "VariableDeclaration",
"scope": 62265,
"src": "5353:19:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 62211,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5353:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 62216,
"initialValue": {
"baseExpression": {
"id": 62213,
"name": "lockBids",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61856,
"src": "5376:8:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 62215,
"indexExpression": {
"id": 62214,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62162,
"src": "5385:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5376:18:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5353:41:129"
},
{
"assignments": [
62218
],
"declarations": [
{
"constant": false,
"id": 62218,
"mutability": "mutable",
"name": "prevLockBidder",
"nameLocation": "5413:14:129",
"nodeType": "VariableDeclaration",
"scope": 62265,
"src": "5405:22:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 62217,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5405:7:129",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 62222,
"initialValue": {
"arguments": [
{
"id": 62220,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62162,
"src": "5439:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 62219,
"name": "ownerOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27697,
"src": "5431:7:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
"typeString": "function (uint256) view returns (address)"
}
},
"id": 62221,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5431:17:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "5405:43:129"
},
{
"expression": {
"arguments": [
{
"id": 62229,
"name": "_token",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62158,
"src": "5587:6:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 62230,
"name": "_user",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62156,
"src": "5607:5:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"id": 62233,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
"src": "5634:4:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Redeemable_$62322",
"typeString": "contract Redeemable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_Redeemable_$62322",
"typeString": "contract Redeemable"
}
],
"id": 62232,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5626:7:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 62231,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5626:7:129",
"typeDescriptions": {}
}
},
"id": 62234,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5626:13:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 62235,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62160,
"src": "5653:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 62224,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61842,
"src": "5519:16:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"id": 62225,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5536:20:129",
"memberName": "getExecutionDelegate",
"nodeType": "MemberAccess",
"referencedDeclaration": 38548,
"src": "5519:37:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 62226,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5519:39:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 62223,
"name": "IExecutionDelegate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 39517,
"src": "5500:18:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IExecutionDelegate_$39517_$",
"typeString": "type(contract IExecutionDelegate)"
}
},
"id": 62227,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5500:59:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_IExecutionDelegate_$39517",
"typeString": "contract IExecutionDelegate"
}
},
"id": 62228,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5560:13:129",
"memberName": "transferERC20",
"nodeType": "MemberAccess",
"referencedDeclaration": 39516,
"src": "5500:73:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,address,uint256) external"
}
},
"id": 62236,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5500:170:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 62237,
"nodeType": "ExpressionStatement",
"src": "5500:170:129"
},
{
"expression": {
"arguments": [
{
"id": 62239,
"name": "prevLockBidder",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62218,
"src": "5727:14:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 62240,
"name": "_user",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62156,
"src": "5743:5:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 62241,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62162,
"src": "5750:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 62238,
"name": "_transfer",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 28304,
"src": "5717:9:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,uint256)"
}
},
"id": 62242,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5717:42:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 62243,
"nodeType": "ExpressionStatement",
"src": "5717:42:129"
},
{
"expression": {
"id": 62248,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"id": 62244,
"name": "lockBids",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61856,
"src": "5794:8:129",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
"typeString": "mapping(uint256 => uint256)"
}
},
"id": 62246,
"indexExpression": {
"id": 62245,
"name": "_tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62162,
"src": "5803:8:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "5794:18:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 62247,
"name": "_amount",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62160,
"src": "5815:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"src": "5794:28:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 62249,
"nodeType": "ExpressionStatement",
"src": "5794:28:129"
},
{
"expression": {
"arguments": [
{
"id": 62256,
"name": "_token",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62158,
"src": "5957:6:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"arguments": [
{
"id": 62259,
"name": "this",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -28,
"src": "5985:4:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_Redeemable_$62322",
"typeString": "contract Redeemable"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_contract$_Redeemable_$62322",
"typeString": "contract Redeemable"
}
],
"id": 62258,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "5977:7:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_address_$",
"typeString": "type(address)"
},
"typeName": {
"id": 62257,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "5977:7:129",
"typeDescriptions": {}
}
},
"id": 62260,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5977:13:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 62261,
"name": "prevLockBidder",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62218,
"src": "6004:14:129",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 62262,
"name": "prevLockBid",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62212,
"src": "6032:11:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 62251,
"name": "_addressProvider",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61842,
"src": "5889:16:129",
"typeDescriptions": {
"typeIdentifier": "t_contract$_IAddressProvider_$38799",
"typeString": "contract IAddressProvider"
}
},
"id": 62252,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5906:20:129",
"memberName": "getExecutionDelegate",
"nodeType": "MemberAccess",
"referencedDeclaration": 38548,
"src": "5889:37:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_view$__$returns$_t_address_$",
"typeString": "function () view external returns (address)"
}
},
"id": 62253,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5889:39:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 62250,
"name": "IExecutionDelegate",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 39517,
"src": "5870:18:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_IExecutionDelegate_$39517_$",
"typeString": "type(contract IExecutionDelegate)"
}
},
"id": 62254,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5870:59:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_contract$_IExecutionDelegate_$39517",
"typeString": "contract IExecutionDelegate"
}
},
"id": 62255,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5930:13:129",
"memberName": "transferERC20",
"nodeType": "MemberAccess",
"referencedDeclaration": 39516,
"src": "5870:73:129",
"typeDescriptions": {
"typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,address,address,uint256) external"
}
},
"id": 62263,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5870:183:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 62264,
"nodeType": "ExpressionStatement",
"src": "5870:183:129"
}
]
},
"functionSelector": "92944809",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 62165,
"kind": "modifierInvocation",
"modifierName": {
"id": 62164,
"name": "onlyLendingPool",
"nameLocations": [
"4898:15:129"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 61916,
"src": "4898:15:129"
},
"nodeType": "ModifierInvocation",
"src": "4898:15:129"
}
],
"name": "transferLockBid",
"nameLocation": "4751:15:129",
"parameters": {
"id": 62163,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 62156,
"mutability": "mutable",
"name": "_user",
"nameLocation": "4784:5:129",
"nodeType": "VariableDeclaration",
"scope": 62266,
"src": "4776:13:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 62155,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4776:7:129",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 62158,
"mutability": "mutable",
"name": "_token",
"nameLocation": "4807:6:129",
"nodeType": "VariableDeclaration",
"scope": 62266,
"src": "4799:14:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 62157,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4799:7:129",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 62160,
"mutability": "mutable",
"name": "_amount",
"nameLocation": "4832:7:129",
"nodeType": "VariableDeclaration",
"scope": 62266,
"src": "4824:15:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 62159,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4824:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 62162,
"mutability": "mutable",
"name": "_tokenId",
"nameLocation": "4857:8:129",
"nodeType": "VariableDeclaration",
"scope": 62266,
"src": "4849:16:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 62161,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4849:7:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "4766:105:129"
},
"returnParameters": {
"id": 62166,
"nodeType": "ParameterList",
"parameters": [],
"src": "4918:0:129"
},
"scope": 62322,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "external"
},
{
"id": 62283,
"nodeType": "FunctionDefinition",
"src": "6255:198:129",
"nodes": [],
"body": {
"id": 62282,
"nodeType": "Block",
"src": "6392:61:129",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 62279,
"name": "_interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62269,
"src": "6433:12:129",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"expression": {
"id": 62277,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -25,
"src": "6409:5:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_super$_Redeemable_$62322_$",
"typeString": "type(contract super Redeemable)"
}
},
"id": 62278,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "6415:17:129",
"memberName": "supportsInterface",
"nodeType": "MemberAccess",
"referencedDeclaration": 27645,
"src": "6409:23:129",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
"typeString": "function (bytes4) view returns (bool)"
}
},
"id": 62280,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6409:37:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 62276,
"id": 62281,
"nodeType": "Return",
"src": "6402:44:129"
}
]
},
"baseFunctions": [
25634,
27645
],
"documentation": {
"id": 62267,
"nodeType": "StructuredDocumentation",
"src": "6066:184:129",
"text": "-----------------------------------------------------------------------\n Internal / Overrides\n -----------------------------------------------------------------------"
},
"functionSelector": "01ffc9a7",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "supportsInterface",
"nameLocation": "6264:17:129",
"overrides": {
"id": 62273,
"nodeType": "OverrideSpecifier",
"overrides": [
{
"id": 62271,
"name": "ERC721Upgradeable",
"nameLocations": [
"6332:17:129"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 28501,
"src": "6332:17:129"
},
{
"id": 62272,
"name": "AccessControlUpgradeable",
"nameLocations": [
"6351:24:129"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 25894,
"src": "6351:24:129"
}
],
"src": "6323:53:129"
},
"parameters": {
"id": 62270,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 62269,
"mutability": "mutable",
"name": "_interfaceId",
"nameLocation": "6289:12:129",
"nodeType": "VariableDeclaration",
"scope": 62283,
"src": "6282:19:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 62268,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "6282:6:129",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "6281:21:129"
},
"returnParameters": {
"id": 62276,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 62275,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 62283,
"src": "6386:4:129",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 62274,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "6386:4:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "6385:6:129"
},
"scope": 62322,
"stateMutability": "view",
"virtual": true,
"visibility": "public"
},
{
"id": 62292,
"nodeType": "FunctionDefinition",
"src": "6459:98:129",
"nodes": [],
"body": {
"id": 62291,
"nodeType": "Block",
"src": "6526:31:129",
"nodes": [],
"statements": [
{
"expression": {
"id": 62289,
"name": "baseURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61846,
"src": "6543:7:129",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"functionReturnParameters": 62288,
"id": 62290,
"nodeType": "Return",
"src": "6536:14:129"
}
]
},
"baseFunctions": [
27765
],
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_baseURI",
"nameLocation": "6468:8:129",
"overrides": {
"id": 62285,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "6493:8:129"
},
"parameters": {
"id": 62284,
"nodeType": "ParameterList",
"parameters": [],
"src": "6476:2:129"
},
"returnParameters": {
"id": 62288,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 62287,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 62292,
"src": "6511:13:129",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 62286,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "6511:6:129",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "6510:15:129"
},
"scope": 62322,
"stateMutability": "view",
"virtual": false,
"visibility": "internal"
},
{
"id": 62321,
"nodeType": "FunctionDefinition",
"src": "6563:215:129",
"nodes": [],
"body": {
"id": 62320,
"nodeType": "Block",
"src": "6623:155:129",
"nodes": [],
"statements": [
{
"expression": {
"id": 62318,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"id": 62297,
"name": "baseURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 61846,
"src": "6633:7:129",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 62304,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"arguments": [
{
"id": 62300,
"name": "_customBaseURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62294,
"src": "6649:14:129",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 62299,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6643:5:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
"typeString": "type(bytes storage pointer)"
},
"typeName": {
"id": 62298,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "6643:5:129",
"typeDescriptions": {}
}
},
"id": 62301,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6643:21:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"id": 62302,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "6665:6:129",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "6643:28:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": ">",
"rightExpression": {
"hexValue": "30",
"id": 62303,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6674:1:129",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "6643:32:129",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"falseExpression": {
"hexValue": "",
"id": 62316,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6769:2:129",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
"typeString": "literal_string \"\""
},
"value": ""
},
"id": 62317,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "Conditional",
"src": "6643:128:129",
"trueExpression": {
"arguments": [
{
"arguments": [
{
"id": 62309,
"name": "_customBaseURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 62294,
"src": "6714:14:129",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"hexValue": "2f",
"id": 62310,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6730:3:129",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527",
"typeString": "literal_string \"/\""
},
"value": "/"
},
{
"expression": {
"id": 62311,
"name": "block",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -4,
"src": "6735:5:129",
"typeDescriptions": {
"typeIdentifier": "t_magic_block",
"typeString": "block"
}
},
"id": 62312,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "6741:7:129",
"memberName": "chainid",
"nodeType": "MemberAccess",
"src": "6735:13:129",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"hexValue": "2f",
"id": 62313,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "6750:3:129",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527",
"typeString": "literal_string \"/\""
},
"value": "/"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
},
{
"typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527",
"typeString": "literal_string \"/\""
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_stringliteral_fba9715e477e68952d3f1df7a185b3708aadad50ec10cc793973864023868527",
"typeString": "literal_string \"/\""
}
],
"expression": {
"id": 62307,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "6697:3:129",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 62308,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "6701:12:129",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "6697:16:129",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 62314,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6697:57:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 62306,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "6690:6:129",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
"typeString": "type(string storage pointer)"
},
"typeName": {
"id": 62305,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "6690:6:129",
"typeDescriptions": {}
}
},
"id": 62315,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6690:65:129",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "6633:138:129",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 62319,
"nodeType": "ExpressionStatement",
"src": "6633:138:129"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_setBaseURI",
"nameLocation": "6572:11:129",
"parameters": {
"id": 62295,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 62294,
"mutability": "mutable",
"name": "_customBaseURI",
"nameLocation": "6598:14:129",
"nodeType": "VariableDeclaration",
"scope": 62321,
"src": "6584:28:129",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 62293,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "6584:6:129",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "6583:30:129"
},
"returnParameters": {
"id": 62296,
"nodeType": "ParameterList",
"parameters": [],
"src": "6623:0:129"
},
"scope": 62322,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
}
],
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 61826,
"name": "IRedeemable",
"nameLocations": [
"1086:11:129"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 40772,
"src": "1086:11:129"
},
"id": 61827,
"nodeType": "InheritanceSpecifier",
"src": "1086:11:129"
},
{
"baseName": {
"id": 61828,
"name": "Initializable",
"nameLocations": [
"1103:13:129"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26136,
"src": "1103:13:129"
},
"id": 61829,
"nodeType": "InheritanceSpecifier",
"src": "1103:13:129"
},
{
"baseName": {
"id": 61830,
"name": "AccessControlUpgradeable",
"nameLocations": [
"1123:24:129"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 25894,
"src": "1123:24:129"
},
"id": 61831,
"nodeType": "InheritanceSpecifier",
"src": "1123:24:129"
},
{
"baseName": {
"id": 61832,
"name": "ERC721Upgradeable",
"nameLocations": [
"1154:17:129"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 28501,
"src": "1154:17:129"
},
"id": 61833,
"nodeType": "InheritanceSpecifier",
"src": "1154:17:129"
}
],
"canonicalName": "Redeemable",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"linearizedBaseContracts": [
62322,
28501,
28662,
28635,
25894,
29281,
29293,
25967,
28988,
26136,
40772
],
"name": "Redeemable",
"nameLocation": "1067:10:129",
"scope": 62323,
"usedErrors": []
}
],
"license": "BUSL-1.1"
},
"id": 129
}
Last updated