non-fungible-apps/out/FleekERC721.sol/FleekERC721.json

10449 lines
486 KiB
JSON

{
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"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": true,
"internalType": "uint256",
"name": "token",
"type": "uint256"
},
{
"indexed": true,
"internalType": "string",
"name": "commit_hash",
"type": "string"
}
],
"name": "NewBuild",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "token",
"type": "uint256"
},
{
"indexed": true,
"internalType": "string",
"name": "description",
"type": "string"
}
],
"name": "NewTokenDescription",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "token",
"type": "uint256"
},
{
"indexed": true,
"internalType": "string",
"name": "ENS",
"type": "string"
}
],
"name": "NewTokenENS",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "token",
"type": "uint256"
},
{
"indexed": true,
"internalType": "string",
"name": "external_url",
"type": "string"
}
],
"name": "NewTokenExternalURL",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "token",
"type": "uint256"
},
{
"indexed": true,
"internalType": "string",
"name": "image",
"type": "string"
}
],
"name": "NewTokenImage",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "uint256",
"name": "token",
"type": "uint256"
},
{
"indexed": true,
"internalType": "string",
"name": "name",
"type": "string"
}
],
"name": "NewTokenName",
"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": "COLLECTION_CONTROLLER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "COLLECTION_OWNER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "controller",
"type": "address"
}
],
"name": "addTokenController",
"outputs": [],
"stateMutability": "nonpayable",
"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": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"name": "burn",
"outputs": [],
"stateMutability": "nonpayable",
"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": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "image",
"type": "string"
},
{
"internalType": "string",
"name": "external_url",
"type": "string"
},
{
"internalType": "string",
"name": "ENS",
"type": "string"
},
{
"internalType": "string",
"name": "commit_hash",
"type": "string"
},
{
"internalType": "string",
"name": "git_repository",
"type": "string"
}
],
"name": "mint",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "payable",
"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": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "controller",
"type": "address"
}
],
"name": "removeTokenController",
"outputs": [],
"stateMutability": "nonpayable",
"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": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_commit_hash",
"type": "string"
},
{
"internalType": "string",
"name": "_git_repository",
"type": "string"
}
],
"name": "setTokenBuild",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenDescription",
"type": "string"
}
],
"name": "setTokenDescription",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenENS",
"type": "string"
}
],
"name": "setTokenENS",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenExternalURL",
"type": "string"
}
],
"name": "setTokenExternalURL",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenImage",
"type": "string"
}
],
"name": "setTokenImage",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenName",
"type": "string"
}
],
"name": "setTokenName",
"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": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "commit",
"type": "string"
},
{
"internalType": "string",
"name": "repository",
"type": "string"
}
],
"name": "upgradeTokenBuild",
"outputs": [],
"stateMutability": "payable",
"type": "function"
}
],
"bytecode": {
"object": "0x60406080815234620003da5762003b9d90813803806200001f81620003df565b93843982018183820312620003da5782516001600160401b0390818111620003da57826200004f91860162000405565b9360209283820151838111620003da576200006b920162000405565b93805191808311620003c4576000928354906001938483811c93168015620003b9575b87841014620003a5578190601f9384811162000352575b508790848311600114620002ee578792620002e2575b5050600019600383901b1c191690841b1784555b8651918211620002ce5782548381811c91168015620002c3575b86821014620002af5781811162000267575b508490821160011462000204578394959682939492620001f8575b5050600019600383901b1c191690821b1781555b7fcac50f86c292f6863f130b9e1133a5f875e8e957fed41745b8fa2498550cbdfc92838352600681528282868220015481848882200155857fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff8380a4848320338452815260ff858420541615620001ab575b84516137259081620004788239f35b8383526006815284832090338452528382209060ff1982541617905533917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339280a4388080806200019c565b01519050388062000116565b82845284842090601f198316855b818110620002515750978385969798991062000237575b505050811b0181556200012a565b015160001960f88460031b161c1916905538808062000229565b8983015184559285019291870191870162000212565b8385528585208280850160051c820192888610620002a5575b0160051c019084905b82811062000299575050620000fb565b86815501849062000289565b9250819262000280565b634e487b7160e01b85526022600452602485fd5b90607f1690620000e9565b634e487b7160e01b84526041600452602484fd5b015190503880620000bb565b8780528888208794509190601f198416895b8b8282106200033b575050841162000321575b505050811b018455620000cf565b015160001960f88460031b161c1916905538808062000313565b8385015186558a9790950194938401930162000300565b9091508680528787208480850160051c8201928a86106200039b575b918891869594930160051c01915b8281106200038c575050620000a5565b8981558594508891016200037c565b925081926200036e565b634e487b7160e01b86526022600452602486fd5b92607f16926200008e565b634e487b7160e01b600052604160045260246000fd5b600080fd5b6040519190601f01601f191682016001600160401b03811183821017620003c457604052565b919080601f84011215620003da5782516001600160401b038111620003c4576020906200043b601f8201601f19168301620003df565b92818452828287010111620003da5760005b8181106200046357508260009394955001015290565b85810183015184820184015282016200044d56fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146127455750806306fdde03146126a2578063081812fc14612684578063095ea7b31461250a57806323b872dd146124e1578063246a908b14612365578063248a9ca3146123365780632f2ff15d146122fc57806336568abe1461226a5780633806f15214611ff557806342842e0e14611fcd57806342966c6814611e825780636352211e14611e5257806364140ec014611cdf57806370a0823114611c4857806378278cca14611ad557806391d1485414611a8857806395d89b41146119a9578063987c26fd1461168f57806398b7079314611654578063a217fddf14611638578063a22cb46514611566578063b543be1214610b34578063b88d4fde14610ad5578063befaa6a314610ab3578063c87b56dd1461061f578063cdb0e89e1461048b578063d547741f1461044c578063dcd78186146103d5578063e46f29c81461039a578063e985e9c5146103445763f93151771461017f57600080fd5b3461033f5761018d3661293a565b9061019f610199612ace565b82612af4565b6000526020916006835260406000203360005283526101c560ff60406000205416612b3f565b6000828152600260205260409020546101e8906001600160a01b03161515612f02565b816000526008835260036040600020018151936001600160401b0385116103295761021382546129af565b601f81116102ee575b5080601f8611600114610284575093806102519495600091610279575b508160011b916000199060031b1c1916179055612b9c565b907f9f284fd257fb85bc33901e673c078261b0222fbcc4b52c74784c9566808e3cfc600080a3005b905083015138610239565b90601f1986168360005282600020926000905b8282106102d65750509186916102519697600194106102bd575b5050811b019055612b9c565b85015160001960f88460031b161c1916905538806102b1565b80600185968294968a01518155019501930190610297565b610319908360005282600020601f880160051c81019184891061031f575b601f0160051c01906129e9565b3861021c565b909150819061030c565b634e487b7160e01b600052604160045260246000fd5b600080fd5b3461033f57604036600319011261033f5761035d612812565b610365612828565b9060018060a01b03809116600052600560205260406000209116600052602052602060ff604060002054166040519015158152f35b3461033f57600036600319011261033f5760206040517f54812023c8fe13756580f3420840aeb566f69714bea27346e22e4c654756d77e8152f35b3461033f57604036600319011261033f5761044a6004356104456103f7612828565b916104146001600160a01b0361040c83612f4e565b163314612a00565b600081815260026020526040902054610437906001600160a01b03161515612f02565b61043f612ace565b90612af4565b612e12565b005b3461033f57604036600319011261033f5761044a60043561046b612828565b90806000526006602052610486600160406000200154612c08565b612e8c565b3461033f576104993661293a565b906104a5610199612ace565b6000526020916006835260406000203360005283526104cb60ff60406000205416612b3f565b6000828152600260205260409020546104ee906001600160a01b03161515612f02565b816000526008835260406000208151936001600160401b0385116103295761051682546129af565b601f81116105ef575b5080601f861160011461058657509380610553949560009161057b57508160011b916000199060031b1c1916179055612b9c565b907fabf44020991f188f6b302a14e4b7a3dc94de10ed2140a6c03e16f4213d11b1c9600080a3005b905083015186610239565b90601f1986168360005282600020926000905b8282106105d75750509186916105539697600194106105be575050811b019055612b9c565b85015160001960f88460031b161c1916905586806102b1565b80600185968294968a01518155019501930190610599565b610619908360005282600020601f880160051c81019184891061031f57601f0160051c01906129e9565b8561051f565b3461033f5760208060031936011261033f5760043560008181526002602052604090205490919061065a906001600160a01b03161515612f02565b61066382612f4e565b600092835260088252604090922091610684906001600160a01b03166135e1565b60058301546000818152600685018452604081206001958694938583019190807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008181811015610aa5575b5050886d04ee2d6d415b85acef810000000080841015610a97575b5050662386f26fc1000080831015610a88575b506305f5e10080831015610a79575b5061271080831015610a6a575b506064821015610a5a575b600a978880931015610a50575b6021610739828901613432565b97880101905b610a21575b5050604051607b60f81b8982015267113730b6b2911d1160c11b60218201529889969091506107766029880184612a4b565b61088b60f21b8082526e113232b9b1b934b83a34b7b7111d1160891b6002830152926107a791601101908501612a4b565b828152681137bbb732b9111d1160b91b60028201528151916107d1908390600b8401908d016127ca565b0181600b8201526f1132bc3a32b93730b62fbab936111d1160811b600d820152601d01600383019061080291612a4b565b818152681134b6b0b3b2911d1160b91b6002820152600b01600283019061082891612a4b565b9081526e2261747472696275746573223a205b60881b60028201527f7b2274726169745f74797065223a2022454e53222c202276616c7565223a2200601182015261087b91603090910190600401612a4b565b62089f4b60ea1b8082527f7b2274726169745f74797065223a2022436f6d6d69742048617368222c20227660038301526630b63ab2911d1160c91b6023830152926108c991602a0190612a4b565b828152600381017f7b2274726169745f74797065223a20225265706f7369746f7279222c20227661905265363ab2911d1160d11b602382015260290161090e91612a4b565b9081527f7b2274726169745f74797065223a202256657273696f6e222c202276616c7565600382015262111d1160e91b6023820152815191610958908390602684019088016127ca565b0161227d60f01b602682015260288101605d60f81b905260298101607d60f81b9052039081018352602a0161098d90836128a9565b8060405161099a81612873565b601d8152818101937f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000085526109ce90613464565b6040519485925190818585016109e3926127ca565b820181519182858084019201916109f9926127ca565b010380845201610a0990836128a9565b6040519181839283528201610a1d916127ed565b0390f35b600019019082906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304908a8261073f5750610744565b909501948961072c565b949060646002910491019461071f565b6004919692049101948a610714565b6008919692049101948a610707565b6010919692049101948a6106f8565b96019590910490888b6106e5565b604097500491508a806106ca565b3461033f57604036600319011261033f5761044a6004356104866103f7612828565b3461033f57608036600319011261033f57610aee612812565b610af6612828565b606435916001600160401b03831161033f573660238401121561033f57610b2a61044a9336906024816004013591016128e5565b9160443591613011565b61010036600319011261033f57610b49612812565b6024356001600160401b03811161033f57610b6890369060040161291c565b906044356001600160401b03811161033f57610b8890369060040161291c565b906064356001600160401b03811161033f57610ba890369060040161291c565b926084356001600160401b03811161033f57610bc890369060040161291c565b60a4356001600160401b03811161033f57610be790369060040161291c565b9060c4356001600160401b03811161033f57610c0790369060040161291c565b9560e4356001600160401b03811161033f57610c2790369060040161291c565b3360009081527f6ba1fb09f226a75e067af9a8d207c51e8b8b2c4d25e3ce897223f4dfedce79fd602052604090205490969060ff161561150557600754956001600160a01b038116156114c157600087815260026020526040902054610d589190610c9e906001600160a01b031615155b1561310a565b600088815260026020526040902054610cc1906001600160a01b03161515610c98565b6001600160a01b0381166000818152600360209081526040808320805460010190558b83526002909152812080546001600160a01b031916831790558991907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600088815260026020526040902054610d47906001600160a01b03161515612f02565b610445610d52612ace565b89612af4565b6001600754016007558560005260086020526040600020948051906001600160401b038211610329578190610d8d88546129af565b601f811161148f575b50602090601f831160011461142357600092611418575b50508160011b916000199060031b1c19161785555b8051906001600160401b038211610329578190610de260018801546129af565b601f81116113e3575b50602090601f831160011461137157600092611366575b50508160011b916000199060031b1c19161760018501555b8051906001600160401b038211610329578190610e3a60028701546129af565b601f8111611331575b50602090601f83116001146112bf576000926112b4575b50508160011b916000199060031b1c19161760028401555b8051906001600160401b038211610329578190610e9260038601546129af565b601f811161127f575b50602090601f831160011461120d57600092611202575b50508160011b916000199060031b1c19161760038301555b8051906001600160401b03821161032957610ee860048401546129af565b601f81116111cd575b50602090601f831160011461115a5760069392916000918361114f575b50508160011b916000199060031b1c19161760048201555b6000600582015560405194610f3a86612873565b8552602085019384526000805201602052604060002092519283516001600160401b03811161032957610f6d82546129af565b601f811161111d575b506020601f82116001146110b357819060019495966000926110a8575b5050600019600383901b1c191690831b1781555b019151908151926001600160401b03841161032957602093610fc982546129af565b601f8111611078575b508493601f821160011461101557938192939460009261100a575b50508160011b916000199060031b1c19161790555b604051908152f35b015190508580610fed565b601f1982169483600052866000209160005b878110611061575083600195969710611048575b505050811b019055611002565b015160001960f88460031b161c1916905585808061103b565b919288600181928685015181550194019201611027565b6110a2908360005286600020601f840160051c81019188851061031f57601f0160051c01906129e9565b85610fd2565b015190508680610f93565b601f198216958360005260206000209660005b81811061110557509160019596979184879594106110ec575b505050811b018155610fa7565b015160001960f88460031b161c191690558680806110df565b838301518955600190980197602093840193016110c6565b61114990836000526020600020601f840160051c8101916020851061031f57601f0160051c01906129e9565b85610f76565b015190508780610f0e565b906004840160005260206000209160005b601f19851681106111b5575091839160019360069695601f1981161061119c575b505050811b016004820155610f26565b015160001960f88460031b161c1916905587808061118c565b9192602060018192868501518155019401920161116b565b6111fc90600485016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129e9565b86610ef1565b015190508780610eb2565b9250600385016000526020600020906000935b601f1984168510611264576001945083601f1981161061124b575b505050811b016003830155610eca565b015160001960f88460031b161c1916905587808061123b565b81810151835560209485019460019093019290910190611220565b6112ae90600387016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129e9565b88610e9b565b015190508880610e5a565b9250600286016000526020600020906000935b601f1984168510611316576001945083601f198116106112fd575b505050811b016002840155610e72565b015160001960f88460031b161c191690558880806112ed565b818101518355602094850194600190930192909101906112d2565b61136090600288016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129e9565b89610e43565b015190508980610e02565b9250600187016000526020600020906000935b601f19841685106113c8576001945083601f198116106113af575b505050811b016001850155610e1a565b015160001960f88460031b161c1916905589808061139f565b81810151835560209485019460019093019290910190611384565b61141290600189016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129e9565b8a610deb565b015190508a80610dad565b9250876000526020600020906000935b601f1984168510611474576001945083601f1981161061145b575b505050811b018555610dc2565b015160001960f88460031b161c191690558a808061144e565b81810151835560209485019460019093019290910190611433565b6114bb90896000526020600020601f850160051c8101916020861061031f57601f0160051c01906129e9565b8b610d96565b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b60405162461bcd60e51b815260206004820152603360248201527f466c65656b416363657373436f6e74726f6c3a206d757374206861766520636f6044820152726c6c656374696f6e206f776e657220726f6c6560681b6064820152608490fd5b3461033f57604036600319011261033f5761157f612812565b6024359081151580920361033f576001600160a01b0316903382146115f357336000526005602052604060002082600052602052604060002060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b3461033f57600036600319011261033f57602060405160008152f35b3461033f57600036600319011261033f5760206040517fcac50f86c292f6863f130b9e1133a5f875e8e957fed41745b8fa2498550cbdfc8152f35b61169836612969565b91906116ae6001600160a01b0361040c84612f4e565b6000828152600260205260409020546116d1906001600160a01b03161515612f02565b6116e26116dc612ace565b83612af4565b60005260209260068452604060002033600052845261170860ff60406000205416612b3f565b60008381526002602052604090205461172b906001600160a01b03161515612f02565b60405161173781612873565b828152848101918252836000526008855260066040600020016005604060002001908154906000199283831461199357600180930180915560005287526040600020925180516001600160401b039485821161032957839161179982546129af565b93601f948c868211611964575b50508b908583116001146118fe5760009190836118f3575b50508682851b9260031b1c19161781555b019451978851948511610329576117e686546129af565b8281116118bb575b50809185116001146118525750839291839161181f9899600095611847575b50501b9260031b1c1916179055612b9c565b907ff0cd0ce9d5882a10e2780d2d9c805c18e7536b9b2c6412f7bfb7f163656dd0f6600080a3005b01519350898061180d565b91939290601f198416988660005283600020936000905b8b82106118a45750508461181f999a1061188c575b50505050811b019055612b9c565b01519060f88460031b161c191690558680808061187e565b808885978294968601518155019601930190611869565b6118e49087600052826000208480890160051c820192858a106118ea575b0160051c01906129e9565b896117ee565b925081926118d9565b015190508c806117be565b60008481528d8120929190601f198516908f5b82821061194b5750509084879594939210611934575b505050811b0181556117cf565b01518860f88460031b161c191690558c8080611927565b8484015186558a98909501949384019390810190611911565b61198c918560005287826000209181870160051c83019387106118ea570160051c01906129e9565b8c8c6117a6565b634e487b7160e01b600052601160045260246000fd5b3461033f57600036600319011261033f57604051600060018054906119cd826129af565b80855291818116908115611a615750600114611a08575b610a1d846119f4818603826128a9565b6040519182916020835260208301906127ed565b600081815292507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b828410611a495750505081016020016119f4826119e4565b80546020858701810191909152909301928101611a31565b60ff191660208087019190915292151560051b850190920192506119f491508390506119e4565b3461033f57604036600319011261033f57611aa1612828565b600435600052600660205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461033f57611ae33661293a565b90611aef610199612ace565b600052602091600683526040600020336000528352611b1560ff60406000205416612b3f565b600082815260026020526040902054611b38906001600160a01b03161515612f02565b816000526008835260046040600020018151936001600160401b03851161032957611b6382546129af565b601f8111611c18575b5080601f8611600114611bc857509380611ba0949560009161057b57508160011b916000199060031b1c1916179055612b9c565b907fc1b5a2141fc60537be795a8771f5e8c80188922acb5399a6e463ea95aa852f31600080a3005b90601f1986168360005282600020926000905b828210611c00575050918691611ba09697600194106105be575050811b019055612b9c565b80600185968294968a01518155019501930190611bdb565b611c42908360005282600020601f880160051c81019184891061031f57601f0160051c01906129e9565b85611b6c565b3461033f57602036600319011261033f576001600160a01b03611c69612812565b168015611c885760005260036020526020604060002054604051908152f35b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608490fd5b3461033f57611ced3661293a565b90611cf9610199612ace565b600052602091600683526040600020336000528352611d1f60ff60406000205416612b3f565b600082815260026020526040902054611d42906001600160a01b03161515612f02565b816000526008835260026040600020018151936001600160401b03851161032957611d6d82546129af565b601f8111611e22575b5080601f8611600114611dd257509380611daa949560009161057b57508160011b916000199060031b1c1916179055612b9c565b907fb041870856ebefdd6a3cb1ac665eb6739281b855c912ff622e814dbf91c96bb6600080a3005b90601f1986168360005282600020926000905b828210611e0a575050918691611daa9697600194106105be575050811b019055612b9c565b80600185968294968a01518155019501930190611de5565b611e4c908360005282600020601f880160051c81019184891061031f57601f0160051c01906129e9565b85611d76565b3461033f57602036600319011261033f576020611e70600435612f4e565b6040516001600160a01b039091168152f35b3461033f5760208060031936011261033f5760043590611ea36116dc612ace565b600052600681526040600020336000528152611ec660ff60406000205416612b3f565b8160006001600160a01b03611ee63382611edf86612f4e565b1614612a00565b611eef83612f4e565b50611ef983612f4e565b908383526004855260408320916bffffffffffffffffffffffff60a01b92838154169055169081835260038552604083208319815401905583835260028552604083209081541690557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a460088152611f7b6003604060002001546129af565b611f8157005b600891600052526000600560408220611f9981612bbc565b611fa560018201612bbc565b611fb160028201612bbc565b611fbd60038201612bbc565b611fc960048201612bbc565b0155005b3461033f5761044a611fde3661283e565b9060405192611fec8461288e565b60008452613011565b3461033f5761200336612969565b91906120106116dc612ace565b60005260209260068452604060002033600052845261203660ff60406000205416612b3f565b600083815260026020526040902054612059906001600160a01b03161515612f02565b60405161206581612873565b828152848101918252836000526008855260066040600020016005604060002001908154906000199283831461199357600180930180915560005287526040600020925180516001600160401b03948582116103295783916120c782546129af565b93601f948c86821161223b575b50508b908583116001146121d55760009190836121ca575b50508682851b9260031b1c19161781555b0194519788519485116103295761211486546129af565b82811161219c575b508091851160011461214c5750839291839161181f98996000956118475750501b9260031b1c1916179055612b9c565b91939290601f198416988660005283600020936000905b8b82106121855750508461181f999a1061188c5750505050811b019055612b9c565b808885978294968601518155019601930190612163565b6121c49087600052826000208480890160051c820192858a106118ea570160051c01906129e9565b8961211c565b015190508c806120ec565b60008481528d8120929190601f198516908f5b828210612222575050908487959493921061220b575b505050811b0181556120fd565b01518860f88460031b161c191690558c80806121fe565b8484015186558a989095019493840193908101906121e8565b612263918560005287826000209181870160051c83019387106118ea570160051c01906129e9565b8c8c6120d4565b3461033f57604036600319011261033f57612283612828565b336001600160a01b0382160361229f5761044a90600435612e8c565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b3461033f57604036600319011261033f5761044a60043561231b612828565b90806000526006602052610445600160406000200154612c08565b3461033f57602036600319011261033f5760043560005260066020526020600160406000200154604051908152f35b3461033f576123733661293a565b9061237f610199612ace565b6000526020916006835260406000203360005283526123a560ff60406000205416612b3f565b6000828152600260205260409020546123c8906001600160a01b03161515612f02565b8160005260088352600180604060002001908251906001600160401b038211610329576123f583546129af565b601f81116124b1575b5085601f831160011461246457508180916124319697600093612459575b501b916000199060031b1c1916179055612b9c565b907f9b3089e7af95b8d43fdceb16eb9cbf620a0cb486e1a291b15121a44e0f69127a600080a3005b86015192508861241c565b601f929192198216968460005281600020916000905b89821061249a575050826124319798106105be575050811b019055612b9c565b808684958294958b0151815501940192019061247a565b6124db908460005287600020601f850160051c81019189861061031f57601f0160051c01906129e9565b866123fe565b3461033f5761044a6124f23661283e565b91612505612500843361309c565b612faf565b6131b0565b3461033f57604036600319011261033f57612523612812565b602435906001600160a01b03808061253a85612f4e565b1692169180831461263557803314908115612610575b50156125a557600083815260046020526040902080546001600160a01b0319168317905561257d83612f4e565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b60405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608490fd5b9050600052600560205260406000203360005260205260ff6040600020541684612550565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b3461033f57602036600319011261033f576020611e70600435612f71565b3461033f57600036600319011261033f57604051600080546126c3816129af565b80845290600190818116908115611a6157506001146126ec57610a1d846119f4818603826128a9565b600080805292507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b82841061272d5750505081016020016119f4826119e4565b80546020858701810191909152909301928101612715565b3461033f57602036600319011261033f576004359063ffffffff60e01b821680920361033f57602091637965db0b60e01b8114908115612787575b5015158152f35b6380ac58cd60e01b8114915081156127b9575b81156127a8575b5083612780565b6301ffc9a760e01b149050836127a1565b635b5e139f60e01b8114915061279a565b60005b8381106127dd5750506000910152565b81810151838201526020016127cd565b90602091612806815180928185528580860191016127ca565b601f01601f1916010190565b600435906001600160a01b038216820361033f57565b602435906001600160a01b038216820361033f57565b606090600319011261033f576001600160a01b0390600435828116810361033f5791602435908116810361033f579060443590565b604081019081106001600160401b0382111761032957604052565b602081019081106001600160401b0382111761032957604052565b90601f801991011681019081106001600160401b0382111761032957604052565b6001600160401b03811161032957601f01601f191660200190565b9291926128f1826128ca565b916128ff60405193846128a9565b82948184528183011161033f578281602093846000960137010152565b9080601f8301121561033f57816020612937933591016128e5565b90565b90604060031983011261033f5760043591602435906001600160401b03821161033f576129379160040161291c565b606060031982011261033f57600435916001600160401b0360243581811161033f57836129989160040161291c565b9260443591821161033f576129379160040161291c565b90600182811c921680156129df575b60208310146129c957565b634e487b7160e01b600052602260045260246000fd5b91607f16916129be565b8181106129f4575050565b600081556001016129e9565b15612a0757565b606460405162461bcd60e51b815260206004820152602060248201527f466c65656b4552433732313a206d75737420626520746f6b656e206f776e65726044820152fd5b600092918154612a5a816129af565b92600191808316908115612ab35750600114612a77575b50505050565b90919293945060005260209081600020906000915b858310612aa25750505050019038808080612a71565b805485840152918301918101612a8c565b60ff1916845250505081151590910201915038808080612a71565b60405190612adb82612873565b600a82526921a7a72a2927a62622a960b11b6020830152565b612b3960466040518093602082019565544f4b454e5f60d01b8752612b238151809260206026870191016127ca565b82019060268201520360268101845201826128a9565b51902090565b15612b4657565b60405162461bcd60e51b815260206004820152602860248201527f466c65656b416363657373436f6e74726f6c3a206d757374206861766520746f6044820152676b656e20726f6c6560c01b6064820152608490fd5b612bb4906020604051928284809451938492016127ca565b810103902090565b612bc681546129af565b9081612bd0575050565b81601f60009311600114612be2575055565b81835260208320612bfe91601f0160051c8101906001016129e9565b8160208120915555565b60009080825260209060068252604092838120338252835260ff848220541615612c325750505050565b612c3b336135e1565b91845190608082018281106001600160401b03821117612dfe57865260428252848201926060368537825115612dea5760308453825190600191821015612dea5790607860218501536041915b818311612d7c57505050612d3a576048612d36938693612d1a93612d0b98519889937f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008a860152612ce2815180928c6037890191016127ca565b8401917001034b99036b4b9b9b4b733903937b6329607d1b6037840152518093868401906127ca565b010360288101875201856128a9565b5192839262461bcd60e51b8452600484015260248301906127ed565b0390fd5b60648486519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f81166010811015612dd6576f181899199a1a9b1b9c1cb0b131b232b360811b901a612dac85876135ba565b5360041c928015612dc257600019019190612c88565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b84526041600452602484fd5b906000918083526006602052604083209160018060a01b03169182845260205260ff60408420541615612e4457505050565b80835260066020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4565b906000918083526006602052604083209160018060a01b03169182845260205260ff604084205416612ebd57505050565b8083526006602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4565b15612f0957565b60405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606490fd5b6000908152600260205260409020546001600160a01b0316612937811515612f02565b600081815260026020526040902054612f94906001600160a01b03161515612f02565b6000908152600460205260409020546001600160a01b031690565b15612fb657565b60405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608490fd5b90613035939291613025612500843361309c565b6130308383836131b0565b6132c6565b1561303c57565b60405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608490fd5b906001600160a01b0380806130b084612f4e565b169316918383149384156130e3575b5083156130cd575b50505090565b6130d991929350612f71565b16143880806130c7565b909350600052600560205260406000208260005260205260ff6040600020541692386130bf565b1561311157565b60405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fd5b1561315d57565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b906131d8916131be84612f4e565b6001600160a01b0393918416928492909183168414613156565b1691821561327557816131f5916131ee86612f4e565b1614613156565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60008481526004602052604081206bffffffffffffffffffffffff60a01b9081815416905583825260036020526040822060001981540190558482526040822060018154019055858252600260205284604083209182541617905580a4565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b9293600093909291803b15613427579484916133209660405180948193630a85bd0160e11b9788845233600485015260018060a01b0380921660248501526044840152608060648401528260209b8c9760848301906127ed565b0393165af18491816133e3575b506133d2575050503d6000146133ca573d613347816128ca565b9061335560405192836128a9565b81528091833d92013e5b805191826133c75760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608490fd5b01fd5b50606061335f565b6001600160e01b0319161492509050565b9091508581813d8311613420575b6133fb81836128a9565b8101031261341c57516001600160e01b03198116810361341c57903861332d565b8480fd5b503d6133f1565b505050915050600190565b9061343c826128ca565b61344960405191826128a9565b828152809261345a601f19916128ca565b0190602036910137565b8051156135a657604051606081018181106001600160401b0382111761032957604052604081527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208201527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f60408201528151600292838201809211611993576003918290046001600160fe1b038116810361199357613509908594951b613432565b936020850193829183518401925b838110613555575050505051068060011461354257600214613537575090565b603d90600019015390565b50603d9081600019820153600119015390565b85600491979293949701918251600190603f9082828260121c16880101518453828282600c1c16880101518385015382828260061c1688010151888501531685010151878201530195929190613517565b506040516135b38161288e565b6000815290565b9081518110156135cb570160200190565b634e487b7160e01b600052603260045260246000fd5b60405190606082018281106001600160401b0382111761032957604052602a82526020820160403682378251156135cb576030905381516001908110156135cb57607860218401536029905b80821161368157505061363d5790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f811660108110156136da576f181899199a1a9b1b9c1cb0b131b232b360811b901a6136b084866135ba565b5360041c9180156136c557600019019061362d565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fdfea2646970667358221220f990373a6ee4218bd529d7377a3ea71fd58a85d8659b6121af366d013cd8bb9264736f6c63430008110033",
"sourceMap": "256:7234:1:-:0;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;;;-1:-1:-1;;;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;256:7234:1;;;;;;;;;;;;;;242:34:0;256:7234:1;;;;4478:6:16;256:7234:1;;;;;;;4478:22:16;256:7234:1;;;;;;7185:22:16;256:7234:1;7234:52:16;;;;;256:7234:1;;;519:10:0;256:7234:1;;;;;;;;;;7543:23:16;7539:149;;256:7234:1;;;;;;;;;;7539:149:16;256:7234:1;;;4478:6:16;256:7234:1;;;;;519:10:0;;256:7234:1;;;;;;;;;;;;;;;519:10:0;;7637:40:16;519:10:0;7637:40:16;;;7539:149;;;;;;256:7234:1;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;-1:-1:-1;256:7234:1;;-1:-1:-1;;256:7234:1;;;;;;;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;;;-1:-1:-1;256:7234:1;;;;;-1:-1:-1;256:7234:1;;-1:-1:-1;256:7234:1;;;;;;;;;-1:-1:-1;;256:7234:1;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;",
"linkReferences": {}
},
"deployedBytecode": {
"object": "0x608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146127455750806306fdde03146126a2578063081812fc14612684578063095ea7b31461250a57806323b872dd146124e1578063246a908b14612365578063248a9ca3146123365780632f2ff15d146122fc57806336568abe1461226a5780633806f15214611ff557806342842e0e14611fcd57806342966c6814611e825780636352211e14611e5257806364140ec014611cdf57806370a0823114611c4857806378278cca14611ad557806391d1485414611a8857806395d89b41146119a9578063987c26fd1461168f57806398b7079314611654578063a217fddf14611638578063a22cb46514611566578063b543be1214610b34578063b88d4fde14610ad5578063befaa6a314610ab3578063c87b56dd1461061f578063cdb0e89e1461048b578063d547741f1461044c578063dcd78186146103d5578063e46f29c81461039a578063e985e9c5146103445763f93151771461017f57600080fd5b3461033f5761018d3661293a565b9061019f610199612ace565b82612af4565b6000526020916006835260406000203360005283526101c560ff60406000205416612b3f565b6000828152600260205260409020546101e8906001600160a01b03161515612f02565b816000526008835260036040600020018151936001600160401b0385116103295761021382546129af565b601f81116102ee575b5080601f8611600114610284575093806102519495600091610279575b508160011b916000199060031b1c1916179055612b9c565b907f9f284fd257fb85bc33901e673c078261b0222fbcc4b52c74784c9566808e3cfc600080a3005b905083015138610239565b90601f1986168360005282600020926000905b8282106102d65750509186916102519697600194106102bd575b5050811b019055612b9c565b85015160001960f88460031b161c1916905538806102b1565b80600185968294968a01518155019501930190610297565b610319908360005282600020601f880160051c81019184891061031f575b601f0160051c01906129e9565b3861021c565b909150819061030c565b634e487b7160e01b600052604160045260246000fd5b600080fd5b3461033f57604036600319011261033f5761035d612812565b610365612828565b9060018060a01b03809116600052600560205260406000209116600052602052602060ff604060002054166040519015158152f35b3461033f57600036600319011261033f5760206040517f54812023c8fe13756580f3420840aeb566f69714bea27346e22e4c654756d77e8152f35b3461033f57604036600319011261033f5761044a6004356104456103f7612828565b916104146001600160a01b0361040c83612f4e565b163314612a00565b600081815260026020526040902054610437906001600160a01b03161515612f02565b61043f612ace565b90612af4565b612e12565b005b3461033f57604036600319011261033f5761044a60043561046b612828565b90806000526006602052610486600160406000200154612c08565b612e8c565b3461033f576104993661293a565b906104a5610199612ace565b6000526020916006835260406000203360005283526104cb60ff60406000205416612b3f565b6000828152600260205260409020546104ee906001600160a01b03161515612f02565b816000526008835260406000208151936001600160401b0385116103295761051682546129af565b601f81116105ef575b5080601f861160011461058657509380610553949560009161057b57508160011b916000199060031b1c1916179055612b9c565b907fabf44020991f188f6b302a14e4b7a3dc94de10ed2140a6c03e16f4213d11b1c9600080a3005b905083015186610239565b90601f1986168360005282600020926000905b8282106105d75750509186916105539697600194106105be575050811b019055612b9c565b85015160001960f88460031b161c1916905586806102b1565b80600185968294968a01518155019501930190610599565b610619908360005282600020601f880160051c81019184891061031f57601f0160051c01906129e9565b8561051f565b3461033f5760208060031936011261033f5760043560008181526002602052604090205490919061065a906001600160a01b03161515612f02565b61066382612f4e565b600092835260088252604090922091610684906001600160a01b03166135e1565b60058301546000818152600685018452604081206001958694938583019190807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008181811015610aa5575b5050886d04ee2d6d415b85acef810000000080841015610a97575b5050662386f26fc1000080831015610a88575b506305f5e10080831015610a79575b5061271080831015610a6a575b506064821015610a5a575b600a978880931015610a50575b6021610739828901613432565b97880101905b610a21575b5050604051607b60f81b8982015267113730b6b2911d1160c11b60218201529889969091506107766029880184612a4b565b61088b60f21b8082526e113232b9b1b934b83a34b7b7111d1160891b6002830152926107a791601101908501612a4b565b828152681137bbb732b9111d1160b91b60028201528151916107d1908390600b8401908d016127ca565b0181600b8201526f1132bc3a32b93730b62fbab936111d1160811b600d820152601d01600383019061080291612a4b565b818152681134b6b0b3b2911d1160b91b6002820152600b01600283019061082891612a4b565b9081526e2261747472696275746573223a205b60881b60028201527f7b2274726169745f74797065223a2022454e53222c202276616c7565223a2200601182015261087b91603090910190600401612a4b565b62089f4b60ea1b8082527f7b2274726169745f74797065223a2022436f6d6d69742048617368222c20227660038301526630b63ab2911d1160c91b6023830152926108c991602a0190612a4b565b828152600381017f7b2274726169745f74797065223a20225265706f7369746f7279222c20227661905265363ab2911d1160d11b602382015260290161090e91612a4b565b9081527f7b2274726169745f74797065223a202256657273696f6e222c202276616c7565600382015262111d1160e91b6023820152815191610958908390602684019088016127ca565b0161227d60f01b602682015260288101605d60f81b905260298101607d60f81b9052039081018352602a0161098d90836128a9565b8060405161099a81612873565b601d8152818101937f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c00000085526109ce90613464565b6040519485925190818585016109e3926127ca565b820181519182858084019201916109f9926127ca565b010380845201610a0990836128a9565b6040519181839283528201610a1d916127ed565b0390f35b600019019082906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a835304908a8261073f5750610744565b909501948961072c565b949060646002910491019461071f565b6004919692049101948a610714565b6008919692049101948a610707565b6010919692049101948a6106f8565b96019590910490888b6106e5565b604097500491508a806106ca565b3461033f57604036600319011261033f5761044a6004356104866103f7612828565b3461033f57608036600319011261033f57610aee612812565b610af6612828565b606435916001600160401b03831161033f573660238401121561033f57610b2a61044a9336906024816004013591016128e5565b9160443591613011565b61010036600319011261033f57610b49612812565b6024356001600160401b03811161033f57610b6890369060040161291c565b906044356001600160401b03811161033f57610b8890369060040161291c565b906064356001600160401b03811161033f57610ba890369060040161291c565b926084356001600160401b03811161033f57610bc890369060040161291c565b60a4356001600160401b03811161033f57610be790369060040161291c565b9060c4356001600160401b03811161033f57610c0790369060040161291c565b9560e4356001600160401b03811161033f57610c2790369060040161291c565b3360009081527f6ba1fb09f226a75e067af9a8d207c51e8b8b2c4d25e3ce897223f4dfedce79fd602052604090205490969060ff161561150557600754956001600160a01b038116156114c157600087815260026020526040902054610d589190610c9e906001600160a01b031615155b1561310a565b600088815260026020526040902054610cc1906001600160a01b03161515610c98565b6001600160a01b0381166000818152600360209081526040808320805460010190558b83526002909152812080546001600160a01b031916831790558991907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4600088815260026020526040902054610d47906001600160a01b03161515612f02565b610445610d52612ace565b89612af4565b6001600754016007558560005260086020526040600020948051906001600160401b038211610329578190610d8d88546129af565b601f811161148f575b50602090601f831160011461142357600092611418575b50508160011b916000199060031b1c19161785555b8051906001600160401b038211610329578190610de260018801546129af565b601f81116113e3575b50602090601f831160011461137157600092611366575b50508160011b916000199060031b1c19161760018501555b8051906001600160401b038211610329578190610e3a60028701546129af565b601f8111611331575b50602090601f83116001146112bf576000926112b4575b50508160011b916000199060031b1c19161760028401555b8051906001600160401b038211610329578190610e9260038601546129af565b601f811161127f575b50602090601f831160011461120d57600092611202575b50508160011b916000199060031b1c19161760038301555b8051906001600160401b03821161032957610ee860048401546129af565b601f81116111cd575b50602090601f831160011461115a5760069392916000918361114f575b50508160011b916000199060031b1c19161760048201555b6000600582015560405194610f3a86612873565b8552602085019384526000805201602052604060002092519283516001600160401b03811161032957610f6d82546129af565b601f811161111d575b506020601f82116001146110b357819060019495966000926110a8575b5050600019600383901b1c191690831b1781555b019151908151926001600160401b03841161032957602093610fc982546129af565b601f8111611078575b508493601f821160011461101557938192939460009261100a575b50508160011b916000199060031b1c19161790555b604051908152f35b015190508580610fed565b601f1982169483600052866000209160005b878110611061575083600195969710611048575b505050811b019055611002565b015160001960f88460031b161c1916905585808061103b565b919288600181928685015181550194019201611027565b6110a2908360005286600020601f840160051c81019188851061031f57601f0160051c01906129e9565b85610fd2565b015190508680610f93565b601f198216958360005260206000209660005b81811061110557509160019596979184879594106110ec575b505050811b018155610fa7565b015160001960f88460031b161c191690558680806110df565b838301518955600190980197602093840193016110c6565b61114990836000526020600020601f840160051c8101916020851061031f57601f0160051c01906129e9565b85610f76565b015190508780610f0e565b906004840160005260206000209160005b601f19851681106111b5575091839160019360069695601f1981161061119c575b505050811b016004820155610f26565b015160001960f88460031b161c1916905587808061118c565b9192602060018192868501518155019401920161116b565b6111fc90600485016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129e9565b86610ef1565b015190508780610eb2565b9250600385016000526020600020906000935b601f1984168510611264576001945083601f1981161061124b575b505050811b016003830155610eca565b015160001960f88460031b161c1916905587808061123b565b81810151835560209485019460019093019290910190611220565b6112ae90600387016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129e9565b88610e9b565b015190508880610e5a565b9250600286016000526020600020906000935b601f1984168510611316576001945083601f198116106112fd575b505050811b016002840155610e72565b015160001960f88460031b161c191690558880806112ed565b818101518355602094850194600190930192909101906112d2565b61136090600288016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129e9565b89610e43565b015190508980610e02565b9250600187016000526020600020906000935b601f19841685106113c8576001945083601f198116106113af575b505050811b016001850155610e1a565b015160001960f88460031b161c1916905589808061139f565b81810151835560209485019460019093019290910190611384565b61141290600189016000526020600020601f850160051c8101916020861061031f57601f0160051c01906129e9565b8a610deb565b015190508a80610dad565b9250876000526020600020906000935b601f1984168510611474576001945083601f1981161061145b575b505050811b018555610dc2565b015160001960f88460031b161c191690558a808061144e565b81810151835560209485019460019093019290910190611433565b6114bb90896000526020600020601f850160051c8101916020861061031f57601f0160051c01906129e9565b8b610d96565b606460405162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b60405162461bcd60e51b815260206004820152603360248201527f466c65656b416363657373436f6e74726f6c3a206d757374206861766520636f6044820152726c6c656374696f6e206f776e657220726f6c6560681b6064820152608490fd5b3461033f57604036600319011261033f5761157f612812565b6024359081151580920361033f576001600160a01b0316903382146115f357336000526005602052604060002082600052602052604060002060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b60405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606490fd5b3461033f57600036600319011261033f57602060405160008152f35b3461033f57600036600319011261033f5760206040517fcac50f86c292f6863f130b9e1133a5f875e8e957fed41745b8fa2498550cbdfc8152f35b61169836612969565b91906116ae6001600160a01b0361040c84612f4e565b6000828152600260205260409020546116d1906001600160a01b03161515612f02565b6116e26116dc612ace565b83612af4565b60005260209260068452604060002033600052845261170860ff60406000205416612b3f565b60008381526002602052604090205461172b906001600160a01b03161515612f02565b60405161173781612873565b828152848101918252836000526008855260066040600020016005604060002001908154906000199283831461199357600180930180915560005287526040600020925180516001600160401b039485821161032957839161179982546129af565b93601f948c868211611964575b50508b908583116001146118fe5760009190836118f3575b50508682851b9260031b1c19161781555b019451978851948511610329576117e686546129af565b8281116118bb575b50809185116001146118525750839291839161181f9899600095611847575b50501b9260031b1c1916179055612b9c565b907ff0cd0ce9d5882a10e2780d2d9c805c18e7536b9b2c6412f7bfb7f163656dd0f6600080a3005b01519350898061180d565b91939290601f198416988660005283600020936000905b8b82106118a45750508461181f999a1061188c575b50505050811b019055612b9c565b01519060f88460031b161c191690558680808061187e565b808885978294968601518155019601930190611869565b6118e49087600052826000208480890160051c820192858a106118ea575b0160051c01906129e9565b896117ee565b925081926118d9565b015190508c806117be565b60008481528d8120929190601f198516908f5b82821061194b5750509084879594939210611934575b505050811b0181556117cf565b01518860f88460031b161c191690558c8080611927565b8484015186558a98909501949384019390810190611911565b61198c918560005287826000209181870160051c83019387106118ea570160051c01906129e9565b8c8c6117a6565b634e487b7160e01b600052601160045260246000fd5b3461033f57600036600319011261033f57604051600060018054906119cd826129af565b80855291818116908115611a615750600114611a08575b610a1d846119f4818603826128a9565b6040519182916020835260208301906127ed565b600081815292507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b828410611a495750505081016020016119f4826119e4565b80546020858701810191909152909301928101611a31565b60ff191660208087019190915292151560051b850190920192506119f491508390506119e4565b3461033f57604036600319011261033f57611aa1612828565b600435600052600660205260406000209060018060a01b0316600052602052602060ff604060002054166040519015158152f35b3461033f57611ae33661293a565b90611aef610199612ace565b600052602091600683526040600020336000528352611b1560ff60406000205416612b3f565b600082815260026020526040902054611b38906001600160a01b03161515612f02565b816000526008835260046040600020018151936001600160401b03851161032957611b6382546129af565b601f8111611c18575b5080601f8611600114611bc857509380611ba0949560009161057b57508160011b916000199060031b1c1916179055612b9c565b907fc1b5a2141fc60537be795a8771f5e8c80188922acb5399a6e463ea95aa852f31600080a3005b90601f1986168360005282600020926000905b828210611c00575050918691611ba09697600194106105be575050811b019055612b9c565b80600185968294968a01518155019501930190611bdb565b611c42908360005282600020601f880160051c81019184891061031f57601f0160051c01906129e9565b85611b6c565b3461033f57602036600319011261033f576001600160a01b03611c69612812565b168015611c885760005260036020526020604060002054604051908152f35b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608490fd5b3461033f57611ced3661293a565b90611cf9610199612ace565b600052602091600683526040600020336000528352611d1f60ff60406000205416612b3f565b600082815260026020526040902054611d42906001600160a01b03161515612f02565b816000526008835260026040600020018151936001600160401b03851161032957611d6d82546129af565b601f8111611e22575b5080601f8611600114611dd257509380611daa949560009161057b57508160011b916000199060031b1c1916179055612b9c565b907fb041870856ebefdd6a3cb1ac665eb6739281b855c912ff622e814dbf91c96bb6600080a3005b90601f1986168360005282600020926000905b828210611e0a575050918691611daa9697600194106105be575050811b019055612b9c565b80600185968294968a01518155019501930190611de5565b611e4c908360005282600020601f880160051c81019184891061031f57601f0160051c01906129e9565b85611d76565b3461033f57602036600319011261033f576020611e70600435612f4e565b6040516001600160a01b039091168152f35b3461033f5760208060031936011261033f5760043590611ea36116dc612ace565b600052600681526040600020336000528152611ec660ff60406000205416612b3f565b8160006001600160a01b03611ee63382611edf86612f4e565b1614612a00565b611eef83612f4e565b50611ef983612f4e565b908383526004855260408320916bffffffffffffffffffffffff60a01b92838154169055169081835260038552604083208319815401905583835260028552604083209081541690557fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a460088152611f7b6003604060002001546129af565b611f8157005b600891600052526000600560408220611f9981612bbc565b611fa560018201612bbc565b611fb160028201612bbc565b611fbd60038201612bbc565b611fc960048201612bbc565b0155005b3461033f5761044a611fde3661283e565b9060405192611fec8461288e565b60008452613011565b3461033f5761200336612969565b91906120106116dc612ace565b60005260209260068452604060002033600052845261203660ff60406000205416612b3f565b600083815260026020526040902054612059906001600160a01b03161515612f02565b60405161206581612873565b828152848101918252836000526008855260066040600020016005604060002001908154906000199283831461199357600180930180915560005287526040600020925180516001600160401b03948582116103295783916120c782546129af565b93601f948c86821161223b575b50508b908583116001146121d55760009190836121ca575b50508682851b9260031b1c19161781555b0194519788519485116103295761211486546129af565b82811161219c575b508091851160011461214c5750839291839161181f98996000956118475750501b9260031b1c1916179055612b9c565b91939290601f198416988660005283600020936000905b8b82106121855750508461181f999a1061188c5750505050811b019055612b9c565b808885978294968601518155019601930190612163565b6121c49087600052826000208480890160051c820192858a106118ea570160051c01906129e9565b8961211c565b015190508c806120ec565b60008481528d8120929190601f198516908f5b828210612222575050908487959493921061220b575b505050811b0181556120fd565b01518860f88460031b161c191690558c80806121fe565b8484015186558a989095019493840193908101906121e8565b612263918560005287826000209181870160051c83019387106118ea570160051c01906129e9565b8c8c6120d4565b3461033f57604036600319011261033f57612283612828565b336001600160a01b0382160361229f5761044a90600435612e8c565b60405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608490fd5b3461033f57604036600319011261033f5761044a60043561231b612828565b90806000526006602052610445600160406000200154612c08565b3461033f57602036600319011261033f5760043560005260066020526020600160406000200154604051908152f35b3461033f576123733661293a565b9061237f610199612ace565b6000526020916006835260406000203360005283526123a560ff60406000205416612b3f565b6000828152600260205260409020546123c8906001600160a01b03161515612f02565b8160005260088352600180604060002001908251906001600160401b038211610329576123f583546129af565b601f81116124b1575b5085601f831160011461246457508180916124319697600093612459575b501b916000199060031b1c1916179055612b9c565b907f9b3089e7af95b8d43fdceb16eb9cbf620a0cb486e1a291b15121a44e0f69127a600080a3005b86015192508861241c565b601f929192198216968460005281600020916000905b89821061249a575050826124319798106105be575050811b019055612b9c565b808684958294958b0151815501940192019061247a565b6124db908460005287600020601f850160051c81019189861061031f57601f0160051c01906129e9565b866123fe565b3461033f5761044a6124f23661283e565b91612505612500843361309c565b612faf565b6131b0565b3461033f57604036600319011261033f57612523612812565b602435906001600160a01b03808061253a85612f4e565b1692169180831461263557803314908115612610575b50156125a557600083815260046020526040902080546001600160a01b0319168317905561257d83612f4e565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b60405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608490fd5b9050600052600560205260406000203360005260205260ff6040600020541684612550565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b3461033f57602036600319011261033f576020611e70600435612f71565b3461033f57600036600319011261033f57604051600080546126c3816129af565b80845290600190818116908115611a6157506001146126ec57610a1d846119f4818603826128a9565b600080805292507f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b82841061272d5750505081016020016119f4826119e4565b80546020858701810191909152909301928101612715565b3461033f57602036600319011261033f576004359063ffffffff60e01b821680920361033f57602091637965db0b60e01b8114908115612787575b5015158152f35b6380ac58cd60e01b8114915081156127b9575b81156127a8575b5083612780565b6301ffc9a760e01b149050836127a1565b635b5e139f60e01b8114915061279a565b60005b8381106127dd5750506000910152565b81810151838201526020016127cd565b90602091612806815180928185528580860191016127ca565b601f01601f1916010190565b600435906001600160a01b038216820361033f57565b602435906001600160a01b038216820361033f57565b606090600319011261033f576001600160a01b0390600435828116810361033f5791602435908116810361033f579060443590565b604081019081106001600160401b0382111761032957604052565b602081019081106001600160401b0382111761032957604052565b90601f801991011681019081106001600160401b0382111761032957604052565b6001600160401b03811161032957601f01601f191660200190565b9291926128f1826128ca565b916128ff60405193846128a9565b82948184528183011161033f578281602093846000960137010152565b9080601f8301121561033f57816020612937933591016128e5565b90565b90604060031983011261033f5760043591602435906001600160401b03821161033f576129379160040161291c565b606060031982011261033f57600435916001600160401b0360243581811161033f57836129989160040161291c565b9260443591821161033f576129379160040161291c565b90600182811c921680156129df575b60208310146129c957565b634e487b7160e01b600052602260045260246000fd5b91607f16916129be565b8181106129f4575050565b600081556001016129e9565b15612a0757565b606460405162461bcd60e51b815260206004820152602060248201527f466c65656b4552433732313a206d75737420626520746f6b656e206f776e65726044820152fd5b600092918154612a5a816129af565b92600191808316908115612ab35750600114612a77575b50505050565b90919293945060005260209081600020906000915b858310612aa25750505050019038808080612a71565b805485840152918301918101612a8c565b60ff1916845250505081151590910201915038808080612a71565b60405190612adb82612873565b600a82526921a7a72a2927a62622a960b11b6020830152565b612b3960466040518093602082019565544f4b454e5f60d01b8752612b238151809260206026870191016127ca565b82019060268201520360268101845201826128a9565b51902090565b15612b4657565b60405162461bcd60e51b815260206004820152602860248201527f466c65656b416363657373436f6e74726f6c3a206d757374206861766520746f6044820152676b656e20726f6c6560c01b6064820152608490fd5b612bb4906020604051928284809451938492016127ca565b810103902090565b612bc681546129af565b9081612bd0575050565b81601f60009311600114612be2575055565b81835260208320612bfe91601f0160051c8101906001016129e9565b8160208120915555565b60009080825260209060068252604092838120338252835260ff848220541615612c325750505050565b612c3b336135e1565b91845190608082018281106001600160401b03821117612dfe57865260428252848201926060368537825115612dea5760308453825190600191821015612dea5790607860218501536041915b818311612d7c57505050612d3a576048612d36938693612d1a93612d0b98519889937f416363657373436f6e74726f6c3a206163636f756e74200000000000000000008a860152612ce2815180928c6037890191016127ca565b8401917001034b99036b4b9b9b4b733903937b6329607d1b6037840152518093868401906127ca565b010360288101875201856128a9565b5192839262461bcd60e51b8452600484015260248301906127ed565b0390fd5b60648486519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f81166010811015612dd6576f181899199a1a9b1b9c1cb0b131b232b360811b901a612dac85876135ba565b5360041c928015612dc257600019019190612c88565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b634e487b7160e01b84526041600452602484fd5b906000918083526006602052604083209160018060a01b03169182845260205260ff60408420541615612e4457505050565b80835260066020526040832082845260205260408320600160ff198254161790557f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d339380a4565b906000918083526006602052604083209160018060a01b03169182845260205260ff604084205416612ebd57505050565b8083526006602052604083208284526020526040832060ff1981541690557ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b339380a4565b15612f0957565b60405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e20494400000000000000006044820152606490fd5b6000908152600260205260409020546001600160a01b0316612937811515612f02565b600081815260026020526040902054612f94906001600160a01b03161515612f02565b6000908152600460205260409020546001600160a01b031690565b15612fb657565b60405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608490fd5b90613035939291613025612500843361309c565b6130308383836131b0565b6132c6565b1561303c57565b60405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608490fd5b906001600160a01b0380806130b084612f4e565b169316918383149384156130e3575b5083156130cd575b50505090565b6130d991929350612f71565b16143880806130c7565b909350600052600560205260406000208260005260205260ff6040600020541692386130bf565b1561311157565b60405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fd5b1561315d57565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b906131d8916131be84612f4e565b6001600160a01b0393918416928492909183168414613156565b1691821561327557816131f5916131ee86612f4e565b1614613156565b7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60008481526004602052604081206bffffffffffffffffffffffff60a01b9081815416905583825260036020526040822060001981540190558482526040822060018154019055858252600260205284604083209182541617905580a4565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b9293600093909291803b15613427579484916133209660405180948193630a85bd0160e11b9788845233600485015260018060a01b0380921660248501526044840152608060648401528260209b8c9760848301906127ed565b0393165af18491816133e3575b506133d2575050503d6000146133ca573d613347816128ca565b9061335560405192836128a9565b81528091833d92013e5b805191826133c75760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b6064820152608490fd5b01fd5b50606061335f565b6001600160e01b0319161492509050565b9091508581813d8311613420575b6133fb81836128a9565b8101031261341c57516001600160e01b03198116810361341c57903861332d565b8480fd5b503d6133f1565b505050915050600190565b9061343c826128ca565b61344960405191826128a9565b828152809261345a601f19916128ca565b0190602036910137565b8051156135a657604051606081018181106001600160401b0382111761032957604052604081527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208201527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f60408201528151600292838201809211611993576003918290046001600160fe1b038116810361199357613509908594951b613432565b936020850193829183518401925b838110613555575050505051068060011461354257600214613537575090565b603d90600019015390565b50603d9081600019820153600119015390565b85600491979293949701918251600190603f9082828260121c16880101518453828282600c1c16880101518385015382828260061c1688010151888501531685010151878201530195929190613517565b506040516135b38161288e565b6000815290565b9081518110156135cb570160200190565b634e487b7160e01b600052603260045260246000fd5b60405190606082018281106001600160401b0382111761032957604052602a82526020820160403682378251156135cb576030905381516001908110156135cb57607860218401536029905b80821161368157505061363d5790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f811660108110156136da576f181899199a1a9b1b9c1cb0b131b232b360811b901a6136b084866135ba565b5360041c9180156136c557600019019061362d565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fdfea2646970667358221220f990373a6ee4218bd529d7377a3ea71fd58a85d8659b6121af366d013cd8bb9264736f6c63430008110033",
"sourceMap": "256:7234:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1146:33:0;256:7234:1;;:::i;:::-;1146:33:0;;:::i;:::-;256:7234:1;;;;3004:6:16;256:7234:1;;;;;1181:10:0;256:7234:1;;;;1116:144:0;256:7234:1;;;;;;1116:144:0;:::i;:::-;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7234:1;7344:31:18;;13539:53;:::i;:::-;256:7234:1;;;5518:5;256:7234;;5518:27;256:7234;;;5518:27;256:7234;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5580:47;256:7234;;;;;;;;;;;;;;;5518:27;256:7234;;;;;;;5580:47;:::i;:::-;;;256:7234;5580:47;;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5580:47;256:7234;;;;;;;;;;;;;;;5580:47;:::i;256:7234::-;;;;;;;;5518:27;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;4508:18:18;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;345:39:0;256:7234:1;;;;;;;;;-1:-1:-1;;256:7234:1;;;;4525:10;256:7234;;4490:33;256:7234;;:::i;:::-;;1813:109;-1:-1:-1;;;;;1848:16:1;256:7234;1848:16;:::i;:::-;256:7234;1834:10;:30;1813:109;:::i;:::-;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7234:1;7344:31:18;;13539:53;:::i;:::-;256:7234:1;;:::i;:::-;4490:33;;:::i;:::-;4525:10;:::i;:::-;256:7234;;;;;;;-1:-1:-1;;256:7234:1;;;;5360:7:16;256:7234:1;;;;:::i;:::-;;;;;4478:6:16;256:7234:1;;2516:4:16;256:7234:1;;;;4478:22:16;256:7234:1;2516:4:16;:::i;:::-;5360:7;:::i;256:7234:1:-;;;;;;;:::i;:::-;;1146:33:0;256:7234:1;;:::i;1146:33:0:-;256:7234:1;;;;3004:6:16;256:7234:1;;;;;1181:10:0;256:7234:1;;;;1116:144:0;256:7234:1;;;;;;1116:144:0;:::i;:::-;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7234:1;7344:31:18;;13539:53;:::i;:::-;256:7234:1;;;6081:5;256:7234;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6128:33;256:7234;;;;;;;;;;;;;;;;;;;;;;6128:33;:::i;:::-;;;256:7234;6128:33;;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6128:33;256:7234;;;;;;;;;;;;;;6128:33;:::i;256:7234::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;;;13547:16:18;13539:53;;-1:-1:-1;;;;;256:7234:1;7344:31:18;;13539:53;:::i;:::-;3333:16:1;;;:::i;:::-;256:7234;;;;3377:5;256:7234;;;;;;;3591:39;;-1:-1:-1;;;;;256:7234:1;3591:39;:::i;:::-;3923:17;;;256:7234;;;;;3912:10;;;256:7234;;;;;;;;;3923:17;4023:44;;;;3923:17;256:7234;10026:6:29;256:7234:1;10017:15:29;;;;10013:99;;256:7234:1;10138:6:29;;;;10129:15;;;;10125:99;;256:7234:1;10250:6:29;;;10241:15;;;;10237:99;;256:7234:1;10362:5:29;;10353:14;;;;10349:96;;256:7234:1;10471:5:29;;10462:14;;;;10458:96;;256:7234:1;10571:14:29;10580:5;10571:14;;;10567:96;;256:7234:1;10689:5:29;10680:14;;;;;;10676:64;;256:7234:1;699:76:26;595:18;256:7234:1;;;595:18:26;:::i;:::-;627:11;699:76;;;788:280;256:7234:1;;;788:280:26;-1:-1:-1;;256:7234:1;;-1:-1:-1;;;3425:797:1;;;256:7234;-1:-1:-1;;;699:76:26;256:7234:1;;;;;;3425:797;;-1:-1:-1;256:7234:1;;;;;;:::i;:::-;-1:-1:-1;;;256:7234:1;;;-1:-1:-1;;;3727:9:1;256:7234;;;;;;;;;3539:15;;256:7234;:::i;:::-;;;;-1:-1:-1;;;3727:9:1;256:7234;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;3674:16;;256:7234;;;;:::i;:::-;;;;;;;3727:9;256:7234;;;;;3727:9;;;256:7234;;;;:::i;:::-;;;;-1:-1:-1;;;3727:9:1;256:7234;;;;;;;;;;;;;;;;3834:7;256:7234;:::i;:::-;-1:-1:-1;;;256:7234:1;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;-1:-1:-1;;;256:7234:1;;3425:797;;;;;;256:7234;3425:797;;;;;:::i;:::-;256:7234;;;;;;:::i;:::-;;;;;;;;;;;4276:24;;;:::i;:::-;256:7234;;;;;;4247:54;;;;;256:7234;;;:::i;:::-;;;;;;;;;;;;;;;;;:::i;:::-;;4247:54;;;;;;;;;:::i;:::-;256:7234;;;;;;;;;;;;;:::i;:::-;;;;788:280:26;-1:-1:-1;;256:7234:1;;;;-1:-1:-1;;;893:93:26;;;;256:7234:1;893:93:26;345:66:23;1003:11:26;;;788:280;1032:21;1048:5;;;10676:64:29;256:7234:1;;;10676:64:29;;;;10567:96;345:66:23;;10580:5:29;3727:9:1;345:66:23;;256:7234:1;;10567:96:29;;;10458;256:7234:1;345:66:23;;;;256:7234:1;;10458:96:29;;;;10349;3377:5:1;345:66:23;;;;256:7234:1;;10349:96:29;;;;10237:99;10319:2;345:66:23;;;;256:7234:1;;10237:99:29;;;;10125;256:7234:1;;;345:66:23;;;;10125:99:29;;;;10013;256:7234:1;;-1:-1:-1;345:66:23;;-1:-1:-1;10013:99:29;;;;256:7234:1;;;;;;-1:-1:-1;;256:7234:1;;;;4973:10;256:7234;;4938:33;256:7234;;:::i;:::-;;;;;;-1:-1:-1;;256:7234:1;;;;;;:::i;:::-;;;:::i;:::-;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;-1:-1:-1;;256:7234:1;;;;;;:::i;:::-;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;:::i;:::-;644:10:0;256:7234:1;;;;;;;;;;;;;;;;;;;2298:9;256:7234;;-1:-1:-1;;;;;256:7234:1;;9170:16:18;256:7234:1;;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;4525:10;;9242:16:18;9233:58;;-1:-1:-1;;;;;256:7234:1;7344:31:18;;9242:16;9241:17;9233:58;:::i;:::-;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;9437:58:18;;-1:-1:-1;;;;;256:7234:1;7344:31:18;;9446:16;7256:126;9437:58;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;9876:7:18;256:7234:1;;;;;;;-1:-1:-1;;;;;;256:7234:1;;;;;;;;9913:33:18;256:7234:1;;9913:33:18;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7234:1;7344:31:18;;13539:53;:::i;:::-;4490:33:1;256:7234;;:::i;:::-;4490:33;;:::i;4525:10::-;256:7234;2298:9;256:7234;;2298:9;256:7234;;;;2447:5;256:7234;;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;2496:15;;256:7234;;2496:15;;256:7234;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2496:15;;256:7234;;;;;-1:-1:-1;;;;;256:7234:1;;;;2535:9;;256:7234;9876:7:18;2535:9:1;;256:7234;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9876:7:18;2535:9:1;;256:7234;;;;;-1:-1:-1;;;;;256:7234:1;;;;2562:16;;256:7234;;2562:16;;256:7234;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2562:16;;256:7234;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;2603:7;;256:7234;;:::i;:::-;;;;;;;;;;;;;;;;;3004:6:16;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;2603:7;;256:7234;;;2791:17;;;256:7234;;;;;;;:::i;:::-;;;;2838:34;;256:7234;;;;;;2822:10;256:7234;;;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;256:7234:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2791:17;256:7234;;;;;;;;;;;2791:17;256:7234;;;;:::i;:::-;;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2791:17;256:7234;;;;;;;;;;;2791:17;256:7234;;;;:::i;:::-;;;;;;;;-1:-1:-1;256:7234:1;;;;;2603:7;256:7234;2603:7;;256:7234;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;;;;;3004:6:16;256:7234:1;;;;;;;;;;;;;;;;;2603:7;;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2603:7;256:7234;2603:7;;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;256:7234:1;;;;;2562:16;;256:7234;2562:16;;256:7234;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;2562:16;;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2562:16;256:7234;2562:16;;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;256:7234:1;;;;;2535:9;;9876:7:18;2535:9:1;;256:7234;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;9876:7:18;2535:9:1;;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2535:9;9876:7:18;2535:9:1;;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;256:7234:1;;;;;2496:15;;256:7234;2496:15;;256:7234;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;2496:15;;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2496:15;256:7234;2496:15;;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;:::i;:::-;;;;;;;;;;;;-1:-1:-1;;;;;256:7234:1;;719:10:24;13216:17:18;;256:7234:1;;719:10:24;256:7234:1;;13273:18:18;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13334:41:18;256:7234:1;719:10:24;13334:41:18;;256:7234:1;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;242:34:0;256:7234:1;;;;;;;:::i;:::-;;;1813:109;-1:-1:-1;;;;;1848:16:1;256:7234;1848:16;:::i;1813:109::-;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7234:1;7344:31:18;;13539:53;:::i;:::-;1146:33:0;256:7234:1;;:::i;:::-;1146:33:0;;:::i;:::-;256:7234:1;;;;3004:6:16;256:7234:1;;;;;1834:10;256:7234;;;;1116:144:0;256:7234:1;;;;;;1116:144:0;:::i;:::-;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7234:1;7344:31:18;;13539:53;:::i;:::-;256:7234:1;;;;;:::i;:::-;;;;7037:36;;;256:7234;;;;;;6981:5;256:7234;;3004:6:16;256:7234:1;;;6981:21;7005:28;256:7234;;;7005:28;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;7088:31;256:7234;;;;;;;;;;;;;;;;;;;7088:31;:::i;:::-;;;256:7234;7088:31;;256:7234;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7088:31;256:7234;;;;;;;;;;;;;;;7088:31;:::i;256:7234::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7005:28;256:7234;;;;;;;;;;;7005:28;256:7234;;;;:::i;:::-;;;;;;;;;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7005:28;256:7234;;;;;;;;;7005:28;256:7234;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;2721:7:18;256:7234:1;;;;;;:::i;:::-;;;;;;;;;2721:7:18;;;;256:7234:1;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;256:7234:1;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;;;;;;;;;;;;;-1:-1:-1;256:7234:1;;-1:-1:-1;256:7234:1;;-1:-1:-1;256:7234:1;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;:::i;:::-;;;;;3004:6:16;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;1146:33:0;256:7234:1;;:::i;1146:33:0:-;256:7234:1;;;;3004:6:16;256:7234:1;;;;;1181:10:0;256:7234:1;;;;1116:144:0;256:7234:1;;;;;;1116:144:0;:::i;:::-;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7234:1;7344:31:18;;13539:53;:::i;:::-;256:7234:1;;;5815:5;256:7234;;;;;;5815:18;256:7234;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;5860:31;256:7234;;;;;;;;;;;;;;;;;;;;;;5860:31;:::i;:::-;;;256:7234;5860:31;;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;;;5860:31;256:7234;;;;;;;;;;;;;;5860:31;:::i;256:7234::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;-1:-1:-1;;;;;256:7234:1;;:::i;:::-;;2028:19:18;;256:7234:1;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;:::i;:::-;;1146:33:0;256:7234:1;;:::i;1146:33:0:-;256:7234:1;;;;3004:6:16;256:7234:1;;;;;1181:10:0;256:7234:1;;;;1116:144:0;256:7234:1;;;;;;1116:144:0;:::i;:::-;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7234:1;7344:31:18;;13539:53;:::i;:::-;256:7234:1;;;6665:5;256:7234;;6665:20;256:7234;;;6665:20;256:7234;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;6714:35;256:7234;;;;;;;;;;;;;;;;;;;;;;6714:35;:::i;:::-;;;256:7234;6714:35;;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;;;6714:35;256:7234;;;;;;;;;;;;;;6714:35;:::i;256:7234::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;;:::i;:::-;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;1146:33:0;256:7234:1;;:::i;1146:33:0:-;256:7234:1;;3004:6:16;256:7234:1;;;;;1181:10:0;256:7234:1;;;;1116:144:0;256:7234:1;;;;;;1116:144:0;:::i;:::-;256:7234:1;;-1:-1:-1;;;;;7234:109:1;1181:10:0;256:7234:1;7255:16;256:7234;7255:16;:::i;:::-;256:7234;7255:30;7234:109;:::i;:::-;10412:23:18;;;:::i;:::-;;10607;;;:::i;:::-;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10963:7:18;256:7234:1;;;;;;;;;;;10995:36:18;;;;7394:5:1;256:7234;;;;;;;7394:27;256:7234;;:::i;:::-;7384:98;;256:7234;7384:98;7394:5;256:7234;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;10963:7:18;256:7234:1;;;:::i;:::-;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;;;;5137:39:18;256:7234:1;;;:::i;:::-;;;;;;;;:::i;:::-;;;;5137:39:18;:::i;256:7234:1:-;;;;;;;:::i;:::-;;;1146:33:0;256:7234:1;;:::i;1146:33:0:-;256:7234:1;;;;3004:6:16;256:7234:1;;;;;1181:10:0;256:7234:1;;;;1116:144:0;256:7234:1;;;;;;1116:144:0;:::i;:::-;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7234:1;7344:31:18;;13539:53;:::i;:::-;256:7234:1;;;;;:::i;:::-;;;;7037:36;;;256:7234;;;;;;6981:5;256:7234;;3004:6:16;256:7234:1;;;6981:21;7005:28;256:7234;;;7005:28;256:7234;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;7088:31;256:7234;;;;;;;;;;;;;;;;;;7088:31;:::i;256:7234::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;7088:31;256:7234;;;;;;;;;;;;;;7088:31;:::i;256:7234::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7005:28;256:7234;;;;;;;;;;7005:28;256:7234;;;;:::i;:::-;;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7005:28;256:7234;;;;;;;;;7005:28;256:7234;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;:::i;:::-;719:10:24;-1:-1:-1;;;;;256:7234:1;;6007:23:16;256:7234:1;;6111:7:16;256:7234:1;;;6111:7:16;:::i;256:7234:1:-;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;4933:7:16;256:7234:1;;;;:::i;:::-;;;;;4478:6:16;256:7234:1;;2516:4:16;256:7234:1;;;;4478:22:16;256:7234:1;2516:4:16;:::i;256:7234:1:-;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;4478:6:16;256:7234:1;;;;;;;4478:22:16;256:7234:1;;;;;;;;;;;;;;:::i;:::-;;1146:33:0;256:7234:1;;:::i;1146:33:0:-;256:7234:1;;;;3004:6:16;256:7234:1;;;;;1181:10:0;256:7234:1;;;;1116:144:0;256:7234:1;;;;;;1116:144:0;:::i;:::-;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7234:1;7344:31:18;;13539:53;:::i;:::-;256:7234:1;;;6365:5;256:7234;;6365:26;256:7234;;;;6365:26;256:7234;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;6426:47;256:7234;;;;;;;;;;;;;;;;;;;;;6426:47;:::i;:::-;;;256:7234;6426:47;;256:7234;;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;6426:47;256:7234;;;;;;;;;;;;6426:47;:::i;256:7234::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;4923:7:18;256:7234:1;;;:::i;:::-;719:10:24;4793:99:18;4801:41;719:10:24;;4801:41:18;:::i;:::-;4793:99;:::i;:::-;4923:7;:::i;256:7234:1:-;;;;;;-1:-1:-1;;256:7234:1;;;;;;:::i;:::-;;;;-1:-1:-1;;;;;256:7234:1;;3564:23:18;256:7234:1;3564:23:18;:::i;:::-;256:7234:1;;;3605:11:18;;;;256:7234:1;;719:10:24;;3686:21:18;:62;;;;;256:7234:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;256:7234:1;;;;;12895:23:18;256:7234:1;12895:23:18;:::i;:::-;256:7234:1;12886:46:18;256:7234:1;12886:46:18;;256:7234:1;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;3686:62:18;256:7234:1;;;;4508:18:18;256:7234:1;;;;;719:10:24;256:7234:1;;;;;;;;;;3686:62:18;;;256:7234:1;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;-1:-1:-1;256:7234:1;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;2714:47:16;;;:87;;;;256:7234:1;;;;;;;2714:87:16;-1:-1:-1;;;1707:40:18;;;-1:-1:-1;1707:104:18;;;;2714:87:16;1707:156:18;;;;2714:87:16;;;;;1707:156:18;-1:-1:-1;;;937:40:27;;-1:-1:-1;1707:156:18;;;:104;-1:-1:-1;;;1763:48:18;;;-1:-1:-1;1707:104:18;;256:7234:1;;;;;;;;-1:-1:-1;;256:7234:1;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;256:7234:1;;;;:::o;:::-;;;;-1:-1:-1;;;;;256:7234:1;;;;;;:::o;:::-;;;;-1:-1:-1;;;;;256:7234:1;;;;;;:::o;:::-;;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;:::o;:::-;;;;;;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;:::o;:::-;-1:-1:-1;;;;;256:7234:1;;;;;;-1:-1:-1;;256:7234:1;;;;:::o;:::-;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;-1:-1:-1;256:7234:1;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;:::o;:::-;;;-1:-1:-1;;256:7234:1;;;;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;:::i;:::-;;-1:-1:-1;;256:7234:1;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;-1:-1:-1;256:7234:1;;;;-1:-1:-1;256:7234:1;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;256:7234:1;;;-1:-1:-1;;;256:7234:1;;;;;;;;-1:-1:-1;256:7234:1;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;256:7234:1;;;;:::o;1288:192:0:-;1430:41;;256:7234:1;;1430:41:0;;;;;256:7234:1;-1:-1:-1;;;256:7234:1;;;;;;;1430:41:0;256:7234:1;;;;;;:::i;:::-;;;;;;;;1430:41:0;256:7234:1;1430:41:0;;;;;;;:::i;:::-;256:7234:1;1420:52:0;;1288:192;:::o;256:7234:1:-;;;;:::o;:::-;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;:::i;:::-;;;;;;;:::o;:::-;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::o;3334:103:16:-;-1:-1:-1;256:7234:1;;;;;;3004:6:16;256:7234:1;;;;;;;719:10:24;256:7234:1;;;;;;;;;;3805:23:16;3801:390;;3334:103;;;;:::o;3801:390::-;2192:52:26;719:10:24;2192:52:26;:::i;:::-;4088:38:16;256:7234:1;;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;;;345:66:23;256:7234:1;345:66:23;;;256:7234:1;;;;;1670:15:26;;;256:7234:1;;;;;;;;;;;1695:15:26;256:7234:1;;;1695:15:26;256:7234:1;1720:128:26;1753:5;;;;;;1865:10;;;246:18;;256:7234:1;;;;;3896:252:16;256:7234:1;;;;3896:252:16;;;256:7234:1;3896:252:16;;;256:7234:1;;;;;;;;;;;;;:::i;:::-;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;:::i;:::-;;3896:252:16;;;;;;;;;:::i;:::-;256:7234:1;;;;;;;3844:336:16;;1836:1:26;3844:336:16;;256:7234:1;;;;;;:::i;:::-;3844:336:16;;;246:18:26;;256:7234:1;;;;;;;246:18:26;;;1836:1;246:18;;;;;;256:7234:1;246:18:26;256:7234:1;;;246:18:26;;1760:3;1800:11;;;1808:3;1800:11;;1791:21;;;;;;-1:-1:-1;;;1791:21:26;;1779:33;;;;:::i;:::-;;1836:1;256:7234:1;1760:3:26;256:7234:1;;;;-1:-1:-1;;256:7234:1;;1725:26:26;;;256:7234:1;-1:-1:-1;;;256:7234:1;;;1836:1:26;256:7234:1;;;;1791:21:26;-1:-1:-1;;;256:7234:1;;;1836:1:26;256:7234:1;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;;7461:233:16;;-1:-1:-1;256:7234:1;;;;3004:6:16;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;7543:23:16;7539:149;;7461:233;;;:::o;7539:149::-;256:7234:1;;;3004:6:16;256:7234:1;;;;;;;;;;;;;;;;;;;;;;7637:40:16;719:10:24;7637:40:16;;;7461:233::o;7865:234::-;;-1:-1:-1;256:7234:1;;;;3004:6:16;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;7944:149:16;;7865:234;;;:::o;7944:149::-;256:7234:1;;;3004:6:16;256:7234:1;;;;;;;;;;;;;;;;;;;;8042:40:16;719:10:24;8042:40:16;;;7865:234::o;256:7234:1:-;;;;:::o;:::-;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;;;;2190:219:18;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;-1:-1:-1;;;;;256:7234:1;2324:56:18;2332:19;;;2324:56;:::i;3935:167::-;-1:-1:-1;256:7234:1;;;6930:7:18;256:7234:1;;;;;;13539:53:18;;-1:-1:-1;;;;;256:7234:1;7344:31:18;;13539:53;:::i;:::-;-1:-1:-1;256:7234:1;;;4071:15:18;256:7234:1;;;;;;-1:-1:-1;;;;;256:7234:1;;3935:167:18:o;256:7234:1:-;;;;:::o;:::-;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;5249:314:18;;6620:47;5249:314;;;5409:99;5417:41;719:10:24;;5417:41:18;:::i;5409:99::-;6594:7;;;;;:::i;:::-;6620:47;:::i;:::-;256:7234:1;;;5249:314:18:o;256:7234:1:-;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;3844:336:16;7540:261:18;;-1:-1:-1;;;;;256:7234:1;;7665:23:18;7540:261;7665:23;:::i;:::-;256:7234:1;;;7706:16:18;;;;:52;;;;;7540:261;7706:87;;;;;7540:261;7698:96;;;7540:261;:::o;7706:87::-;7762:20;;;;;;:::i;:::-;256:7234:1;7762:31:18;7706:87;;;;;:52;256:7234:1;;;-1:-1:-1;256:7234:1;4508:18:18;256:7234:1;;;-1:-1:-1;256:7234:1;;-1:-1:-1;256:7234:1;;;;;-1:-1:-1;256:7234:1;;;7706:52:18;;;;256:7234:1;;;;:::o;:::-;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;11423:1233:18;;11542:81;11423:1233;11550:23;;;:::i;:::-;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;11550:31:18;;11542:81;:::i;:::-;256:7234:1;11641:16:18;;;256:7234:1;;11851:23:18;11843:81;11851:23;;;;:::i;:::-;256:7234:1;11851:31:18;11843:81;:::i;:::-;12570:27;11655:1;256:7234:1;;;11993:15:18;256:7234:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;12533:7:18;256:7234:1;;;;;;;;;;;;;12570:27:18;;11423:1233::o;256:7234:1:-;;;-1:-1:-1;;;256:7234:1;;;;;;;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;;14151:831:18;;;256:7234:1;;14151:831:18;;;1465:19:22;;:23;:19;;256:7234:1;;;;;;;;;;;;;;14355:71:18;;;;719:10:24;14355:71:18;;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;14355:71:18;;256:7234:1;;;;;;;;:::i;:::-;14355:71:18;256:7234:1;;14355:71:18;;;;;;;14316:660;-1:-1:-1;14351:573:18;;14543:381;;;256:7234:1;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;14593:18:18;;;256:7234:1;;-1:-1:-1;;;14635:60:18;;256:7234:1;14355:71:18;14635:60;;256:7234:1;;;;;;;;;;;-1:-1:-1;;;256:7234:1;;;;;;3844:336:16;14589:321:18;14797:95;;256:7234:1;;;;;14351:573:18;-1:-1:-1;;;;;;256:7234:1;14476:51:18;;-1:-1:-1;256:7234:1;-1:-1:-1;14469:58:18:o;14355:71::-;;;;;;;;;;;;;;;;;:::i;:::-;;;256:7234:1;;;;;-1:-1:-1;;;;;;256:7234:1;;;;;;14355:71:18;;;;256:7234:1;;;;14355:71:18;;;;;14316:660;14954:11;;;;;;14961:4;14954:11;:::o;345:66:23:-;;256:7234:1;;;:::i;:::-;;;;;;;:::i;:::-;;;;345:66:23;256:7234:1;345:66:23;256:7234:1;;345:66:23;;:::i;:::-;;;;;;;;:::o;505:3026::-;256:7234:1;;795:16:23;791:31;;256:7234:1;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;;;;;;;;;;;;1357:1:23;256:7234:1;;;;;;;;;1362:1:23;;345:66;;;-1:-1:-1;;;;;256:7234:1;;;;;;1326:39:23;256:7234:1;;;;;1326:39:23;:::i;:::-;1419:2082;256:7234:1;1419:2082:23;;;;;;;;;;;;;;;;;;;;;;1362:1;1419:2082;1362:1;;;1419:2082;;;;3511:13;505:3026;:::o;1419:2082::-;;;-1:-1:-1;;1419:2082:23;;505:3026;:::o;1419:2082::-;-1:-1:-1;1419:2082:23;;;-1:-1:-1;;1419:2082:23;;;-1:-1:-1;;1419:2082:23;;505:3026;:::o;1419:2082::-;;1337:1;1419:2082;;;;;;;;;;256:7234:1;1419:2082:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;791:31;256:7234:1;;;;;;:::i;:::-;810:1:23;256:7234:1;;813:9:23;:::o;256:7234:1:-;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;1513:437:26;256:7234:1;;;;;;;;;-1:-1:-1;;;;;256:7234:1;;;;;;;;;;;;;;345:66:23;;;256:7234:1;;;;;1670:15:26;;;256:7234:1;;;;;;;;;1695:15:26;256:7234:1;;;1695:15:26;256:7234:1;1720:128:26;1753:5;;;;;;1865:10;;246:18;;1513:437;:::o;246:18::-;;256:7234:1;;;;;246:18:26;;256:7234:1;1836:1:26;246:18;;;256:7234:1;246:18:26;;;256:7234:1;246:18:26;256:7234:1;;;246:18:26;;1760:3;1800:11;;1808:3;1800:11;;1791:21;;;;;;-1:-1:-1;;;1791:21:26;;1779:33;;;;:::i;:::-;;1836:1;256:7234:1;1760:3:26;256:7234:1;;;;-1:-1:-1;;256:7234:1;;1725:26:26;;256:7234:1;;;;;;;;;1836:1:26;256:7234:1;;1791:21:26;256:7234:1;;;;;;;;1836:1:26;256:7234:1;",
"linkReferences": {}
},
"methodIdentifiers": {
"COLLECTION_CONTROLLER_ROLE()": "e46f29c8",
"COLLECTION_OWNER_ROLE()": "98b70793",
"DEFAULT_ADMIN_ROLE()": "a217fddf",
"addTokenController(uint256,address)": "dcd78186",
"approve(address,uint256)": "095ea7b3",
"balanceOf(address)": "70a08231",
"burn(uint256)": "42966c68",
"getApproved(uint256)": "081812fc",
"getRoleAdmin(bytes32)": "248a9ca3",
"grantRole(bytes32,address)": "2f2ff15d",
"hasRole(bytes32,address)": "91d14854",
"isApprovedForAll(address,address)": "e985e9c5",
"mint(address,string,string,string,string,string,string,string)": "b543be12",
"name()": "06fdde03",
"ownerOf(uint256)": "6352211e",
"removeTokenController(uint256,address)": "befaa6a3",
"renounceRole(bytes32,address)": "36568abe",
"revokeRole(bytes32,address)": "d547741f",
"safeTransferFrom(address,address,uint256)": "42842e0e",
"safeTransferFrom(address,address,uint256,bytes)": "b88d4fde",
"setApprovalForAll(address,bool)": "a22cb465",
"setTokenBuild(uint256,string,string)": "3806f152",
"setTokenDescription(uint256,string)": "246a908b",
"setTokenENS(uint256,string)": "78278cca",
"setTokenExternalURL(uint256,string)": "f9315177",
"setTokenImage(uint256,string)": "64140ec0",
"setTokenName(uint256,string)": "cdb0e89e",
"supportsInterface(bytes4)": "01ffc9a7",
"symbol()": "95d89b41",
"tokenURI(uint256)": "c87b56dd",
"transferFrom(address,address,uint256)": "23b872dd",
"upgradeTokenBuild(uint256,string,string)": "987c26fd"
},
"rawMetadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"string\",\"name\":\"_name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_symbol\",\"type\":\"string\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":true,\"internalType\":\"uint256\",\"name\":\"token\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"commit_hash\",\"type\":\"string\"}],\"name\":\"NewBuild\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"token\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"name\":\"NewTokenDescription\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"token\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"ENS\",\"type\":\"string\"}],\"name\":\"NewTokenENS\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"token\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"external_url\",\"type\":\"string\"}],\"name\":\"NewTokenExternalURL\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"token\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"}],\"name\":\"NewTokenImage\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"token\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"}],\"name\":\"NewTokenName\",\"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\":\"COLLECTION_CONTROLLER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"COLLECTION_OWNER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"addTokenController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"burn\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"name\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"image\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"external_url\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"ENS\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"commit_hash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"git_repository\",\"type\":\"string\"}],\"name\":\"mint\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"payable\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"controller\",\"type\":\"address\"}],\"name\":\"removeTokenController\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_commit_hash\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"_git_repository\",\"type\":\"string\"}],\"name\":\"setTokenBuild\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenDescription\",\"type\":\"string\"}],\"name\":\"setTokenDescription\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenENS\",\"type\":\"string\"}],\"name\":\"setTokenENS\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenExternalURL\",\"type\":\"string\"}],\"name\":\"setTokenExternalURL\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenImage\",\"type\":\"string\"}],\"name\":\"setTokenImage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"_tokenName\",\"type\":\"string\"}],\"name\":\"setTokenName\",\"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\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"commit\",\"type\":\"string\"},{\"internalType\":\"string\",\"name\":\"repository\",\"type\":\"string\"}],\"name\":\"upgradeTokenBuild\",\"outputs\":[],\"stateMutability\":\"payable\",\"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\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"contracts/FleekERC721.sol\":\"FleekERC721\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@ensdomains/=node_modules/@ensdomains/\",\":@openzeppelin/=node_modules/@openzeppelin/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":eth-gas-reporter/=node_modules/eth-gas-reporter/\",\":forge-std/=lib/forge-std/src/\",\":hardhat-deploy/=node_modules/hardhat-deploy/\",\":hardhat/=node_modules/hardhat/\"],\"viaIR\":true},\"sources\":{\"contracts/FleekAccessControl.sol\":{\"keccak256\":\"0x40cbb25741c2d6e285ab2ccee87f38fab424ce3746a17bca274a23c098f5e5c6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f9d495490984bf70d90d9f48d9fbee2480f62b8d796d2b5cd623ff3ee632e47a\",\"dweb:/ipfs/QmXuMpMizsvU1QiEDD3cqs1wen9pdSqSNBeSb112pQDpKd\"]},\"contracts/FleekERC721.sol\":{\"keccak256\":\"0x9e4fcee55fe6e907ced49d15fffd1fc62e48a0b4b25bd97b9ea5b5b127ce9623\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6fcc0c13cf0219a100d124ad7553fe3576975d0ac88e40b2de80659e26eedae2\",\"dweb:/ipfs/QmTn88WiAnyNBsWVayYDtJn2G4zooALvgXymvch8fksvka\"]},\"node_modules/@openzeppelin/contracts/access/AccessControl.sol\":{\"keccak256\":\"0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe\",\"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q\"]},\"node_modules/@openzeppelin/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a\",\"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol\":{\"keccak256\":\"0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c\",\"dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56\",\"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708\",\"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146\",\"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf\"]},\"node_modules/@openzeppelin/contracts/utils/Address.sol\":{\"keccak256\":\"0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269\",\"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj\"]},\"node_modules/@openzeppelin/contracts/utils/Base64.sol\":{\"keccak256\":\"0x5f3461639fe20794cfb4db4a6d8477388a15b2e70a018043084b7c4bedfa8136\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77e5309e2cc4cdc3395214edb0ff43ff5a5f7373f5a425383e540f6fab530f96\",\"dweb:/ipfs/QmTV8DZ9knJDa3b5NPBFQqjvTzodyZVjRUg5mx5A99JPLJ\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"node_modules/@openzeppelin/contracts/utils/Counters.sol\":{\"keccak256\":\"0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee\",\"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu\"]},\"node_modules/@openzeppelin/contracts/utils/Strings.sol\":{\"keccak256\":\"0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634\",\"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol\":{\"keccak256\":\"0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d\",\"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f\",\"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy\"]},\"node_modules/@openzeppelin/contracts/utils/math/Math.sol\":{\"keccak256\":\"0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b\",\"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz\"]}},\"version\":1}",
"metadata": {
"compiler": {
"version": "0.8.17+commit.8df45f5f"
},
"language": "Solidity",
"output": {
"abi": [
{
"inputs": [
{
"internalType": "string",
"name": "_name",
"type": "string"
},
{
"internalType": "string",
"name": "_symbol",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"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": "uint256",
"name": "token",
"type": "uint256",
"indexed": true
},
{
"internalType": "string",
"name": "commit_hash",
"type": "string",
"indexed": true
}
],
"type": "event",
"name": "NewBuild",
"anonymous": false
},
{
"inputs": [
{
"internalType": "uint256",
"name": "token",
"type": "uint256",
"indexed": true
},
{
"internalType": "string",
"name": "description",
"type": "string",
"indexed": true
}
],
"type": "event",
"name": "NewTokenDescription",
"anonymous": false
},
{
"inputs": [
{
"internalType": "uint256",
"name": "token",
"type": "uint256",
"indexed": true
},
{
"internalType": "string",
"name": "ENS",
"type": "string",
"indexed": true
}
],
"type": "event",
"name": "NewTokenENS",
"anonymous": false
},
{
"inputs": [
{
"internalType": "uint256",
"name": "token",
"type": "uint256",
"indexed": true
},
{
"internalType": "string",
"name": "external_url",
"type": "string",
"indexed": true
}
],
"type": "event",
"name": "NewTokenExternalURL",
"anonymous": false
},
{
"inputs": [
{
"internalType": "uint256",
"name": "token",
"type": "uint256",
"indexed": true
},
{
"internalType": "string",
"name": "image",
"type": "string",
"indexed": true
}
],
"type": "event",
"name": "NewTokenImage",
"anonymous": false
},
{
"inputs": [
{
"internalType": "uint256",
"name": "token",
"type": "uint256",
"indexed": true
},
{
"internalType": "string",
"name": "name",
"type": "string",
"indexed": true
}
],
"type": "event",
"name": "NewTokenName",
"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": "COLLECTION_CONTROLLER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "COLLECTION_OWNER_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
]
},
{
"inputs": [],
"stateMutability": "view",
"type": "function",
"name": "DEFAULT_ADMIN_ROLE",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
]
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "controller",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "addTokenController"
},
{
"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": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "burn"
},
{
"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": "owner",
"type": "address"
},
{
"internalType": "address",
"name": "operator",
"type": "address"
}
],
"stateMutability": "view",
"type": "function",
"name": "isApprovedForAll",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
]
},
{
"inputs": [
{
"internalType": "address",
"name": "to",
"type": "address"
},
{
"internalType": "string",
"name": "name",
"type": "string"
},
{
"internalType": "string",
"name": "description",
"type": "string"
},
{
"internalType": "string",
"name": "image",
"type": "string"
},
{
"internalType": "string",
"name": "external_url",
"type": "string"
},
{
"internalType": "string",
"name": "ENS",
"type": "string"
},
{
"internalType": "string",
"name": "commit_hash",
"type": "string"
},
{
"internalType": "string",
"name": "git_repository",
"type": "string"
}
],
"stateMutability": "payable",
"type": "function",
"name": "mint",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
]
},
{
"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": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "address",
"name": "controller",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "removeTokenController"
},
{
"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": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_commit_hash",
"type": "string"
},
{
"internalType": "string",
"name": "_git_repository",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setTokenBuild"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenDescription",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setTokenDescription"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenENS",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setTokenENS"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenExternalURL",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setTokenExternalURL"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenImage",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setTokenImage"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "_tokenName",
"type": "string"
}
],
"stateMutability": "nonpayable",
"type": "function",
"name": "setTokenName"
},
{
"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": "uint256",
"name": "tokenId",
"type": "uint256"
},
{
"internalType": "string",
"name": "commit",
"type": "string"
},
{
"internalType": "string",
"name": "repository",
"type": "string"
}
],
"stateMutability": "payable",
"type": "function",
"name": "upgradeTokenBuild"
}
],
"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": {},
"version": 1
}
},
"settings": {
"remappings": [
":@ensdomains/=node_modules/@ensdomains/",
":@openzeppelin/=node_modules/@openzeppelin/",
":ds-test/=lib/forge-std/lib/ds-test/src/",
":eth-gas-reporter/=node_modules/eth-gas-reporter/",
":forge-std/=lib/forge-std/src/",
":hardhat-deploy/=node_modules/hardhat-deploy/",
":hardhat/=node_modules/hardhat/"
],
"optimizer": {
"enabled": true,
"runs": 200
},
"metadata": {
"bytecodeHash": "ipfs"
},
"compilationTarget": {
"contracts/FleekERC721.sol": "FleekERC721"
},
"libraries": {},
"viaIR": true
},
"sources": {
"contracts/FleekAccessControl.sol": {
"keccak256": "0x40cbb25741c2d6e285ab2ccee87f38fab424ce3746a17bca274a23c098f5e5c6",
"urls": [
"bzz-raw://f9d495490984bf70d90d9f48d9fbee2480f62b8d796d2b5cd623ff3ee632e47a",
"dweb:/ipfs/QmXuMpMizsvU1QiEDD3cqs1wen9pdSqSNBeSb112pQDpKd"
],
"license": "MIT"
},
"contracts/FleekERC721.sol": {
"keccak256": "0x9e4fcee55fe6e907ced49d15fffd1fc62e48a0b4b25bd97b9ea5b5b127ce9623",
"urls": [
"bzz-raw://6fcc0c13cf0219a100d124ad7553fe3576975d0ac88e40b2de80659e26eedae2",
"dweb:/ipfs/QmTn88WiAnyNBsWVayYDtJn2G4zooALvgXymvch8fksvka"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/access/AccessControl.sol": {
"keccak256": "0x67e3daf189111d6d5b0464ed09cf9f0605a22c4b965a7fcecd707101faff008a",
"urls": [
"bzz-raw://cbbb1a75e4064d564bf69e74970eef35064e51fcc09cbf3589aee7faa60d6afe",
"dweb:/ipfs/QmYfAtQwFSGmxomnyAV3tpBDbfDwiFXV61osWW2zzQVg5Q"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/access/IAccessControl.sol": {
"keccak256": "0x59ce320a585d7e1f163cd70390a0ef2ff9cec832e2aa544293a00692465a7a57",
"urls": [
"bzz-raw://bb2c137c343ef0c4c7ce7b18c1d108afdc9d315a04e48307288d2d05adcbde3a",
"dweb:/ipfs/QmUxhrAQM3MM3FF5j7AtcXLXguWCJBHJ14BRdVtuoQc8Fh"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol": {
"keccak256": "0xd89f3585b211fc9e3408384a4c4efdc3a93b2f877a3821046fa01c219d35be1b",
"urls": [
"bzz-raw://5ea15ef7c8980240ccd46df13809d163f749bc0a01d8bced1875660d4872da1c",
"dweb:/ipfs/QmbDfAT9VeCSG4cnPd6tjDMp8ED85dLHbWyMyv7wbmL4CH"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol": {
"keccak256": "0xab28a56179c1db258c9bf5235b382698cb650debecb51b23d12be9e241374b68",
"urls": [
"bzz-raw://daae589a9d6fa7e55f99f86c0a16796ca490f243fb3693632c3711c0646c1d56",
"dweb:/ipfs/QmR3zpd7wNw3rcUdekwiv6FYHJqksuTCXLVioTxu6Fbxk3"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol": {
"keccak256": "0xa82b58eca1ee256be466e536706850163d2ec7821945abd6b4778cfb3bee37da",
"urls": [
"bzz-raw://6e75cf83beb757b8855791088546b8337e9d4684e169400c20d44a515353b708",
"dweb:/ipfs/QmYvPafLfoquiDMEj7CKHtvbgHu7TJNPSVPSCjrtjV8HjV"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol": {
"keccak256": "0x75b829ff2f26c14355d1cba20e16fe7b29ca58eb5fef665ede48bc0f9c6c74b9",
"urls": [
"bzz-raw://a0a107160525724f9e1bbbab031defc2f298296dd9e331f16a6f7130cec32146",
"dweb:/ipfs/QmemujxSd7gX8A9M8UwmNbz4Ms3U9FG9QfudUgxwvTmPWf"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/utils/Address.sol": {
"keccak256": "0xf96f969e24029d43d0df89e59d365f277021dac62b48e1c1e3ebe0acdd7f1ca1",
"urls": [
"bzz-raw://ec772b45a624be516f1c81970caa8a2e144301e9d0921cbc1a2789fef39a1269",
"dweb:/ipfs/QmNyjwxCrGhQMyzLD93oUobJXVe9ceJvRvfXwbEtuxPiEj"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/utils/Base64.sol": {
"keccak256": "0x5f3461639fe20794cfb4db4a6d8477388a15b2e70a018043084b7c4bedfa8136",
"urls": [
"bzz-raw://77e5309e2cc4cdc3395214edb0ff43ff5a5f7373f5a425383e540f6fab530f96",
"dweb:/ipfs/QmTV8DZ9knJDa3b5NPBFQqjvTzodyZVjRUg5mx5A99JPLJ"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/utils/Context.sol": {
"keccak256": "0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7",
"urls": [
"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92",
"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/utils/Counters.sol": {
"keccak256": "0xf0018c2440fbe238dd3a8732fa8e17a0f9dce84d31451dc8a32f6d62b349c9f1",
"urls": [
"bzz-raw://59e1c62884d55b70f3ae5432b44bb3166ad71ae3acd19c57ab6ddc3c87c325ee",
"dweb:/ipfs/QmezuXg5GK5oeA4F91EZhozBFekhq5TD966bHPH18cCqhu"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/utils/Strings.sol": {
"keccak256": "0xa4d1d62251f8574deb032a35fc948386a9b4de74b812d4f545a1ac120486b48a",
"urls": [
"bzz-raw://8c969013129ba9e651a20735ef659fef6d8a1139ea3607bd4b26ddea2d645634",
"dweb:/ipfs/QmVhVa6LGuzAcB8qgDtVHRkucn4ihj5UZr8xBLcJkP6ucb"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/utils/introspection/ERC165.sol": {
"keccak256": "0xd10975de010d89fd1c78dc5e8a9a7e7f496198085c151648f20cba166b32582b",
"urls": [
"bzz-raw://fb0048dee081f6fffa5f74afc3fb328483c2a30504e94a0ddd2a5114d731ec4d",
"dweb:/ipfs/QmZptt1nmYoA5SgjwnSgWqgUSDgm4q52Yos3xhnMv3MV43"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol": {
"keccak256": "0x447a5f3ddc18419d41ff92b3773fb86471b1db25773e07f877f548918a185bf1",
"urls": [
"bzz-raw://be161e54f24e5c6fae81a12db1a8ae87bc5ae1b0ddc805d82a1440a68455088f",
"dweb:/ipfs/QmP7C3CHdY9urF4dEMb9wmsp1wMxHF6nhA2yQE5SKiPAdy"
],
"license": "MIT"
},
"node_modules/@openzeppelin/contracts/utils/math/Math.sol": {
"keccak256": "0xa1e8e83cd0087785df04ac79fb395d9f3684caeaf973d9e2c71caef723a3a5d6",
"urls": [
"bzz-raw://33bbf48cc069be677705037ba7520c22b1b622c23b33e1a71495f2d36549d40b",
"dweb:/ipfs/Qmct36zWXv3j7LZB83uwbg7TXwnZSN1fqHNDZ93GG98bGz"
],
"license": "MIT"
}
},
"version": 1
},
"ast": {
"absolutePath": "contracts/FleekERC721.sol",
"id": 746,
"exportedSymbols": {
"AccessControl": [
25721
],
"Address": [
27230
],
"Base64": [
27277
],
"Context": [
27299
],
"Counters": [
27373
],
"ERC165": [
27572
],
"ERC721": [
26739
],
"FleekAccessControl": [
99
],
"FleekERC721": [
745
],
"IAccessControl": [
25794
],
"IERC165": [
27584
],
"IERC721": [
26855
],
"IERC721Metadata": [
26900
],
"IERC721Receiver": [
26873
],
"Math": [
28449
],
"Strings": [
27548
]
},
"nodeType": "SourceUnit",
"src": "33:7458:1",
"nodes": [
{
"id": 101,
"nodeType": "PragmaDirective",
"src": "33:23:1",
"nodes": [],
"literals": [
"solidity",
"^",
"0.8",
".7"
]
},
{
"id": 102,
"nodeType": "ImportDirective",
"src": "58:57:1",
"nodes": [],
"absolutePath": "node_modules/@openzeppelin/contracts/token/ERC721/ERC721.sol",
"file": "@openzeppelin/contracts/token/ERC721/ERC721.sol",
"nameLocation": "-1:-1:-1",
"scope": 746,
"sourceUnit": 26740,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 103,
"nodeType": "ImportDirective",
"src": "116:52:1",
"nodes": [],
"absolutePath": "node_modules/@openzeppelin/contracts/utils/Counters.sol",
"file": "@openzeppelin/contracts/utils/Counters.sol",
"nameLocation": "-1:-1:-1",
"scope": 746,
"sourceUnit": 27374,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 104,
"nodeType": "ImportDirective",
"src": "169:50:1",
"nodes": [],
"absolutePath": "node_modules/@openzeppelin/contracts/utils/Base64.sol",
"file": "@openzeppelin/contracts/utils/Base64.sol",
"nameLocation": "-1:-1:-1",
"scope": 746,
"sourceUnit": 27278,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 105,
"nodeType": "ImportDirective",
"src": "220:34:1",
"nodes": [],
"absolutePath": "contracts/FleekAccessControl.sol",
"file": "./FleekAccessControl.sol",
"nameLocation": "-1:-1:-1",
"scope": 746,
"sourceUnit": 100,
"symbolAliases": [],
"unitAlias": ""
},
{
"id": 745,
"nodeType": "ContractDefinition",
"src": "256:7234:1",
"nodes": [
{
"id": 112,
"nodeType": "UsingForDirective",
"src": "313:26:1",
"nodes": [],
"global": false,
"libraryName": {
"id": 110,
"name": "Strings",
"nameLocations": [
"319:7:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 27548,
"src": "319:7:1"
},
"typeName": {
"id": 111,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "331:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
},
{
"id": 116,
"nodeType": "UsingForDirective",
"src": "344:36:1",
"nodes": [],
"global": false,
"libraryName": {
"id": 113,
"name": "Counters",
"nameLocations": [
"350:8:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 27373,
"src": "350:8:1"
},
"typeName": {
"id": 115,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 114,
"name": "Counters.Counter",
"nameLocations": [
"363:8:1",
"372:7:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 27305,
"src": "363:16:1"
},
"referencedDeclaration": 27305,
"src": "363:16:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27305_storage_ptr",
"typeString": "struct Counters.Counter"
}
}
},
{
"id": 122,
"nodeType": "EventDefinition",
"src": "386:66:1",
"nodes": [],
"anonymous": false,
"eventSelector": "f0cd0ce9d5882a10e2780d2d9c805c18e7536b9b2c6412f7bfb7f163656dd0f6",
"name": "NewBuild",
"nameLocation": "392:8:1",
"parameters": {
"id": 121,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 118,
"indexed": true,
"mutability": "mutable",
"name": "token",
"nameLocation": "417:5:1",
"nodeType": "VariableDeclaration",
"scope": 122,
"src": "401:21:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 117,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "401:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 120,
"indexed": true,
"mutability": "mutable",
"name": "commit_hash",
"nameLocation": "439:11:1",
"nodeType": "VariableDeclaration",
"scope": 122,
"src": "424:26:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 119,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "424:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "400:51:1"
}
},
{
"id": 128,
"nodeType": "EventDefinition",
"src": "462:63:1",
"nodes": [],
"anonymous": false,
"eventSelector": "abf44020991f188f6b302a14e4b7a3dc94de10ed2140a6c03e16f4213d11b1c9",
"name": "NewTokenName",
"nameLocation": "468:12:1",
"parameters": {
"id": 127,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 124,
"indexed": true,
"mutability": "mutable",
"name": "token",
"nameLocation": "497:5:1",
"nodeType": "VariableDeclaration",
"scope": 128,
"src": "481:21:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 123,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "481:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 126,
"indexed": true,
"mutability": "mutable",
"name": "name",
"nameLocation": "519:4:1",
"nodeType": "VariableDeclaration",
"scope": 128,
"src": "504:19:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 125,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "504:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "480:44:1"
}
},
{
"id": 134,
"nodeType": "EventDefinition",
"src": "530:77:1",
"nodes": [],
"anonymous": false,
"eventSelector": "9b3089e7af95b8d43fdceb16eb9cbf620a0cb486e1a291b15121a44e0f69127a",
"name": "NewTokenDescription",
"nameLocation": "536:19:1",
"parameters": {
"id": 133,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 130,
"indexed": true,
"mutability": "mutable",
"name": "token",
"nameLocation": "572:5:1",
"nodeType": "VariableDeclaration",
"scope": 134,
"src": "556:21:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 129,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "556:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 132,
"indexed": true,
"mutability": "mutable",
"name": "description",
"nameLocation": "594:11:1",
"nodeType": "VariableDeclaration",
"scope": 134,
"src": "579:26:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 131,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "579:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "555:51:1"
}
},
{
"id": 140,
"nodeType": "EventDefinition",
"src": "612:65:1",
"nodes": [],
"anonymous": false,
"eventSelector": "b041870856ebefdd6a3cb1ac665eb6739281b855c912ff622e814dbf91c96bb6",
"name": "NewTokenImage",
"nameLocation": "618:13:1",
"parameters": {
"id": 139,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 136,
"indexed": true,
"mutability": "mutable",
"name": "token",
"nameLocation": "648:5:1",
"nodeType": "VariableDeclaration",
"scope": 140,
"src": "632:21:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 135,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "632:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 138,
"indexed": true,
"mutability": "mutable",
"name": "image",
"nameLocation": "670:5:1",
"nodeType": "VariableDeclaration",
"scope": 140,
"src": "655:20:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 137,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "655:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "631:45:1"
}
},
{
"id": 146,
"nodeType": "EventDefinition",
"src": "682:78:1",
"nodes": [],
"anonymous": false,
"eventSelector": "9f284fd257fb85bc33901e673c078261b0222fbcc4b52c74784c9566808e3cfc",
"name": "NewTokenExternalURL",
"nameLocation": "688:19:1",
"parameters": {
"id": 145,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 142,
"indexed": true,
"mutability": "mutable",
"name": "token",
"nameLocation": "724:5:1",
"nodeType": "VariableDeclaration",
"scope": 146,
"src": "708:21:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 141,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "708:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 144,
"indexed": true,
"mutability": "mutable",
"name": "external_url",
"nameLocation": "746:12:1",
"nodeType": "VariableDeclaration",
"scope": 146,
"src": "731:27:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 143,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "731:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "707:52:1"
}
},
{
"id": 152,
"nodeType": "EventDefinition",
"src": "765:61:1",
"nodes": [],
"anonymous": false,
"eventSelector": "c1b5a2141fc60537be795a8771f5e8c80188922acb5399a6e463ea95aa852f31",
"name": "NewTokenENS",
"nameLocation": "771:11:1",
"parameters": {
"id": 151,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 148,
"indexed": true,
"mutability": "mutable",
"name": "token",
"nameLocation": "799:5:1",
"nodeType": "VariableDeclaration",
"scope": 152,
"src": "783:21:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 147,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "783:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 150,
"indexed": true,
"mutability": "mutable",
"name": "ENS",
"nameLocation": "821:3:1",
"nodeType": "VariableDeclaration",
"scope": 152,
"src": "806:18:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 149,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "806:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "782:43:1"
}
},
{
"id": 157,
"nodeType": "StructDefinition",
"src": "836:79:1",
"nodes": [],
"canonicalName": "FleekERC721.Build",
"members": [
{
"constant": false,
"id": 154,
"mutability": "mutable",
"name": "commit_hash",
"nameLocation": "866:11:1",
"nodeType": "VariableDeclaration",
"scope": 157,
"src": "859:18:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 153,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "859:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 156,
"mutability": "mutable",
"name": "git_repository",
"nameLocation": "894:14:1",
"nodeType": "VariableDeclaration",
"scope": 157,
"src": "887:21:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 155,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "887:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"name": "Build",
"nameLocation": "843:5:1",
"scope": 745,
"visibility": "public"
},
{
"id": 175,
"nodeType": "StructDefinition",
"src": "1119:441:1",
"nodes": [],
"canonicalName": "FleekERC721.App",
"members": [
{
"constant": false,
"id": 159,
"mutability": "mutable",
"name": "name",
"nameLocation": "1147:4:1",
"nodeType": "VariableDeclaration",
"scope": 175,
"src": "1140:11:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 158,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1140:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 161,
"mutability": "mutable",
"name": "description",
"nameLocation": "1188:11:1",
"nodeType": "VariableDeclaration",
"scope": 175,
"src": "1181:18:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 160,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1181:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 163,
"mutability": "mutable",
"name": "image",
"nameLocation": "1246:5:1",
"nodeType": "VariableDeclaration",
"scope": 175,
"src": "1239:12:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 162,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1239:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 165,
"mutability": "mutable",
"name": "external_url",
"nameLocation": "1295:12:1",
"nodeType": "VariableDeclaration",
"scope": 175,
"src": "1288:19:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 164,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1288:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 167,
"mutability": "mutable",
"name": "ENS",
"nameLocation": "1336:3:1",
"nodeType": "VariableDeclaration",
"scope": 175,
"src": "1329:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
},
"typeName": {
"id": 166,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1329:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 169,
"mutability": "mutable",
"name": "current_build",
"nameLocation": "1367:13:1",
"nodeType": "VariableDeclaration",
"scope": 175,
"src": "1359:21:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 168,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1359:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 174,
"mutability": "mutable",
"name": "builds",
"nameLocation": "1497:6:1",
"nodeType": "VariableDeclaration",
"scope": 175,
"src": "1471:32:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Build_$157_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.Build)"
},
"typeName": {
"id": 173,
"keyType": {
"id": 170,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1479:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "1471:25:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Build_$157_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.Build)"
},
"valueType": {
"id": 172,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 171,
"name": "Build",
"nameLocations": [
"1490:5:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 157,
"src": "1490:5:1"
},
"referencedDeclaration": 157,
"src": "1490:5:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Build_$157_storage_ptr",
"typeString": "struct FleekERC721.Build"
}
}
},
"visibility": "internal"
}
],
"name": "App",
"nameLocation": "1126:3:1",
"scope": 745,
"visibility": "public"
},
{
"id": 178,
"nodeType": "VariableDeclaration",
"src": "1566:34:1",
"nodes": [],
"constant": false,
"mutability": "mutable",
"name": "_tokenIds",
"nameLocation": "1591:9:1",
"scope": 745,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27305_storage",
"typeString": "struct Counters.Counter"
},
"typeName": {
"id": 177,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 176,
"name": "Counters.Counter",
"nameLocations": [
"1566:8:1",
"1575:7:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 27305,
"src": "1566:16:1"
},
"referencedDeclaration": 27305,
"src": "1566:16:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27305_storage_ptr",
"typeString": "struct Counters.Counter"
}
},
"visibility": "private"
},
{
"id": 183,
"nodeType": "VariableDeclaration",
"src": "1606:37:1",
"nodes": [],
"constant": false,
"mutability": "mutable",
"name": "_apps",
"nameLocation": "1638:5:1",
"scope": 745,
"stateVariable": true,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.App)"
},
"typeName": {
"id": 182,
"keyType": {
"id": 179,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1614:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Mapping",
"src": "1606:23:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.App)"
},
"valueType": {
"id": 181,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 180,
"name": "App",
"nameLocations": [
"1625:3:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 175,
"src": "1625:3:1"
},
"referencedDeclaration": 175,
"src": "1625:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App"
}
}
},
"visibility": "private"
},
{
"id": 195,
"nodeType": "FunctionDefinition",
"src": "1650:103:1",
"nodes": [],
"body": {
"id": 194,
"nodeType": "Block",
"src": "1751:2:1",
"nodes": [],
"statements": []
},
"implemented": true,
"kind": "constructor",
"modifiers": [
{
"arguments": [
{
"id": 190,
"name": "_name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 185,
"src": "1735:5:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"id": 191,
"name": "_symbol",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 187,
"src": "1742:7:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"id": 192,
"kind": "baseConstructorSpecifier",
"modifierName": {
"id": 189,
"name": "ERC721",
"nameLocations": [
"1728:6:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26739,
"src": "1728:6:1"
},
"nodeType": "ModifierInvocation",
"src": "1728:22:1"
}
],
"name": "",
"nameLocation": "-1:-1:-1",
"parameters": {
"id": 188,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 185,
"mutability": "mutable",
"name": "_name",
"nameLocation": "1685:5:1",
"nodeType": "VariableDeclaration",
"scope": 195,
"src": "1671:19:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 184,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1671:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 187,
"mutability": "mutable",
"name": "_symbol",
"nameLocation": "1714:7:1",
"nodeType": "VariableDeclaration",
"scope": 195,
"src": "1700:21:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 186,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1700:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "1661:66:1"
},
"returnParameters": {
"id": 193,
"nodeType": "ParameterList",
"parameters": [],
"src": "1751:0:1"
},
"scope": 745,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"id": 211,
"nodeType": "ModifierDefinition",
"src": "1759:181:1",
"nodes": [],
"body": {
"id": 210,
"nodeType": "Block",
"src": "1803:137:1",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 205,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"id": 200,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "1834:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 201,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "1838:6:1",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "1834:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"arguments": [
{
"id": 203,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 197,
"src": "1856:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 202,
"name": "ownerOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25940,
"src": "1848:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
"typeString": "function (uint256) view returns (address)"
}
},
"id": 204,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1848:16:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "1834:30:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "466c65656b4552433732313a206d75737420626520746f6b656e206f776e6572",
"id": 206,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "1878:34:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_a648a3de5d26aef0474a63f309beeecd457a566959dd1cff4538789f49f0cc66",
"typeString": "literal_string \"FleekERC721: must be token owner\""
},
"value": "FleekERC721: must be token owner"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_a648a3de5d26aef0474a63f309beeecd457a566959dd1cff4538789f49f0cc66",
"typeString": "literal_string \"FleekERC721: must be token owner\""
}
],
"id": 199,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "1813:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 207,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "1813:109:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 208,
"nodeType": "ExpressionStatement",
"src": "1813:109:1"
},
{
"id": 209,
"nodeType": "PlaceholderStatement",
"src": "1932:1:1"
}
]
},
"name": "requireTokenOwner",
"nameLocation": "1768:17:1",
"parameters": {
"id": 198,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 197,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "1794:7:1",
"nodeType": "VariableDeclaration",
"scope": 211,
"src": "1786:15:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 196,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "1786:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "1785:17:1"
},
"virtual": false,
"visibility": "internal"
},
{
"id": 312,
"nodeType": "FunctionDefinition",
"src": "1946:958:1",
"nodes": [],
"body": {
"id": 311,
"nodeType": "Block",
"src": "2270:634:1",
"nodes": [],
"statements": [
{
"assignments": [
235
],
"declarations": [
{
"constant": false,
"id": 235,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "2288:7:1",
"nodeType": "VariableDeclaration",
"scope": 311,
"src": "2280:15:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 234,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2280:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"id": 239,
"initialValue": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 236,
"name": "_tokenIds",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 178,
"src": "2298:9:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27305_storage",
"typeString": "struct Counters.Counter storage ref"
}
},
"id": 237,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2308:7:1",
"memberName": "current",
"nodeType": "MemberAccess",
"referencedDeclaration": 27317,
"src": "2298:17:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_struct$_Counter_$27305_storage_ptr_$returns$_t_uint256_$bound_to$_t_struct$_Counter_$27305_storage_ptr_$",
"typeString": "function (struct Counters.Counter storage pointer) view returns (uint256)"
}
},
"id": 238,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2298:19:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2280:37:1"
},
{
"expression": {
"arguments": [
{
"id": 241,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 213,
"src": "2333:2:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
{
"id": 242,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 235,
"src": "2337:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
},
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 240,
"name": "_mint",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26395,
"src": "2327:5:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$",
"typeString": "function (address,uint256)"
}
},
"id": 243,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2327:18:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 244,
"nodeType": "ExpressionStatement",
"src": "2327:18:1"
},
{
"expression": {
"arguments": [
{
"id": 246,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 235,
"src": "2375:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 247,
"name": "to",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 213,
"src": "2384:2:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 245,
"name": "_addTokenController",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 481,
"src": "2355:19:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_address_$returns$__$",
"typeString": "function (uint256,address)"
}
},
"id": 248,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2355:32:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 249,
"nodeType": "ExpressionStatement",
"src": "2355:32:1"
},
{
"expression": {
"arguments": [],
"expression": {
"argumentTypes": [],
"expression": {
"id": 250,
"name": "_tokenIds",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 178,
"src": "2397:9:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Counter_$27305_storage",
"typeString": "struct Counters.Counter storage ref"
}
},
"id": 252,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2407:9:1",
"memberName": "increment",
"nodeType": "MemberAccess",
"referencedDeclaration": 27331,
"src": "2397:19:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_struct$_Counter_$27305_storage_ptr_$returns$__$bound_to$_t_struct$_Counter_$27305_storage_ptr_$",
"typeString": "function (struct Counters.Counter storage pointer)"
}
},
"id": 253,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2397:21:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 254,
"nodeType": "ExpressionStatement",
"src": "2397:21:1"
},
{
"assignments": [
257
],
"declarations": [
{
"constant": false,
"id": 257,
"mutability": "mutable",
"name": "app",
"nameLocation": "2441:3:1",
"nodeType": "VariableDeclaration",
"scope": 311,
"src": "2429:15:1",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App"
},
"typeName": {
"id": 256,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 255,
"name": "App",
"nameLocations": [
"2429:3:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 175,
"src": "2429:3:1"
},
"referencedDeclaration": 175,
"src": "2429:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App"
}
},
"visibility": "internal"
}
],
"id": 261,
"initialValue": {
"baseExpression": {
"id": 258,
"name": "_apps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 183,
"src": "2447:5:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.App storage ref)"
}
},
"id": 260,
"indexExpression": {
"id": 259,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 235,
"src": "2453:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "2447:14:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage",
"typeString": "struct FleekERC721.App storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "2429:32:1"
},
{
"expression": {
"id": 266,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 262,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 257,
"src": "2471:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 264,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "2475:4:1",
"memberName": "name",
"nodeType": "MemberAccess",
"referencedDeclaration": 159,
"src": "2471:8:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 265,
"name": "name",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 215,
"src": "2482:4:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "2471:15:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 267,
"nodeType": "ExpressionStatement",
"src": "2471:15:1"
},
{
"expression": {
"id": 272,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 268,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 257,
"src": "2496:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 270,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "2500:11:1",
"memberName": "description",
"nodeType": "MemberAccess",
"referencedDeclaration": 161,
"src": "2496:15:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 271,
"name": "description",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 217,
"src": "2514:11:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "2496:29:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 273,
"nodeType": "ExpressionStatement",
"src": "2496:29:1"
},
{
"expression": {
"id": 278,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 274,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 257,
"src": "2535:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 276,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "2539:5:1",
"memberName": "image",
"nodeType": "MemberAccess",
"referencedDeclaration": 163,
"src": "2535:9:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 277,
"name": "image",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 219,
"src": "2547:5:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "2535:17:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 279,
"nodeType": "ExpressionStatement",
"src": "2535:17:1"
},
{
"expression": {
"id": 284,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 280,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 257,
"src": "2562:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 282,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "2566:12:1",
"memberName": "external_url",
"nodeType": "MemberAccess",
"referencedDeclaration": 165,
"src": "2562:16:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 283,
"name": "external_url",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 221,
"src": "2581:12:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "2562:31:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 285,
"nodeType": "ExpressionStatement",
"src": "2562:31:1"
},
{
"expression": {
"id": 290,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 286,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 257,
"src": "2603:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 288,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "2607:3:1",
"memberName": "ENS",
"nodeType": "MemberAccess",
"referencedDeclaration": 167,
"src": "2603:7:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 289,
"name": "ENS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 223,
"src": "2613:3:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "2603:13:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 291,
"nodeType": "ExpressionStatement",
"src": "2603:13:1"
},
{
"expression": {
"id": 296,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"id": 292,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 257,
"src": "2791:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 294,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "2795:13:1",
"memberName": "current_build",
"nodeType": "MemberAccess",
"referencedDeclaration": 169,
"src": "2791:17:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"hexValue": "30",
"id": 295,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2811:1:1",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "2791:21:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"id": 297,
"nodeType": "ExpressionStatement",
"src": "2791:21:1"
},
{
"expression": {
"id": 307,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"expression": {
"id": 298,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 257,
"src": "2822:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 301,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "2826:6:1",
"memberName": "builds",
"nodeType": "MemberAccess",
"referencedDeclaration": 174,
"src": "2822:10:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Build_$157_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.Build storage ref)"
}
},
"id": 302,
"indexExpression": {
"hexValue": "30",
"id": 300,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "2833:1:1",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "2822:13:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Build_$157_storage",
"typeString": "struct FleekERC721.Build storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 304,
"name": "commit_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 225,
"src": "2844:11:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"id": 305,
"name": "git_repository",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 227,
"src": "2857:14:1",
"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": 303,
"name": "Build",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 157,
"src": "2838:5:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Build_$157_storage_ptr_$",
"typeString": "type(struct FleekERC721.Build storage pointer)"
}
},
"id": 306,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "2838:34:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_Build_$157_memory_ptr",
"typeString": "struct FleekERC721.Build memory"
}
},
"src": "2822:50:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Build_$157_storage",
"typeString": "struct FleekERC721.Build storage ref"
}
},
"id": 308,
"nodeType": "ExpressionStatement",
"src": "2822:50:1"
},
{
"expression": {
"id": 309,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 235,
"src": "2890:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"functionReturnParameters": 233,
"id": 310,
"nodeType": "Return",
"src": "2883:14:1"
}
]
},
"functionSelector": "b543be12",
"implemented": true,
"kind": "function",
"modifiers": [
{
"id": 230,
"kind": "modifierInvocation",
"modifierName": {
"id": 229,
"name": "requireCollectionOwner",
"nameLocations": [
"2229:22:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 42,
"src": "2229:22:1"
},
"nodeType": "ModifierInvocation",
"src": "2229:22:1"
}
],
"name": "mint",
"nameLocation": "1955:4:1",
"parameters": {
"id": 228,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 213,
"mutability": "mutable",
"name": "to",
"nameLocation": "1977:2:1",
"nodeType": "VariableDeclaration",
"scope": 312,
"src": "1969:10:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 212,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "1969:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 215,
"mutability": "mutable",
"name": "name",
"nameLocation": "2003:4:1",
"nodeType": "VariableDeclaration",
"scope": 312,
"src": "1989:18:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 214,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "1989:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 217,
"mutability": "mutable",
"name": "description",
"nameLocation": "2031:11:1",
"nodeType": "VariableDeclaration",
"scope": 312,
"src": "2017:25:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 216,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2017:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 219,
"mutability": "mutable",
"name": "image",
"nameLocation": "2066:5:1",
"nodeType": "VariableDeclaration",
"scope": 312,
"src": "2052:19:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 218,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2052:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 221,
"mutability": "mutable",
"name": "external_url",
"nameLocation": "2095:12:1",
"nodeType": "VariableDeclaration",
"scope": 312,
"src": "2081:26:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 220,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2081:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 223,
"mutability": "mutable",
"name": "ENS",
"nameLocation": "2131:3:1",
"nodeType": "VariableDeclaration",
"scope": 312,
"src": "2117:17:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 222,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2117:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 225,
"mutability": "mutable",
"name": "commit_hash",
"nameLocation": "2158:11:1",
"nodeType": "VariableDeclaration",
"scope": 312,
"src": "2144:25:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 224,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2144:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 227,
"mutability": "mutable",
"name": "git_repository",
"nameLocation": "2193:14:1",
"nodeType": "VariableDeclaration",
"scope": 312,
"src": "2179:28:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 226,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2179:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "1959:254:1"
},
"returnParameters": {
"id": 233,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 232,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 312,
"src": "2261:7:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 231,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2261:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "2260:9:1"
},
"scope": 745,
"stateMutability": "payable",
"virtual": false,
"visibility": "public"
},
{
"id": 335,
"nodeType": "FunctionDefinition",
"src": "2910:256:1",
"nodes": [],
"body": {
"id": 334,
"nodeType": "Block",
"src": "3074:92:1",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 325,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 314,
"src": "3099:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 324,
"name": "_requireMinted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26617,
"src": "3084:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$",
"typeString": "function (uint256) view"
}
},
"id": 326,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3084:23:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 327,
"nodeType": "ExpressionStatement",
"src": "3084:23:1"
},
{
"expression": {
"arguments": [
{
"id": 329,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 314,
"src": "3131:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 330,
"name": "commit",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 316,
"src": "3140:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"id": 331,
"name": "repository",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 318,
"src": "3148:10:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 328,
"name": "setTokenBuild",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 702,
"src": "3117:13:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (uint256,string memory,string memory)"
}
},
"id": 332,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3117:42:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 333,
"nodeType": "ExpressionStatement",
"src": "3117:42:1"
}
]
},
"functionSelector": "987c26fd",
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": [
{
"id": 321,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 314,
"src": "3065:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 322,
"kind": "modifierInvocation",
"modifierName": {
"id": 320,
"name": "requireTokenOwner",
"nameLocations": [
"3047:17:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 211,
"src": "3047:17:1"
},
"nodeType": "ModifierInvocation",
"src": "3047:26:1"
}
],
"name": "upgradeTokenBuild",
"nameLocation": "2919:17:1",
"parameters": {
"id": 319,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 314,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "2954:7:1",
"nodeType": "VariableDeclaration",
"scope": 335,
"src": "2946:15:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 313,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "2946:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 316,
"mutability": "mutable",
"name": "commit",
"nameLocation": "2985:6:1",
"nodeType": "VariableDeclaration",
"scope": 335,
"src": "2971:20:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 315,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "2971:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 318,
"mutability": "mutable",
"name": "repository",
"nameLocation": "3015:10:1",
"nodeType": "VariableDeclaration",
"scope": 335,
"src": "3001:24:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 317,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3001:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "2936:95:1"
},
"returnParameters": {
"id": 323,
"nodeType": "ParameterList",
"parameters": [],
"src": "3074:0:1"
},
"scope": 745,
"stateMutability": "payable",
"virtual": false,
"visibility": "public"
},
{
"id": 438,
"nodeType": "FunctionDefinition",
"src": "3172:1137:1",
"nodes": [],
"body": {
"id": 437,
"nodeType": "Block",
"src": "3274:1035:1",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 344,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 337,
"src": "3299:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 343,
"name": "_requireMinted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26617,
"src": "3284:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$",
"typeString": "function (uint256) view"
}
},
"id": 345,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3284:23:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 346,
"nodeType": "ExpressionStatement",
"src": "3284:23:1"
},
{
"assignments": [
348
],
"declarations": [
{
"constant": false,
"id": 348,
"mutability": "mutable",
"name": "owner",
"nameLocation": "3325:5:1",
"nodeType": "VariableDeclaration",
"scope": 437,
"src": "3317:13:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 347,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "3317:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"id": 352,
"initialValue": {
"arguments": [
{
"id": 350,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 337,
"src": "3341:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 349,
"name": "ownerOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25940,
"src": "3333:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
"typeString": "function (uint256) view returns (address)"
}
},
"id": 351,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3333:16:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3317:32:1"
},
{
"assignments": [
355
],
"declarations": [
{
"constant": false,
"id": 355,
"mutability": "mutable",
"name": "app",
"nameLocation": "3371:3:1",
"nodeType": "VariableDeclaration",
"scope": 437,
"src": "3359:15:1",
"stateVariable": false,
"storageLocation": "storage",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App"
},
"typeName": {
"id": 354,
"nodeType": "UserDefinedTypeName",
"pathNode": {
"id": 353,
"name": "App",
"nameLocations": [
"3359:3:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 175,
"src": "3359:3:1"
},
"referencedDeclaration": 175,
"src": "3359:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App"
}
},
"visibility": "internal"
}
],
"id": 359,
"initialValue": {
"baseExpression": {
"id": 356,
"name": "_apps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 183,
"src": "3377:5:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.App storage ref)"
}
},
"id": 358,
"indexExpression": {
"id": 357,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 337,
"src": "3383:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3377:14:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage",
"typeString": "struct FleekERC721.App storage ref"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3359:32:1"
},
{
"assignments": [
361
],
"declarations": [
{
"constant": false,
"id": 361,
"mutability": "mutable",
"name": "dataURI",
"nameLocation": "3415:7:1",
"nodeType": "VariableDeclaration",
"scope": 437,
"src": "3402:20:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes"
},
"typeName": {
"id": 360,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "3402:5:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes"
}
},
"visibility": "internal"
}
],
"id": 422,
"initialValue": {
"arguments": [
{
"hexValue": "7b",
"id": 364,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3455:3:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_a91eddf639b0b768929589c1a9fd21dcb0107199bdd82e55c5348018a1572f52",
"typeString": "literal_string \"{\""
},
"value": "{"
},
{
"hexValue": "226e616d65223a22",
"id": 365,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3476:10:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_51367d69f1c3baff467b722249990cf2b0f92b1e50edd5a778b81ffc7191408f",
"typeString": "literal_string \"\"name\":\"\""
},
"value": "\"name\":\""
},
{
"expression": {
"id": 366,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 355,
"src": "3488:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 367,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3492:4:1",
"memberName": "name",
"nodeType": "MemberAccess",
"referencedDeclaration": 159,
"src": "3488:8:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
{
"hexValue": "222c",
"id": 368,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3498:4:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb",
"typeString": "literal_string \"\",\""
},
"value": "\","
},
{
"hexValue": "226465736372697074696f6e223a22",
"id": 369,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3520:17:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_1f63d9db42efe217d85281c4ef6267f200cbdd8e8d6fd9a3e9d557ed86a373c7",
"typeString": "literal_string \"\"description\":\"\""
},
"value": "\"description\":\""
},
{
"expression": {
"id": 370,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 355,
"src": "3539:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 371,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3543:11:1",
"memberName": "description",
"nodeType": "MemberAccess",
"referencedDeclaration": 161,
"src": "3539:15:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
{
"hexValue": "222c",
"id": 372,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3556:4:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb",
"typeString": "literal_string \"\",\""
},
"value": "\","
},
{
"hexValue": "226f776e6572223a22",
"id": 373,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3578:11:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_aa5040bb3495d70c48509afbb928e8d0398ff0e9a4d595e1bd35082607eb6804",
"typeString": "literal_string \"\"owner\":\"\""
},
"value": "\"owner\":\""
},
{
"arguments": [
{
"arguments": [
{
"id": 378,
"name": "owner",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 348,
"src": "3619:5:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 377,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "3611:7:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_uint160_$",
"typeString": "type(uint160)"
},
"typeName": {
"id": 376,
"name": "uint160",
"nodeType": "ElementaryTypeName",
"src": "3611:7:1",
"typeDescriptions": {}
}
},
"id": 379,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3611:14:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_uint160",
"typeString": "uint160"
}
},
{
"hexValue": "3230",
"id": 380,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3627:2:1",
"typeDescriptions": {
"typeIdentifier": "t_rational_20_by_1",
"typeString": "int_const 20"
},
"value": "20"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint160",
"typeString": "uint160"
},
{
"typeIdentifier": "t_rational_20_by_1",
"typeString": "int_const 20"
}
],
"expression": {
"id": 374,
"name": "Strings",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27548,
"src": "3591:7:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Strings_$27548_$",
"typeString": "type(library Strings)"
}
},
"id": 375,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3599:11:1",
"memberName": "toHexString",
"nodeType": "MemberAccess",
"referencedDeclaration": 27527,
"src": "3591:19:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_uint256_$returns$_t_string_memory_ptr_$",
"typeString": "function (uint256,uint256) pure returns (string memory)"
}
},
"id": 381,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3591:39:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"hexValue": "222c",
"id": 382,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3632:4:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb",
"typeString": "literal_string \"\",\""
},
"value": "\","
},
{
"hexValue": "2265787465726e616c5f75726c223a22",
"id": 383,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3654:18:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_153dd7a4db1a16c0bc09459a32699b07f8a0722d62a40df6d0b30c2d78048b07",
"typeString": "literal_string \"\"external_url\":\"\""
},
"value": "\"external_url\":\""
},
{
"expression": {
"id": 384,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 355,
"src": "3674:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 385,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3678:12:1",
"memberName": "external_url",
"nodeType": "MemberAccess",
"referencedDeclaration": 165,
"src": "3674:16:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
{
"hexValue": "222c",
"id": 386,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3692:4:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb",
"typeString": "literal_string \"\",\""
},
"value": "\","
},
{
"hexValue": "22696d616765223a22",
"id": 387,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3714:11:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_813a444dcf0b75d812ca8afb53e513b340ca828208f41bc16bdcde529c0ea551",
"typeString": "literal_string \"\"image\":\"\""
},
"value": "\"image\":\""
},
{
"expression": {
"id": 388,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 355,
"src": "3727:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 389,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3731:5:1",
"memberName": "image",
"nodeType": "MemberAccess",
"referencedDeclaration": 163,
"src": "3727:9:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
{
"hexValue": "222c",
"id": 390,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3738:4:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb",
"typeString": "literal_string \"\",\""
},
"value": "\","
},
{
"hexValue": "2261747472696275746573223a205b",
"id": 391,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3760:17:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_a9d6c84473de3f3a866c16d436066b8d4df325a647d2d3a768ffba45df210f3c",
"typeString": "literal_string \"\"attributes\": [\""
},
"value": "\"attributes\": ["
},
{
"hexValue": "7b2274726169745f74797065223a2022454e53222c202276616c7565223a22",
"id": 392,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3799:33:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b1977dad00b1d45df31cde385892922fbf01ae8899a8104464fe62faa11870d0",
"typeString": "literal_string \"{\"trait_type\": \"ENS\", \"value\":\"\""
},
"value": "{\"trait_type\": \"ENS\", \"value\":\""
},
{
"expression": {
"id": 393,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 355,
"src": "3834:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 394,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3838:3:1",
"memberName": "ENS",
"nodeType": "MemberAccess",
"referencedDeclaration": 167,
"src": "3834:7:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
{
"hexValue": "227d2c",
"id": 395,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3842:5:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3e7f42fdd49259e0595590a474a25222fd39a13615f6ea5ab69ecfc85ad8702f",
"typeString": "literal_string \"\"},\""
},
"value": "\"},"
},
{
"hexValue": "7b2274726169745f74797065223a2022436f6d6d69742048617368222c202276616c7565223a22",
"id": 396,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3869:41:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b73d9590f8416c8a9cef1b886e2fdf15148022d38f7665a30169401f08d28d84",
"typeString": "literal_string \"{\"trait_type\": \"Commit Hash\", \"value\":\"\""
},
"value": "{\"trait_type\": \"Commit Hash\", \"value\":\""
},
{
"expression": {
"baseExpression": {
"expression": {
"id": 397,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 355,
"src": "3912:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 398,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3916:6:1",
"memberName": "builds",
"nodeType": "MemberAccess",
"referencedDeclaration": 174,
"src": "3912:10:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Build_$157_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.Build storage ref)"
}
},
"id": 401,
"indexExpression": {
"expression": {
"id": 399,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 355,
"src": "3923:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 400,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3927:13:1",
"memberName": "current_build",
"nodeType": "MemberAccess",
"referencedDeclaration": 169,
"src": "3923:17:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "3912:29:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Build_$157_storage",
"typeString": "struct FleekERC721.Build storage ref"
}
},
"id": 402,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "3942:11:1",
"memberName": "commit_hash",
"nodeType": "MemberAccess",
"referencedDeclaration": 154,
"src": "3912:41:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
{
"hexValue": "227d2c",
"id": 403,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3954:5:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3e7f42fdd49259e0595590a474a25222fd39a13615f6ea5ab69ecfc85ad8702f",
"typeString": "literal_string \"\"},\""
},
"value": "\"},"
},
{
"hexValue": "7b2274726169745f74797065223a20225265706f7369746f7279222c202276616c7565223a22",
"id": 404,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "3981:40:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_4b900011f9aa689cc6367c1d032b6aa02ddd903a01891d40bcc6ccf8deec8fe8",
"typeString": "literal_string \"{\"trait_type\": \"Repository\", \"value\":\"\""
},
"value": "{\"trait_type\": \"Repository\", \"value\":\""
},
{
"expression": {
"baseExpression": {
"expression": {
"id": 405,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 355,
"src": "4023:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 406,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4027:6:1",
"memberName": "builds",
"nodeType": "MemberAccess",
"referencedDeclaration": 174,
"src": "4023:10:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Build_$157_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.Build storage ref)"
}
},
"id": 409,
"indexExpression": {
"expression": {
"id": 407,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 355,
"src": "4034:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 408,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4038:13:1",
"memberName": "current_build",
"nodeType": "MemberAccess",
"referencedDeclaration": 169,
"src": "4034:17:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "4023:29:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Build_$157_storage",
"typeString": "struct FleekERC721.Build storage ref"
}
},
"id": 410,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4053:14:1",
"memberName": "git_repository",
"nodeType": "MemberAccess",
"referencedDeclaration": 156,
"src": "4023:44:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
{
"hexValue": "227d2c",
"id": 411,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4068:5:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_3e7f42fdd49259e0595590a474a25222fd39a13615f6ea5ab69ecfc85ad8702f",
"typeString": "literal_string \"\"},\""
},
"value": "\"},"
},
{
"hexValue": "7b2274726169745f74797065223a202256657273696f6e222c202276616c7565223a22",
"id": 412,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4095:37:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_28f5df53320854e06a7bf4620fddd54d632f51e992a075a608d3ffbf7301ce24",
"typeString": "literal_string \"{\"trait_type\": \"Version\", \"value\":\"\""
},
"value": "{\"trait_type\": \"Version\", \"value\":\""
},
{
"arguments": [
{
"expression": {
"id": 415,
"name": "app",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 355,
"src": "4151:3:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage_ptr",
"typeString": "struct FleekERC721.App storage pointer"
}
},
"id": 416,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4155:13:1",
"memberName": "current_build",
"nodeType": "MemberAccess",
"referencedDeclaration": 169,
"src": "4151:17:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 413,
"name": "Strings",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27548,
"src": "4134:7:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Strings_$27548_$",
"typeString": "type(library Strings)"
}
},
"id": 414,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4142:8:1",
"memberName": "toString",
"nodeType": "MemberAccess",
"referencedDeclaration": 27431,
"src": "4134:16:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$returns$_t_string_memory_ptr_$",
"typeString": "function (uint256) pure returns (string memory)"
}
},
"id": 417,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4134:35:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"hexValue": "227d",
"id": 418,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4170:4:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475",
"typeString": "literal_string \"\"}\""
},
"value": "\"}"
},
{
"hexValue": "5d",
"id": 419,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4192:3:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29",
"typeString": "literal_string \"]\""
},
"value": "]"
},
{
"hexValue": "7d",
"id": 420,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4209:3:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_8e2ffa389f3a6ded42d759b3377ac0d928e6a268d143bcc9517093d10c843bff",
"typeString": "literal_string \"}\""
},
"value": "}"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_stringliteral_a91eddf639b0b768929589c1a9fd21dcb0107199bdd82e55c5348018a1572f52",
"typeString": "literal_string \"{\""
},
{
"typeIdentifier": "t_stringliteral_51367d69f1c3baff467b722249990cf2b0f92b1e50edd5a778b81ffc7191408f",
"typeString": "literal_string \"\"name\":\"\""
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
},
{
"typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb",
"typeString": "literal_string \"\",\""
},
{
"typeIdentifier": "t_stringliteral_1f63d9db42efe217d85281c4ef6267f200cbdd8e8d6fd9a3e9d557ed86a373c7",
"typeString": "literal_string \"\"description\":\"\""
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
},
{
"typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb",
"typeString": "literal_string \"\",\""
},
{
"typeIdentifier": "t_stringliteral_aa5040bb3495d70c48509afbb928e8d0398ff0e9a4d595e1bd35082607eb6804",
"typeString": "literal_string \"\"owner\":\"\""
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
},
{
"typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb",
"typeString": "literal_string \"\",\""
},
{
"typeIdentifier": "t_stringliteral_153dd7a4db1a16c0bc09459a32699b07f8a0722d62a40df6d0b30c2d78048b07",
"typeString": "literal_string \"\"external_url\":\"\""
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
},
{
"typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb",
"typeString": "literal_string \"\",\""
},
{
"typeIdentifier": "t_stringliteral_813a444dcf0b75d812ca8afb53e513b340ca828208f41bc16bdcde529c0ea551",
"typeString": "literal_string \"\"image\":\"\""
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
},
{
"typeIdentifier": "t_stringliteral_24823e6fed9f46f380d33960e511caeb002037c5a4e9735154809fa36b166ffb",
"typeString": "literal_string \"\",\""
},
{
"typeIdentifier": "t_stringliteral_a9d6c84473de3f3a866c16d436066b8d4df325a647d2d3a768ffba45df210f3c",
"typeString": "literal_string \"\"attributes\": [\""
},
{
"typeIdentifier": "t_stringliteral_b1977dad00b1d45df31cde385892922fbf01ae8899a8104464fe62faa11870d0",
"typeString": "literal_string \"{\"trait_type\": \"ENS\", \"value\":\"\""
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
},
{
"typeIdentifier": "t_stringliteral_3e7f42fdd49259e0595590a474a25222fd39a13615f6ea5ab69ecfc85ad8702f",
"typeString": "literal_string \"\"},\""
},
{
"typeIdentifier": "t_stringliteral_b73d9590f8416c8a9cef1b886e2fdf15148022d38f7665a30169401f08d28d84",
"typeString": "literal_string \"{\"trait_type\": \"Commit Hash\", \"value\":\"\""
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
},
{
"typeIdentifier": "t_stringliteral_3e7f42fdd49259e0595590a474a25222fd39a13615f6ea5ab69ecfc85ad8702f",
"typeString": "literal_string \"\"},\""
},
{
"typeIdentifier": "t_stringliteral_4b900011f9aa689cc6367c1d032b6aa02ddd903a01891d40bcc6ccf8deec8fe8",
"typeString": "literal_string \"{\"trait_type\": \"Repository\", \"value\":\"\""
},
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
},
{
"typeIdentifier": "t_stringliteral_3e7f42fdd49259e0595590a474a25222fd39a13615f6ea5ab69ecfc85ad8702f",
"typeString": "literal_string \"\"},\""
},
{
"typeIdentifier": "t_stringliteral_28f5df53320854e06a7bf4620fddd54d632f51e992a075a608d3ffbf7301ce24",
"typeString": "literal_string \"{\"trait_type\": \"Version\", \"value\":\"\""
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
},
{
"typeIdentifier": "t_stringliteral_835b459273672627bbafc3a2eded65187a632f4128bdc79e126c7ef579a27475",
"typeString": "literal_string \"\"}\""
},
{
"typeIdentifier": "t_stringliteral_b36bcf9cc1d9e7f60b1f757ebd8b4694b17fc592b16065d243c43b09fde00b29",
"typeString": "literal_string \"]\""
},
{
"typeIdentifier": "t_stringliteral_8e2ffa389f3a6ded42d759b3377ac0d928e6a268d143bcc9517093d10c843bff",
"typeString": "literal_string \"}\""
}
],
"expression": {
"id": 362,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "3425:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 363,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "3429:12:1",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "3425:16:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 421,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "3425:797:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
},
"nodeType": "VariableDeclarationStatement",
"src": "3402:820:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"arguments": [],
"expression": {
"argumentTypes": [],
"id": 427,
"name": "_baseURI",
"nodeType": "Identifier",
"overloadedDeclarations": [
529
],
"referencedDeclaration": 529,
"src": "4264:8:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$__$returns$_t_string_memory_ptr_$",
"typeString": "function () view returns (string memory)"
}
},
"id": 428,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4264:10:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"arguments": [
{
"components": [
{
"id": 431,
"name": "dataURI",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 361,
"src": "4291:7:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"id": 432,
"isConstant": false,
"isInlineArray": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "TupleExpression",
"src": "4290:9:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"expression": {
"id": 429,
"name": "Base64",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 27277,
"src": "4276:6:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_contract$_Base64_$27277_$",
"typeString": "type(library Base64)"
}
},
"id": 430,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "4283:6:1",
"memberName": "encode",
"nodeType": "MemberAccess",
"referencedDeclaration": 27276,
"src": "4276:13:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_bytes_memory_ptr_$returns$_t_string_memory_ptr_$",
"typeString": "function (bytes memory) pure returns (string memory)"
}
},
"id": 433,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4276:24:1",
"tryCall": false,
"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"
}
],
"expression": {
"id": 425,
"name": "abi",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -1,
"src": "4247:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_abi",
"typeString": "abi"
}
},
"id": 426,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"memberLocation": "4251:12:1",
"memberName": "encodePacked",
"nodeType": "MemberAccess",
"src": "4247:16:1",
"typeDescriptions": {
"typeIdentifier": "t_function_abiencodepacked_pure$__$returns$_t_bytes_memory_ptr_$",
"typeString": "function () pure returns (bytes memory)"
}
},
"id": 434,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4247:54:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes_memory_ptr",
"typeString": "bytes memory"
}
],
"id": 424,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "4240:6:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_string_storage_ptr_$",
"typeString": "type(string storage pointer)"
},
"typeName": {
"id": 423,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "4240:6:1",
"typeDescriptions": {}
}
},
"id": 435,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4240:62:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"functionReturnParameters": 342,
"id": 436,
"nodeType": "Return",
"src": "4233:69:1"
}
]
},
"baseFunctions": [
25999
],
"functionSelector": "c87b56dd",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "tokenURI",
"nameLocation": "3181:8:1",
"overrides": {
"id": 339,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "3241:8:1"
},
"parameters": {
"id": 338,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 337,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "3207:7:1",
"nodeType": "VariableDeclaration",
"scope": 438,
"src": "3199:15:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 336,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "3199:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "3189:31:1"
},
"returnParameters": {
"id": 342,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 341,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 438,
"src": "3259:13:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 340,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "3259:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "3258:15:1"
},
"scope": 745,
"stateMutability": "view",
"virtual": true,
"visibility": "public"
},
{
"id": 461,
"nodeType": "FunctionDefinition",
"src": "4315:228:1",
"nodes": [],
"body": {
"id": 460,
"nodeType": "Block",
"src": "4436:107:1",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 449,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 440,
"src": "4461:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 448,
"name": "_requireMinted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26617,
"src": "4446:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$",
"typeString": "function (uint256) view"
}
},
"id": 450,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4446:23:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 451,
"nodeType": "ExpressionStatement",
"src": "4446:23:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 454,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 440,
"src": "4501:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"hexValue": "434f4e54524f4c4c4552",
"id": 455,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4510:12:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_70546d1c92f8c2132ae23a23f5177aa8526356051c7510df99f50e012d221529",
"typeString": "literal_string \"CONTROLLER\""
},
"value": "CONTROLLER"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_stringliteral_70546d1c92f8c2132ae23a23f5177aa8526356051c7510df99f50e012d221529",
"typeString": "literal_string \"CONTROLLER\""
}
],
"id": 453,
"name": "_tokenRole",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 98,
"src": "4490:10:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 456,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4490:33:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 457,
"name": "controller",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 442,
"src": "4525:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 452,
"name": "_grantRole",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25689,
"src": "4479:10:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
"typeString": "function (bytes32,address)"
}
},
"id": 458,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4479:57:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 459,
"nodeType": "ExpressionStatement",
"src": "4479:57:1"
}
]
},
"functionSelector": "dcd78186",
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": [
{
"id": 445,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 440,
"src": "4427:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 446,
"kind": "modifierInvocation",
"modifierName": {
"id": 444,
"name": "requireTokenOwner",
"nameLocations": [
"4409:17:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 211,
"src": "4409:17:1"
},
"nodeType": "ModifierInvocation",
"src": "4409:26:1"
}
],
"name": "addTokenController",
"nameLocation": "4324:18:1",
"parameters": {
"id": 443,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 440,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "4360:7:1",
"nodeType": "VariableDeclaration",
"scope": 461,
"src": "4352:15:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 439,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4352:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 442,
"mutability": "mutable",
"name": "controller",
"nameLocation": "4385:10:1",
"nodeType": "VariableDeclaration",
"scope": 461,
"src": "4377:18:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 441,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4377:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "4342:59:1"
},
"returnParameters": {
"id": 447,
"nodeType": "ParameterList",
"parameters": [],
"src": "4436:0:1"
},
"scope": 745,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"id": 481,
"nodeType": "FunctionDefinition",
"src": "4549:204:1",
"nodes": [],
"body": {
"id": 480,
"nodeType": "Block",
"src": "4646:107:1",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 469,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 463,
"src": "4671:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 468,
"name": "_requireMinted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26617,
"src": "4656:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$",
"typeString": "function (uint256) view"
}
},
"id": 470,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4656:23:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 471,
"nodeType": "ExpressionStatement",
"src": "4656:23:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 474,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 463,
"src": "4711:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"hexValue": "434f4e54524f4c4c4552",
"id": 475,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4720:12:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_70546d1c92f8c2132ae23a23f5177aa8526356051c7510df99f50e012d221529",
"typeString": "literal_string \"CONTROLLER\""
},
"value": "CONTROLLER"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_stringliteral_70546d1c92f8c2132ae23a23f5177aa8526356051c7510df99f50e012d221529",
"typeString": "literal_string \"CONTROLLER\""
}
],
"id": 473,
"name": "_tokenRole",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 98,
"src": "4700:10:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 476,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4700:33:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 477,
"name": "controller",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 465,
"src": "4735:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 472,
"name": "_grantRole",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25689,
"src": "4689:10:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
"typeString": "function (bytes32,address)"
}
},
"id": 478,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4689:57:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 479,
"nodeType": "ExpressionStatement",
"src": "4689:57:1"
}
]
},
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_addTokenController",
"nameLocation": "4558:19:1",
"parameters": {
"id": 466,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 463,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "4595:7:1",
"nodeType": "VariableDeclaration",
"scope": 481,
"src": "4587:15:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 462,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4587:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 465,
"mutability": "mutable",
"name": "controller",
"nameLocation": "4620:10:1",
"nodeType": "VariableDeclaration",
"scope": 481,
"src": "4612:18:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 464,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4612:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "4577:59:1"
},
"returnParameters": {
"id": 467,
"nodeType": "ParameterList",
"parameters": [],
"src": "4646:0:1"
},
"scope": 745,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "internal"
},
{
"id": 504,
"nodeType": "FunctionDefinition",
"src": "4759:232:1",
"nodes": [],
"body": {
"id": 503,
"nodeType": "Block",
"src": "4883:108:1",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 492,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 483,
"src": "4908:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 491,
"name": "_requireMinted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26617,
"src": "4893:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$",
"typeString": "function (uint256) view"
}
},
"id": 493,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4893:23:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 494,
"nodeType": "ExpressionStatement",
"src": "4893:23:1"
},
{
"expression": {
"arguments": [
{
"arguments": [
{
"id": 497,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 483,
"src": "4949:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"hexValue": "434f4e54524f4c4c4552",
"id": 498,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "4958:12:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_70546d1c92f8c2132ae23a23f5177aa8526356051c7510df99f50e012d221529",
"typeString": "literal_string \"CONTROLLER\""
},
"value": "CONTROLLER"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_stringliteral_70546d1c92f8c2132ae23a23f5177aa8526356051c7510df99f50e012d221529",
"typeString": "literal_string \"CONTROLLER\""
}
],
"id": 496,
"name": "_tokenRole",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 98,
"src": "4938:10:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_pure$_t_uint256_$_t_string_memory_ptr_$returns$_t_bytes32_$",
"typeString": "function (uint256,string memory) pure returns (bytes32)"
}
},
"id": 499,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4938:33:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
}
},
{
"id": 500,
"name": "controller",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 485,
"src": "4973:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes32",
"typeString": "bytes32"
},
{
"typeIdentifier": "t_address",
"typeString": "address"
}
],
"id": 495,
"name": "_revokeRole",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25720,
"src": "4926:11:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$__$",
"typeString": "function (bytes32,address)"
}
},
"id": 501,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "4926:58:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 502,
"nodeType": "ExpressionStatement",
"src": "4926:58:1"
}
]
},
"functionSelector": "befaa6a3",
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": [
{
"id": 488,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 483,
"src": "4874:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 489,
"kind": "modifierInvocation",
"modifierName": {
"id": 487,
"name": "requireTokenOwner",
"nameLocations": [
"4856:17:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 211,
"src": "4856:17:1"
},
"nodeType": "ModifierInvocation",
"src": "4856:26:1"
}
],
"name": "removeTokenController",
"nameLocation": "4768:21:1",
"parameters": {
"id": 486,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 483,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "4807:7:1",
"nodeType": "VariableDeclaration",
"scope": 504,
"src": "4799:15:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 482,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "4799:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 485,
"mutability": "mutable",
"name": "controller",
"nameLocation": "4832:10:1",
"nodeType": "VariableDeclaration",
"scope": 504,
"src": "4824:18:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"typeName": {
"id": 484,
"name": "address",
"nodeType": "ElementaryTypeName",
"src": "4824:7:1",
"stateMutability": "nonpayable",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"visibility": "internal"
}
],
"src": "4789:59:1"
},
"returnParameters": {
"id": 490,
"nodeType": "ParameterList",
"parameters": [],
"src": "4883:0:1"
},
"scope": 745,
"stateMutability": "nonpayable",
"virtual": false,
"visibility": "public"
},
{
"id": 520,
"nodeType": "FunctionDefinition",
"src": "4997:188:1",
"nodes": [],
"body": {
"id": 519,
"nodeType": "Block",
"src": "5125:60:1",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 516,
"name": "interfaceId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 506,
"src": "5166:11:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
],
"expression": {
"id": 514,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -25,
"src": "5142:5:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_super$_FleekERC721_$745_$",
"typeString": "type(contract super FleekERC721)"
}
},
"id": 515,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "5148:17:1",
"memberName": "supportsInterface",
"nodeType": "MemberAccess",
"referencedDeclaration": 25466,
"src": "5142:23:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
"typeString": "function (bytes4) view returns (bool)"
}
},
"id": 517,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5142:36:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"functionReturnParameters": 513,
"id": 518,
"nodeType": "Return",
"src": "5135:43:1"
}
]
},
"baseFunctions": [
25466,
25888
],
"functionSelector": "01ffc9a7",
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "supportsInterface",
"nameLocation": "5006:17:1",
"overrides": {
"id": 510,
"nodeType": "OverrideSpecifier",
"overrides": [
{
"id": 508,
"name": "ERC721",
"nameLocations": [
"5087:6:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26739,
"src": "5087:6:1"
},
{
"id": 509,
"name": "AccessControl",
"nameLocations": [
"5095:13:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 25721,
"src": "5095:13:1"
}
],
"src": "5078:31:1"
},
"parameters": {
"id": 507,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 506,
"mutability": "mutable",
"name": "interfaceId",
"nameLocation": "5040:11:1",
"nodeType": "VariableDeclaration",
"scope": 520,
"src": "5033:18:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
},
"typeName": {
"id": 505,
"name": "bytes4",
"nodeType": "ElementaryTypeName",
"src": "5033:6:1",
"typeDescriptions": {
"typeIdentifier": "t_bytes4",
"typeString": "bytes4"
}
},
"visibility": "internal"
}
],
"src": "5023:34:1"
},
"returnParameters": {
"id": 513,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 512,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 520,
"src": "5119:4:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
},
"typeName": {
"id": 511,
"name": "bool",
"nodeType": "ElementaryTypeName",
"src": "5119:4:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"visibility": "internal"
}
],
"src": "5118:6:1"
},
"scope": 745,
"stateMutability": "view",
"virtual": true,
"visibility": "public"
},
{
"id": 529,
"nodeType": "FunctionDefinition",
"src": "5191:130:1",
"nodes": [],
"body": {
"id": 528,
"nodeType": "Block",
"src": "5266:55:1",
"nodes": [],
"statements": [
{
"expression": {
"hexValue": "646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c",
"id": 526,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "5283:31:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_bccab2d885f86fda81bfd84dd4248d31f8073b473d187111d36536db073076fa",
"typeString": "literal_string \"data:application/json;base64,\""
},
"value": "data:application/json;base64,"
},
"functionReturnParameters": 525,
"id": 527,
"nodeType": "Return",
"src": "5276:38:1"
}
]
},
"baseFunctions": [
26008
],
"implemented": true,
"kind": "function",
"modifiers": [],
"name": "_baseURI",
"nameLocation": "5200:8:1",
"overrides": {
"id": 522,
"nodeType": "OverrideSpecifier",
"overrides": [],
"src": "5233:8:1"
},
"parameters": {
"id": 521,
"nodeType": "ParameterList",
"parameters": [],
"src": "5208:2:1"
},
"returnParameters": {
"id": 525,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 524,
"mutability": "mutable",
"name": "",
"nameLocation": "-1:-1:-1",
"nodeType": "VariableDeclaration",
"scope": 529,
"src": "5251:13:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 523,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5251:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "5250:15:1"
},
"scope": 745,
"stateMutability": "view",
"virtual": true,
"visibility": "internal"
},
{
"id": 556,
"nodeType": "FunctionDefinition",
"src": "5327:307:1",
"nodes": [],
"body": {
"id": 555,
"nodeType": "Block",
"src": "5475:159:1",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 540,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 531,
"src": "5500:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 539,
"name": "_requireMinted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26617,
"src": "5485:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$",
"typeString": "function (uint256) view"
}
},
"id": 541,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5485:23:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 542,
"nodeType": "ExpressionStatement",
"src": "5485:23:1"
},
{
"expression": {
"id": 548,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"baseExpression": {
"id": 543,
"name": "_apps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 183,
"src": "5518:5:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.App storage ref)"
}
},
"id": 545,
"indexExpression": {
"id": 544,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 531,
"src": "5524:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5518:14:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage",
"typeString": "struct FleekERC721.App storage ref"
}
},
"id": 546,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "5533:12:1",
"memberName": "external_url",
"nodeType": "MemberAccess",
"referencedDeclaration": 165,
"src": "5518:27:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 547,
"name": "_tokenExternalURL",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 533,
"src": "5548:17:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "5518:47:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 549,
"nodeType": "ExpressionStatement",
"src": "5518:47:1"
},
{
"eventCall": {
"arguments": [
{
"id": 551,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 531,
"src": "5600:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 552,
"name": "_tokenExternalURL",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 533,
"src": "5609:17:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 550,
"name": "NewTokenExternalURL",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 146,
"src": "5580:19:1",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (uint256,string memory)"
}
},
"id": 553,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5580:47:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 554,
"nodeType": "EmitStatement",
"src": "5575:52:1"
}
]
},
"functionSelector": "f9315177",
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": [
{
"id": 536,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 531,
"src": "5466:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 537,
"kind": "modifierInvocation",
"modifierName": {
"id": 535,
"name": "requireTokenController",
"nameLocations": [
"5443:22:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 79,
"src": "5443:22:1"
},
"nodeType": "ModifierInvocation",
"src": "5443:31:1"
}
],
"name": "setTokenExternalURL",
"nameLocation": "5336:19:1",
"parameters": {
"id": 534,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 531,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "5373:7:1",
"nodeType": "VariableDeclaration",
"scope": 556,
"src": "5365:15:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 530,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5365:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 533,
"mutability": "mutable",
"name": "_tokenExternalURL",
"nameLocation": "5404:17:1",
"nodeType": "VariableDeclaration",
"scope": 556,
"src": "5390:31:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 532,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5390:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "5355:72:1"
},
"returnParameters": {
"id": 538,
"nodeType": "ParameterList",
"parameters": [],
"src": "5475:0:1"
},
"scope": 745,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "public"
},
{
"id": 583,
"nodeType": "FunctionDefinition",
"src": "5640:258:1",
"nodes": [],
"body": {
"id": 582,
"nodeType": "Block",
"src": "5772:126:1",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 567,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 558,
"src": "5797:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 566,
"name": "_requireMinted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26617,
"src": "5782:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$",
"typeString": "function (uint256) view"
}
},
"id": 568,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5782:23:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 569,
"nodeType": "ExpressionStatement",
"src": "5782:23:1"
},
{
"expression": {
"id": 575,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"baseExpression": {
"id": 570,
"name": "_apps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 183,
"src": "5815:5:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.App storage ref)"
}
},
"id": 572,
"indexExpression": {
"id": 571,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 558,
"src": "5821:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "5815:14:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage",
"typeString": "struct FleekERC721.App storage ref"
}
},
"id": 573,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "5830:3:1",
"memberName": "ENS",
"nodeType": "MemberAccess",
"referencedDeclaration": 167,
"src": "5815:18:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 574,
"name": "_tokenENS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 560,
"src": "5836:9:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "5815:30:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 576,
"nodeType": "ExpressionStatement",
"src": "5815:30:1"
},
{
"eventCall": {
"arguments": [
{
"id": 578,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 558,
"src": "5872:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 579,
"name": "_tokenENS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 560,
"src": "5881:9:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 577,
"name": "NewTokenENS",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 152,
"src": "5860:11:1",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (uint256,string memory)"
}
},
"id": 580,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "5860:31:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 581,
"nodeType": "EmitStatement",
"src": "5855:36:1"
}
]
},
"functionSelector": "78278cca",
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": [
{
"id": 563,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 558,
"src": "5763:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 564,
"kind": "modifierInvocation",
"modifierName": {
"id": 562,
"name": "requireTokenController",
"nameLocations": [
"5740:22:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 79,
"src": "5740:22:1"
},
"nodeType": "ModifierInvocation",
"src": "5740:31:1"
}
],
"name": "setTokenENS",
"nameLocation": "5649:11:1",
"parameters": {
"id": 561,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 558,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "5678:7:1",
"nodeType": "VariableDeclaration",
"scope": 583,
"src": "5670:15:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 557,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5670:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 560,
"mutability": "mutable",
"name": "_tokenENS",
"nameLocation": "5709:9:1",
"nodeType": "VariableDeclaration",
"scope": 583,
"src": "5695:23:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 559,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5695:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "5660:64:1"
},
"returnParameters": {
"id": 565,
"nodeType": "ParameterList",
"parameters": [],
"src": "5772:0:1"
},
"scope": 745,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "public"
},
{
"id": 610,
"nodeType": "FunctionDefinition",
"src": "5904:264:1",
"nodes": [],
"body": {
"id": 609,
"nodeType": "Block",
"src": "6038:130:1",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 594,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 585,
"src": "6063:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 593,
"name": "_requireMinted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26617,
"src": "6048:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$",
"typeString": "function (uint256) view"
}
},
"id": 595,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6048:23:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 596,
"nodeType": "ExpressionStatement",
"src": "6048:23:1"
},
{
"expression": {
"id": 602,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"baseExpression": {
"id": 597,
"name": "_apps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 183,
"src": "6081:5:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.App storage ref)"
}
},
"id": 599,
"indexExpression": {
"id": 598,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 585,
"src": "6087:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6081:14:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage",
"typeString": "struct FleekERC721.App storage ref"
}
},
"id": 600,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "6096:4:1",
"memberName": "name",
"nodeType": "MemberAccess",
"referencedDeclaration": 159,
"src": "6081:19:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 601,
"name": "_tokenName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 587,
"src": "6103:10:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "6081:32:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 603,
"nodeType": "ExpressionStatement",
"src": "6081:32:1"
},
{
"eventCall": {
"arguments": [
{
"id": 605,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 585,
"src": "6141:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 606,
"name": "_tokenName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 587,
"src": "6150:10:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 604,
"name": "NewTokenName",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 128,
"src": "6128:12:1",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (uint256,string memory)"
}
},
"id": 607,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6128:33:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 608,
"nodeType": "EmitStatement",
"src": "6123:38:1"
}
]
},
"functionSelector": "cdb0e89e",
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": [
{
"id": 590,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 585,
"src": "6029:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 591,
"kind": "modifierInvocation",
"modifierName": {
"id": 589,
"name": "requireTokenController",
"nameLocations": [
"6006:22:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 79,
"src": "6006:22:1"
},
"nodeType": "ModifierInvocation",
"src": "6006:31:1"
}
],
"name": "setTokenName",
"nameLocation": "5913:12:1",
"parameters": {
"id": 588,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 585,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "5943:7:1",
"nodeType": "VariableDeclaration",
"scope": 610,
"src": "5935:15:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 584,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "5935:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 587,
"mutability": "mutable",
"name": "_tokenName",
"nameLocation": "5974:10:1",
"nodeType": "VariableDeclaration",
"scope": 610,
"src": "5960:24:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 586,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "5960:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "5925:65:1"
},
"returnParameters": {
"id": 592,
"nodeType": "ParameterList",
"parameters": [],
"src": "6038:0:1"
},
"scope": 745,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "public"
},
{
"id": 637,
"nodeType": "FunctionDefinition",
"src": "6174:306:1",
"nodes": [],
"body": {
"id": 636,
"nodeType": "Block",
"src": "6322:158:1",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 621,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 612,
"src": "6347:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 620,
"name": "_requireMinted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26617,
"src": "6332:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$",
"typeString": "function (uint256) view"
}
},
"id": 622,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6332:23:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 623,
"nodeType": "ExpressionStatement",
"src": "6332:23:1"
},
{
"expression": {
"id": 629,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"baseExpression": {
"id": 624,
"name": "_apps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 183,
"src": "6365:5:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.App storage ref)"
}
},
"id": 626,
"indexExpression": {
"id": 625,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 612,
"src": "6371:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6365:14:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage",
"typeString": "struct FleekERC721.App storage ref"
}
},
"id": 627,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "6380:11:1",
"memberName": "description",
"nodeType": "MemberAccess",
"referencedDeclaration": 161,
"src": "6365:26:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 628,
"name": "_tokenDescription",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 614,
"src": "6394:17:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "6365:46:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 630,
"nodeType": "ExpressionStatement",
"src": "6365:46:1"
},
{
"eventCall": {
"arguments": [
{
"id": 632,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 612,
"src": "6446:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 633,
"name": "_tokenDescription",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 614,
"src": "6455:17:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 631,
"name": "NewTokenDescription",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 134,
"src": "6426:19:1",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (uint256,string memory)"
}
},
"id": 634,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6426:47:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 635,
"nodeType": "EmitStatement",
"src": "6421:52:1"
}
]
},
"functionSelector": "246a908b",
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": [
{
"id": 617,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 612,
"src": "6313:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 618,
"kind": "modifierInvocation",
"modifierName": {
"id": 616,
"name": "requireTokenController",
"nameLocations": [
"6290:22:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 79,
"src": "6290:22:1"
},
"nodeType": "ModifierInvocation",
"src": "6290:31:1"
}
],
"name": "setTokenDescription",
"nameLocation": "6183:19:1",
"parameters": {
"id": 615,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 612,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "6220:7:1",
"nodeType": "VariableDeclaration",
"scope": 637,
"src": "6212:15:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 611,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6212:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 614,
"mutability": "mutable",
"name": "_tokenDescription",
"nameLocation": "6251:17:1",
"nodeType": "VariableDeclaration",
"scope": 637,
"src": "6237:31:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 613,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "6237:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "6202:72:1"
},
"returnParameters": {
"id": 619,
"nodeType": "ParameterList",
"parameters": [],
"src": "6322:0:1"
},
"scope": 745,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "public"
},
{
"id": 664,
"nodeType": "FunctionDefinition",
"src": "6486:270:1",
"nodes": [],
"body": {
"id": 663,
"nodeType": "Block",
"src": "6622:134:1",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 648,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 639,
"src": "6647:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 647,
"name": "_requireMinted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26617,
"src": "6632:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$",
"typeString": "function (uint256) view"
}
},
"id": 649,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6632:23:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 650,
"nodeType": "ExpressionStatement",
"src": "6632:23:1"
},
{
"expression": {
"id": 656,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"expression": {
"baseExpression": {
"id": 651,
"name": "_apps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 183,
"src": "6665:5:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.App storage ref)"
}
},
"id": 653,
"indexExpression": {
"id": 652,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 639,
"src": "6671:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6665:14:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage",
"typeString": "struct FleekERC721.App storage ref"
}
},
"id": 654,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "6680:5:1",
"memberName": "image",
"nodeType": "MemberAccess",
"referencedDeclaration": 163,
"src": "6665:20:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"id": 655,
"name": "_tokenImage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 641,
"src": "6688:11:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
"src": "6665:34:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
},
"id": 657,
"nodeType": "ExpressionStatement",
"src": "6665:34:1"
},
{
"eventCall": {
"arguments": [
{
"id": 659,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 639,
"src": "6728:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 660,
"name": "_tokenImage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 641,
"src": "6737:11:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 658,
"name": "NewTokenImage",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 140,
"src": "6714:13:1",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (uint256,string memory)"
}
},
"id": 661,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6714:35:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 662,
"nodeType": "EmitStatement",
"src": "6709:40:1"
}
]
},
"functionSelector": "64140ec0",
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": [
{
"id": 644,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 639,
"src": "6613:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 645,
"kind": "modifierInvocation",
"modifierName": {
"id": 643,
"name": "requireTokenController",
"nameLocations": [
"6590:22:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 79,
"src": "6590:22:1"
},
"nodeType": "ModifierInvocation",
"src": "6590:31:1"
}
],
"name": "setTokenImage",
"nameLocation": "6495:13:1",
"parameters": {
"id": 642,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 639,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "6526:7:1",
"nodeType": "VariableDeclaration",
"scope": 664,
"src": "6518:15:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 638,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6518:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 641,
"mutability": "mutable",
"name": "_tokenImage",
"nameLocation": "6557:11:1",
"nodeType": "VariableDeclaration",
"scope": 664,
"src": "6543:25:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 640,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "6543:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "6508:66:1"
},
"returnParameters": {
"id": 646,
"nodeType": "ParameterList",
"parameters": [],
"src": "6622:0:1"
},
"scope": 745,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "public"
},
{
"id": 702,
"nodeType": "FunctionDefinition",
"src": "6762:364:1",
"nodes": [],
"body": {
"id": 701,
"nodeType": "Block",
"src": "6938:188:1",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"id": 677,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 666,
"src": "6963:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 676,
"name": "_requireMinted",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 26617,
"src": "6948:14:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$__$",
"typeString": "function (uint256) view"
}
},
"id": 678,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "6948:23:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 679,
"nodeType": "ExpressionStatement",
"src": "6948:23:1"
},
{
"expression": {
"id": 694,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftHandSide": {
"baseExpression": {
"expression": {
"baseExpression": {
"id": 680,
"name": "_apps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 183,
"src": "6981:5:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.App storage ref)"
}
},
"id": 682,
"indexExpression": {
"id": 681,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 666,
"src": "6987:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "6981:14:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage",
"typeString": "struct FleekERC721.App storage ref"
}
},
"id": 683,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "6996:6:1",
"memberName": "builds",
"nodeType": "MemberAccess",
"referencedDeclaration": 174,
"src": "6981:21:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_Build_$157_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.Build storage ref)"
}
},
"id": 689,
"indexExpression": {
"id": 688,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "++",
"prefix": true,
"src": "7003:30:1",
"subExpression": {
"expression": {
"baseExpression": {
"id": 684,
"name": "_apps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 183,
"src": "7005:5:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.App storage ref)"
}
},
"id": 686,
"indexExpression": {
"id": 685,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 666,
"src": "7011:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7005:14:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage",
"typeString": "struct FleekERC721.App storage ref"
}
},
"id": 687,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"memberLocation": "7020:13:1",
"memberName": "current_build",
"nodeType": "MemberAccess",
"referencedDeclaration": 169,
"src": "7005:28:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "6981:53:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Build_$157_storage",
"typeString": "struct FleekERC721.Build storage ref"
}
},
"nodeType": "Assignment",
"operator": "=",
"rightHandSide": {
"arguments": [
{
"id": 691,
"name": "_commit_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 668,
"src": "7043:12:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
},
{
"id": 692,
"name": "_git_repository",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 670,
"src": "7057:15:1",
"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": 690,
"name": "Build",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 157,
"src": "7037:5:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_struct$_Build_$157_storage_ptr_$",
"typeString": "type(struct FleekERC721.Build storage pointer)"
}
},
"id": 693,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "structConstructorCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7037:36:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_struct$_Build_$157_memory_ptr",
"typeString": "struct FleekERC721.Build memory"
}
},
"src": "6981:92:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_Build_$157_storage",
"typeString": "struct FleekERC721.Build storage ref"
}
},
"id": 695,
"nodeType": "ExpressionStatement",
"src": "6981:92:1"
},
{
"eventCall": {
"arguments": [
{
"id": 697,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 666,
"src": "7097:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
{
"id": 698,
"name": "_commit_hash",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 668,
"src": "7106:12:1",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
{
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string memory"
}
],
"id": 696,
"name": "NewBuild",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 122,
"src": "7088:8:1",
"typeDescriptions": {
"typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (uint256,string memory)"
}
},
"id": 699,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7088:31:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 700,
"nodeType": "EmitStatement",
"src": "7083:36:1"
}
]
},
"functionSelector": "3806f152",
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": [
{
"id": 673,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 666,
"src": "6929:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 674,
"kind": "modifierInvocation",
"modifierName": {
"id": 672,
"name": "requireTokenController",
"nameLocations": [
"6906:22:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 79,
"src": "6906:22:1"
},
"nodeType": "ModifierInvocation",
"src": "6906:31:1"
}
],
"name": "setTokenBuild",
"nameLocation": "6771:13:1",
"parameters": {
"id": 671,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 666,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "6802:7:1",
"nodeType": "VariableDeclaration",
"scope": 702,
"src": "6794:15:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 665,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "6794:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 668,
"mutability": "mutable",
"name": "_commit_hash",
"nameLocation": "6833:12:1",
"nodeType": "VariableDeclaration",
"scope": 702,
"src": "6819:26:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 667,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "6819:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
},
{
"constant": false,
"id": 670,
"mutability": "mutable",
"name": "_git_repository",
"nameLocation": "6869:15:1",
"nodeType": "VariableDeclaration",
"scope": 702,
"src": "6855:29:1",
"stateVariable": false,
"storageLocation": "memory",
"typeDescriptions": {
"typeIdentifier": "t_string_memory_ptr",
"typeString": "string"
},
"typeName": {
"id": 669,
"name": "string",
"nodeType": "ElementaryTypeName",
"src": "6855:6:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage_ptr",
"typeString": "string"
}
},
"visibility": "internal"
}
],
"src": "6784:106:1"
},
"returnParameters": {
"id": 675,
"nodeType": "ParameterList",
"parameters": [],
"src": "6938:0:1"
},
"scope": 745,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "public"
},
{
"id": 744,
"nodeType": "FunctionDefinition",
"src": "7132:356:1",
"nodes": [],
"body": {
"id": 743,
"nodeType": "Block",
"src": "7224:264:1",
"nodes": [],
"statements": [
{
"expression": {
"arguments": [
{
"commonType": {
"typeIdentifier": "t_address",
"typeString": "address"
},
"id": 716,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"arguments": [
{
"id": 712,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 704,
"src": "7263:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"id": 711,
"name": "ownerOf",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 25940,
"src": "7255:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
"typeString": "function (uint256) view returns (address)"
}
},
"id": 713,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7255:16:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"nodeType": "BinaryOperation",
"operator": "==",
"rightExpression": {
"expression": {
"id": 714,
"name": "msg",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -15,
"src": "7275:3:1",
"typeDescriptions": {
"typeIdentifier": "t_magic_message",
"typeString": "msg"
}
},
"id": 715,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7279:6:1",
"memberName": "sender",
"nodeType": "MemberAccess",
"src": "7275:10:1",
"typeDescriptions": {
"typeIdentifier": "t_address",
"typeString": "address"
}
},
"src": "7255:30:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
{
"hexValue": "466c65656b4552433732313a206d75737420626520746f6b656e206f776e6572",
"id": 717,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "string",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7299:34:1",
"typeDescriptions": {
"typeIdentifier": "t_stringliteral_a648a3de5d26aef0474a63f309beeecd457a566959dd1cff4538789f49f0cc66",
"typeString": "literal_string \"FleekERC721: must be token owner\""
},
"value": "FleekERC721: must be token owner"
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_bool",
"typeString": "bool"
},
{
"typeIdentifier": "t_stringliteral_a648a3de5d26aef0474a63f309beeecd457a566959dd1cff4538789f49f0cc66",
"typeString": "literal_string \"FleekERC721: must be token owner\""
}
],
"id": 710,
"name": "require",
"nodeType": "Identifier",
"overloadedDeclarations": [
-18,
-18
],
"referencedDeclaration": -18,
"src": "7234:7:1",
"typeDescriptions": {
"typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
"typeString": "function (bool,string memory) pure"
}
},
"id": 718,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7234:109:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 719,
"nodeType": "ExpressionStatement",
"src": "7234:109:1"
},
{
"expression": {
"arguments": [
{
"id": 723,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 704,
"src": "7365:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
],
"expression": {
"id": 720,
"name": "super",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": -25,
"src": "7353:5:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_super$_FleekERC721_$745_$",
"typeString": "type(contract super FleekERC721)"
}
},
"id": 722,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7359:5:1",
"memberName": "_burn",
"nodeType": "MemberAccess",
"referencedDeclaration": 26462,
"src": "7353:11:1",
"typeDescriptions": {
"typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$returns$__$",
"typeString": "function (uint256)"
}
},
"id": 724,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "functionCall",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7353:20:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 725,
"nodeType": "ExpressionStatement",
"src": "7353:20:1"
},
{
"condition": {
"commonType": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"id": 735,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"leftExpression": {
"expression": {
"arguments": [
{
"expression": {
"baseExpression": {
"id": 728,
"name": "_apps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 183,
"src": "7394:5:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.App storage ref)"
}
},
"id": 730,
"indexExpression": {
"id": 729,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 704,
"src": "7400:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"nodeType": "IndexAccess",
"src": "7394:14:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage",
"typeString": "struct FleekERC721.App storage ref"
}
},
"id": 731,
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7409:12:1",
"memberName": "external_url",
"nodeType": "MemberAccess",
"referencedDeclaration": 165,
"src": "7394:27:1",
"typeDescriptions": {
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
}
],
"expression": {
"argumentTypes": [
{
"typeIdentifier": "t_string_storage",
"typeString": "string storage ref"
}
],
"id": 727,
"isConstant": false,
"isLValue": false,
"isPure": true,
"lValueRequested": false,
"nodeType": "ElementaryTypeNameExpression",
"src": "7388:5:1",
"typeDescriptions": {
"typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
"typeString": "type(bytes storage pointer)"
},
"typeName": {
"id": 726,
"name": "bytes",
"nodeType": "ElementaryTypeName",
"src": "7388:5:1",
"typeDescriptions": {}
}
},
"id": 732,
"isConstant": false,
"isLValue": false,
"isPure": false,
"kind": "typeConversion",
"lValueRequested": false,
"nameLocations": [],
"names": [],
"nodeType": "FunctionCall",
"src": "7388:34:1",
"tryCall": false,
"typeDescriptions": {
"typeIdentifier": "t_bytes_storage_ptr",
"typeString": "bytes storage pointer"
}
},
"id": 733,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"memberLocation": "7423:6:1",
"memberName": "length",
"nodeType": "MemberAccess",
"src": "7388:41:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"nodeType": "BinaryOperation",
"operator": "!=",
"rightExpression": {
"hexValue": "30",
"id": 734,
"isConstant": false,
"isLValue": false,
"isPure": true,
"kind": "number",
"lValueRequested": false,
"nodeType": "Literal",
"src": "7433:1:1",
"typeDescriptions": {
"typeIdentifier": "t_rational_0_by_1",
"typeString": "int_const 0"
},
"value": "0"
},
"src": "7388:46:1",
"typeDescriptions": {
"typeIdentifier": "t_bool",
"typeString": "bool"
}
},
"id": 742,
"nodeType": "IfStatement",
"src": "7384:98:1",
"trueBody": {
"id": 741,
"nodeType": "Block",
"src": "7436:46:1",
"statements": [
{
"expression": {
"id": 739,
"isConstant": false,
"isLValue": false,
"isPure": false,
"lValueRequested": false,
"nodeType": "UnaryOperation",
"operator": "delete",
"prefix": true,
"src": "7450:21:1",
"subExpression": {
"baseExpression": {
"id": 736,
"name": "_apps",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 183,
"src": "7457:5:1",
"typeDescriptions": {
"typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_App_$175_storage_$",
"typeString": "mapping(uint256 => struct FleekERC721.App storage ref)"
}
},
"id": 738,
"indexExpression": {
"id": 737,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 704,
"src": "7463:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"isConstant": false,
"isLValue": true,
"isPure": false,
"lValueRequested": true,
"nodeType": "IndexAccess",
"src": "7457:14:1",
"typeDescriptions": {
"typeIdentifier": "t_struct$_App_$175_storage",
"typeString": "struct FleekERC721.App storage ref"
}
},
"typeDescriptions": {
"typeIdentifier": "t_tuple$__$",
"typeString": "tuple()"
}
},
"id": 740,
"nodeType": "ExpressionStatement",
"src": "7450:21:1"
}
]
}
}
]
},
"functionSelector": "42966c68",
"implemented": true,
"kind": "function",
"modifiers": [
{
"arguments": [
{
"id": 707,
"name": "tokenId",
"nodeType": "Identifier",
"overloadedDeclarations": [],
"referencedDeclaration": 704,
"src": "7215:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
}
],
"id": 708,
"kind": "modifierInvocation",
"modifierName": {
"id": 706,
"name": "requireTokenController",
"nameLocations": [
"7192:22:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 79,
"src": "7192:22:1"
},
"nodeType": "ModifierInvocation",
"src": "7192:31:1"
}
],
"name": "burn",
"nameLocation": "7141:4:1",
"parameters": {
"id": 705,
"nodeType": "ParameterList",
"parameters": [
{
"constant": false,
"id": 704,
"mutability": "mutable",
"name": "tokenId",
"nameLocation": "7163:7:1",
"nodeType": "VariableDeclaration",
"scope": 744,
"src": "7155:15:1",
"stateVariable": false,
"storageLocation": "default",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
},
"typeName": {
"id": 703,
"name": "uint256",
"nodeType": "ElementaryTypeName",
"src": "7155:7:1",
"typeDescriptions": {
"typeIdentifier": "t_uint256",
"typeString": "uint256"
}
},
"visibility": "internal"
}
],
"src": "7145:31:1"
},
"returnParameters": {
"id": 709,
"nodeType": "ParameterList",
"parameters": [],
"src": "7224:0:1"
},
"scope": 745,
"stateMutability": "nonpayable",
"virtual": true,
"visibility": "public"
}
],
"abstract": false,
"baseContracts": [
{
"baseName": {
"id": 106,
"name": "ERC721",
"nameLocations": [
"280:6:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 26739,
"src": "280:6:1"
},
"id": 107,
"nodeType": "InheritanceSpecifier",
"src": "280:6:1"
},
{
"baseName": {
"id": 108,
"name": "FleekAccessControl",
"nameLocations": [
"288:18:1"
],
"nodeType": "IdentifierPath",
"referencedDeclaration": 99,
"src": "288:18:1"
},
"id": 109,
"nodeType": "InheritanceSpecifier",
"src": "288:18:1"
}
],
"canonicalName": "FleekERC721",
"contractDependencies": [],
"contractKind": "contract",
"fullyImplemented": true,
"linearizedBaseContracts": [
745,
99,
25721,
26739,
26900,
26855,
27572,
27584,
25794,
27299
],
"name": "FleekERC721",
"nameLocation": "265:11:1",
"scope": 746,
"usedErrors": []
}
],
"license": "MIT"
},
"id": 1
}