-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathPromo.json
More file actions
1 lines (1 loc) · 221 KB
/
Copy pathPromo.json
File metadata and controls
1 lines (1 loc) · 221 KB
1
{"abi":[{"type":"constructor","inputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"DEFAULT_ADMIN_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MINTER_ROLE","inputs":[],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"approve","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"balanceOf","inputs":[{"name":"owner","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"contractURI","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"getApproved","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"getPromotion","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"tuple","internalType":"struct Promotion","components":[{"name":"startTime","type":"uint256","internalType":"uint256"},{"name":"endTime","type":"uint256","internalType":"uint256"},{"name":"promoAddr","type":"address","internalType":"address"},{"name":"streams","type":"address[]","internalType":"address[]"},{"name":"description","type":"string","internalType":"string"}]}],"stateMutability":"view"},{"type":"function","name":"getRoleAdmin","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"}],"outputs":[{"name":"","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"getTicketsAmount","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"totalTicketsAmount","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"grantRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"hasRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"initialize","inputs":[{"name":"promoFactory","type":"address","internalType":"address"},{"name":"contractUri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"isApprovedForAll","inputs":[{"name":"owner","type":"address","internalType":"address"},{"name":"operator","type":"address","internalType":"address"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"name","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"ownerOf","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"renounceRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"callerConfirmation","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"revokeRole","inputs":[{"name":"role","type":"bytes32","internalType":"bytes32"},{"name":"account","type":"address","internalType":"address"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeMint","inputs":[{"name":"to","type":"address","internalType":"address"},{"name":"uri","type":"string","internalType":"string"},{"name":"promotion","type":"tuple","internalType":"struct Promotion","components":[{"name":"startTime","type":"uint256","internalType":"uint256"},{"name":"endTime","type":"uint256","internalType":"uint256"},{"name":"promoAddr","type":"address","internalType":"address"},{"name":"streams","type":"address[]","internalType":"address[]"},{"name":"description","type":"string","internalType":"string"}]}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"safeTransferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"data","type":"bytes","internalType":"bytes"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setApprovalForAll","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"approved","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setContractURI","inputs":[{"name":"newContractURI","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"setTokenUri","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"uri","type":"string","internalType":"string"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"supportsInterface","inputs":[{"name":"interfaceId","type":"bytes4","internalType":"bytes4"}],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"symbol","inputs":[],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"tokenURI","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"","type":"string","internalType":"string"}],"stateMutability":"view"},{"type":"function","name":"totalSupply","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"transferFrom","inputs":[{"name":"from","type":"address","internalType":"address"},{"name":"to","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"Approval","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ApprovalForAll","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"operator","type":"address","indexed":true,"internalType":"address"},{"name":"approved","type":"bool","indexed":false,"internalType":"bool"}],"anonymous":false},{"type":"event","name":"BatchMetadataUpdate","inputs":[{"name":"_fromTokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"_toTokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"ContractURIChanged","inputs":[{"name":"contractURI","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"Initialized","inputs":[{"name":"version","type":"uint64","indexed":false,"internalType":"uint64"}],"anonymous":false},{"type":"event","name":"MetadataUpdate","inputs":[{"name":"_tokenId","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"MintPromo","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"promotion","type":"tuple","indexed":false,"internalType":"struct Promotion","components":[{"name":"startTime","type":"uint256","internalType":"uint256"},{"name":"endTime","type":"uint256","internalType":"uint256"},{"name":"promoAddr","type":"address","internalType":"address"},{"name":"streams","type":"address[]","internalType":"address[]"},{"name":"description","type":"string","internalType":"string"}]}],"anonymous":false},{"type":"event","name":"RoleAdminChanged","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"previousAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"newAdminRole","type":"bytes32","indexed":true,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"RoleGranted","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"RoleRevoked","inputs":[{"name":"role","type":"bytes32","indexed":true,"internalType":"bytes32"},{"name":"account","type":"address","indexed":true,"internalType":"address"},{"name":"sender","type":"address","indexed":true,"internalType":"address"}],"anonymous":false},{"type":"event","name":"TokenUriChanged","inputs":[{"name":"owner","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokenUri","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"Transfer","inputs":[{"name":"from","type":"address","indexed":true,"internalType":"address"},{"name":"to","type":"address","indexed":true,"internalType":"address"},{"name":"tokenId","type":"uint256","indexed":true,"internalType":"uint256"}],"anonymous":false},{"type":"error","name":"AccessControlBadConfirmation","inputs":[]},{"type":"error","name":"AccessControlUnauthorizedAccount","inputs":[{"name":"account","type":"address","internalType":"address"},{"name":"neededRole","type":"bytes32","internalType":"bytes32"}]},{"type":"error","name":"ERC721IncorrectOwner","inputs":[{"name":"sender","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InsufficientApproval","inputs":[{"name":"operator","type":"address","internalType":"address"},{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"ERC721InvalidApprover","inputs":[{"name":"approver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOperator","inputs":[{"name":"operator","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidOwner","inputs":[{"name":"owner","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidReceiver","inputs":[{"name":"receiver","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721InvalidSender","inputs":[{"name":"sender","type":"address","internalType":"address"}]},{"type":"error","name":"ERC721NonexistentToken","inputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"}]},{"type":"error","name":"IncorrectStreamAddress","inputs":[{"name":"stream","type":"address","internalType":"address"}]},{"type":"error","name":"InvalidInitialization","inputs":[]},{"type":"error","name":"InvalidTimeSettings","inputs":[]},{"type":"error","name":"NotInitializing","inputs":[]},{"type":"error","name":"NotTokenOwner","inputs":[]},{"type":"error","name":"ZeroAddress","inputs":[]}],"bytecode":{"object":"0x60806040523480156200001157600080fd5b506200001c62000022565b620000d6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff1615620000735760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b0390811614620000d35780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b61290380620000e66000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c806391d14854116100f9578063c87b56dd11610097578063d547741f11610071578063d547741f146103cc578063e8a3d485146103df578063e985e9c5146103e7578063f399e22e146103fa57600080fd5b8063c87b56dd1461037f578063cada108914610392578063d5391393146103a557600080fd5b80639de0206c116100d35780639de0206c1461033e578063a217fddf14610351578063a22cb46514610359578063b88d4fde1461036c57600080fd5b806391d1485414610310578063938e3d7b1461032357806395d89b411461033657600080fd5b8063248a9ca31161016657806342842e0e1161014057806342842e0e146102c457806357f7789e146102d75780636352211e146102ea57806370a08231146102fd57600080fd5b8063248a9ca31461028b5780632f2ff15d1461029e57806336568abe146102b157600080fd5b8063095ea7b3116101a2578063095ea7b31461023157806314fdecca1461024657806318160ddd1461026657806323b872dd1461027857600080fd5b806301ffc9a7146101c957806306fdde03146101f1578063081812fc14610206575b600080fd5b6101dc6101d7366004611cde565b61040d565b60405190151581526020015b60405180910390f35b6101f961041e565b6040516101e89190611d4b565b610219610214366004611d5e565b6104c2565b6040516001600160a01b0390911681526020016101e8565b61024461023f366004611d8c565b6104d7565b005b610259610254366004611d5e565b6104e6565b6040516101e89190611db8565b6001545b6040519081526020016101e8565b610244610286366004611e56565b610652565b61026a610299366004611d5e565b6106e2565b6102446102ac366004611e97565b610704565b6102446102bf366004611e97565b610720565b6102446102d2366004611e56565b610758565b6102446102e5366004611f72565b610773565b6102196102f8366004611d5e565b6107f7565b61026a61030b366004611fb8565b610802565b6101dc61031e366004611e97565b61085e565b610244610331366004611fd5565b610896565b6101f96108e9565b61026a61034c366004611d5e565b610928565b61026a600081565b610244610367366004612017565b610b10565b61024461037a366004612045565b610b1b565b6101f961038d366004611d5e565b610b32565b6102446103a036600461210c565b610b3d565b61026a7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102446103da366004611e97565b610c3a565b6101f9610c56565b6101dc6103f536600461218c565b610ce8565b6102446104083660046121ba565b610d35565b600061041882610ec6565b92915050565b60008051602061288e833981519152805460609190819061043e9061220e565b80601f016020809104026020016040519081016040528092919081815260200182805461046a9061220e565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b505050505091505090565b60006104cd82610eeb565b5061041882610f23565b6104e2828233610f5d565b5050565b6105216040518060a00160405280600081526020016000815260200160006001600160a01b0316815260200160608152602001606081525090565b600082815260026020818152604092839020835160a08101855281548152600182015481840152928101546001600160a01b0316838501526003810180548551818502810185019096528086529394919360608601938301828280156105b057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610592575b505050505081526020016004820180546105c99061220e565b80601f01602080910402602001604051908101604052809291908181526020018280546105f59061220e565b80156106425780601f1061061757610100808354040283529160200191610642565b820191906000526020600020905b81548152906001019060200180831161062557829003601f168201915b5050505050815250509050919050565b6001600160a01b03821661068157604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061068e838333610f6a565b9050836001600160a01b0316816001600160a01b0316146106dc576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610678565b50505050565b60009081526000805160206128ae833981519152602052604090206001015490565b61070d826106e2565b61071681611074565b6106dc8383611081565b6001600160a01b03811633146107495760405163334bd91960e11b815260040160405180910390fd5b6107538282611126565b505050565b61075383838360405180602001604052806000815250610b1b565b813361077e826107f7565b6001600160a01b0316146107a5576040516359dc379f60e01b815260040160405180910390fd5b6107af83836111a2565b336001600160a01b03167fc7868dbe1cad60d57d886befc1900d24ad0479e09f729e67507abfdb4332cd1e84846040516107ea929190612248565b60405180910390a2505050565b600061041882610eeb565b600060008051602061288e8339815191526001600160a01b03831661083d576040516322718ad960e21b815260006004820152602401610678565b6001600160a01b039092166000908152600390920160205250604090205490565b60009182526000805160206128ae833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006108a181611074565b60006108ad83826122af565b507fd5ee5eaf65263bab5d569890714d123ad48a9e54409d35e71d374f3dd300bba0826040516108dd9190611d4b565b60405180910390a15050565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079301805460609160008051602061288e8339815191529161043e9061220e565b6000818152600260208181526040808420815160a08101835281548152600182015481850152938101546001600160a01b03168483015260038101805483518186028101860190945280845286959492936060860193909291908301828280156109bb57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161099d575b505050505081526020016004820180546109d49061220e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a009061220e565b8015610a4d5780601f10610a2257610100808354040283529160200191610a4d565b820191906000526020600020905b815481529060010190602001808311610a3057829003601f168201915b5050509190925250505060608101515190915060005b81811015610b085782606001518181518110610a8157610a81612372565b60200260200101516001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aea9190612388565b610af490856123b7565b935080610b00816123ca565b915050610a63565b505050919050565b6104e2338383611215565b610b26848484610652565b6106dc848484846112c6565b6060610418826113ef565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610b6781611074565b60018054906000610b77836123ca565b9091555050600154610b898682611524565b610bc98186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111a292505050565b610bd28361153e565b60008181526002602052604090208390610bec82826125bd565b905050856001600160a01b03167fe20902879f47c9f734b76d32be336010f7b3255d44e1564663803fac43d06cf58285604051610c2a929190612722565b60405180910390a2505050505050565b610c43826106e2565b610c4c81611074565b6106dc8383611126565b606060008054610c659061220e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c919061220e565b8015610cde5780601f10610cb357610100808354040283529160200191610cde565b820191906000526020600020905b815481529060010190602001808311610cc157829003601f168201915b5050505050905090565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610d7a5750825b90506000826001600160401b03166001148015610d965750303b155b905081158015610da4575080155b15610dc25760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610dec57845460ff60401b1916600160401b1785555b610e31604051806040016040528060098152602001684d65746150726f6d6f60b81b8152506040518060400160405280600281526020016104d560f41b815250611717565b610e3c600033611081565b50610e677f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a689611081565b506000610e758789836124fe565b508315610ebc57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b60006001600160e01b03198216637965db0b60e01b1480610418575061041882611729565b600080610ef78361174e565b90506001600160a01b03811661041857604051637e27328960e01b815260048101849052602401610678565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6107538383836001611788565b600060008051602061288e83398151915281610f858561174e565b90506001600160a01b03841615610fa157610fa181858761189e565b6001600160a01b03811615610fe157610fbe600086600080611788565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b03861615611012576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b61107e8133611902565b50565b60006000805160206128ae83398151915261109c848461085e565b61111c576000848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556110d23390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610418565b6000915050610418565b60006000805160206128ae833981519152611141848461085e565b1561111c576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610418565b60008281527f0542a41881ee128a365a727b282c86fa859579490b9bb45aab8503648c8e7900602081905260409091206111dc83826122af565b506040518381527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a1505050565b60008051602061288e8339815191526001600160a01b03831661125657604051630b61174360e31b81526001600160a01b0384166004820152602401610678565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b0383163b156106dc57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906113089033908890879087906004016127e7565b6020604051808303816000875af1925050508015611343575060408051601f3d908101601f1916820190925261134091810190612824565b60015b6113ac573d808015611371576040519150601f19603f3d011682016040523d82523d6000602084013e611376565b606091505b5080516000036113a457604051633250574960e11b81526001600160a01b0385166004820152602401610678565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146113e857604051633250574960e11b81526001600160a01b0385166004820152602401610678565b5050505050565b60607f0542a41881ee128a365a727b282c86fa859579490b9bb45aab8503648c8e790061141b83610eeb565b50600083815260208290526040812080546114359061220e565b80601f01602080910402602001604051908101604052809291908181526020018280546114619061220e565b80156114ae5780601f10611483576101008083540402835291602001916114ae565b820191906000526020600020905b81548152906001019060200180831161149157829003601f168201915b5050505050905060006114cc60408051602081019091526000815290565b905080516000036114df57509392505050565b8151156115125780826040516020016114f9929190612841565b6040516020818303038152906040529350505050919050565b61151b8561193b565b95945050505050565b6104e28282604051806020016040528060008152506119b0565b428135108061155257508035602082013511155b156115705760405163afe905a360e01b815260040160405180910390fd5b60006115826060830160408401611fb8565b6001600160a01b0316036115a95760405163d92e233d60e01b815260040160405180910390fd5b60005b6115b960608301836123e3565b90508110156104e2576115cf60608301836123e3565b828181106115df576115df612372565b90506020020160208101906115f49190611fb8565b6001600160a01b03163b15806116a9575061161260608301836123e3565b8281811061162257611622612372565b90506020020160208101906116379190611fb8565b6040516301ffc9a760e01b815262c91d1360e41b60048201526001600160a01b0391909116906301ffc9a790602401602060405180830381865afa158015611683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a79190612870565b155b15611705576116bb60608301836123e3565b828181106116cb576116cb612372565b90506020020160208101906116e09190611fb8565b604051636b30f69d60e01b81526001600160a01b039091166004820152602401610678565b8061170f816123ca565b9150506115ac565b61171f6119c7565b6104e28282611a12565b60006001600160e01b03198216632483248360e11b1480610418575061041882611a43565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b60008051602061288e83398151915281806117ab57506001600160a01b03831615155b1561186d5760006117bb85610eeb565b90506001600160a01b038416158015906117e75750836001600160a01b0316816001600160a01b031614155b80156117fa57506117f88185610ce8565b155b156118235760405163a9fbf51f60e01b81526001600160a01b0385166004820152602401610678565b821561186b5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6118a9838383611a93565b610753576001600160a01b0383166118d757604051637e27328960e01b815260048101829052602401610678565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610678565b61190c828261085e565b6104e25760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610678565b606061194682610eeb565b50600061195e60408051602081019091526000815290565b9050600081511161197e57604051806020016040528060008152506119a9565b8061198884611af9565b604051602001611999929190612841565b6040516020818303038152906040525b9392505050565b6119ba8383611b8b565b61075360008484846112c6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611a1057604051631afcd79f60e31b815260040160405180910390fd5b565b611a1a6119c7565b60008051602061288e83398151915280611a3484826122af565b50600181016106dc83826122af565b60006001600160e01b031982166380ac58cd60e01b1480611a7457506001600160e01b03198216635b5e139f60e01b145b8061041857506301ffc9a760e01b6001600160e01b0319831614610418565b60006001600160a01b03831615801590611af15750826001600160a01b0316846001600160a01b03161480611acd5750611acd8484610ce8565b80611af15750826001600160a01b0316611ae683610f23565b6001600160a01b0316145b949350505050565b60606000611b0683611bf0565b60010190506000816001600160401b03811115611b2557611b25611ec7565b6040519080825280601f01601f191660200182016040528015611b4f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611b5957509392505050565b6001600160a01b038216611bb557604051633250574960e11b815260006004820152602401610678565b6000611bc383836000610f6a565b90506001600160a01b03811615610753576040516339e3563760e11b815260006004820152602401610678565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611c2f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611c5b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611c7957662386f26fc10000830492506010015b6305f5e1008310611c91576305f5e100830492506008015b6127108310611ca557612710830492506004015b60648310611cb7576064830492506002015b600a83106104185760010192915050565b6001600160e01b03198116811461107e57600080fd5b600060208284031215611cf057600080fd5b81356119a981611cc8565b60005b83811015611d16578181015183820152602001611cfe565b50506000910152565b60008151808452611d37816020860160208601611cfb565b601f01601f19169290920160200192915050565b6020815260006119a96020830184611d1f565b600060208284031215611d7057600080fd5b5035919050565b6001600160a01b038116811461107e57600080fd5b60008060408385031215611d9f57600080fd5b8235611daa81611d77565b946020939093013593505050565b6020808252825182820152828101516040808401919091528301516001600160a01b0390811660608085019190915284015160a06080850152805160c085018190526000939291830191849160e08701905b80841015611e2c57845183168252938501936001939093019290850190611e0a565b506080880151878203601f190160a08901529450611e4a8186611d1f565b98975050505050505050565b600080600060608486031215611e6b57600080fd5b8335611e7681611d77565b92506020840135611e8681611d77565b929592945050506040919091013590565b60008060408385031215611eaa57600080fd5b823591506020830135611ebc81611d77565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115611ef757611ef7611ec7565b604051601f8501601f19908116603f01168101908282118183101715611f1f57611f1f611ec7565b81604052809350858152868686011115611f3857600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112611f6357600080fd5b6119a983833560208501611edd565b60008060408385031215611f8557600080fd5b8235915060208301356001600160401b03811115611fa257600080fd5b611fae85828601611f52565b9150509250929050565b600060208284031215611fca57600080fd5b81356119a981611d77565b600060208284031215611fe757600080fd5b81356001600160401b03811115611ffd57600080fd5b611af184828501611f52565b801515811461107e57600080fd5b6000806040838503121561202a57600080fd5b823561203581611d77565b91506020830135611ebc81612009565b6000806000806080858703121561205b57600080fd5b843561206681611d77565b9350602085013561207681611d77565b92506040850135915060608501356001600160401b0381111561209857600080fd5b8501601f810187136120a957600080fd5b6120b887823560208401611edd565b91505092959194509250565b60008083601f8401126120d657600080fd5b5081356001600160401b038111156120ed57600080fd5b60208301915083602082850101111561210557600080fd5b9250929050565b6000806000806060858703121561212257600080fd5b843561212d81611d77565b935060208501356001600160401b038082111561214957600080fd5b612155888389016120c4565b9095509350604087013591508082111561216e57600080fd5b50850160a0818803121561218157600080fd5b939692955090935050565b6000806040838503121561219f57600080fd5b82356121aa81611d77565b91506020830135611ebc81611d77565b6000806000604084860312156121cf57600080fd5b83356121da81611d77565b925060208401356001600160401b038111156121f557600080fd5b612201868287016120c4565b9497909650939450505050565b600181811c9082168061222257607f821691505b60208210810361224257634e487b7160e01b600052602260045260246000fd5b50919050565b828152604060208201526000611af16040830184611d1f565b5b818110156104e25760008155600101612262565b601f82111561075357806000526020600020601f840160051c8101602085101561229d5750805b6113e8601f850160051c830182612261565b81516001600160401b038111156122c8576122c8611ec7565b6122dc816122d6845461220e565b84612276565b602080601f83116001811461231157600084156122f95750858301515b600019600386901b1c1916600185901b17855561236a565b600085815260208120601f198616915b8281101561234057888601518255948401946001909101908401612321565b508582101561235e5787850151600019600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561239a57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610418576104186123a1565b6000600182016123dc576123dc6123a1565b5060010190565b6000808335601e198436030181126123fa57600080fd5b8301803591506001600160401b0382111561241457600080fd5b6020019150600581901b360382131561210557600080fd5b6001600160401b0383111561244357612443611ec7565b600160401b83111561245757612457611ec7565b80548382558084101561247d5781600052602060002061247b828201868301612261565b505b50818160005260208060002060005b868110156124af57833561249f81611d77565b828201559282019260010161248c565b50505050505050565b6000808335601e198436030181126124cf57600080fd5b8301803591506001600160401b038211156124e957600080fd5b60200191503681900382131561210557600080fd5b6001600160401b0383111561251557612515611ec7565b61252983612523835461220e565b83612276565b6000601f84116001811461255d57600085156125455750838201355b600019600387901b1c1916600186901b1783556113e8565b600083815260209020601f19861690835b8281101561258e578685013582556020948501946001909201910161256e565b50868210156125ab5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81358155602082013560018201556002810160408301356125dd81611d77565b81546001600160a01b0319166001600160a01b0391909116179055606082013536839003601e1901811261261057600080fd5b820180356001600160401b0381111561262857600080fd5b6020820191508060051b360382131561264057600080fd5b61264e81836003860161242c565b505061265d60808301836124b8565b6106dc8183600486016124fe565b8183526000602080850194508260005b858110156126a957813561268e81611d77565b6001600160a01b03168752958201959082019060010161267b565b509495945050505050565b6000808335601e198436030181126126cb57600080fd5b83016020810192503590506001600160401b038111156126ea57600080fd5b80360382131561210557600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8281526040602082015281356040820152602082013560608201526000604083013561274d81611d77565b6001600160a01b03166080830152606083013536849003601e1901811261277357600080fd5b83016020810190356001600160401b0381111561278f57600080fd5b8060051b36038213156127a157600080fd5b60a0808501526127b560e08501828461266b565b9150506127c560808501856126b4565b848303603f190160c08601526127dc8382846126f9565b979650505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061281a90830184611d1f565b9695505050505050565b60006020828403121561283657600080fd5b81516119a981611cc8565b60008351612853818460208801611cfb565b835190830190612867818360208801611cfb565b01949350505050565b60006020828403121561288257600080fd5b81516119a98161200956fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212204293827688a73c5fdc3313b063d916faed11a05a6bae36c522d3639333960aac64736f6c63430008140033","sourceMap":"1043:4886:67:-:0;;;2006:53;;;;;;;;;-1:-1:-1;2030:22:67;:20;:22::i;:::-;1043:4886;;7711:422:23;8870:21;7900:15;;;;;;;7896:76;;;7938:23;;-1:-1:-1;;;7938:23:23;;;;;;;;;;;7896:76;7985:14;;-1:-1:-1;;;;;7985:14:23;;;:34;7981:146;;8035:33;;-1:-1:-1;;;;;;8035:33:23;-1:-1:-1;;;;;8035:33:23;;;;;8087:29;;158:50:81;;;8087:29:23;;146:2:81;131:18;8087:29:23;;;;;;;7981:146;7760:373;7711:422::o;14:200:81:-;1043:4886:67;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x608060405234801561001057600080fd5b50600436106101c45760003560e01c806391d14854116100f9578063c87b56dd11610097578063d547741f11610071578063d547741f146103cc578063e8a3d485146103df578063e985e9c5146103e7578063f399e22e146103fa57600080fd5b8063c87b56dd1461037f578063cada108914610392578063d5391393146103a557600080fd5b80639de0206c116100d35780639de0206c1461033e578063a217fddf14610351578063a22cb46514610359578063b88d4fde1461036c57600080fd5b806391d1485414610310578063938e3d7b1461032357806395d89b411461033657600080fd5b8063248a9ca31161016657806342842e0e1161014057806342842e0e146102c457806357f7789e146102d75780636352211e146102ea57806370a08231146102fd57600080fd5b8063248a9ca31461028b5780632f2ff15d1461029e57806336568abe146102b157600080fd5b8063095ea7b3116101a2578063095ea7b31461023157806314fdecca1461024657806318160ddd1461026657806323b872dd1461027857600080fd5b806301ffc9a7146101c957806306fdde03146101f1578063081812fc14610206575b600080fd5b6101dc6101d7366004611cde565b61040d565b60405190151581526020015b60405180910390f35b6101f961041e565b6040516101e89190611d4b565b610219610214366004611d5e565b6104c2565b6040516001600160a01b0390911681526020016101e8565b61024461023f366004611d8c565b6104d7565b005b610259610254366004611d5e565b6104e6565b6040516101e89190611db8565b6001545b6040519081526020016101e8565b610244610286366004611e56565b610652565b61026a610299366004611d5e565b6106e2565b6102446102ac366004611e97565b610704565b6102446102bf366004611e97565b610720565b6102446102d2366004611e56565b610758565b6102446102e5366004611f72565b610773565b6102196102f8366004611d5e565b6107f7565b61026a61030b366004611fb8565b610802565b6101dc61031e366004611e97565b61085e565b610244610331366004611fd5565b610896565b6101f96108e9565b61026a61034c366004611d5e565b610928565b61026a600081565b610244610367366004612017565b610b10565b61024461037a366004612045565b610b1b565b6101f961038d366004611d5e565b610b32565b6102446103a036600461210c565b610b3d565b61026a7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102446103da366004611e97565b610c3a565b6101f9610c56565b6101dc6103f536600461218c565b610ce8565b6102446104083660046121ba565b610d35565b600061041882610ec6565b92915050565b60008051602061288e833981519152805460609190819061043e9061220e565b80601f016020809104026020016040519081016040528092919081815260200182805461046a9061220e565b80156104b75780601f1061048c576101008083540402835291602001916104b7565b820191906000526020600020905b81548152906001019060200180831161049a57829003601f168201915b505050505091505090565b60006104cd82610eeb565b5061041882610f23565b6104e2828233610f5d565b5050565b6105216040518060a00160405280600081526020016000815260200160006001600160a01b0316815260200160608152602001606081525090565b600082815260026020818152604092839020835160a08101855281548152600182015481840152928101546001600160a01b0316838501526003810180548551818502810185019096528086529394919360608601938301828280156105b057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610592575b505050505081526020016004820180546105c99061220e565b80601f01602080910402602001604051908101604052809291908181526020018280546105f59061220e565b80156106425780601f1061061757610100808354040283529160200191610642565b820191906000526020600020905b81548152906001019060200180831161062557829003601f168201915b5050505050815250509050919050565b6001600160a01b03821661068157604051633250574960e11b8152600060048201526024015b60405180910390fd5b600061068e838333610f6a565b9050836001600160a01b0316816001600160a01b0316146106dc576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610678565b50505050565b60009081526000805160206128ae833981519152602052604090206001015490565b61070d826106e2565b61071681611074565b6106dc8383611081565b6001600160a01b03811633146107495760405163334bd91960e11b815260040160405180910390fd5b6107538282611126565b505050565b61075383838360405180602001604052806000815250610b1b565b813361077e826107f7565b6001600160a01b0316146107a5576040516359dc379f60e01b815260040160405180910390fd5b6107af83836111a2565b336001600160a01b03167fc7868dbe1cad60d57d886befc1900d24ad0479e09f729e67507abfdb4332cd1e84846040516107ea929190612248565b60405180910390a2505050565b600061041882610eeb565b600060008051602061288e8339815191526001600160a01b03831661083d576040516322718ad960e21b815260006004820152602401610678565b6001600160a01b039092166000908152600390920160205250604090205490565b60009182526000805160206128ae833981519152602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60006108a181611074565b60006108ad83826122af565b507fd5ee5eaf65263bab5d569890714d123ad48a9e54409d35e71d374f3dd300bba0826040516108dd9190611d4b565b60405180910390a15050565b7f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab0079301805460609160008051602061288e8339815191529161043e9061220e565b6000818152600260208181526040808420815160a08101835281548152600182015481850152938101546001600160a01b03168483015260038101805483518186028101860190945280845286959492936060860193909291908301828280156109bb57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161099d575b505050505081526020016004820180546109d49061220e565b80601f0160208091040260200160405190810160405280929190818152602001828054610a009061220e565b8015610a4d5780601f10610a2257610100808354040283529160200191610a4d565b820191906000526020600020905b815481529060010190602001808311610a3057829003601f168201915b5050509190925250505060608101515190915060005b81811015610b085782606001518181518110610a8157610a81612372565b60200260200101516001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ac6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610aea9190612388565b610af490856123b7565b935080610b00816123ca565b915050610a63565b505050919050565b6104e2338383611215565b610b26848484610652565b6106dc848484846112c6565b6060610418826113ef565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610b6781611074565b60018054906000610b77836123ca565b9091555050600154610b898682611524565b610bc98186868080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506111a292505050565b610bd28361153e565b60008181526002602052604090208390610bec82826125bd565b905050856001600160a01b03167fe20902879f47c9f734b76d32be336010f7b3255d44e1564663803fac43d06cf58285604051610c2a929190612722565b60405180910390a2505050505050565b610c43826106e2565b610c4c81611074565b6106dc8383611126565b606060008054610c659061220e565b80601f0160208091040260200160405190810160405280929190818152602001828054610c919061220e565b8015610cde5780601f10610cb357610100808354040283529160200191610cde565b820191906000526020600020905b815481529060010190602001808311610cc157829003601f168201915b5050505050905090565b6001600160a01b0391821660009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab00793056020908152604080832093909416825291909152205460ff1690565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b0316600081158015610d7a5750825b90506000826001600160401b03166001148015610d965750303b155b905081158015610da4575080155b15610dc25760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff191660011785558315610dec57845460ff60401b1916600160401b1785555b610e31604051806040016040528060098152602001684d65746150726f6d6f60b81b8152506040518060400160405280600281526020016104d560f41b815250611717565b610e3c600033611081565b50610e677f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a689611081565b506000610e758789836124fe565b508315610ebc57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b60006001600160e01b03198216637965db0b60e01b1480610418575061041882611729565b600080610ef78361174e565b90506001600160a01b03811661041857604051637e27328960e01b815260048101849052602401610678565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930460205260409020546001600160a01b031690565b6107538383836001611788565b600060008051602061288e83398151915281610f858561174e565b90506001600160a01b03841615610fa157610fa181858761189e565b6001600160a01b03811615610fe157610fbe600086600080611788565b6001600160a01b0381166000908152600383016020526040902080546000190190555b6001600160a01b03861615611012576001600160a01b03861660009081526003830160205260409020805460010190555b600085815260028301602052604080822080546001600160a01b0319166001600160a01b038a811691821790925591518893918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a495945050505050565b61107e8133611902565b50565b60006000805160206128ae83398151915261109c848461085e565b61111c576000848152602082815260408083206001600160a01b03871684529091529020805460ff191660011790556110d23390565b6001600160a01b0316836001600160a01b0316857f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a46001915050610418565b6000915050610418565b60006000805160206128ae833981519152611141848461085e565b1561111c576000848152602082815260408083206001600160a01b0387168085529252808320805460ff1916905551339287917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a46001915050610418565b60008281527f0542a41881ee128a365a727b282c86fa859579490b9bb45aab8503648c8e7900602081905260409091206111dc83826122af565b506040518381527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79060200160405180910390a1505050565b60008051602061288e8339815191526001600160a01b03831661125657604051630b61174360e31b81526001600160a01b0384166004820152602401610678565b6001600160a01b038481166000818152600584016020908152604080832094881680845294825291829020805460ff191687151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a350505050565b6001600160a01b0383163b156106dc57604051630a85bd0160e11b81526001600160a01b0384169063150b7a02906113089033908890879087906004016127e7565b6020604051808303816000875af1925050508015611343575060408051601f3d908101601f1916820190925261134091810190612824565b60015b6113ac573d808015611371576040519150601f19603f3d011682016040523d82523d6000602084013e611376565b606091505b5080516000036113a457604051633250574960e11b81526001600160a01b0385166004820152602401610678565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b146113e857604051633250574960e11b81526001600160a01b0385166004820152602401610678565b5050505050565b60607f0542a41881ee128a365a727b282c86fa859579490b9bb45aab8503648c8e790061141b83610eeb565b50600083815260208290526040812080546114359061220e565b80601f01602080910402602001604051908101604052809291908181526020018280546114619061220e565b80156114ae5780601f10611483576101008083540402835291602001916114ae565b820191906000526020600020905b81548152906001019060200180831161149157829003601f168201915b5050505050905060006114cc60408051602081019091526000815290565b905080516000036114df57509392505050565b8151156115125780826040516020016114f9929190612841565b6040516020818303038152906040529350505050919050565b61151b8561193b565b95945050505050565b6104e28282604051806020016040528060008152506119b0565b428135108061155257508035602082013511155b156115705760405163afe905a360e01b815260040160405180910390fd5b60006115826060830160408401611fb8565b6001600160a01b0316036115a95760405163d92e233d60e01b815260040160405180910390fd5b60005b6115b960608301836123e3565b90508110156104e2576115cf60608301836123e3565b828181106115df576115df612372565b90506020020160208101906115f49190611fb8565b6001600160a01b03163b15806116a9575061161260608301836123e3565b8281811061162257611622612372565b90506020020160208101906116379190611fb8565b6040516301ffc9a760e01b815262c91d1360e41b60048201526001600160a01b0391909116906301ffc9a790602401602060405180830381865afa158015611683573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116a79190612870565b155b15611705576116bb60608301836123e3565b828181106116cb576116cb612372565b90506020020160208101906116e09190611fb8565b604051636b30f69d60e01b81526001600160a01b039091166004820152602401610678565b8061170f816123ca565b9150506115ac565b61171f6119c7565b6104e28282611a12565b60006001600160e01b03198216632483248360e11b1480610418575061041882611a43565b60009081527f80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930260205260409020546001600160a01b031690565b60008051602061288e83398151915281806117ab57506001600160a01b03831615155b1561186d5760006117bb85610eeb565b90506001600160a01b038416158015906117e75750836001600160a01b0316816001600160a01b031614155b80156117fa57506117f88185610ce8565b155b156118235760405163a9fbf51f60e01b81526001600160a01b0385166004820152602401610678565b821561186b5784866001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b600093845260040160205250506040902080546001600160a01b0319166001600160a01b0392909216919091179055565b6118a9838383611a93565b610753576001600160a01b0383166118d757604051637e27328960e01b815260048101829052602401610678565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610678565b61190c828261085e565b6104e25760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610678565b606061194682610eeb565b50600061195e60408051602081019091526000815290565b9050600081511161197e57604051806020016040528060008152506119a9565b8061198884611af9565b604051602001611999929190612841565b6040516020818303038152906040525b9392505050565b6119ba8383611b8b565b61075360008484846112c6565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff16611a1057604051631afcd79f60e31b815260040160405180910390fd5b565b611a1a6119c7565b60008051602061288e83398151915280611a3484826122af565b50600181016106dc83826122af565b60006001600160e01b031982166380ac58cd60e01b1480611a7457506001600160e01b03198216635b5e139f60e01b145b8061041857506301ffc9a760e01b6001600160e01b0319831614610418565b60006001600160a01b03831615801590611af15750826001600160a01b0316846001600160a01b03161480611acd5750611acd8484610ce8565b80611af15750826001600160a01b0316611ae683610f23565b6001600160a01b0316145b949350505050565b60606000611b0683611bf0565b60010190506000816001600160401b03811115611b2557611b25611ec7565b6040519080825280601f01601f191660200182016040528015611b4f576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084611b5957509392505050565b6001600160a01b038216611bb557604051633250574960e11b815260006004820152602401610678565b6000611bc383836000610f6a565b90506001600160a01b03811615610753576040516339e3563760e11b815260006004820152602401610678565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611c2f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611c5b576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611c7957662386f26fc10000830492506010015b6305f5e1008310611c91576305f5e100830492506008015b6127108310611ca557612710830492506004015b60648310611cb7576064830492506002015b600a83106104185760010192915050565b6001600160e01b03198116811461107e57600080fd5b600060208284031215611cf057600080fd5b81356119a981611cc8565b60005b83811015611d16578181015183820152602001611cfe565b50506000910152565b60008151808452611d37816020860160208601611cfb565b601f01601f19169290920160200192915050565b6020815260006119a96020830184611d1f565b600060208284031215611d7057600080fd5b5035919050565b6001600160a01b038116811461107e57600080fd5b60008060408385031215611d9f57600080fd5b8235611daa81611d77565b946020939093013593505050565b6020808252825182820152828101516040808401919091528301516001600160a01b0390811660608085019190915284015160a06080850152805160c085018190526000939291830191849160e08701905b80841015611e2c57845183168252938501936001939093019290850190611e0a565b506080880151878203601f190160a08901529450611e4a8186611d1f565b98975050505050505050565b600080600060608486031215611e6b57600080fd5b8335611e7681611d77565b92506020840135611e8681611d77565b929592945050506040919091013590565b60008060408385031215611eaa57600080fd5b823591506020830135611ebc81611d77565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115611ef757611ef7611ec7565b604051601f8501601f19908116603f01168101908282118183101715611f1f57611f1f611ec7565b81604052809350858152868686011115611f3857600080fd5b858560208301376000602087830101525050509392505050565b600082601f830112611f6357600080fd5b6119a983833560208501611edd565b60008060408385031215611f8557600080fd5b8235915060208301356001600160401b03811115611fa257600080fd5b611fae85828601611f52565b9150509250929050565b600060208284031215611fca57600080fd5b81356119a981611d77565b600060208284031215611fe757600080fd5b81356001600160401b03811115611ffd57600080fd5b611af184828501611f52565b801515811461107e57600080fd5b6000806040838503121561202a57600080fd5b823561203581611d77565b91506020830135611ebc81612009565b6000806000806080858703121561205b57600080fd5b843561206681611d77565b9350602085013561207681611d77565b92506040850135915060608501356001600160401b0381111561209857600080fd5b8501601f810187136120a957600080fd5b6120b887823560208401611edd565b91505092959194509250565b60008083601f8401126120d657600080fd5b5081356001600160401b038111156120ed57600080fd5b60208301915083602082850101111561210557600080fd5b9250929050565b6000806000806060858703121561212257600080fd5b843561212d81611d77565b935060208501356001600160401b038082111561214957600080fd5b612155888389016120c4565b9095509350604087013591508082111561216e57600080fd5b50850160a0818803121561218157600080fd5b939692955090935050565b6000806040838503121561219f57600080fd5b82356121aa81611d77565b91506020830135611ebc81611d77565b6000806000604084860312156121cf57600080fd5b83356121da81611d77565b925060208401356001600160401b038111156121f557600080fd5b612201868287016120c4565b9497909650939450505050565b600181811c9082168061222257607f821691505b60208210810361224257634e487b7160e01b600052602260045260246000fd5b50919050565b828152604060208201526000611af16040830184611d1f565b5b818110156104e25760008155600101612262565b601f82111561075357806000526020600020601f840160051c8101602085101561229d5750805b6113e8601f850160051c830182612261565b81516001600160401b038111156122c8576122c8611ec7565b6122dc816122d6845461220e565b84612276565b602080601f83116001811461231157600084156122f95750858301515b600019600386901b1c1916600185901b17855561236a565b600085815260208120601f198616915b8281101561234057888601518255948401946001909101908401612321565b508582101561235e5787850151600019600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561239a57600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610418576104186123a1565b6000600182016123dc576123dc6123a1565b5060010190565b6000808335601e198436030181126123fa57600080fd5b8301803591506001600160401b0382111561241457600080fd5b6020019150600581901b360382131561210557600080fd5b6001600160401b0383111561244357612443611ec7565b600160401b83111561245757612457611ec7565b80548382558084101561247d5781600052602060002061247b828201868301612261565b505b50818160005260208060002060005b868110156124af57833561249f81611d77565b828201559282019260010161248c565b50505050505050565b6000808335601e198436030181126124cf57600080fd5b8301803591506001600160401b038211156124e957600080fd5b60200191503681900382131561210557600080fd5b6001600160401b0383111561251557612515611ec7565b61252983612523835461220e565b83612276565b6000601f84116001811461255d57600085156125455750838201355b600019600387901b1c1916600186901b1783556113e8565b600083815260209020601f19861690835b8281101561258e578685013582556020948501946001909201910161256e565b50868210156125ab5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81358155602082013560018201556002810160408301356125dd81611d77565b81546001600160a01b0319166001600160a01b0391909116179055606082013536839003601e1901811261261057600080fd5b820180356001600160401b0381111561262857600080fd5b6020820191508060051b360382131561264057600080fd5b61264e81836003860161242c565b505061265d60808301836124b8565b6106dc8183600486016124fe565b8183526000602080850194508260005b858110156126a957813561268e81611d77565b6001600160a01b03168752958201959082019060010161267b565b509495945050505050565b6000808335601e198436030181126126cb57600080fd5b83016020810192503590506001600160401b038111156126ea57600080fd5b80360382131561210557600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b8281526040602082015281356040820152602082013560608201526000604083013561274d81611d77565b6001600160a01b03166080830152606083013536849003601e1901811261277357600080fd5b83016020810190356001600160401b0381111561278f57600080fd5b8060051b36038213156127a157600080fd5b60a0808501526127b560e08501828461266b565b9150506127c560808501856126b4565b848303603f190160c08601526127dc8382846126f9565b979650505050505050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061281a90830184611d1f565b9695505050505050565b60006020828403121561283657600080fd5b81516119a981611cc8565b60008351612853818460208801611cfb565b835190830190612867818360208801611cfb565b01949350505050565b60006020828403121561288257600080fd5b81516119a98161200956fe80bb2b638cc20bc4d0a60d66940f3ab4a00c1d7b313497ca82fb0b4ab007930002dd7bc7dec4dceedda775e58dd541e08a116c6c53815c0bd028192f7b626800a26469706673582212204293827688a73c5fdc3313b063d916faed11a05a6bae36c522d3639333960aac64736f6c63430008140033","sourceMap":"1043:4886:67:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2160:253;;;;;;:::i;:::-;;:::i;:::-;;;565:14:81;;558:22;540:41;;528:2;513:18;2160:253:67;;;;;;;;3546:146:24;;;:::i;:::-;;;;;;;:::i;4792:154::-;;;;;;:::i;:::-;;:::i;:::-;;;-1:-1:-1;;;;;1697:32:81;;;1679:51;;1667:2;1652:18;4792:154:24;1533:203:81;4618:113:24;;;;;;:::i;:::-;;:::i;:::-;;5423:124:67;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;5325:92::-;5397:13;;5325:92;;;3525:25:81;;;3513:2;3498:18;5325:92:67;3379:177:81;5495:578:24;;;;;;:::i;:::-;;:::i;4759:191:21:-;;;;;;:::i;:::-;;:::i;5246:136::-;;;;;;:::i;:::-;;:::i;6348:245::-;;;;;;:::i;:::-;;:::i;6139:132:24:-;;;;;;:::i;:::-;;:::i;4894:189:67:-;;;;;;:::i;:::-;;:::i;3366:118:24:-;;;;;;:::i;:::-;;:::i;3044:265::-;;;;;;:::i;:::-;;:::i;3732:207:21:-;;;;;;:::i;:::-;;:::i;5089:187:67:-;;;;;;:::i;:::-;;:::i;3756:150:24:-;;;:::i;5553:356:67:-;;;;;;:::i;:::-;;:::i;2317:49:21:-;;2362:4;2317:49;;5013:144:24;;;;;;:::i;:::-;;:::i;6337:208::-;;;;;;:::i;:::-;;:::i;4574:211:67:-;;;;;;:::i;:::-;;:::i;3362:402::-;;;;;;:::i;:::-;;:::i;1171:62::-;;1209:24;1171:62;;5662:138:21;;;;;;:::i;:::-;;:::i;4791:97:67:-;;;:::i;5223:210:24:-;;;;;;:::i;:::-;;:::i;2635:277:67:-;;;;;;:::i;:::-;;:::i;2160:253::-;2343:4;2370:36;2394:11;2370:23;:36::i;:::-;2363:43;2160:253;-1:-1:-1;;2160:253:67:o;3546:146:24:-;-1:-1:-1;;;;;;;;;;;3671:14:24;;3591:13;;2077:21;;;3671:14;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3546:146;:::o;4792:154::-;4859:7;4878:22;4892:7;4878:13;:22::i;:::-;;4918:21;4931:7;4918:12;:21::i;4618:113::-;4689:35;4698:2;4702:7;966:10:26;4689:8:24;:35::i;:::-;4618:113;;:::o;5423:124:67:-;5485:16;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5485:16:67;5520:20;;;;:11;:20;;;;;;;;;5513:27;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5513:27:67;;;;;;;;;;;;;;;;;;;;;;;;;;;5520:20;;5513:27;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5513:27:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5423:124;;;:::o;5495:578:24:-;-1:-1:-1;;;;;5589:16:24;;5585:87;;5628:33;;-1:-1:-1;;;5628:33:24;;5658:1;5628:33;;;1679:51:81;1652:18;;5628:33:24;;;;;;;;5585:87;5890:21;5914:34;5922:2;5926:7;966:10:26;5914:7:24;:34::i;:::-;5890:58;;5979:4;-1:-1:-1;;;;;5962:21:24;:13;-1:-1:-1;;;;;5962:21:24;;5958:109;;6006:50;;-1:-1:-1;;;6006:50:24;;-1:-1:-1;;;;;10769:15:81;;;6006:50:24;;;10751:34:81;10801:18;;;10794:34;;;10864:15;;10844:18;;;10837:43;10686:18;;6006:50:24;10511:375:81;5958:109:24;5575:498;5495:578;;;:::o;4759:191:21:-;4824:7;4919:14;;;-1:-1:-1;;;;;;;;;;;4919:14:21;;;;;:24;;;;4759:191::o;5246:136::-;5320:18;5333:4;5320:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5350:25:::1;5361:4;5367:7;5350:10;:25::i;6348:245::-:0;-1:-1:-1;;;;;6441:34:21;;966:10:26;6441:34:21;6437:102;;6498:30;;-1:-1:-1;;;6498:30:21;;;;;;;;;;;6437:102;6549:37;6561:4;6567:18;6549:11;:37::i;:::-;;6348:245;;:::o;6139:132:24:-;6225:39;6242:4;6248:2;6252:7;6225:39;;;;;;;;;;;;:16;:39::i;4894:189:67:-;4975:7;1923:10;1903:16;4975:7;1903;:16::i;:::-;-1:-1:-1;;;;;1903:30:67;;1899:83;;1956:15;;-1:-1:-1;;;1956:15:67;;;;;;;;;;;1899:83;4994:26:::1;5007:7;5016:3;4994:12;:26::i;:::-;5051:10;-1:-1:-1::0;;;;;5035:41:67::1;;5063:7;5072:3;5035:41;;;;;;;:::i;:::-;;;;;;;;4894:189:::0;;;:::o;3366:118:24:-;3429:7;3455:22;3469:7;3455:13;:22::i;3044:265::-;3107:7;-1:-1:-1;;;;;;;;;;;;;;;;3185:19:24;;3181:87;;3227:30;;-1:-1:-1;;;3227:30:24;;3254:1;3227:30;;;1679:51:81;1652:18;;3227:30:24;1533:203:81;3181:87:24;-1:-1:-1;;;;;3284:18:24;;;;;;;:11;;;;:18;;-1:-1:-1;3284:18:24;;;;;3044:265::o;3732:207:21:-;3809:4;3901:14;;;-1:-1:-1;;;;;;;;;;;3901:14:21;;;;;;;;-1:-1:-1;;;;;3901:31:21;;;;;;;;;;;;;;;3732:207::o;5089:187:67:-;2362:4:21;3191:16;2362:4;3191:10;:16::i;:::-;5191:12:67::1;:29;5206:14:::0;5191:12;:29:::1;:::i;:::-;;5235:34;5254:14;5235:34;;;;;;:::i;:::-;;;;;;;;5089:187:::0;;:::o;3756:150:24:-;3890:9;3883:16;;3803:13;;-1:-1:-1;;;;;;;;;;;2077:21:24;3883:16;;;:::i;5553:356:67:-;5619:26;5686:20;;;:11;:20;;;;;;;;5657:49;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5657:49:67;;;;;;;;;;;;;;;;;;;;;;;;;5619:26;;5657:49;5686:20;;5657:49;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5657:49:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;5657:49:67;;;;-1:-1:-1;;;5739:17:67;;;;:24;5657:49;;-1:-1:-1;5716:20:67;5774:129;5794:12;5790:1;:16;5774:129;;;5857:9;:17;;;5875:1;5857:20;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;;;5849:41:67;;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5827:65;;;;:::i;:::-;;-1:-1:-1;5808:3:67;;;;:::i;:::-;;;;5774:129;;;;5647:262;;5553:356;;;:::o;5013:144:24:-;5098:52;966:10:26;5131:8:24;5141;5098:18;:52::i;6337:208::-;6450:31;6463:4;6469:2;6473:7;6450:12;:31::i;:::-;6491:47;6514:4;6520:2;6524:7;6533:4;6491:22;:47::i;4574:211:67:-;4719:13;4755:23;4770:7;4755:14;:23::i;3362:402::-;1209:24;3191:16:21;3202:4;3191:10;:16::i;:::-;3504:13:67::1;:15:::0;;;:13:::1;:15;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;3547:13:67::1;::::0;3571:22:::1;3581:2:::0;3547:13;3571:9:::1;:22::i;:::-;3603:26;3616:7;3625:3;;3603:26;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;3603:12:67::1;::::0;-1:-1:-1;;;3603:26:67:i:1;:::-;3640;3656:9;3640:15;:26::i;:::-;3676:20;::::0;;;:11:::1;:20;::::0;;;;3699:9;;3676:32:::1;3699:9:::0;3676:20;:32:::1;:::i;:::-;;;;3734:2;-1:-1:-1::0;;;;;3724:33:67::1;;3738:7;3747:9;3724:33;;;;;;;:::i;:::-;;;;;;;;3494:270;3362:402:::0;;;;;:::o;5662:138:21:-;5737:18;5750:4;5737:12;:18::i;:::-;3191:16;3202:4;3191:10;:16::i;:::-;5767:26:::1;5779:4;5785:7;5767:11;:26::i;4791:97:67:-:0;4837:13;4869:12;4862:19;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4791:97;:::o;5223:210:24:-;-1:-1:-1;;;;;5389:27:24;;;5311:4;5389:27;;;:20;:27;;;;;;;;:37;;;;;;;;;;;;;;;5223:210::o;2635:277:67:-;8870:21:23;4302:15;;-1:-1:-1;;;4302:15:23;;;;4301:16;;-1:-1:-1;;;;;4348:14:23;4158:30;4726:16;;:34;;;;;4746:14;4726:34;4706:54;;4770:17;4790:11;-1:-1:-1;;;;;4790:16:23;4805:1;4790:16;:50;;;;-1:-1:-1;4818:4:23;4810:25;:30;4790:50;4770:70;;4856:12;4855:13;:30;;;;;4873:12;4872:13;4855:30;4851:91;;;4908:23;;-1:-1:-1;;;4908:23:23;;;;;;;;;;;4851:91;4951:18;;-1:-1:-1;;4951:18:23;4968:1;4951:18;;;4979:67;;;;5013:22;;-1:-1:-1;;;;5013:22:23;-1:-1:-1;;;5013:22:23;;;4979:67;2737:32:67::1;;;;;;;;;;;;;;-1:-1:-1::0;;;2737:32:67::1;;::::0;::::1;;;;;;;;;;;;;-1:-1:-1::0;;;2737:32:67::1;;::::0;:13:::1;:32::i;:::-;2779:42;2362:4:21;2810:10:67;2779;:42::i;:::-;;2831:37;1209:24;2855:12;2831:10;:37::i;:::-;-1:-1:-1::0;2879:12:67::1;:26;2894:11:::0;;2879:12;:26:::1;:::i;:::-;;5070:14:23::0;5066:101;;;5100:23;;-1:-1:-1;;;;5100:23:23;;;5142:14;;-1:-1:-1;21402:50:81;;5142:14:23;;21390:2:81;21375:18;5142:14:23;;;;;;;5066:101;4092:1081;;;;;2635:277:67;;;:::o;3443:202:21:-;3528:4;-1:-1:-1;;;;;;3551:47:21;;-1:-1:-1;;;3551:47:21;;:87;;;3602:36;3626:11;3602:23;:36::i;17836:241:24:-;17899:7;17918:13;17934:17;17943:7;17934:8;:17::i;:::-;17918:33;-1:-1:-1;;;;;;17965:19:24;;17961:88;;18007:31;;-1:-1:-1;;;18007:31:24;;;;;3525:25:81;;;3498:18;;18007:31:24;3379:177:81;7347:184:24;7417:7;7498:26;;;:17;:26;;;;;;-1:-1:-1;;;;;7498:26:24;;7347:184::o;16002:120::-;16082:33;16091:2;16095:7;16104:4;16110;16082:8;:33::i;10361:856::-;10447:7;-1:-1:-1;;;;;;;;;;;10447:7:24;10536:17;10545:7;10536:8;:17::i;:::-;10521:32;-1:-1:-1;;;;;;10613:18:24;;;10609:86;;10647:37;10664:4;10670;10676:7;10647:16;:37::i;:::-;-1:-1:-1;;;;;10739:18:24;;;10735:258;;10855:48;10872:1;10876:7;10893:1;10897:5;10855:8;:48::i;:::-;-1:-1:-1;;;;;10946:17:24;;;;;;:11;;;:17;;;;;:22;;-1:-1:-1;;10946:22:24;;;10735:258;-1:-1:-1;;;;;11007:16:24;;;11003:109;;-1:-1:-1;;;;;11067:15:24;;;;;;:11;;;:15;;;;;:20;;11086:1;11067:20;;;11003:109;11122:18;;;;:9;;;:18;;;;;;:23;;-1:-1:-1;;;;;;11122:23:24;-1:-1:-1;;;;;11122:23:24;;;;;;;;;11161:27;;11122:18;;11161:27;;;;;;;11206:4;10361:856;-1:-1:-1;;;;;10361:856:24:o;4148:103:21:-;4214:30;4225:4;966:10:26;4214::21;:30::i;:::-;4148:103;:::o;7270:387::-;7347:4;-1:-1:-1;;;;;;;;;;;7437:22:21;7445:4;7451:7;7437;:22::i;:::-;7432:219;;7475:8;:14;;;;;;;;;;;-1:-1:-1;;;;;7475:31:21;;;;;;;;;:38;;-1:-1:-1;;7475:38:21;7509:4;7475:38;;;7559:12;966:10:26;;887:96;7559:12:21;-1:-1:-1;;;;;7532:40:21;7550:7;-1:-1:-1;;;;;7532:40:21;7544:4;7532:40;;;;;;;;;;7593:4;7586:11;;;;;7432:219;7635:5;7628:12;;;;;7892:388;7970:4;-1:-1:-1;;;;;;;;;;;8059:22:21;8067:4;8073:7;8059;:22::i;:::-;8055:219;;;8131:5;8097:14;;;;;;;;;;;-1:-1:-1;;;;;8097:31:21;;;;;;;;;;:39;;-1:-1:-1;;8097:39:21;;;8155:40;966:10:26;;8097:14:21;;8155:40;;8131:5;8155:40;8216:4;8209:11;;;;;2916:244:25;3007:33;3082:21;;;1573:31;3082:21;;;;;;;;:33;3106:9;3082:21;:33;:::i;:::-;-1:-1:-1;3130:23:25;;3525:25:81;;;3130:23:25;;3513:2:81;3498:18;3130:23:25;;;;;;;2997:163;2916:244;;:::o;17232:369:24:-;-1:-1:-1;;;;;;;;;;;;;;;;17394:22:24;;17390:91;;17439:31;;-1:-1:-1;;;17439:31:24;;-1:-1:-1;;;;;1697:32:81;;17439:31:24;;;1679:51:81;1652:18;;17439:31:24;1533:203:81;17390:91:24;-1:-1:-1;;;;;17490:27:24;;;;;;;:20;;;:27;;;;;;;;:37;;;;;;;;;;;;;:48;;-1:-1:-1;;17490:48:24;;;;;;;;;;17553:41;;540::81;;;17553::24;;513:18:81;17553:41:24;;;;;;;17325:276;17232:369;;;:::o;18616:782::-;-1:-1:-1;;;;;18732:14:24;;;:18;18728:664;;18770:71;;-1:-1:-1;;;18770:71:24;;-1:-1:-1;;;;;18770:36:24;;;;;:71;;966:10:26;;18821:4:24;;18827:7;;18836:4;;18770:71;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18770:71:24;;;;;;;;-1:-1:-1;;18770:71:24;;;;;;;;;;;;:::i;:::-;;;18766:616;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;19079:6;:13;19096:1;19079:18;19075:293;;19128:25;;-1:-1:-1;;;19128:25:24;;-1:-1:-1;;;;;1697:32:81;;19128:25:24;;;1679:51:81;1652:18;;19128:25:24;1533:203:81;19075:293:24;19320:6;19314:13;19305:6;19301:2;19297:15;19290:38;18766:616;-1:-1:-1;;;;;;18888:51:24;;-1:-1:-1;;;18888:51:24;18884:130;;18970:25;;-1:-1:-1;;;18970:25:24;;-1:-1:-1;;;;;1697:32:81;;18970:25:24;;;1679:51:81;1652:18;;18970:25:24;1533:203:81;18884:130:24;18842:186;18616:782;;;;:::o;2127:670:25:-;2200:13;1573:31;2300:22;2314:7;2300:13;:22::i;:::-;-1:-1:-1;2333:23:25;2359:21;;;;;;;;;;2333:47;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2390:18;2411:10;4545:9:24;;;;;;;;;-1:-1:-1;4545:9:24;;;4469:92;2411:10:25;2390:31;;2500:4;2494:18;2516:1;2494:23;2490:70;;-1:-1:-1;2540:9:25;2127:670;-1:-1:-1;;;2127:670:25:o;2490:70::-;2659:23;;:27;2655:95;;2723:4;2729:9;2709:30;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2702:37;;;;;2127:670;;;:::o;2655:95::-;2767:23;2782:7;2767:14;:23::i;:::-;2760:30;2127:670;-1:-1:-1;;;;;2127:670:25:o;12217:100:24:-;12284:26;12294:2;12298:7;12284:26;;;;;;;;;;;;:9;:26::i;3770:759:67:-;3874:15;3852:19;;:37;;:81;;-1:-1:-1;3914:19:67;;3893:17;;;;:40;;3852:81;3848:140;;;3956:21;;-1:-1:-1;;;3956:21:67;;;;;;;;;;;3848:140;4033:1;4002:19;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4002:33:67;;3998:84;;4058:13;;-1:-1:-1;;;4058:13:67;;;;;;;;;;;3998:84;4197:9;4192:331;4212:17;;;;:9;:17;:::i;:::-;:24;;4208:1;:28;4192:331;;;4278:17;;;;:9;:17;:::i;:::-;4296:1;4278:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;;;;;4278:32:67;;:37;;:136;;-1:-1:-1;4348:17:67;;;;:9;:17;:::i;:::-;4366:1;4348:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;4340:74;;-1:-1:-1;;;4340:74:67;;-1:-1:-1;;;4340:74:67;;;22856:52:81;-1:-1:-1;;;;;4340:47:67;;;;;;;22829:18:81;;4340:74:67;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4339:75;4278:136;4257:256;;;4477:17;;;;:9;:17;:::i;:::-;4495:1;4477:20;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;4454:44;;-1:-1:-1;;;4454:44:67;;-1:-1:-1;;;;;1697:32:81;;;4454:44:67;;;1679:51:81;1652:18;;4454:44:67;1533:203:81;4257:256:67;4238:3;;;;:::i;:::-;;;;4192:331;;2233:149:24;6931:20:23;:18;:20::i;:::-;2336:39:24::1;2360:5;2367:7;2336:23;:39::i;1843:218:25:-:0;1956:4;-1:-1:-1;;;;;;1979:35:25;;-1:-1:-1;;;1979:35:25;;:75;;;2018:36;2042:11;2018:23;:36::i;7059:172:24:-;7125:7;7206:18;;;:9;:18;;;;;;-1:-1:-1;;;;;7206:18:24;;7059:172::o;16304:719::-;-1:-1:-1;;;;;;;;;;;16519:9:24;;:31;;-1:-1:-1;;;;;;16532:18:24;;;;16519:31;16515:460;;;16566:13;16582:22;16596:7;16582:13;:22::i;:::-;16566:38;-1:-1:-1;;;;;;16732:18:24;;;;;;:35;;;16763:4;-1:-1:-1;;;;;16754:13:24;:5;-1:-1:-1;;;;;16754:13:24;;;16732:35;:69;;;;;16772:29;16789:5;16796:4;16772:16;:29::i;:::-;16771:30;16732:69;16728:142;;;16828:27;;-1:-1:-1;;;16828:27:24;;-1:-1:-1;;;;;1697:32:81;;16828:27:24;;;1679:51:81;1652:18;;16828:27:24;1533:203:81;16728:142:24;16888:9;16884:81;;;16942:7;16938:2;-1:-1:-1;;;;;16922:28:24;16931:5;-1:-1:-1;;;;;16922:28:24;;;;;;;;;;;16884:81;16552:423;16515:460;16985:26;;;;:17;;:26;;-1:-1:-1;;16985:26:24;;;:31;;-1:-1:-1;;;;;;16985:31:24;-1:-1:-1;;;;;16985:31:24;;;;;;;;;;16304:719::o;8548:368::-;8660:38;8674:5;8681:7;8690;8660:13;:38::i;:::-;8655:255;;-1:-1:-1;;;;;8718:19:24;;8714:186;;8764:31;;-1:-1:-1;;;8764:31:24;;;;;3525:25:81;;;3498:18;;8764:31:24;3379:177:81;8714:186:24;8841:44;;-1:-1:-1;;;8841:44:24;;-1:-1:-1;;;;;23361:32:81;;8841:44:24;;;23343:51:81;23410:18;;;23403:34;;;23316:18;;8841:44:24;23169:274:81;4381:197:21;4469:22;4477:4;4483:7;4469;:22::i;:::-;4464:108;;4514:47;;-1:-1:-1;;;4514:47:21;;-1:-1:-1;;;;;23361:32:81;;4514:47:21;;;23343:51:81;23410:18;;;23403:34;;;23316:18;;4514:47:21;23169:274:81;3972:255:24;4036:13;4061:22;4075:7;4061:13;:22::i;:::-;;4094:21;4118:10;4545:9;;;;;;;;;-1:-1:-1;4545:9:24;;;4469:92;4118:10;4094:34;;4169:1;4151:7;4145:21;:25;:75;;;;;;;;;;;;;;;;;4187:7;4196:18;:7;:16;:18::i;:::-;4173:42;;;;;;;;;:::i;:::-;;;;;;;;;;;;;4145:75;4138:82;3972:255;-1:-1:-1;;;3972:255:24:o;12538:182::-;12632:18;12638:2;12642:7;12632:5;:18::i;:::-;12660:53;12691:1;12695:2;12699:7;12708:4;12660:22;:53::i;7084:141:23:-;8870:21;8560:40;-1:-1:-1;;;8560:40:23;;;;7146:73;;7191:17;;-1:-1:-1;;;7191:17:23;;;;;;;;;;;7146:73;7084:141::o;2388:219:24:-;6931:20:23;:18;:20::i;:::-;-1:-1:-1;;;;;;;;;;;2077:21:24;2556:15:::1;2566:5:::0;2077:21;2556:15:::1;:::i;:::-;-1:-1:-1::0;2581:9:24::1;::::0;::::1;:19;2593:7:::0;2581:9;:19:::1;:::i;2674:311::-:0;2787:4;-1:-1:-1;;;;;;2822:40:24;;-1:-1:-1;;;2822:40:24;;:104;;-1:-1:-1;;;;;;;2878:48:24;;-1:-1:-1;;;2878:48:24;2822:104;:156;;;-1:-1:-1;;;;;;;;;;1133:40:27;;;2942:36:24;1034:146:27;7842:272:24;7945:4;-1:-1:-1;;;;;7980:21:24;;;;;;:127;;;8027:7;-1:-1:-1;;;;;8018:16:24;:5;-1:-1:-1;;;;;8018:16:24;;:52;;;;8038:32;8055:5;8062:7;8038:16;:32::i;:::-;8018:88;;;;8099:7;-1:-1:-1;;;;;8074:32:24;:21;8087:7;8074:12;:21::i;:::-;-1:-1:-1;;;;;8074:32:24;;8018:88;7961:146;7842:272;-1:-1:-1;;;;7842:272:24:o;637:698:55:-;693:13;742:14;759:17;770:5;759:10;:17::i;:::-;779:1;759:21;742:38;;794:20;828:6;-1:-1:-1;;;;;817:18:55;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;817:18:55;-1:-1:-1;794:41:55;-1:-1:-1;955:28:55;;;971:2;955:28;1010:282;-1:-1:-1;;1041:5:55;-1:-1:-1;;;1175:2:55;1164:14;;1159:32;1041:5;1146:46;1236:2;1227:11;;;-1:-1:-1;1256:21:55;1010:282;1256:21;-1:-1:-1;1312:6:55;637:698;-1:-1:-1;;;637:698:55:o;11539:327:24:-;-1:-1:-1;;;;;11606:16:24;;11602:87;;11645:33;;-1:-1:-1;;;11645:33:24;;11675:1;11645:33;;;1679:51:81;1652:18;;11645:33:24;1533:203:81;11602:87:24;11698:21;11722:32;11730:2;11734:7;11751:1;11722:7;:32::i;:::-;11698:56;-1:-1:-1;;;;;;11768:27:24;;;11764:96;;11818:31;;-1:-1:-1;;;11818:31:24;;11846:1;11818:31;;;1679:51:81;1652:18;;11818:31:24;1533:203:81;12214:916:57;12267:7;;-1:-1:-1;;;12342:17:57;;12338:103;;-1:-1:-1;;;12379:17:57;;;-1:-1:-1;12424:2:57;12414:12;12338:103;12467:8;12458:5;:17;12454:103;;12504:8;12495:17;;;-1:-1:-1;12540:2:57;12530:12;12454:103;12583:8;12574:5;:17;12570:103;;12620:8;12611:17;;;-1:-1:-1;12656:2:57;12646:12;12570:103;12699:7;12690:5;:16;12686:100;;12735:7;12726:16;;;-1:-1:-1;12770:1:57;12760:11;12686:100;12812:7;12803:5;:16;12799:100;;12848:7;12839:16;;;-1:-1:-1;12883:1:57;12873:11;12799:100;12925:7;12916:5;:16;12912:100;;12961:7;12952:16;;;-1:-1:-1;12996:1:57;12986:11;12912:100;13038:7;13029:5;:16;13025:66;;13075:1;13065:11;13117:6;12214:916;-1:-1:-1;;12214:916:57:o;14:131:81:-;-1:-1:-1;;;;;;88:32:81;;78:43;;68:71;;135:1;132;125:12;150:245;208:6;261:2;249:9;240:7;236:23;232:32;229:52;;;277:1;274;267:12;229:52;316:9;303:23;335:30;359:5;335:30;:::i;592:250::-;677:1;687:113;701:6;698:1;695:13;687:113;;;777:11;;;771:18;758:11;;;751:39;723:2;716:10;687:113;;;-1:-1:-1;;834:1:81;816:16;;809:27;592:250::o;847:271::-;889:3;927:5;921:12;954:6;949:3;942:19;970:76;1039:6;1032:4;1027:3;1023:14;1016:4;1009:5;1005:16;970:76;:::i;:::-;1100:2;1079:15;-1:-1:-1;;1075:29:81;1066:39;;;;1107:4;1062:50;;847:271;-1:-1:-1;;847:271:81:o;1123:220::-;1272:2;1261:9;1254:21;1235:4;1292:45;1333:2;1322:9;1318:18;1310:6;1292:45;:::i;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:81;;1348:180;-1:-1:-1;1348:180:81:o;1741:131::-;-1:-1:-1;;;;;1816:31:81;;1806:42;;1796:70;;1862:1;1859;1852:12;1877:315;1945:6;1953;2006:2;1994:9;1985:7;1981:23;1977:32;1974:52;;;2022:1;2019;2012:12;1974:52;2061:9;2048:23;2080:31;2105:5;2080:31;:::i;:::-;2130:5;2182:2;2167:18;;;;2154:32;;-1:-1:-1;;;1877:315:81:o;2197:1177::-;2374:2;2385:21;;;2484:13;;2464:18;;;2457:41;2540:15;;;2534:22;2529:2;2514:18;;;2507:50;;;;2592:15;;2586:22;-1:-1:-1;;;;;2682:21:81;;;2677:2;2662:18;;;2655:49;;;;2741:15;;2735:22;2635:3;2788;2773:19;;2766:33;2848:21;;2444:3;2429:19;;2878:22;;;2345:4;;2374:2;2958:23;;;;2345:4;;2931:3;2916:19;;;3009:178;3023:6;3020:1;3017:13;3009:178;;;3088:13;;3084:22;;3072:35;;3162:15;;;;3045:1;3038:9;;;;;3127:12;;;;3009:178;;;-1:-1:-1;3236:3:81;3224:16;;3218:23;3283:19;;;-1:-1:-1;;3279:33:81;3272:4;3257:20;;3250:63;3218:23;-1:-1:-1;3330:38:81;3287:3;3218:23;3330:38;:::i;:::-;3322:46;2197:1177;-1:-1:-1;;;;;;;;2197:1177:81:o;3561:456::-;3638:6;3646;3654;3707:2;3695:9;3686:7;3682:23;3678:32;3675:52;;;3723:1;3720;3713:12;3675:52;3762:9;3749:23;3781:31;3806:5;3781:31;:::i;:::-;3831:5;-1:-1:-1;3888:2:81;3873:18;;3860:32;3901:33;3860:32;3901:33;:::i;:::-;3561:456;;3953:7;;-1:-1:-1;;;4007:2:81;3992:18;;;;3979:32;;3561:456::o;4389:315::-;4457:6;4465;4518:2;4506:9;4497:7;4493:23;4489:32;4486:52;;;4534:1;4531;4524:12;4486:52;4570:9;4557:23;4547:33;;4630:2;4619:9;4615:18;4602:32;4643:31;4668:5;4643:31;:::i;:::-;4693:5;4683:15;;;4389:315;;;;;:::o;4709:127::-;4770:10;4765:3;4761:20;4758:1;4751:31;4801:4;4798:1;4791:15;4825:4;4822:1;4815:15;4841:632;4906:5;-1:-1:-1;;;;;4977:2:81;4969:6;4966:14;4963:40;;;4983:18;;:::i;:::-;5058:2;5052:9;5026:2;5112:15;;-1:-1:-1;;5108:24:81;;;5134:2;5104:33;5100:42;5088:55;;;5158:18;;;5178:22;;;5155:46;5152:72;;;5204:18;;:::i;:::-;5244:10;5240:2;5233:22;5273:6;5264:15;;5303:6;5295;5288:22;5343:3;5334:6;5329:3;5325:16;5322:25;5319:45;;;5360:1;5357;5350:12;5319:45;5410:6;5405:3;5398:4;5390:6;5386:17;5373:44;5465:1;5458:4;5449:6;5441;5437:19;5433:30;5426:41;;;;4841:632;;;;;:::o;5478:222::-;5521:5;5574:3;5567:4;5559:6;5555:17;5551:27;5541:55;;5592:1;5589;5582:12;5541:55;5614:80;5690:3;5681:6;5668:20;5661:4;5653:6;5649:17;5614:80;:::i;5705:390::-;5783:6;5791;5844:2;5832:9;5823:7;5819:23;5815:32;5812:52;;;5860:1;5857;5850:12;5812:52;5896:9;5883:23;5873:33;;5957:2;5946:9;5942:18;5929:32;-1:-1:-1;;;;;5976:6:81;5973:30;5970:50;;;6016:1;6013;6006:12;5970:50;6039;6081:7;6072:6;6061:9;6057:22;6039:50;:::i;:::-;6029:60;;;5705:390;;;;;:::o;6100:247::-;6159:6;6212:2;6200:9;6191:7;6187:23;6183:32;6180:52;;;6228:1;6225;6218:12;6180:52;6267:9;6254:23;6286:31;6311:5;6286:31;:::i;6352:322::-;6421:6;6474:2;6462:9;6453:7;6449:23;6445:32;6442:52;;;6490:1;6487;6480:12;6442:52;6530:9;6517:23;-1:-1:-1;;;;;6555:6:81;6552:30;6549:50;;;6595:1;6592;6585:12;6549:50;6618;6660:7;6651:6;6640:9;6636:22;6618:50;:::i;6679:118::-;6765:5;6758:13;6751:21;6744:5;6741:32;6731:60;;6787:1;6784;6777:12;6802:382;6867:6;6875;6928:2;6916:9;6907:7;6903:23;6899:32;6896:52;;;6944:1;6941;6934:12;6896:52;6983:9;6970:23;7002:31;7027:5;7002:31;:::i;:::-;7052:5;-1:-1:-1;7109:2:81;7094:18;;7081:32;7122:30;7081:32;7122:30;:::i;7189:795::-;7284:6;7292;7300;7308;7361:3;7349:9;7340:7;7336:23;7332:33;7329:53;;;7378:1;7375;7368:12;7329:53;7417:9;7404:23;7436:31;7461:5;7436:31;:::i;:::-;7486:5;-1:-1:-1;7543:2:81;7528:18;;7515:32;7556:33;7515:32;7556:33;:::i;:::-;7608:7;-1:-1:-1;7662:2:81;7647:18;;7634:32;;-1:-1:-1;7717:2:81;7702:18;;7689:32;-1:-1:-1;;;;;7733:30:81;;7730:50;;;7776:1;7773;7766:12;7730:50;7799:22;;7852:4;7844:13;;7840:27;-1:-1:-1;7830:55:81;;7881:1;7878;7871:12;7830:55;7904:74;7970:7;7965:2;7952:16;7947:2;7943;7939:11;7904:74;:::i;:::-;7894:84;;;7189:795;;;;;;;:::o;7989:348::-;8041:8;8051:6;8105:3;8098:4;8090:6;8086:17;8082:27;8072:55;;8123:1;8120;8113:12;8072:55;-1:-1:-1;8146:20:81;;-1:-1:-1;;;;;8178:30:81;;8175:50;;;8221:1;8218;8211:12;8175:50;8258:4;8250:6;8246:17;8234:29;;8310:3;8303:4;8294:6;8286;8282:19;8278:30;8275:39;8272:59;;;8327:1;8324;8317:12;8272:59;7989:348;;;;;:::o;8342:835::-;8461:6;8469;8477;8485;8538:2;8526:9;8517:7;8513:23;8509:32;8506:52;;;8554:1;8551;8544:12;8506:52;8593:9;8580:23;8612:31;8637:5;8612:31;:::i;:::-;8662:5;-1:-1:-1;8718:2:81;8703:18;;8690:32;-1:-1:-1;;;;;8771:14:81;;;8768:34;;;8798:1;8795;8788:12;8768:34;8837:59;8888:7;8879:6;8868:9;8864:22;8837:59;:::i;:::-;8915:8;;-1:-1:-1;8811:85:81;-1:-1:-1;9003:2:81;8988:18;;8975:32;;-1:-1:-1;9019:16:81;;;9016:36;;;9048:1;9045;9038:12;9016:36;-1:-1:-1;9071:24:81;;9129:3;9111:16;;;9107:26;9104:46;;;9146:1;9143;9136:12;9104:46;8342:835;;;;-1:-1:-1;8342:835:81;;-1:-1:-1;;8342:835:81:o;9182:388::-;9250:6;9258;9311:2;9299:9;9290:7;9286:23;9282:32;9279:52;;;9327:1;9324;9317:12;9279:52;9366:9;9353:23;9385:31;9410:5;9385:31;:::i;:::-;9435:5;-1:-1:-1;9492:2:81;9477:18;;9464:32;9505:33;9464:32;9505:33;:::i;9575:546::-;9655:6;9663;9671;9724:2;9712:9;9703:7;9699:23;9695:32;9692:52;;;9740:1;9737;9730:12;9692:52;9779:9;9766:23;9798:31;9823:5;9798:31;:::i;:::-;9848:5;-1:-1:-1;9904:2:81;9889:18;;9876:32;-1:-1:-1;;;;;9920:30:81;;9917:50;;;9963:1;9960;9953:12;9917:50;10002:59;10053:7;10044:6;10033:9;10029:22;10002:59;:::i;:::-;9575:546;;10080:8;;-1:-1:-1;9976:85:81;;-1:-1:-1;;;;9575:546:81:o;10126:380::-;10205:1;10201:12;;;;10248;;;10269:61;;10323:4;10315:6;10311:17;10301:27;;10269:61;10376:2;10368:6;10365:14;10345:18;10342:38;10339:161;;10422:10;10417:3;10413:20;10410:1;10403:31;10457:4;10454:1;10447:15;10485:4;10482:1;10475:15;10339:161;;10126:380;;;:::o;10891:291::-;11068:6;11057:9;11050:25;11111:2;11106;11095:9;11091:18;11084:30;11031:4;11131:45;11172:2;11161:9;11157:18;11149:6;11131:45;:::i;11313:146::-;11375:78;11393:3;11386:5;11383:14;11375:78;;;11449:1;11435:16;;11420:1;11409:13;11375:78;;11464:418;11566:2;11561:3;11558:11;11555:321;;;11602:5;11599:1;11592:16;11646:4;11643:1;11633:18;11716:2;11704:10;11700:19;11697:1;11693:27;11687:4;11683:38;11752:4;11740:10;11737:20;11734:47;;;-1:-1:-1;11775:4:81;11734:47;11794:72;11860:2;11855:3;11851:12;11848:1;11844:20;11838:4;11834:31;11821:11;11794:72;:::i;12058:1352::-;12184:3;12178:10;-1:-1:-1;;;;;12203:6:81;12200:30;12197:56;;;12233:18;;:::i;:::-;12262:97;12352:6;12312:38;12344:4;12338:11;12312:38;:::i;:::-;12306:4;12262:97;:::i;:::-;12414:4;;12478:2;12467:14;;12495:1;12490:663;;;;13197:1;13214:6;13211:89;;;-1:-1:-1;13266:19:81;;;13260:26;13211:89;-1:-1:-1;;12015:1:81;12011:11;;;12007:24;12003:29;11993:40;12039:1;12035:11;;;11990:57;13313:81;;12460:944;;12490:663;11260:1;11253:14;;;11297:4;11284:18;;-1:-1:-1;;12526:20:81;;;12644:236;12658:7;12655:1;12652:14;12644:236;;;12747:19;;;12741:26;12726:42;;12839:27;;;;12807:1;12795:14;;;;12674:19;;12644:236;;;12648:3;12908:6;12899:7;12896:19;12893:201;;;12969:19;;;12963:26;-1:-1:-1;;13052:1:81;13048:14;;;13064:3;13044:24;13040:37;13036:42;13021:58;13006:74;;12893:201;;;13140:1;13131:6;13128:1;13124:14;13120:22;13114:4;13107:36;12460:944;;;;;12058:1352;;:::o;13415:127::-;13476:10;13471:3;13467:20;13464:1;13457:31;13507:4;13504:1;13497:15;13531:4;13528:1;13521:15;13547:184;13617:6;13670:2;13658:9;13649:7;13645:23;13641:32;13638:52;;;13686:1;13683;13676:12;13638:52;-1:-1:-1;13709:16:81;;13547:184;-1:-1:-1;13547:184:81:o;13736:127::-;13797:10;13792:3;13788:20;13785:1;13778:31;13828:4;13825:1;13818:15;13852:4;13849:1;13842:15;13868:125;13933:9;;;13954:10;;;13951:36;;;13967:18;;:::i;13998:135::-;14037:3;14058:17;;;14055:43;;14078:18;;:::i;:::-;-1:-1:-1;14125:1:81;14114:13;;13998:135::o;14138:545::-;14231:4;14237:6;14297:11;14284:25;14391:2;14387:7;14376:8;14360:14;14356:29;14352:43;14332:18;14328:68;14318:96;;14410:1;14407;14400:12;14318:96;14437:33;;14489:20;;;-1:-1:-1;;;;;;14521:30:81;;14518:50;;;14564:1;14561;14554:12;14518:50;14597:4;14585:17;;-1:-1:-1;14648:1:81;14644:14;;;14628;14624:35;14614:46;;14611:66;;;14673:1;14670;14663:12;14688:851;-1:-1:-1;;;;;14807:3:81;14804:27;14801:53;;;14834:18;;:::i;:::-;-1:-1:-1;;;14869:3:81;14866:29;14863:55;;;14898:18;;:::i;:::-;14947:3;14941:10;14972:3;14967;14960:16;14996:6;14991:3;14988:15;14985:182;;;15036:3;15033:1;15026:14;15078:4;15075:1;15065:18;15096:61;15149:6;15143:4;15139:17;15133:3;15127:4;15123:14;15096:61;:::i;:::-;;14985:182;;15190:3;15212;15209:1;15202:14;15235:4;15275:2;15272:1;15262:16;15296:1;15306:227;15320:3;15317:1;15314:10;15306:227;;;15392:6;15379:20;15412:31;15437:5;15412:31;:::i;:::-;15501:14;;;15494:29;15466:15;;;;15339:1;15332:9;15306:227;;;15310:3;;;;14688:851;;;:::o;15544:516::-;15616:4;15622:6;15682:11;15669:25;15776:2;15772:7;15761:8;15745:14;15741:29;15737:43;15717:18;15713:68;15703:96;;15795:1;15792;15785:12;15703:96;15822:33;;15874:20;;;-1:-1:-1;;;;;;15906:30:81;;15903:50;;;15949:1;15946;15939:12;15903:50;15982:4;15970:17;;-1:-1:-1;16013:14:81;16009:27;;;15999:38;;15996:58;;;16050:1;16047;16040:12;16065:1206;-1:-1:-1;;;;;16184:3:81;16181:27;16178:53;;;16211:18;;:::i;:::-;16240:94;16330:3;16290:38;16322:4;16316:11;16290:38;:::i;:::-;16284:4;16240:94;:::i;:::-;16360:1;16385:2;16380:3;16377:11;16402:1;16397:616;;;;17057:1;17074:3;17071:93;;;-1:-1:-1;17130:19:81;;;17117:33;17071:93;-1:-1:-1;;12015:1:81;12011:11;;;12007:24;12003:29;11993:40;12039:1;12035:11;;;11990:57;17177:78;;16370:895;;16397:616;11260:1;11253:14;;;11297:4;11284:18;;-1:-1:-1;;16433:17:81;;;16534:9;16556:229;16570:7;16567:1;16564:14;16556:229;;;16659:19;;;16646:33;16631:49;;16766:4;16751:20;;;;16719:1;16707:14;;;;16586:12;16556:229;;;16560:3;16813;16804:7;16801:16;16798:159;;;16937:1;16933:6;16927:3;16921;16918:1;16914:11;16910:21;16906:34;16902:39;16889:9;16884:3;16880:19;16867:33;16863:79;16855:6;16848:95;16798:159;;;17000:1;16994:3;16991:1;16987:11;16983:19;16977:4;16970:33;16370:895;;16065:1206;;;:::o;17276:1271::-;17445:5;17432:19;17426:4;17419:33;17506:2;17499:5;17495:14;17482:28;17478:1;17472:4;17468:12;17461:50;17548:1;17542:4;17538:12;17598:2;17591:5;17587:14;17574:28;17611:33;17636:7;17611:33;:::i;:::-;17679:17;;-1:-1:-1;;;;;;17675:60:81;-1:-1:-1;;;;;17737:33:81;;;;17672:99;17653:119;;17831:2;17820:14;;17807:28;17886:14;17882:26;;;-1:-1:-1;;17878:40:81;17854:65;;17844:93;;17933:1;17930;17923:12;17844:93;17958:30;;18011:18;;-1:-1:-1;;;;;18041:30:81;;18038:50;;;18084:1;18081;18074:12;18038:50;18121:2;18115:4;18111:13;18097:27;;18175:6;18172:1;18168:14;18152;18148:35;18140:6;18136:48;18133:68;;;18197:1;18194;18187:12;18133:68;18210:104;18307:6;18299;18295:1;18289:4;18285:12;18210:104;:::i;:::-;;;18357:60;18412:3;18405:5;18401:15;18394:5;18357:60;:::i;:::-;18426:115;18527:13;18514:11;18510:1;18504:4;18500:12;18426:115;:::i;18552:522::-;18652:6;18647:3;18640:19;18622:3;18678:4;18707:2;18702:3;18698:12;18691:19;;18733:5;18756:1;18766:283;18780:6;18777:1;18774:13;18766:283;;;18857:6;18844:20;18877:33;18902:7;18877:33;:::i;:::-;-1:-1:-1;;;;;18935:33:81;18923:46;;18989:12;;;;19024:15;;;;18965:1;18795:9;18766:283;;;-1:-1:-1;19065:3:81;;18552:522;-1:-1:-1;;;;;18552:522:81:o;19079:501::-;19138:5;19145:6;19205:3;19192:17;19291:2;19287:7;19276:8;19260:14;19256:29;19252:43;19232:18;19228:68;19218:96;;19310:1;19307;19300:12;19218:96;19338:33;;19442:4;19429:18;;;-1:-1:-1;19390:21:81;;-1:-1:-1;;;;;;19459:30:81;;19456:50;;;19502:1;19499;19492:12;19456:50;19549:6;19533:14;19529:27;19522:5;19518:39;19515:59;;;19570:1;19567;19560:12;19585:267;19674:6;19669:3;19662:19;19726:6;19719:5;19712:4;19707:3;19703:14;19690:43;-1:-1:-1;19778:1:81;19753:16;;;19771:4;19749:27;;;19742:38;;;;19834:2;19813:15;;;-1:-1:-1;;19809:29:81;19800:39;;;19796:50;;19585:267::o;19857:1387::-;20072:6;20061:9;20054:25;20115:2;20110;20099:9;20095:18;20088:30;20167:6;20154:20;20149:2;20138:9;20134:18;20127:48;20236:2;20228:6;20224:15;20211:29;20206:2;20195:9;20191:18;20184:57;20035:4;20288:2;20280:6;20276:15;20263:29;20301:31;20326:5;20301:31;:::i;:::-;-1:-1:-1;;;;;20369:31:81;20363:3;20348:19;;20341:60;20461:2;20449:15;;20436:29;20516:14;20512:27;;;-1:-1:-1;;20508:41:81;20484:66;;20474:94;;20564:1;20561;20554:12;20474:94;20592:31;;20704:2;20691:16;;;20646:21;-1:-1:-1;;;;;20719:30:81;;20716:50;;;20762:1;20759;20752:12;20716:50;20818:6;20815:1;20811:14;20795;20791:35;20782:7;20778:49;20775:69;;;20840:1;20837;20830:12;20775:69;20882:4;20875;20864:9;20860:20;20853:34;20910:75;20980:3;20969:9;20965:19;20957:6;20948:7;20910:75;:::i;:::-;20896:89;;;21028:57;21080:3;21072:6;21068:16;21060:6;21028:57;:::i;:::-;21126:22;;;-1:-1:-1;;21122:36:81;21116:3;21101:19;;21094:65;21176:62;21130:6;21217:12;21203;21176:62;:::i;:::-;21168:70;19857:1387;-1:-1:-1;;;;;;;19857:1387:81:o;21463:489::-;-1:-1:-1;;;;;21732:15:81;;;21714:34;;21784:15;;21779:2;21764:18;;21757:43;21831:2;21816:18;;21809:34;;;21879:3;21874:2;21859:18;;21852:31;;;21657:4;;21900:46;;21926:19;;21918:6;21900:46;:::i;:::-;21892:54;21463:489;-1:-1:-1;;;;;;21463:489:81:o;21957:249::-;22026:6;22079:2;22067:9;22058:7;22054:23;22050:32;22047:52;;;22095:1;22092;22085:12;22047:52;22127:9;22121:16;22146:30;22170:5;22146:30;:::i;22211:496::-;22390:3;22428:6;22422:13;22444:66;22503:6;22498:3;22491:4;22483:6;22479:17;22444:66;:::i;:::-;22573:13;;22532:16;;;;22595:70;22573:13;22532:16;22642:4;22630:17;;22595:70;:::i;:::-;22681:20;;22211:496;-1:-1:-1;;;;22211:496:81:o;22919:245::-;22986:6;23039:2;23027:9;23018:7;23014:23;23010:32;23007:52;;;23055:1;23052;23045:12;23007:52;23087:9;23081:16;23106:28;23128:5;23106:28;:::i","linkReferences":{}},"methodIdentifiers":{"DEFAULT_ADMIN_ROLE()":"a217fddf","MINTER_ROLE()":"d5391393","approve(address,uint256)":"095ea7b3","balanceOf(address)":"70a08231","contractURI()":"e8a3d485","getApproved(uint256)":"081812fc","getPromotion(uint256)":"14fdecca","getRoleAdmin(bytes32)":"248a9ca3","getTicketsAmount(uint256)":"9de0206c","grantRole(bytes32,address)":"2f2ff15d","hasRole(bytes32,address)":"91d14854","initialize(address,string)":"f399e22e","isApprovedForAll(address,address)":"e985e9c5","name()":"06fdde03","ownerOf(uint256)":"6352211e","renounceRole(bytes32,address)":"36568abe","revokeRole(bytes32,address)":"d547741f","safeMint(address,string,(uint256,uint256,address,address[],string))":"cada1089","safeTransferFrom(address,address,uint256)":"42842e0e","safeTransferFrom(address,address,uint256,bytes)":"b88d4fde","setApprovalForAll(address,bool)":"a22cb465","setContractURI(string)":"938e3d7b","setTokenUri(uint256,string)":"57f7789e","supportsInterface(bytes4)":"01ffc9a7","symbol()":"95d89b41","tokenURI(uint256)":"c87b56dd","totalSupply()":"18160ddd","transferFrom(address,address,uint256)":"23b872dd"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.20+commit.a1b79de6\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"AccessControlBadConfirmation\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"neededRole\",\"type\":\"bytes32\"}],\"name\":\"AccessControlUnauthorizedAccount\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721IncorrectOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721InsufficientApproval\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"approver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidApprover\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOperator\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"ERC721InvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"receiver\",\"type\":\"address\"}],\"name\":\"ERC721InvalidReceiver\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"}],\"name\":\"ERC721InvalidSender\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ERC721NonexistentToken\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"stream\",\"type\":\"address\"}],\"name\":\"IncorrectStreamAddress\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidInitialization\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"InvalidTimeSettings\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotInitializing\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"NotTokenOwner\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"ZeroAddress\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"approved\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Approval\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_fromTokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_toTokenId\",\"type\":\"uint256\"}],\"name\":\"BatchMetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"contractURI\",\"type\":\"string\"}],\"name\":\"ContractURIChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"version\",\"type\":\"uint64\"}],\"name\":\"Initialized\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"_tokenId\",\"type\":\"uint256\"}],\"name\":\"MetadataUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"promoAddr\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"streams\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"indexed\":false,\"internalType\":\"struct Promotion\",\"name\":\"promotion\",\"type\":\"tuple\"}],\"name\":\"MintPromo\",\"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\":\"owner\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"tokenUri\",\"type\":\"string\"}],\"name\":\"TokenUriChanged\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"Transfer\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DEFAULT_ADMIN_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MINTER_ROLE\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"approve\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"contractURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getApproved\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getPromotion\",\"outputs\":[{\"components\":[{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"promoAddr\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"streams\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct Promotion\",\"name\":\"\",\"type\":\"tuple\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"}],\"name\":\"getRoleAdmin\",\"outputs\":[{\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"getTicketsAmount\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"totalTicketsAmount\",\"type\":\"uint256\"}],\"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\":\"promoFactory\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"contractUri\",\"type\":\"string\"}],\"name\":\"initialize\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"name\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"ownerOf\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"role\",\"type\":\"bytes32\"},{\"internalType\":\"address\",\"name\":\"callerConfirmation\",\"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\":\"to\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"},{\"components\":[{\"internalType\":\"uint256\",\"name\":\"startTime\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"endTime\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"promoAddr\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"streams\",\"type\":\"address[]\"},{\"internalType\":\"string\",\"name\":\"description\",\"type\":\"string\"}],\"internalType\":\"struct Promotion\",\"name\":\"promotion\",\"type\":\"tuple\"}],\"name\":\"safeMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"newContractURI\",\"type\":\"string\"}],\"name\":\"setContractURI\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setTokenUri\",\"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\":[],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"transferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"errors\":{\"AccessControlBadConfirmation()\":[{\"details\":\"The caller of a function is not the expected one. NOTE: Don't confuse with {AccessControlUnauthorizedAccount}.\"}],\"AccessControlUnauthorizedAccount(address,bytes32)\":[{\"details\":\"The `account` is missing a role.\"}],\"ERC721IncorrectOwner(address,uint256,address)\":[{\"details\":\"Indicates an error related to the ownership over a particular token. Used in transfers.\",\"params\":{\"owner\":\"Address of the current owner of a token.\",\"sender\":\"Address whose tokens are being transferred.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InsufficientApproval(address,uint256)\":[{\"details\":\"Indicates a failure with the `operator`\\u2019s approval. Used in transfers.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\",\"tokenId\":\"Identifier number of a token.\"}}],\"ERC721InvalidApprover(address)\":[{\"details\":\"Indicates a failure with the `approver` of a token to be approved. Used in approvals.\",\"params\":{\"approver\":\"Address initiating an approval operation.\"}}],\"ERC721InvalidOperator(address)\":[{\"details\":\"Indicates a failure with the `operator` to be approved. Used in approvals.\",\"params\":{\"operator\":\"Address that may be allowed to operate on tokens without being their owner.\"}}],\"ERC721InvalidOwner(address)\":[{\"details\":\"Indicates that an address can't be an owner. For example, `address(0)` is a forbidden owner in EIP-20. Used in balance queries.\",\"params\":{\"owner\":\"Address of the current owner of a token.\"}}],\"ERC721InvalidReceiver(address)\":[{\"details\":\"Indicates a failure with the token `receiver`. Used in transfers.\",\"params\":{\"receiver\":\"Address to which tokens are being transferred.\"}}],\"ERC721InvalidSender(address)\":[{\"details\":\"Indicates a failure with the token `sender`. Used in transfers.\",\"params\":{\"sender\":\"Address whose tokens are being transferred.\"}}],\"ERC721NonexistentToken(uint256)\":[{\"details\":\"Indicates a `tokenId` whose `owner` is the zero address.\",\"params\":{\"tokenId\":\"Identifier number of a token.\"}}],\"InvalidInitialization()\":[{\"details\":\"The contract is already initialized.\"}],\"NotInitializing()\":[{\"details\":\"The contract is not initializing.\"}]},\"events\":{\"Approval(address,address,uint256)\":{\"details\":\"Emitted when `owner` enables `approved` to manage the `tokenId` token.\"},\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets.\"},\"BatchMetadataUpdate(uint256,uint256)\":{\"details\":\"This event emits when the metadata of a range of tokens is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFTs.\"},\"Initialized(uint64)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"MetadataUpdate(uint256)\":{\"details\":\"This event emits when the metadata of a token is changed. So that the third-party platforms such as NFT market could timely update the images and related attributes of the NFT.\"},\"RoleAdminChanged(bytes32,bytes32,bytes32)\":{\"details\":\"Emitted when `newAdminRole` is set as ``role``'s admin role, replacing `previousAdminRole` `DEFAULT_ADMIN_ROLE` is the starting admin for all roles, despite {RoleAdminChanged} not being emitted signaling this.\"},\"RoleGranted(bytes32,address,address)\":{\"details\":\"Emitted when `account` is granted `role`. `sender` is the account that originated the contract call, an admin role bearer except when using {AccessControl-_setupRole}.\"},\"RoleRevoked(bytes32,address,address)\":{\"details\":\"Emitted when `account` is revoked `role`. `sender` is the account that originated the contract call: - if using `revokeRole`, it is the admin role bearer - if using `renounceRole`, it is the role bearer (i.e. `account`)\"},\"Transfer(address,address,uint256)\":{\"details\":\"Emitted when `tokenId` token is transferred from `from` to `to`.\"}},\"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`.\"},\"initialize(address,string)\":{\"params\":{\"contractUri\":\"The contract URI\",\"promoFactory\":\"The address of promo factory contract\"}},\"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 `callerConfirmation`. 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.\"},\"safeMint(address,string,(uint256,uint256,address,address[],string))\":{\"details\":\"This function can only be called by an account with the MINTER_ROLE\",\"params\":{\"promotion\":\"A struct containing parameters for the promotion\",\"to\":\"The address of the promo recipient\",\"uri\":\"The metadata URI associated with the minted token\"}},\"safeTransferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,bytes)\":{\"details\":\"See {IERC721-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC721-setApprovalForAll}.\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"symbol()\":{\"details\":\"See {IERC721Metadata-symbol}.\"},\"transferFrom(address,address,uint256)\":{\"details\":\"See {IERC721-transferFrom}.\"}},\"title\":\"Promo contract\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize(address,string)\":{\"notice\":\"Initializes the Promo contract\"},\"safeMint(address,string,(uint256,uint256,address,address[],string))\":{\"notice\":\"Mints a promotional token to a specified address with a given URI and promotion details\"}},\"notice\":\"The contract that creates promotions. Every promotion is a nft (ERC721). The contract is managed by two roles: Default admin and Minter. The Minter can mint tokens. The Default admin can set contract URI address. Only the owner of the nft can change the uri token.\",\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/Promo.sol\":\"Promo\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[\":@openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":@openzeppelin/=lib/openzeppelin-contracts/\",\":@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/\",\":@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/\",\":ds-test/=lib/forge-std/lib/ds-test/src/\",\":erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/\",\":forge-std/=lib/forge-std/src/\",\":openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/\",\":openzeppelin-contracts/=lib/openzeppelin-contracts/\",\":src/=src/\"]},\"sources\":{\"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol\":{\"keccak256\":\"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45\",\"dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol\":{\"keccak256\":\"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609\",\"dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol\":{\"keccak256\":\"0x48efca78ce4e1a9f74d3ca8539bb53d04b116e507c10cd9e0df6105b8a6ae420\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1d9f5e03898857a187d99bd0766daf725abe87f454db82ac6286544d8cb4532f\",\"dweb:/ipfs/QmXFNXaNuxvGCLNL9xAFbvEgRmXDuxw4Ukf9tddiAHDq59\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol\":{\"keccak256\":\"0x7e68925d3373bd2baa7ac36839c464b2e77b67764201c4e0196d62699ee220b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c0896e7ff605a131ca982da1175d798c19588852dc74329f5c3675ac76cb80ff\",\"dweb:/ipfs/QmdePp3XmXaKz4A9qqj6enFuqERWvJoN4uRmFzu2cwLPX8\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol\":{\"keccak256\":\"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9\",\"dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV\"]},\"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol\":{\"keccak256\":\"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45\",\"dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh\"]},\"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol\":{\"keccak256\":\"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26\",\"dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol\":{\"keccak256\":\"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a\",\"dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol\":{\"keccak256\":\"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd\",\"dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc\"]},\"lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol\":{\"keccak256\":\"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b\",\"dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5\"]},\"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol\":{\"keccak256\":\"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f\",\"dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7\",\"dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol\":{\"keccak256\":\"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22\",\"dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i\"]},\"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib/openzeppelin-contracts/contracts/utils/Strings.sol\":{\"keccak256\":\"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453\",\"dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i\"]},\"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df\",\"dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL\"]},\"lib/openzeppelin-contracts/contracts/utils/math/Math.sol\":{\"keccak256\":\"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875\",\"dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L\"]},\"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol\":{\"keccak256\":\"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc\",\"dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT\"]},\"src/Promo.sol\":{\"keccak256\":\"0x8787b77e48c8f1296fc87a335551d134b9f54ccfa016d3f0031cf5d13c106e88\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fed90cf381a0cbe821715fcf657e9ddd7924df8d50de7e99e8232491fc2dd04a\",\"dweb:/ipfs/QmTMcjrsV4DPhjWEaJAj2NUjN5EueEED8SPdymya3huuBs\"]},\"src/interfaces/ITicket.sol\":{\"keccak256\":\"0x059eddf30dc48e0dc8ef781a876a58dcab64f0575500609b34357558f54ed3bd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3fefbf93a5354fd928b1d3511c9b2c06db779890446276a28c2d572fb7f5efb5\",\"dweb:/ipfs/QmVzSDrumsdNFF3r1Lt5rJ6nTMeNsTjrDcSABf32uPSGuK\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.20+commit.a1b79de6"},"language":"Solidity","output":{"abi":[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"type":"error","name":"AccessControlBadConfirmation"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bytes32","name":"neededRole","type":"bytes32"}],"type":"error","name":"AccessControlUnauthorizedAccount"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721IncorrectOwner"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721InsufficientApproval"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"type":"error","name":"ERC721InvalidApprover"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"type":"error","name":"ERC721InvalidOperator"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"type":"error","name":"ERC721InvalidOwner"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"type":"error","name":"ERC721InvalidReceiver"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"type":"error","name":"ERC721InvalidSender"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"type":"error","name":"ERC721NonexistentToken"},{"inputs":[{"internalType":"address","name":"stream","type":"address"}],"type":"error","name":"IncorrectStreamAddress"},{"inputs":[],"type":"error","name":"InvalidInitialization"},{"inputs":[],"type":"error","name":"InvalidTimeSettings"},{"inputs":[],"type":"error","name":"NotInitializing"},{"inputs":[],"type":"error","name":"NotTokenOwner"},{"inputs":[],"type":"error","name":"ZeroAddress"},{"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":"_fromTokenId","type":"uint256","indexed":false},{"internalType":"uint256","name":"_toTokenId","type":"uint256","indexed":false}],"type":"event","name":"BatchMetadataUpdate","anonymous":false},{"inputs":[{"internalType":"string","name":"contractURI","type":"string","indexed":false}],"type":"event","name":"ContractURIChanged","anonymous":false},{"inputs":[{"internalType":"uint64","name":"version","type":"uint64","indexed":false}],"type":"event","name":"Initialized","anonymous":false},{"inputs":[{"internalType":"uint256","name":"_tokenId","type":"uint256","indexed":false}],"type":"event","name":"MetadataUpdate","anonymous":false},{"inputs":[{"internalType":"address","name":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"struct Promotion","name":"promotion","type":"tuple","components":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"address","name":"promoAddr","type":"address"},{"internalType":"address[]","name":"streams","type":"address[]"},{"internalType":"string","name":"description","type":"string"}],"indexed":false}],"type":"event","name":"MintPromo","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":"owner","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":false},{"internalType":"string","name":"tokenUri","type":"string","indexed":false}],"type":"event","name":"TokenUriChanged","anonymous":false},{"inputs":[{"internalType":"address","name":"from","type":"address","indexed":true},{"internalType":"address","name":"to","type":"address","indexed":true},{"internalType":"uint256","name":"tokenId","type":"uint256","indexed":true}],"type":"event","name":"Transfer","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"MINTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"approve"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"stateMutability":"view","type":"function","name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"contractURI","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getApproved","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getPromotion","outputs":[{"internalType":"struct Promotion","name":"","type":"tuple","components":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"address","name":"promoAddr","type":"address"},{"internalType":"address[]","name":"streams","type":"address[]"},{"internalType":"string","name":"description","type":"string"}]}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"stateMutability":"view","type":"function","name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"getTicketsAmount","outputs":[{"internalType":"uint256","name":"totalTicketsAmount","type":"uint256"}]},{"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":"promoFactory","type":"address"},{"internalType":"string","name":"contractUri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"initialize"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function","name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"name","outputs":[{"internalType":"string","name":"","type":"string"}]},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"view","type":"function","name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"callerConfirmation","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":"to","type":"address"},{"internalType":"string","name":"uri","type":"string"},{"internalType":"struct Promotion","name":"promotion","type":"tuple","components":[{"internalType":"uint256","name":"startTime","type":"uint256"},{"internalType":"uint256","name":"endTime","type":"uint256"},{"internalType":"address","name":"promoAddr","type":"address"},{"internalType":"address[]","name":"streams","type":"address[]"},{"internalType":"string","name":"description","type":"string"}]}],"stateMutability":"nonpayable","type":"function","name":"safeMint"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"stateMutability":"nonpayable","type":"function","name":"safeTransferFrom"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"stateMutability":"nonpayable","type":"function","name":"setApprovalForAll"},{"inputs":[{"internalType":"string","name":"newContractURI","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setContractURI"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"string","name":"uri","type":"string"}],"stateMutability":"nonpayable","type":"function","name":"setTokenUri"},{"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":[],"stateMutability":"view","type":"function","name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"transferFrom"}],"devdoc":{"kind":"dev","methods":{"approve(address,uint256)":{"details":"See {IERC721-approve}."},"balanceOf(address)":{"details":"See {IERC721-balanceOf}."},"getApproved(uint256)":{"details":"See {IERC721-getApproved}."},"getRoleAdmin(bytes32)":{"details":"Returns the admin role that controls `role`. See {grantRole} and {revokeRole}. To change a role's admin, use {_setRoleAdmin}."},"grantRole(bytes32,address)":{"details":"Grants `role` to `account`. If `account` had not been already granted `role`, emits a {RoleGranted} event. Requirements: - the caller must have ``role``'s admin role. May emit a {RoleGranted} event."},"hasRole(bytes32,address)":{"details":"Returns `true` if `account` has been granted `role`."},"initialize(address,string)":{"params":{"contractUri":"The contract URI","promoFactory":"The address of promo factory contract"}},"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 `callerConfirmation`. 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."},"safeMint(address,string,(uint256,uint256,address,address[],string))":{"details":"This function can only be called by an account with the MINTER_ROLE","params":{"promotion":"A struct containing parameters for the promotion","to":"The address of the promo recipient","uri":"The metadata URI associated with the minted token"}},"safeTransferFrom(address,address,uint256)":{"details":"See {IERC721-safeTransferFrom}."},"safeTransferFrom(address,address,uint256,bytes)":{"details":"See {IERC721-safeTransferFrom}."},"setApprovalForAll(address,bool)":{"details":"See {IERC721-setApprovalForAll}."},"supportsInterface(bytes4)":{"details":"See {IERC165-supportsInterface}."},"symbol()":{"details":"See {IERC721Metadata-symbol}."},"transferFrom(address,address,uint256)":{"details":"See {IERC721-transferFrom}."}},"version":1},"userdoc":{"kind":"user","methods":{"initialize(address,string)":{"notice":"Initializes the Promo contract"},"safeMint(address,string,(uint256,uint256,address,address[],string))":{"notice":"Mints a promotional token to a specified address with a given URI and promotion details"}},"version":1}},"settings":{"remappings":["@openzeppelin-upgradeable/=lib/openzeppelin-contracts-upgradeable/","@openzeppelin/=lib/openzeppelin-contracts/","@openzeppelin/contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/contracts/","@openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/","ds-test/=lib/forge-std/lib/ds-test/src/","erc4626-tests/=lib/openzeppelin-contracts-upgradeable/lib/erc4626-tests/","forge-std/=lib/forge-std/src/","openzeppelin-contracts-upgradeable/=lib/openzeppelin-contracts-upgradeable/","openzeppelin-contracts/=lib/openzeppelin-contracts/","src/=src/"],"optimizer":{"enabled":true,"runs":200},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"src/Promo.sol":"Promo"},"evmVersion":"paris","libraries":{}},"sources":{"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol":{"keccak256":"0x6662ec4e5cefca03eeadd073e9469df8d2944bb2ee8ec8f7622c2c46aab5f225","urls":["bzz-raw://4d8544c6f8daa4d1bc215c6a72fe0acdb748664a105b0e5efc19295667521d45","dweb:/ipfs/QmdGWqdnXT8S3RgCR6aV8XHZrsybieMQLLnug1NtpSjEXN"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol":{"keccak256":"0x631188737069917d2f909d29ce62c4d48611d326686ba6683e26b72a23bfac0b","urls":["bzz-raw://7a61054ae84cd6c4d04c0c4450ba1d6de41e27e0a2c4f1bcdf58f796b401c609","dweb:/ipfs/QmUvtdp7X1mRVyC3CsHrtPbgoqWaXHp3S1ZR24tpAQYJWM"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol":{"keccak256":"0x48efca78ce4e1a9f74d3ca8539bb53d04b116e507c10cd9e0df6105b8a6ae420","urls":["bzz-raw://1d9f5e03898857a187d99bd0766daf725abe87f454db82ac6286544d8cb4532f","dweb:/ipfs/QmXFNXaNuxvGCLNL9xAFbvEgRmXDuxw4Ukf9tddiAHDq59"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol":{"keccak256":"0x7e68925d3373bd2baa7ac36839c464b2e77b67764201c4e0196d62699ee220b8","urls":["bzz-raw://c0896e7ff605a131ca982da1175d798c19588852dc74329f5c3675ac76cb80ff","dweb:/ipfs/QmdePp3XmXaKz4A9qqj6enFuqERWvJoN4uRmFzu2cwLPX8"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/ContextUpgradeable.sol":{"keccak256":"0xdbef5f0c787055227243a7318ef74c8a5a1108ca3a07f2b3a00ef67769e1e397","urls":["bzz-raw://08e39f23d5b4692f9a40803e53a8156b72b4c1f9902a88cd65ba964db103dab9","dweb:/ipfs/QmPKn6EYDgpga7KtpkA8wV2yJCYGMtc9K4LkJfhKX2RVSV"],"license":"MIT"},"lib/openzeppelin-contracts-upgradeable/contracts/utils/introspection/ERC165Upgradeable.sol":{"keccak256":"0xdaba3f7c42c55b2896353f32bd27d4d5f8bae741b3b05d4c53f67abc4dc47ce8","urls":["bzz-raw://1fa2e61141c602510bcd2cd936ed9561922ac8772a9b9c9a9db091a74e354a45","dweb:/ipfs/QmcHQDDoEBwJmwUbzoVkytvJsBx3KVHYFFnDkvRGWh9Wmh"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/access/IAccessControl.sol":{"keccak256":"0xb6b36edd6a2999fd243ff226d6cbf84bd71af2432bbd0dfe19392996a1d9cb41","urls":["bzz-raw://1fd2f35495652e57e3f99bc6c510bc5f7dd398a176ea2e72d8ed730aebc6ca26","dweb:/ipfs/QmTQV6X4gkikTib49cho5iDX3JvSQbdsoEChoDwrk3CbbH"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol":{"keccak256":"0xde7e9fd9aee8d4f40772f96bb3b58836cbc6dfc0227014a061947f8821ea9724","urls":["bzz-raw://11fea9f8bc98949ac6709f0c1699db7430d2948137aa94d5a9e95a91f61a710a","dweb:/ipfs/QmQdfRXxQjwP6yn3DVo1GHPpriKNcFghSPi94Z1oKEFUNS"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol":{"keccak256":"0xb31b86c03f4677dcffa4655285d62433509513be9bafa0e04984565052d34e44","urls":["bzz-raw://a89c6fb0cd5fef4244500b633f63def9f2bb2134debb961e590bd5a2910662fd","dweb:/ipfs/QmNqWyCxyopvb99RbRomPpfTZGXRi5MnzgpFXE2BFLLgMc"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol":{"keccak256":"0xc4d7ebf63eb2f6bf3fee1b6c0ee775efa9f31b4843a5511d07eea147e212932d","urls":["bzz-raw://01c66a2fad66bc710db7510419a7eee569b40b67cd9f01b70a3fc90d6f76c03b","dweb:/ipfs/QmT1CjJZq4eTNA4nu8E9ZrWfaZu6ReUsDbjcK8DbEFqwx5"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol":{"keccak256":"0x60c65f701957fdd6faea1acb0bb45825791d473693ed9ecb34726fdfaa849dd7","urls":["bzz-raw://ea290300e0efc4d901244949dc4d877fd46e6c5e43dc2b26620e8efab3ab803f","dweb:/ipfs/QmcLLJppxKeJWqHxE2CUkcfhuRTgHSn8J4kijcLa5MYhSt"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0x5ef46daa3b58ef2702279d514780316efaa952915ee1aa3396f041ee2982b0b4","urls":["bzz-raw://2f8f2a76e23b02fc69e8cd24c3cb47da6c7af3a2d6c3a382f8ac25c6e094ade7","dweb:/ipfs/QmPV4ZS4tPVv4mTCf9ejyZ1ai57EEibDRj7mN2ARDCLV5n"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol":{"keccak256":"0x7f7a26306c79a65fb8b3b6c757cd74660c532cd8a02e165488e30027dd34ca49","urls":["bzz-raw://d01e0b2b837ee2f628545e54d8715b49c7ef2befd08356c2e7f6c50dde8a1c22","dweb:/ipfs/QmWBAn6y2D1xgftci97Z3qR9tQnkvwQpYwFwkTvDMvqU4i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/Strings.sol":{"keccak256":"0x55f102ea785d8399c0e58d1108e2d289506dde18abc6db1b7f68c1f9f9bc5792","urls":["bzz-raw://6e52e0a7765c943ef14e5bcf11e46e6139fa044be564881378349236bf2e3453","dweb:/ipfs/QmZEeeXoFPW47amyP35gfzomF9DixqqTEPwzBakv6cZw6i"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0x4296879f55019b23e135000eb36896057e7101fb7fb859c5ef690cf14643757b","urls":["bzz-raw://87b3541437c8c443ccd36795e56a338ed12855eec17f8da624511b8d1a7e14df","dweb:/ipfs/QmeJQCtZrQjtJLr6u7ZHWeH3pBnjtLWzvRrKViAi7UZqxL"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/Math.sol":{"keccak256":"0x005ec64c6313f0555d59e278f9a7a5ab2db5bdc72a027f255a37c327af1ec02d","urls":["bzz-raw://4ece9f0b9c8daca08c76b6b5405a6446b6f73b3a15fab7ff56e296cbd4a2c875","dweb:/ipfs/QmQyRpyPRL5SQuAgj6SHmbir3foX65FJjbVTTQrA2EFg6L"],"license":"MIT"},"lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol":{"keccak256":"0x5f7e4076e175393767754387c962926577f1660dd9b810187b9002407656be72","urls":["bzz-raw://7d533a1c97cd43a57cd9c465f7ee8dd0e39ae93a8fb8ff8e5303a356b081cdcc","dweb:/ipfs/QmVBEei6aTnvYNZp2CHYVNKyZS4q1KkjANfY39WVXZXVoT"],"license":"MIT"},"src/Promo.sol":{"keccak256":"0x8787b77e48c8f1296fc87a335551d134b9f54ccfa016d3f0031cf5d13c106e88","urls":["bzz-raw://fed90cf381a0cbe821715fcf657e9ddd7924df8d50de7e99e8232491fc2dd04a","dweb:/ipfs/QmTMcjrsV4DPhjWEaJAj2NUjN5EueEED8SPdymya3huuBs"],"license":"MIT"},"src/interfaces/ITicket.sol":{"keccak256":"0x059eddf30dc48e0dc8ef781a876a58dcab64f0575500609b34357558f54ed3bd","urls":["bzz-raw://3fefbf93a5354fd928b1d3511c9b2c06db779890446276a28c2d572fb7f5efb5","dweb:/ipfs/QmVzSDrumsdNFF3r1Lt5rJ6nTMeNsTjrDcSABf32uPSGuK"],"license":"MIT"}},"version":1},"ast":{"absolutePath":"src/Promo.sol","id":52513,"exportedSymbols":{"AccessControlUpgradeable":[45301],"ERC721URIStorageUpgradeable":[47052],"ERC721Upgradeable":[46882],"ITicket":[54159],"Initializable":[45750],"Promo":[52512],"Promotion":[52128]},"nodeType":"SourceUnit","src":"32:5898:67","nodes":[{"id":52106,"nodeType":"PragmaDirective","src":"32:23:67","nodes":[],"literals":["solidity","0.8",".20"]},{"id":52108,"nodeType":"ImportDirective","src":"57:140:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol","file":"@openzeppelin-upgradeable/contracts/token/ERC721/extensions/ERC721URIStorageUpgradeable.sol","nameLocation":"-1:-1:-1","scope":52513,"sourceUnit":47053,"symbolAliases":[{"foreign":{"id":52107,"name":"ERC721URIStorageUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47052,"src":"65:27:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52110,"nodeType":"ImportDirective","src":"198:109:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol","file":"@openzeppelin-upgradeable/contracts/token/ERC721/ERC721Upgradeable.sol","nameLocation":"-1:-1:-1","scope":52513,"sourceUnit":46883,"symbolAliases":[{"foreign":{"id":52109,"name":"ERC721Upgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":46882,"src":"206:17:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52112,"nodeType":"ImportDirective","src":"308:117:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/access/AccessControlUpgradeable.sol","file":"@openzeppelin-upgradeable/contracts/access/AccessControlUpgradeable.sol","nameLocation":"-1:-1:-1","scope":52513,"sourceUnit":45302,"symbolAliases":[{"foreign":{"id":52111,"name":"AccessControlUpgradeable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45301,"src":"316:24:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52114,"nodeType":"ImportDirective","src":"426:96:67","nodes":[],"absolutePath":"lib/openzeppelin-contracts-upgradeable/contracts/proxy/utils/Initializable.sol","file":"@openzeppelin-upgradeable/contracts/proxy/utils/Initializable.sol","nameLocation":"-1:-1:-1","scope":52513,"sourceUnit":45751,"symbolAliases":[{"foreign":{"id":52113,"name":"Initializable","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45750,"src":"434:13:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52116,"nodeType":"ImportDirective","src":"524:51:67","nodes":[],"absolutePath":"src/interfaces/ITicket.sol","file":"src/interfaces/ITicket.sol","nameLocation":"-1:-1:-1","scope":52513,"sourceUnit":54160,"symbolAliases":[{"foreign":{"id":52115,"name":"ITicket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54159,"src":"532:7:67","typeDescriptions":{}},"nameLocation":"-1:-1:-1"}],"unitAlias":""},{"id":52128,"nodeType":"StructDefinition","src":"577:134:67","nodes":[],"canonicalName":"Promotion","members":[{"constant":false,"id":52118,"mutability":"mutable","name":"startTime","nameLocation":"608:9:67","nodeType":"VariableDeclaration","scope":52128,"src":"600:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52117,"name":"uint256","nodeType":"ElementaryTypeName","src":"600:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52120,"mutability":"mutable","name":"endTime","nameLocation":"631:7:67","nodeType":"VariableDeclaration","scope":52128,"src":"623:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52119,"name":"uint256","nodeType":"ElementaryTypeName","src":"623:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52122,"mutability":"mutable","name":"promoAddr","nameLocation":"652:9:67","nodeType":"VariableDeclaration","scope":52128,"src":"644:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52121,"name":"address","nodeType":"ElementaryTypeName","src":"644:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52125,"mutability":"mutable","name":"streams","nameLocation":"677:7:67","nodeType":"VariableDeclaration","scope":52128,"src":"667:17:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"},"typeName":{"baseType":{"id":52123,"name":"address","nodeType":"ElementaryTypeName","src":"667:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52124,"nodeType":"ArrayTypeName","src":"667:9:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_storage_ptr","typeString":"address[]"}},"visibility":"internal"},{"constant":false,"id":52127,"mutability":"mutable","name":"description","nameLocation":"697:11:67","nodeType":"VariableDeclaration","scope":52128,"src":"690:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"},"typeName":{"id":52126,"name":"string","nodeType":"ElementaryTypeName","src":"690:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"name":"Promotion","nameLocation":"584:9:67","scope":52513,"visibility":"public"},{"id":52512,"nodeType":"ContractDefinition","src":"1043:4886:67","nodes":[{"id":52142,"nodeType":"VariableDeclaration","src":"1171:62:67","nodes":[],"constant":true,"functionSelector":"d5391393","mutability":"constant","name":"MINTER_ROLE","nameLocation":"1195:11:67","scope":52512,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"},"typeName":{"id":52138,"name":"bytes32","nodeType":"ElementaryTypeName","src":"1171:7:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"value":{"arguments":[{"hexValue":"4d494e5445525f524f4c45","id":52140,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"1219:13:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6","typeString":"literal_string \"MINTER_ROLE\""},"value":"MINTER_ROLE"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6","typeString":"literal_string \"MINTER_ROLE\""}],"id":52139,"name":"keccak256","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-8,"src":"1209:9:67","typeDescriptions":{"typeIdentifier":"t_function_keccak256_pure$_t_bytes_memory_ptr_$returns$_t_bytes32_$","typeString":"function (bytes memory) pure returns (bytes32)"}},"id":52141,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1209:24:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},"visibility":"public"},{"id":52144,"nodeType":"VariableDeclaration","src":"1240:27:67","nodes":[],"constant":false,"mutability":"mutable","name":"_contractURI","nameLocation":"1255:12:67","scope":52512,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string"},"typeName":{"id":52143,"name":"string","nodeType":"ElementaryTypeName","src":"1240:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"private"},{"id":52146,"nodeType":"VariableDeclaration","src":"1273:29:67","nodes":[],"constant":false,"mutability":"mutable","name":"_tokenCounter","nameLocation":"1289:13:67","scope":52512,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52145,"name":"uint256","nodeType":"ElementaryTypeName","src":"1273:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"private"},{"id":52151,"nodeType":"VariableDeclaration","src":"1309:67:67","nodes":[],"constant":false,"mutability":"mutable","name":"_promotions","nameLocation":"1365:11:67","scope":52512,"stateVariable":true,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Promotion_$52128_storage_$","typeString":"mapping(uint256 => struct Promotion)"},"typeName":{"id":52150,"keyName":"tokenId","keyNameLocation":"1325:7:67","keyType":{"id":52147,"name":"uint256","nodeType":"ElementaryTypeName","src":"1317:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Mapping","src":"1309:47:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Promotion_$52128_storage_$","typeString":"mapping(uint256 => struct Promotion)"},"valueName":"promotion","valueNameLocation":"1346:9:67","valueType":{"id":52149,"nodeType":"UserDefinedTypeName","pathNode":{"id":52148,"name":"Promotion","nameLocations":["1336:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":52128,"src":"1336:9:67"},"referencedDeclaration":52128,"src":"1336:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_storage_ptr","typeString":"struct Promotion"}}},"visibility":"private"},{"id":52155,"nodeType":"EventDefinition","src":"1398:45:67","nodes":[],"anonymous":false,"eventSelector":"d5ee5eaf65263bab5d569890714d123ad48a9e54409d35e71d374f3dd300bba0","name":"ContractURIChanged","nameLocation":"1404:18:67","parameters":{"id":52154,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52153,"indexed":false,"mutability":"mutable","name":"contractURI","nameLocation":"1430:11:67","nodeType":"VariableDeclaration","scope":52155,"src":"1423:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52152,"name":"string","nodeType":"ElementaryTypeName","src":"1423:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1422:20:67"}},{"id":52164,"nodeType":"EventDefinition","src":"1448:77:67","nodes":[],"anonymous":false,"eventSelector":"e20902879f47c9f734b76d32be336010f7b3255d44e1564663803fac43d06cf5","name":"MintPromo","nameLocation":"1454:9:67","parameters":{"id":52163,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52157,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"1480:5:67","nodeType":"VariableDeclaration","scope":52164,"src":"1464:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52156,"name":"address","nodeType":"ElementaryTypeName","src":"1464:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52159,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1495:7:67","nodeType":"VariableDeclaration","scope":52164,"src":"1487:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52158,"name":"uint256","nodeType":"ElementaryTypeName","src":"1487:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52162,"indexed":false,"mutability":"mutable","name":"promotion","nameLocation":"1514:9:67","nodeType":"VariableDeclaration","scope":52164,"src":"1504:19:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_memory_ptr","typeString":"struct Promotion"},"typeName":{"id":52161,"nodeType":"UserDefinedTypeName","pathNode":{"id":52160,"name":"Promotion","nameLocations":["1504:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":52128,"src":"1504:9:67"},"referencedDeclaration":52128,"src":"1504:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_storage_ptr","typeString":"struct Promotion"}},"visibility":"internal"}],"src":"1463:61:67"}},{"id":52172,"nodeType":"EventDefinition","src":"1530:79:67","nodes":[],"anonymous":false,"eventSelector":"c7868dbe1cad60d57d886befc1900d24ad0479e09f729e67507abfdb4332cd1e","name":"TokenUriChanged","nameLocation":"1536:15:67","parameters":{"id":52171,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52166,"indexed":true,"mutability":"mutable","name":"owner","nameLocation":"1568:5:67","nodeType":"VariableDeclaration","scope":52172,"src":"1552:21:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52165,"name":"address","nodeType":"ElementaryTypeName","src":"1552:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52168,"indexed":false,"mutability":"mutable","name":"tokenId","nameLocation":"1583:7:67","nodeType":"VariableDeclaration","scope":52172,"src":"1575:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52167,"name":"uint256","nodeType":"ElementaryTypeName","src":"1575:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52170,"indexed":false,"mutability":"mutable","name":"tokenUri","nameLocation":"1599:8:67","nodeType":"VariableDeclaration","scope":52172,"src":"1592:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52169,"name":"string","nodeType":"ElementaryTypeName","src":"1592:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"1551:57:67"}},{"id":52176,"nodeType":"ErrorDefinition","src":"1630:45:67","nodes":[],"errorSelector":"6b30f69d","name":"IncorrectStreamAddress","nameLocation":"1636:22:67","parameters":{"id":52175,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52174,"mutability":"mutable","name":"stream","nameLocation":"1667:6:67","nodeType":"VariableDeclaration","scope":52176,"src":"1659:14:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52173,"name":"address","nodeType":"ElementaryTypeName","src":"1659:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"}],"src":"1658:16:67"}},{"id":52178,"nodeType":"ErrorDefinition","src":"1680:28:67","nodes":[],"errorSelector":"afe905a3","name":"InvalidTimeSettings","nameLocation":"1686:19:67","parameters":{"id":52177,"nodeType":"ParameterList","parameters":[],"src":"1705:2:67"}},{"id":52180,"nodeType":"ErrorDefinition","src":"1713:22:67","nodes":[],"errorSelector":"59dc379f","name":"NotTokenOwner","nameLocation":"1719:13:67","parameters":{"id":52179,"nodeType":"ParameterList","parameters":[],"src":"1732:2:67"}},{"id":52182,"nodeType":"ErrorDefinition","src":"1740:20:67","nodes":[],"errorSelector":"d92e233d","name":"ZeroAddress","nameLocation":"1746:11:67","parameters":{"id":52181,"nodeType":"ParameterList","parameters":[],"src":"1757:2:67"}},{"id":52200,"nodeType":"ModifierDefinition","src":"1848:152:67","nodes":[],"body":{"id":52199,"nodeType":"Block","src":"1889:111:67","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52192,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"arguments":[{"id":52188,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52185,"src":"1911:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":52187,"name":"ownerOf","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45944,"src":"1903:7:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_address_$","typeString":"function (uint256) view returns (address)"}},"id":52189,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1903:16:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"!=","rightExpression":{"expression":{"id":52190,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"1923:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52191,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"1927:6:67","memberName":"sender","nodeType":"MemberAccess","src":"1923:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"1903:30:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52197,"nodeType":"IfStatement","src":"1899:83:67","trueBody":{"id":52196,"nodeType":"Block","src":"1935:47:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52193,"name":"NotTokenOwner","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52180,"src":"1956:13:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52194,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"1956:15:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52195,"nodeType":"RevertStatement","src":"1949:22:67"}]}},{"id":52198,"nodeType":"PlaceholderStatement","src":"1992:1:67"}]},"documentation":{"id":52183,"nodeType":"StructuredDocumentation","src":"1785:58:67","text":"@notice Checks that the caller is the owner of tokenId"},"name":"onlyTokenOwner","nameLocation":"1857:14:67","parameters":{"id":52186,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52185,"mutability":"mutable","name":"tokenId","nameLocation":"1880:7:67","nodeType":"VariableDeclaration","scope":52200,"src":"1872:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52184,"name":"uint256","nodeType":"ElementaryTypeName","src":"1872:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"1871:17:67"},"virtual":false,"visibility":"internal"},{"id":52207,"nodeType":"FunctionDefinition","src":"2006:53:67","nodes":[],"body":{"id":52206,"nodeType":"Block","src":"2020:39:67","nodes":[],"statements":[{"expression":{"arguments":[],"expression":{"argumentTypes":[],"id":52203,"name":"_disableInitializers","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45718,"src":"2030:20:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$__$returns$__$","typeString":"function ()"}},"id":52204,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2030:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52205,"nodeType":"ExpressionStatement","src":"2030:22:67"}]},"implemented":true,"kind":"constructor","modifiers":[],"name":"","nameLocation":"-1:-1:-1","parameters":{"id":52201,"nodeType":"ParameterList","parameters":[],"src":"2017:2:67"},"returnParameters":{"id":52202,"nodeType":"ParameterList","parameters":[],"src":"2020:0:67"},"scope":52512,"stateMutability":"nonpayable","virtual":false,"visibility":"public"},{"id":52225,"nodeType":"FunctionDefinition","src":"2160:253:67","nodes":[],"body":{"id":52224,"nodeType":"Block","src":"2353:60:67","nodes":[],"statements":[{"expression":{"arguments":[{"id":52221,"name":"interfaceId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52210,"src":"2394:11:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"id":52219,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"2370:5:67","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Promo_$52512_$","typeString":"type(contract super Promo)"}},"id":52220,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2376:17:67","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":45030,"src":"2370:23:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view returns (bool)"}},"id":52222,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2370:36:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"functionReturnParameters":52218,"id":52223,"nodeType":"Return","src":"2363:43:67"}]},"baseFunctions":[45030,45896,46960],"documentation":{"id":52208,"nodeType":"StructuredDocumentation","src":"2099:56:67","text":" @dev See {IERC165-supportsInterface}."},"functionSelector":"01ffc9a7","implemented":true,"kind":"function","modifiers":[],"name":"supportsInterface","nameLocation":"2169:17:67","overrides":{"id":52215,"nodeType":"OverrideSpecifier","overrides":[{"id":52212,"name":"ERC721Upgradeable","nameLocations":["2252:17:67"],"nodeType":"IdentifierPath","referencedDeclaration":46882,"src":"2252:17:67"},{"id":52213,"name":"ERC721URIStorageUpgradeable","nameLocations":["2271:27:67"],"nodeType":"IdentifierPath","referencedDeclaration":47052,"src":"2271:27:67"},{"id":52214,"name":"AccessControlUpgradeable","nameLocations":["2300:24:67"],"nodeType":"IdentifierPath","referencedDeclaration":45301,"src":"2300:24:67"}],"src":"2243:82:67"},"parameters":{"id":52211,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52210,"mutability":"mutable","name":"interfaceId","nameLocation":"2194:11:67","nodeType":"VariableDeclaration","scope":52225,"src":"2187:18:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"},"typeName":{"id":52209,"name":"bytes4","nodeType":"ElementaryTypeName","src":"2187:6:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}},"visibility":"internal"}],"src":"2186:20:67"},"returnParameters":{"id":52218,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52217,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52225,"src":"2343:4:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"},"typeName":{"id":52216,"name":"bool","nodeType":"ElementaryTypeName","src":"2343:4:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"visibility":"internal"}],"src":"2342:6:67"},"scope":52512,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":52256,"nodeType":"FunctionDefinition","src":"2635:277:67","nodes":[],"body":{"id":52255,"nodeType":"Block","src":"2727:185:67","nodes":[],"statements":[{"expression":{"arguments":[{"hexValue":"4d65746150726f6d6f","id":52236,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2751:11:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_c518e7b6693c38a6d1c4162127826dea6971e2626a3849a9f5b10c0da75a0ad2","typeString":"literal_string \"MetaPromo\""},"value":"MetaPromo"},{"hexValue":"4d50","id":52237,"isConstant":false,"isLValue":false,"isPure":true,"kind":"string","lValueRequested":false,"nodeType":"Literal","src":"2764:4:67","typeDescriptions":{"typeIdentifier":"t_stringliteral_83960bcf2c2148ba3de98557730f9c83d643a1a2e59f49d9fc5d991909d2ed8f","typeString":"literal_string \"MP\""},"value":"MP"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_stringliteral_c518e7b6693c38a6d1c4162127826dea6971e2626a3849a9f5b10c0da75a0ad2","typeString":"literal_string \"MetaPromo\""},{"typeIdentifier":"t_stringliteral_83960bcf2c2148ba3de98557730f9c83d643a1a2e59f49d9fc5d991909d2ed8f","typeString":"literal_string \"MP\""}],"id":52235,"name":"__ERC721_init","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45837,"src":"2737:13:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory,string memory)"}},"id":52238,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2737:32:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52239,"nodeType":"ExpressionStatement","src":"2737:32:67"},{"expression":{"arguments":[{"id":52241,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44967,"src":"2790:18:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"expression":{"id":52242,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"2810:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52243,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"2814:6:67","memberName":"sender","nodeType":"MemberAccess","src":"2810:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":52240,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45254,"src":"2779:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":52244,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2779:42:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52245,"nodeType":"ExpressionStatement","src":"2779:42:67"},{"expression":{"arguments":[{"id":52247,"name":"MINTER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52142,"src":"2842:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}},{"id":52248,"name":"promoFactory","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52228,"src":"2855:12:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes32","typeString":"bytes32"},{"typeIdentifier":"t_address","typeString":"address"}],"id":52246,"name":"_grantRole","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":45254,"src":"2831:10:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_bytes32_$_t_address_$returns$_t_bool_$","typeString":"function (bytes32,address) returns (bool)"}},"id":52249,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"2831:37:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52250,"nodeType":"ExpressionStatement","src":"2831:37:67"},{"expression":{"id":52253,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52251,"name":"_contractURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52144,"src":"2879:12:67","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52252,"name":"contractUri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52230,"src":"2894:11:67","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}},"src":"2879:26:67","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":52254,"nodeType":"ExpressionStatement","src":"2879:26:67"}]},"documentation":{"id":52226,"nodeType":"StructuredDocumentation","src":"2465:165:67","text":" @notice Initializes the Promo contract\n @param promoFactory The address of promo factory contract\n @param contractUri The contract URI"},"functionSelector":"f399e22e","implemented":true,"kind":"function","modifiers":[{"id":52233,"kind":"modifierInvocation","modifierName":{"id":52232,"name":"initializer","nameLocations":["2715:11:67"],"nodeType":"IdentifierPath","referencedDeclaration":45604,"src":"2715:11:67"},"nodeType":"ModifierInvocation","src":"2715:11:67"}],"name":"initialize","nameLocation":"2644:10:67","parameters":{"id":52231,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52228,"mutability":"mutable","name":"promoFactory","nameLocation":"2663:12:67","nodeType":"VariableDeclaration","scope":52256,"src":"2655:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52227,"name":"address","nodeType":"ElementaryTypeName","src":"2655:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52230,"mutability":"mutable","name":"contractUri","nameLocation":"2693:11:67","nodeType":"VariableDeclaration","scope":52256,"src":"2677:27:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":52229,"name":"string","nodeType":"ElementaryTypeName","src":"2677:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"2654:51:67"},"returnParameters":{"id":52234,"nodeType":"ParameterList","parameters":[],"src":"2727:0:67"},"scope":52512,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":52304,"nodeType":"FunctionDefinition","src":"3362:402:67","nodes":[],"body":{"id":52303,"nodeType":"Block","src":"3494:270:67","nodes":[],"statements":[{"expression":{"id":52271,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"3504:15:67","subExpression":{"id":52270,"name":"_tokenCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52146,"src":"3504:13:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52272,"nodeType":"ExpressionStatement","src":"3504:15:67"},{"assignments":[52274],"declarations":[{"constant":false,"id":52274,"mutability":"mutable","name":"tokenId","nameLocation":"3537:7:67","nodeType":"VariableDeclaration","scope":52303,"src":"3529:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52273,"name":"uint256","nodeType":"ElementaryTypeName","src":"3529:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52276,"initialValue":{"id":52275,"name":"_tokenCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52146,"src":"3547:13:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"3529:31:67"},{"expression":{"arguments":[{"id":52278,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52259,"src":"3581:2:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52279,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52274,"src":"3585:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"}],"id":52277,"name":"_safeMint","nodeType":"Identifier","overloadedDeclarations":[46488,46514],"referencedDeclaration":46488,"src":"3571:9:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_address_$_t_uint256_$returns$__$","typeString":"function (address,uint256)"}},"id":52280,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3571:22:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52281,"nodeType":"ExpressionStatement","src":"3571:22:67"},{"expression":{"arguments":[{"id":52283,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52274,"src":"3616:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52284,"name":"uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52261,"src":"3625:3:67","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_calldata_ptr","typeString":"string calldata"}],"id":52282,"name":"_setTokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"3603:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,string memory)"}},"id":52285,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3603:26:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52286,"nodeType":"ExpressionStatement","src":"3603:26:67"},{"expression":{"arguments":[{"id":52288,"name":"promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52264,"src":"3656:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion calldata"}],"id":52287,"name":"_checkPromotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52383,"src":"3640:15:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_struct$_Promotion_$52128_calldata_ptr_$returns$__$","typeString":"function (struct Promotion calldata) view"}},"id":52289,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3640:26:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52290,"nodeType":"ExpressionStatement","src":"3640:26:67"},{"expression":{"id":52295,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"baseExpression":{"id":52291,"name":"_promotions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"3676:11:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Promotion_$52128_storage_$","typeString":"mapping(uint256 => struct Promotion storage ref)"}},"id":52293,"indexExpression":{"id":52292,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52274,"src":"3688:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":true,"nodeType":"IndexAccess","src":"3676:20:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_storage","typeString":"struct Promotion storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52294,"name":"promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52264,"src":"3699:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion calldata"}},"src":"3676:32:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_storage","typeString":"struct Promotion storage ref"}},"id":52296,"nodeType":"ExpressionStatement","src":"3676:32:67"},{"eventCall":{"arguments":[{"id":52298,"name":"to","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52259,"src":"3734:2:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52299,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52274,"src":"3738:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52300,"name":"promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52264,"src":"3747:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion calldata"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion calldata"}],"id":52297,"name":"MintPromo","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52164,"src":"3724:9:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_struct$_Promotion_$52128_memory_ptr_$returns$__$","typeString":"function (address,uint256,struct Promotion memory)"}},"id":52301,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3724:33:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52302,"nodeType":"EmitStatement","src":"3719:38:67"}]},"documentation":{"id":52257,"nodeType":"StructuredDocumentation","src":"2963:394:67","text":" @notice Mints a promotional token to a specified address\n with a given URI and promotion details\n @param to The address of the promo recipient\n @param uri The metadata URI associated with the minted token\n @param promotion A struct containing parameters for the promotion\n @dev This function can only be called by an account with the MINTER_ROLE"},"functionSelector":"cada1089","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":52267,"name":"MINTER_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52142,"src":"3477:11:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":52268,"kind":"modifierInvocation","modifierName":{"id":52266,"name":"onlyRole","nameLocations":["3468:8:67"],"nodeType":"IdentifierPath","referencedDeclaration":44996,"src":"3468:8:67"},"nodeType":"ModifierInvocation","src":"3468:21:67"}],"name":"safeMint","nameLocation":"3371:8:67","parameters":{"id":52265,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52259,"mutability":"mutable","name":"to","nameLocation":"3388:2:67","nodeType":"VariableDeclaration","scope":52304,"src":"3380:10:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"},"typeName":{"id":52258,"name":"address","nodeType":"ElementaryTypeName","src":"3380:7:67","stateMutability":"nonpayable","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"visibility":"internal"},{"constant":false,"id":52261,"mutability":"mutable","name":"uri","nameLocation":"3408:3:67","nodeType":"VariableDeclaration","scope":52304,"src":"3392:19:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_string_calldata_ptr","typeString":"string"},"typeName":{"id":52260,"name":"string","nodeType":"ElementaryTypeName","src":"3392:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"},{"constant":false,"id":52264,"mutability":"mutable","name":"promotion","nameLocation":"3432:9:67","nodeType":"VariableDeclaration","scope":52304,"src":"3413:28:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion"},"typeName":{"id":52263,"nodeType":"UserDefinedTypeName","pathNode":{"id":52262,"name":"Promotion","nameLocations":["3413:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":52128,"src":"3413:9:67"},"referencedDeclaration":52128,"src":"3413:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_storage_ptr","typeString":"struct Promotion"}},"visibility":"internal"}],"src":"3379:63:67"},"returnParameters":{"id":52269,"nodeType":"ParameterList","parameters":[],"src":"3494:0:67"},"scope":52512,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":52383,"nodeType":"FunctionDefinition","src":"3770:759:67","nodes":[],"body":{"id":52382,"nodeType":"Block","src":"3838:691:67","nodes":[],"statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52320,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52314,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52310,"name":"promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52307,"src":"3852:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion calldata"}},"id":52311,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3862:9:67","memberName":"startTime","nodeType":"MemberAccess","referencedDeclaration":52118,"src":"3852:19:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"id":52312,"name":"block","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-4,"src":"3874:5:67","typeDescriptions":{"typeIdentifier":"t_magic_block","typeString":"block"}},"id":52313,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3880:9:67","memberName":"timestamp","nodeType":"MemberAccess","src":"3874:15:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3852:37:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52319,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52315,"name":"promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52307,"src":"3893:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion calldata"}},"id":52316,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3903:7:67","memberName":"endTime","nodeType":"MemberAccess","referencedDeclaration":52120,"src":"3893:17:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<=","rightExpression":{"expression":{"id":52317,"name":"promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52307,"src":"3914:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion calldata"}},"id":52318,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"3924:9:67","memberName":"startTime","nodeType":"MemberAccess","referencedDeclaration":52118,"src":"3914:19:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"3893:40:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"3852:81:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52325,"nodeType":"IfStatement","src":"3848:140:67","trueBody":{"id":52324,"nodeType":"Block","src":"3935:53:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52321,"name":"InvalidTimeSettings","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52178,"src":"3956:19:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52322,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"3956:21:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52323,"nodeType":"RevertStatement","src":"3949:28:67"}]}},{"condition":{"commonType":{"typeIdentifier":"t_address","typeString":"address"},"id":52332,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"id":52326,"name":"promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52307,"src":"4002:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion calldata"}},"id":52327,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4012:9:67","memberName":"promoAddr","nodeType":"MemberAccess","referencedDeclaration":52122,"src":"4002:19:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"arguments":[{"hexValue":"30","id":52330,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4033:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"}],"expression":{"argumentTypes":[{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"}],"id":52329,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"nodeType":"ElementaryTypeNameExpression","src":"4025:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_address_$","typeString":"type(address)"},"typeName":{"id":52328,"name":"address","nodeType":"ElementaryTypeName","src":"4025:7:67","typeDescriptions":{}}},"id":52331,"isConstant":false,"isLValue":false,"isPure":true,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4025:10:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"src":"4002:33:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52337,"nodeType":"IfStatement","src":"3998:84:67","trueBody":{"id":52336,"nodeType":"Block","src":"4037:45:67","statements":[{"errorCall":{"arguments":[],"expression":{"argumentTypes":[],"id":52333,"name":"ZeroAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52182,"src":"4058:11:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$__$returns$__$","typeString":"function () pure"}},"id":52334,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4058:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52335,"nodeType":"RevertStatement","src":"4051:20:67"}]}},{"body":{"id":52380,"nodeType":"Block","src":"4243:280:67","statements":[{"condition":{"commonType":{"typeIdentifier":"t_bool","typeString":"bool"},"id":52370,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52356,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"expression":{"expression":{"baseExpression":{"expression":{"id":52349,"name":"promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52307,"src":"4278:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion calldata"}},"id":52350,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4288:7:67","memberName":"streams","nodeType":"MemberAccess","referencedDeclaration":52125,"src":"4278:17:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":52352,"indexExpression":{"id":52351,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52339,"src":"4296:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4278:20:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},"id":52353,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4299:4:67","memberName":"code","nodeType":"MemberAccess","src":"4278:25:67","typeDescriptions":{"typeIdentifier":"t_bytes_memory_ptr","typeString":"bytes memory"}},"id":52354,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4304:6:67","memberName":"length","nodeType":"MemberAccess","src":"4278:32:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"==","rightExpression":{"hexValue":"30","id":52355,"isConstant":false,"isLValue":false,"isPure":true,"kind":"number","lValueRequested":false,"nodeType":"Literal","src":"4314:1:67","typeDescriptions":{"typeIdentifier":"t_rational_0_by_1","typeString":"int_const 0"},"value":"0"},"src":"4278:37:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"nodeType":"BinaryOperation","operator":"||","rightExpression":{"id":52369,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"!","prefix":true,"src":"4339:75:67","subExpression":{"arguments":[{"expression":{"arguments":[{"id":52365,"name":"ITicket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54159,"src":"4393:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITicket_$54159_$","typeString":"type(contract ITicket)"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_type$_t_contract$_ITicket_$54159_$","typeString":"type(contract ITicket)"}],"id":52364,"name":"type","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-27,"src":"4388:4:67","typeDescriptions":{"typeIdentifier":"t_function_metatype_pure$__$returns$__$","typeString":"function () pure"}},"id":52366,"isConstant":false,"isLValue":false,"isPure":true,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4388:13:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_magic_meta_type_t_contract$_ITicket_$54159","typeString":"type(contract ITicket)"}},"id":52367,"isConstant":false,"isLValue":false,"isPure":true,"lValueRequested":false,"memberLocation":"4402:11:67","memberName":"interfaceId","nodeType":"MemberAccess","src":"4388:25:67","typeDescriptions":{"typeIdentifier":"t_bytes4","typeString":"bytes4"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_bytes4","typeString":"bytes4"}],"expression":{"arguments":[{"baseExpression":{"expression":{"id":52358,"name":"promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52307,"src":"4348:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion calldata"}},"id":52359,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4358:7:67","memberName":"streams","nodeType":"MemberAccess","referencedDeclaration":52125,"src":"4348:17:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":52361,"indexExpression":{"id":52360,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52339,"src":"4366:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4348:20:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52357,"name":"ITicket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54159,"src":"4340:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITicket_$54159_$","typeString":"type(contract ITicket)"}},"id":52362,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4340:29:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITicket_$54159","typeString":"contract ITicket"}},"id":52363,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4370:17:67","memberName":"supportsInterface","nodeType":"MemberAccess","referencedDeclaration":50091,"src":"4340:47:67","typeDescriptions":{"typeIdentifier":"t_function_external_view$_t_bytes4_$returns$_t_bool_$","typeString":"function (bytes4) view external returns (bool)"}},"id":52368,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4340:74:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"src":"4278:136:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52379,"nodeType":"IfStatement","src":"4257:256:67","trueBody":{"id":52378,"nodeType":"Block","src":"4429:84:67","statements":[{"errorCall":{"arguments":[{"baseExpression":{"expression":{"id":52372,"name":"promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52307,"src":"4477:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion calldata"}},"id":52373,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4487:7:67","memberName":"streams","nodeType":"MemberAccess","referencedDeclaration":52125,"src":"4477:17:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":52375,"indexExpression":{"id":52374,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52339,"src":"4495:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"4477:20:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52371,"name":"IncorrectStreamAddress","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52176,"src":"4454:22:67","typeDescriptions":{"typeIdentifier":"t_function_error_pure$_t_address_$returns$__$","typeString":"function (address) pure"}},"id":52376,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4454:44:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52377,"nodeType":"RevertStatement","src":"4447:51:67"}]}}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52345,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52341,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52339,"src":"4208:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"expression":{"expression":{"id":52342,"name":"promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52307,"src":"4212:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion calldata"}},"id":52343,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4222:7:67","memberName":"streams","nodeType":"MemberAccess","referencedDeclaration":52125,"src":"4212:17:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_calldata_ptr","typeString":"address[] calldata"}},"id":52344,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4230:6:67","memberName":"length","nodeType":"MemberAccess","src":"4212:24:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"4208:28:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52381,"initializationExpression":{"assignments":[52339],"declarations":[{"constant":false,"id":52339,"mutability":"mutable","name":"i","nameLocation":"4205:1:67","nodeType":"VariableDeclaration","scope":52381,"src":"4197:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52338,"name":"uint256","nodeType":"ElementaryTypeName","src":"4197:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52340,"nodeType":"VariableDeclarationStatement","src":"4197:9:67"},"loopExpression":{"expression":{"id":52347,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"4238:3:67","subExpression":{"id":52346,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52339,"src":"4238:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52348,"nodeType":"ExpressionStatement","src":"4238:3:67"},"nodeType":"ForStatement","src":"4192:331:67"}]},"implemented":true,"kind":"function","modifiers":[],"name":"_checkPromotion","nameLocation":"3779:15:67","parameters":{"id":52308,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52307,"mutability":"mutable","name":"promotion","nameLocation":"3814:9:67","nodeType":"VariableDeclaration","scope":52383,"src":"3795:28:67","stateVariable":false,"storageLocation":"calldata","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_calldata_ptr","typeString":"struct Promotion"},"typeName":{"id":52306,"nodeType":"UserDefinedTypeName","pathNode":{"id":52305,"name":"Promotion","nameLocations":["3795:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":52128,"src":"3795:9:67"},"referencedDeclaration":52128,"src":"3795:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_storage_ptr","typeString":"struct Promotion"}},"visibility":"internal"}],"src":"3794:30:67"},"returnParameters":{"id":52309,"nodeType":"ParameterList","parameters":[],"src":"3838:0:67"},"scope":52512,"stateMutability":"view","virtual":false,"visibility":"private"},{"id":52399,"nodeType":"FunctionDefinition","src":"4574:211:67","nodes":[],"body":{"id":52398,"nodeType":"Block","src":"4738:47:67","nodes":[],"statements":[{"expression":{"arguments":[{"id":52395,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52385,"src":"4770:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_uint256","typeString":"uint256"}],"expression":{"id":52393,"name":"super","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-25,"src":"4755:5:67","typeDescriptions":{"typeIdentifier":"t_type$_t_super$_Promo_$52512_$","typeString":"type(contract super Promo)"}},"id":52394,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"4761:8:67","memberName":"tokenURI","nodeType":"MemberAccess","referencedDeclaration":47024,"src":"4755:14:67","typeDescriptions":{"typeIdentifier":"t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$","typeString":"function (uint256) view returns (string memory)"}},"id":52396,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4755:23:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"functionReturnParameters":52392,"id":52397,"nodeType":"Return","src":"4748:30:67"}]},"baseFunctions":[46012,47024],"functionSelector":"c87b56dd","implemented":true,"kind":"function","modifiers":[],"name":"tokenURI","nameLocation":"4583:8:67","overrides":{"id":52389,"nodeType":"OverrideSpecifier","overrides":[{"id":52387,"name":"ERC721Upgradeable","nameLocations":["4654:17:67"],"nodeType":"IdentifierPath","referencedDeclaration":46882,"src":"4654:17:67"},{"id":52388,"name":"ERC721URIStorageUpgradeable","nameLocations":["4673:27:67"],"nodeType":"IdentifierPath","referencedDeclaration":47052,"src":"4673:27:67"}],"src":"4645:56:67"},"parameters":{"id":52386,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52385,"mutability":"mutable","name":"tokenId","nameLocation":"4600:7:67","nodeType":"VariableDeclaration","scope":52399,"src":"4592:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52384,"name":"uint256","nodeType":"ElementaryTypeName","src":"4592:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"4591:17:67"},"returnParameters":{"id":52392,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52391,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52399,"src":"4719:13:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52390,"name":"string","nodeType":"ElementaryTypeName","src":"4719:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4718:15:67"},"scope":52512,"stateMutability":"view","virtual":false,"visibility":"public"},{"id":52407,"nodeType":"FunctionDefinition","src":"4791:97:67","nodes":[],"body":{"id":52406,"nodeType":"Block","src":"4852:36:67","nodes":[],"statements":[{"expression":{"id":52404,"name":"_contractURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52144,"src":"4869:12:67","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"functionReturnParameters":52403,"id":52405,"nodeType":"Return","src":"4862:19:67"}]},"functionSelector":"e8a3d485","implemented":true,"kind":"function","modifiers":[],"name":"contractURI","nameLocation":"4800:11:67","parameters":{"id":52400,"nodeType":"ParameterList","parameters":[],"src":"4811:2:67"},"returnParameters":{"id":52403,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52402,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52407,"src":"4837:13:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52401,"name":"string","nodeType":"ElementaryTypeName","src":"4837:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4836:15:67"},"scope":52512,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52430,"nodeType":"FunctionDefinition","src":"4894:189:67","nodes":[],"body":{"id":52429,"nodeType":"Block","src":"4984:99:67","nodes":[],"statements":[{"expression":{"arguments":[{"id":52418,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52409,"src":"5007:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52419,"name":"uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52411,"src":"5016:3:67","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":52417,"name":"_setTokenURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":47051,"src":"4994:12:67","typeDescriptions":{"typeIdentifier":"t_function_internal_nonpayable$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (uint256,string memory)"}},"id":52420,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"4994:26:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52421,"nodeType":"ExpressionStatement","src":"4994:26:67"},{"eventCall":{"arguments":[{"expression":{"id":52423,"name":"msg","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":-15,"src":"5051:3:67","typeDescriptions":{"typeIdentifier":"t_magic_message","typeString":"msg"}},"id":52424,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5055:6:67","memberName":"sender","nodeType":"MemberAccess","src":"5051:10:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}},{"id":52425,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52409,"src":"5063:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},{"id":52426,"name":"uri","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52411,"src":"5072:3:67","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"},{"typeIdentifier":"t_uint256","typeString":"uint256"},{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":52422,"name":"TokenUriChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52172,"src":"5035:15:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_address_$_t_uint256_$_t_string_memory_ptr_$returns$__$","typeString":"function (address,uint256,string memory)"}},"id":52427,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5035:41:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52428,"nodeType":"EmitStatement","src":"5030:46:67"}]},"functionSelector":"57f7789e","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":52414,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52409,"src":"4975:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}}],"id":52415,"kind":"modifierInvocation","modifierName":{"id":52413,"name":"onlyTokenOwner","nameLocations":["4960:14:67"],"nodeType":"IdentifierPath","referencedDeclaration":52200,"src":"4960:14:67"},"nodeType":"ModifierInvocation","src":"4960:23:67"}],"name":"setTokenUri","nameLocation":"4903:11:67","parameters":{"id":52412,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52409,"mutability":"mutable","name":"tokenId","nameLocation":"4923:7:67","nodeType":"VariableDeclaration","scope":52430,"src":"4915:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52408,"name":"uint256","nodeType":"ElementaryTypeName","src":"4915:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"},{"constant":false,"id":52411,"mutability":"mutable","name":"uri","nameLocation":"4946:3:67","nodeType":"VariableDeclaration","scope":52430,"src":"4932:17:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52410,"name":"string","nodeType":"ElementaryTypeName","src":"4932:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"4914:36:67"},"returnParameters":{"id":52416,"nodeType":"ParameterList","parameters":[],"src":"4984:0:67"},"scope":52512,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":52447,"nodeType":"FunctionDefinition","src":"5089:187:67","nodes":[],"body":{"id":52446,"nodeType":"Block","src":"5181:95:67","nodes":[],"statements":[{"expression":{"id":52440,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52438,"name":"_contractURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52144,"src":"5191:12:67","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"nodeType":"Assignment","operator":"=","rightHandSide":{"id":52439,"name":"newContractURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52432,"src":"5206:14:67","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}},"src":"5191:29:67","typeDescriptions":{"typeIdentifier":"t_string_storage","typeString":"string storage ref"}},"id":52441,"nodeType":"ExpressionStatement","src":"5191:29:67"},{"eventCall":{"arguments":[{"id":52443,"name":"newContractURI","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52432,"src":"5254:14:67","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_string_memory_ptr","typeString":"string memory"}],"id":52442,"name":"ContractURIChanged","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52155,"src":"5235:18:67","typeDescriptions":{"typeIdentifier":"t_function_event_nonpayable$_t_string_memory_ptr_$returns$__$","typeString":"function (string memory)"}},"id":52444,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5235:34:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_tuple$__$","typeString":"tuple()"}},"id":52445,"nodeType":"EmitStatement","src":"5230:39:67"}]},"functionSelector":"938e3d7b","implemented":true,"kind":"function","modifiers":[{"arguments":[{"id":52435,"name":"DEFAULT_ADMIN_ROLE","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":44967,"src":"5161:18:67","typeDescriptions":{"typeIdentifier":"t_bytes32","typeString":"bytes32"}}],"id":52436,"kind":"modifierInvocation","modifierName":{"id":52434,"name":"onlyRole","nameLocations":["5152:8:67"],"nodeType":"IdentifierPath","referencedDeclaration":44996,"src":"5152:8:67"},"nodeType":"ModifierInvocation","src":"5152:28:67"}],"name":"setContractURI","nameLocation":"5098:14:67","parameters":{"id":52433,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52432,"mutability":"mutable","name":"newContractURI","nameLocation":"5127:14:67","nodeType":"VariableDeclaration","scope":52447,"src":"5113:28:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_string_memory_ptr","typeString":"string"},"typeName":{"id":52431,"name":"string","nodeType":"ElementaryTypeName","src":"5113:6:67","typeDescriptions":{"typeIdentifier":"t_string_storage_ptr","typeString":"string"}},"visibility":"internal"}],"src":"5112:30:67"},"returnParameters":{"id":52437,"nodeType":"ParameterList","parameters":[],"src":"5181:0:67"},"scope":52512,"stateMutability":"nonpayable","virtual":false,"visibility":"external"},{"id":52455,"nodeType":"FunctionDefinition","src":"5325:92:67","nodes":[],"body":{"id":52454,"nodeType":"Block","src":"5380:37:67","nodes":[],"statements":[{"expression":{"id":52452,"name":"_tokenCounter","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52146,"src":"5397:13:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"functionReturnParameters":52451,"id":52453,"nodeType":"Return","src":"5390:20:67"}]},"functionSelector":"18160ddd","implemented":true,"kind":"function","modifiers":[],"name":"totalSupply","nameLocation":"5334:11:67","parameters":{"id":52448,"nodeType":"ParameterList","parameters":[],"src":"5345:2:67"},"returnParameters":{"id":52451,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52450,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52455,"src":"5371:7:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52449,"name":"uint256","nodeType":"ElementaryTypeName","src":"5371:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5370:9:67"},"scope":52512,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52468,"nodeType":"FunctionDefinition","src":"5423:124:67","nodes":[],"body":{"id":52467,"nodeType":"Block","src":"5503:44:67","nodes":[],"statements":[{"expression":{"baseExpression":{"id":52463,"name":"_promotions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"5520:11:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Promotion_$52128_storage_$","typeString":"mapping(uint256 => struct Promotion storage ref)"}},"id":52465,"indexExpression":{"id":52464,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52457,"src":"5532:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5520:20:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_storage","typeString":"struct Promotion storage ref"}},"functionReturnParameters":52462,"id":52466,"nodeType":"Return","src":"5513:27:67"}]},"functionSelector":"14fdecca","implemented":true,"kind":"function","modifiers":[],"name":"getPromotion","nameLocation":"5432:12:67","parameters":{"id":52458,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52457,"mutability":"mutable","name":"tokenId","nameLocation":"5453:7:67","nodeType":"VariableDeclaration","scope":52468,"src":"5445:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52456,"name":"uint256","nodeType":"ElementaryTypeName","src":"5445:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5444:17:67"},"returnParameters":{"id":52462,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52461,"mutability":"mutable","name":"","nameLocation":"-1:-1:-1","nodeType":"VariableDeclaration","scope":52468,"src":"5485:16:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_memory_ptr","typeString":"struct Promotion"},"typeName":{"id":52460,"nodeType":"UserDefinedTypeName","pathNode":{"id":52459,"name":"Promotion","nameLocations":["5485:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":52128,"src":"5485:9:67"},"referencedDeclaration":52128,"src":"5485:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_storage_ptr","typeString":"struct Promotion"}},"visibility":"internal"}],"src":"5484:18:67"},"scope":52512,"stateMutability":"view","virtual":false,"visibility":"external"},{"id":52511,"nodeType":"FunctionDefinition","src":"5553:356:67","nodes":[],"body":{"id":52510,"nodeType":"Block","src":"5647:262:67","nodes":[],"statements":[{"assignments":[52477],"declarations":[{"constant":false,"id":52477,"mutability":"mutable","name":"promotion","nameLocation":"5674:9:67","nodeType":"VariableDeclaration","scope":52510,"src":"5657:26:67","stateVariable":false,"storageLocation":"memory","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_memory_ptr","typeString":"struct Promotion"},"typeName":{"id":52476,"nodeType":"UserDefinedTypeName","pathNode":{"id":52475,"name":"Promotion","nameLocations":["5657:9:67"],"nodeType":"IdentifierPath","referencedDeclaration":52128,"src":"5657:9:67"},"referencedDeclaration":52128,"src":"5657:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_storage_ptr","typeString":"struct Promotion"}},"visibility":"internal"}],"id":52481,"initialValue":{"baseExpression":{"id":52478,"name":"_promotions","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52151,"src":"5686:11:67","typeDescriptions":{"typeIdentifier":"t_mapping$_t_uint256_$_t_struct$_Promotion_$52128_storage_$","typeString":"mapping(uint256 => struct Promotion storage ref)"}},"id":52480,"indexExpression":{"id":52479,"name":"tokenId","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52470,"src":"5698:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5686:20:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_storage","typeString":"struct Promotion storage ref"}},"nodeType":"VariableDeclarationStatement","src":"5657:49:67"},{"assignments":[52483],"declarations":[{"constant":false,"id":52483,"mutability":"mutable","name":"streamAmount","nameLocation":"5724:12:67","nodeType":"VariableDeclaration","scope":52510,"src":"5716:20:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52482,"name":"uint256","nodeType":"ElementaryTypeName","src":"5716:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52487,"initialValue":{"expression":{"expression":{"id":52484,"name":"promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52477,"src":"5739:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_memory_ptr","typeString":"struct Promotion memory"}},"id":52485,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5749:7:67","memberName":"streams","nodeType":"MemberAccess","referencedDeclaration":52125,"src":"5739:17:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52486,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5757:6:67","memberName":"length","nodeType":"MemberAccess","src":"5739:24:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"VariableDeclarationStatement","src":"5716:47:67"},{"body":{"id":52508,"nodeType":"Block","src":"5813:90:67","statements":[{"expression":{"id":52506,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftHandSide":{"id":52497,"name":"totalTicketsAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52473,"src":"5827:18:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"Assignment","operator":"+=","rightHandSide":{"arguments":[],"expression":{"argumentTypes":[],"expression":{"arguments":[{"baseExpression":{"expression":{"id":52499,"name":"promotion","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52477,"src":"5857:9:67","typeDescriptions":{"typeIdentifier":"t_struct$_Promotion_$52128_memory_ptr","typeString":"struct Promotion memory"}},"id":52500,"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"memberLocation":"5867:7:67","memberName":"streams","nodeType":"MemberAccess","referencedDeclaration":52125,"src":"5857:17:67","typeDescriptions":{"typeIdentifier":"t_array$_t_address_$dyn_memory_ptr","typeString":"address[] memory"}},"id":52502,"indexExpression":{"id":52501,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52489,"src":"5875:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"isConstant":false,"isLValue":true,"isPure":false,"lValueRequested":false,"nodeType":"IndexAccess","src":"5857:20:67","typeDescriptions":{"typeIdentifier":"t_address","typeString":"address"}}],"expression":{"argumentTypes":[{"typeIdentifier":"t_address","typeString":"address"}],"id":52498,"name":"ITicket","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":54159,"src":"5849:7:67","typeDescriptions":{"typeIdentifier":"t_type$_t_contract$_ITicket_$54159_$","typeString":"type(contract ITicket)"}},"id":52503,"isConstant":false,"isLValue":false,"isPure":false,"kind":"typeConversion","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5849:29:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_contract$_ITicket_$54159","typeString":"contract ITicket"}},"id":52504,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"memberLocation":"5879:11:67","memberName":"totalSupply","nodeType":"MemberAccess","referencedDeclaration":54140,"src":"5849:41:67","typeDescriptions":{"typeIdentifier":"t_function_external_view$__$returns$_t_uint256_$","typeString":"function () view external returns (uint256)"}},"id":52505,"isConstant":false,"isLValue":false,"isPure":false,"kind":"functionCall","lValueRequested":false,"nameLocations":[],"names":[],"nodeType":"FunctionCall","src":"5849:43:67","tryCall":false,"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5827:65:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52507,"nodeType":"ExpressionStatement","src":"5827:65:67"}]},"condition":{"commonType":{"typeIdentifier":"t_uint256","typeString":"uint256"},"id":52493,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"leftExpression":{"id":52491,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52489,"src":"5790:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"nodeType":"BinaryOperation","operator":"<","rightExpression":{"id":52492,"name":"streamAmount","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52483,"src":"5794:12:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"src":"5790:16:67","typeDescriptions":{"typeIdentifier":"t_bool","typeString":"bool"}},"id":52509,"initializationExpression":{"assignments":[52489],"declarations":[{"constant":false,"id":52489,"mutability":"mutable","name":"i","nameLocation":"5787:1:67","nodeType":"VariableDeclaration","scope":52509,"src":"5779:9:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52488,"name":"uint256","nodeType":"ElementaryTypeName","src":"5779:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"id":52490,"nodeType":"VariableDeclarationStatement","src":"5779:9:67"},"loopExpression":{"expression":{"id":52495,"isConstant":false,"isLValue":false,"isPure":false,"lValueRequested":false,"nodeType":"UnaryOperation","operator":"++","prefix":false,"src":"5808:3:67","subExpression":{"id":52494,"name":"i","nodeType":"Identifier","overloadedDeclarations":[],"referencedDeclaration":52489,"src":"5808:1:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"id":52496,"nodeType":"ExpressionStatement","src":"5808:3:67"},"nodeType":"ForStatement","src":"5774:129:67"}]},"functionSelector":"9de0206c","implemented":true,"kind":"function","modifiers":[],"name":"getTicketsAmount","nameLocation":"5562:16:67","parameters":{"id":52471,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52470,"mutability":"mutable","name":"tokenId","nameLocation":"5587:7:67","nodeType":"VariableDeclaration","scope":52511,"src":"5579:15:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52469,"name":"uint256","nodeType":"ElementaryTypeName","src":"5579:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5578:17:67"},"returnParameters":{"id":52474,"nodeType":"ParameterList","parameters":[{"constant":false,"id":52473,"mutability":"mutable","name":"totalTicketsAmount","nameLocation":"5627:18:67","nodeType":"VariableDeclaration","scope":52511,"src":"5619:26:67","stateVariable":false,"storageLocation":"default","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"},"typeName":{"id":52472,"name":"uint256","nodeType":"ElementaryTypeName","src":"5619:7:67","typeDescriptions":{"typeIdentifier":"t_uint256","typeString":"uint256"}},"visibility":"internal"}],"src":"5618:28:67"},"scope":52512,"stateMutability":"view","virtual":false,"visibility":"external"}],"abstract":false,"baseContracts":[{"baseName":{"id":52130,"name":"Initializable","nameLocations":["1065:13:67"],"nodeType":"IdentifierPath","referencedDeclaration":45750,"src":"1065:13:67"},"id":52131,"nodeType":"InheritanceSpecifier","src":"1065:13:67"},{"baseName":{"id":52132,"name":"ERC721Upgradeable","nameLocations":["1084:17:67"],"nodeType":"IdentifierPath","referencedDeclaration":46882,"src":"1084:17:67"},"id":52133,"nodeType":"InheritanceSpecifier","src":"1084:17:67"},{"baseName":{"id":52134,"name":"ERC721URIStorageUpgradeable","nameLocations":["1107:27:67"],"nodeType":"IdentifierPath","referencedDeclaration":47052,"src":"1107:27:67"},"id":52135,"nodeType":"InheritanceSpecifier","src":"1107:27:67"},{"baseName":{"id":52136,"name":"AccessControlUpgradeable","nameLocations":["1140:24:67"],"nodeType":"IdentifierPath","referencedDeclaration":45301,"src":"1140:24:67"},"id":52137,"nodeType":"InheritanceSpecifier","src":"1140:24:67"}],"canonicalName":"Promo","contractDependencies":[],"contractKind":"contract","documentation":{"id":52129,"nodeType":"StructuredDocumentation","src":"713:329:67","text":" @title Promo contract\n @notice The contract that creates promotions. Every promotion is a nft (ERC721).\n The contract is managed by two roles: Default admin and Minter.\n The Minter can mint tokens.\n The Default admin can set contract URI address.\n Only the owner of the nft can change the uri token."},"fullyImplemented":true,"linearizedBaseContracts":[52512,45301,47052,46882,47512,49363,47418,49317,47138,50092,47221,47098,45750],"name":"Promo","nameLocation":"1052:5:67","scope":52513,"usedErrors":[45513,45516,47148,47151,47470,47475,47484,47489,47494,47501,47506,47511,52176,52178,52180,52182],"usedEvents":[45521,47160,47169,47178,47410,47417,49216,49225,49234,52155,52164,52172]}],"license":"MIT"},"id":67}