[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ERC721EnumerableForbiddenBatchMint", "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": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "ERC721OutOfBoundsIndex", "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": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "MetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "blockId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "minter", "type": "address" }, { "indexed": false, "internalType": "string", "name": "prevColor", "type": "string" }, { "indexed": false, "internalType": "string", "name": "blockColor", "type": "string" } ], "name": "NewBlock", "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": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "blockColors", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "blockmaster", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "durations", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "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": "lastBlockId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "name": "nullifiers", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "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": "address", "name": "newBlockmaster", "type": "address" } ], "name": "setBlockmaster", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newTip", "type": "uint256" } ], "name": "setTip", "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": [], "name": "tip", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60803462000309576040906001600160401b0381830181811183821017620002f35783526015825260207f4f6e636861696e2053756d6d657220426c6f636b73000000000000000000000081840152835184810181811084821117620002f3578552600481526327a1a9a160e11b82820152835192808411620002f357600093806200008c86546200030e565b96601f97888111620002c3575b5085908883116001146200025b5787926200024f575b50508160011b916000199060031b1c19161784555b81519081116200023b5780600192620000de84546200030e565b87811162000200575b5084908783116001146200019c57869262000190575b5050600019600383901b1c191690821b1790555b653ec1507d5000600d55600b548252600e8152838220926200013484546200030e565b918183116200016f575b600e660233030303030360cc1b018555600c80546001600160a01b0319163317905585516132cf9081620003658239f35b838562000186955220910160051c8101906200034b565b388080806200013e565b015190503880620000fd565b8487528587208594509190601f198416885b88828210620001e95750508411620001cf575b505050811b01905562000111565b015160001960f88460031b161c19169055388080620001c1565b8385015186558897909501949384019301620001ae565b6200022a908588528688208980860160051c82019289871062000231575b0160051c01906200034b565b38620000e7565b925081926200021e565b634e487b7160e01b84526041600452602484fd5b015190503880620000af565b8780528688209250601f198416885b88828210620002ac57505090846001959493921062000292575b505050811b018455620000c4565b015160001960f88460031b161c1916905538808062000284565b60018596829396860151815501950193016200026a565b620002ec908880528789208a80860160051c8201928a871062000231570160051c01906200034b565b3862000099565b634e487b7160e01b600052604160045260246000fd5b600080fd5b90600182811c9216801562000340575b60208310146200032a57565b634e487b7160e01b600052602260045260246000fd5b91607f16916200031e565b81811062000357575050565b600081556001016200034b56fe608080604052600436101561001357600080fd5b60003560e01c90816301ffc9a7146127c35750806306fdde0314612718578063081812fc146126da578063095ea7b3146125f35780631249c58b146107b057806318160ddd1461079257806323b872dd1461077b5780632755cd2d1461075d5780632997e86b1461072c5780632e0de515146106fe5780632f745c591461067a57806342842e0e1461064c5780634f6ccce7146105f657806351cff8d91461056c57806355259d7a1461052c5780636352211e146104fc57806370a08231146104d15780638515a2741461048657806395d89b41146103a3578063a22cb465146102fe578063b88d4fde14610268578063bc20a7af1461023c578063c2a4250b1461021e578063c87b56dd146101c1578063e985e9c51461016b5763ecb5f18c1461013d57600080fd5b3461016657600036600319011261016657600c546040516001600160a01b039091168152602090f35b600080fd5b34610166576040366003190112610166576101846128aa565b61018c6128c0565b9060018060a01b03809116600052600560205260406000209116600052602052602060ff604060002054166040519015158152f35b34610166576020366003190112610166576004356101de81612df3565b50600052600a60205261021a6101f7604060002061299f565b600060405161020581612945565b52604051918291602083526020830190612885565b0390f35b34610166576000366003190112610166576020600b54604051908152f35b3461016657602036600319011261016657600435600052600f6020526020604060002054604051908152f35b34610166576080366003190112610166576102816128aa565b6102896128c0565b906044356064359267ffffffffffffffff84116101665736602385011215610166578360040135926102ba84612a44565b936102c8604051958661297d565b80855236602482880101116101665760208160009260246102fc990183890137860101526102f7838383612a60565b612e2e565b005b34610166576040366003190112610166576103176128aa565b60243590811515809203610166576001600160a01b031690811561038a57336000526005602052604060002082600052602052604060002060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b604051630b61174360e31b815260048101839052602490fd5b34610166576000366003190112610166576040516000600182600154926103c98461290b565b9283835260209485600182169182600014610466575050600114610409575b506103f59250038361297d565b61021a604051928284938452830190612885565b84915060016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6906000915b85831061044e5750506103f59350820101856103e8565b80548389018501528794508693909201918101610437565b60ff1916858201526103f595151560051b85010192508791506103e89050565b346101665760203660031901126101665761049f6128aa565b600c54906001600160a01b03906104b93383851614612d1b565b16908115610166576001600160a01b03191617600c55005b346101665760203660031901126101665760206104f46104ef6128aa565b612dba565b604051908152f35b3461016657602036600319011261016657602061051a600435612df3565b6040516001600160a01b039091168152f35b3461016657602036600319011261016657600435600052600e60205261021a610558604060002061299f565b604051918291602083526020830190612885565b34610166576020366003190112610166576105856128aa565b600c546001600160a01b03919061059f9083163314612d1b565b1680156101665760008080809347905af16105b8612d8a565b50156105c057005b60405162461bcd60e51b815260206004820152600e60248201526d151c985b9cd9995c91985a5b195960921b6044820152606490fd5b346101665760203660031901126101665760043560085481101561062d5761061f602091612d53565b90546040519160031b1c8152f35b6044906040519063295f44f760e21b8252600060048301526024820152fd5b34610166576102fc61065d366128d6565b906040519261066b84612945565b600084526102f7838383612a60565b34610166576040366003190112610166576106936128aa565b602435906106a081612dba565b8210156106d35760018060a01b031660005260066020526040600020906000526020526020604060002054604051908152f35b60405163295f44f760e21b81526001600160a01b039190911660048201526024810191909152604490fd5b346101665760203660031901126101665761072460018060a01b03600c54163314612d1b565b600435600d55005b34610166576020366003190112610166576004356000526010602052602060ff604060002054166040519015158152f35b34610166576000366003190112610166576020600d54604051908152f35b34610166576102fc61078c366128d6565b91612a60565b34610166576000366003190112610166576020600854604051908152f35b6000366003190112610166576040516361a1e46360e01b8152602081600481737c291c1869a58bd5a5d254ac2d5f2d171d8b5a3d5af49081156125e7576000916125ac575b501561255d57600d54341061252a57600b5460001981146122205760018101600b5580600052600e60205261082d604060002061299f565b604051906020820191428352434060408201523360601b606082015260548152608081019281841067ffffffffffffffff8511176120a55762ffffff918460405251902006809261087d81612945565b6000815290604051610200810181811067ffffffffffffffff8211176120a557806040526108aa81612961565b60018152600360fc1b61022083015281526040516108c781612961565b60018152603160f81b602082015260208201526040516108e681612961565b60018152601960f91b6020820152604082015260405161090581612961565b60018152603360f81b6020820152606082015260405161092481612961565b60018152600d60fa1b6020820152608082015260405161094381612961565b60018152603560f81b602082015260a082015260405161096281612961565b60018152601b60f91b602082015260c082015260405161098181612961565b60018152603760f81b602082015260e08201526040516109a081612961565b60018152600760fb1b60208201526101008201526040516109c081612961565b60018152603960f81b60208201526101208201526040516109e081612961565b60018152604160f81b6020820152610140820152604051610a0081612961565b60018152602160f91b6020820152610160820152604051610a2081612961565b60018152604360f81b6020820152610180820152604051610a4081612961565b60018152601160fa1b60208201526101a0820152604051610a6081612961565b60018152604560f81b60208201526101c082015260405190610a8182612961565b60018252602360f91b6020830152826101e092838301525b6124b35750505080516005811460001461241d5750600690610ae860216040518093600360fc1b6020830152610ad88151809260208686019101612862565b810103600181018452018261297d565b925b610b2160216040518096602360f81b6020830152610b118151809260208686019101612862565b810103600181018752018561297d565b06600381018111612220576040516020810190610b786040828651610b4a818760208b01612862565b8101885190610b60826020830160208d01612862565b0160038701602082015203602081018452018261297d565b519020806000526010602052600160ff604060002054161515146123d85760005260106020526040600020600160ff1982541617905560018401600052600e6020526040600020835167ffffffffffffffff81116120a557610bda825461290b565b601f8111612394575b50806020601f821160011461232d57600091612322575b508160011b916000199060031b1c19161790555b60018401600052600f60205260038101604060002055604051610c3081612945565b60008152331561230957600185016000908152600260205260409020546001600160a01b031680159081156122c3575b3360005260036020526040600020600181540190556001870160005260026020526040600020336bffffffffffffffffffffffff60a01b8254161790556001870133827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a481156122365760085460018801600052600960205280604060002055600160401b8110156120a557610d03816001610d1e9301600855612d53565b60018a019082549060031b91821b91600019901b1916179055565b33036121ce575b156121b557333b6120bb575b50610d3e60018501612f80565b90600301610d4b90612f80565b90604051806020810193601760f91b855280519081602184019160200191610d7292612862565b810160218101607360f81b905203600281018252602201610d93908261297d565b604051602081017f3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f32309052604081017f30302f737667222077696474683d223130323422206865696768743d223130329052606081017f34222076696577426f783d2230203020313032342031303234223e0000000000905280607b8101610e19906130c4565b865190610e2a828260208b01612862565b7f222066696c6c2d72756c653d226576656e6f646422207374726f6b653d226e6f9101908152633732911f60e11b60208201526024017f3c616e696d617465206174747269627574654e616d653d2266696c6c2220667281526337b69e9160e11b6020820152602401865190610ea4828260208b01612862565b6511103a379e9160d11b9101818152885190610ec7826006830160208d01612862565b01661110323ab91e9160c91b9081600682015285519081600d820190610eed918b612862565b7f222063616c634d6f64653d2264697363726574652220726570656174436f756e600d92909101918201526f3a1e9134b73232b334b734ba3291179f60811b602d820152603d017f3c7061746820643d224d302032353630206c30202d323536302032353630203081527f203235363020302030203235363020302032353630202d323536302030202d3260208201527f35363020302030202d323536307a206d343936302030206c30202d323430302060408201527f2d323430302030202d323430302030203020323430302030203234303020323460608201527f30302030203234303020302030202d323430307a222f3e00000000000000000060808201527f3c7061746820643d224d3332302032353630206c30202d32323430203232343060978201527f2030203232343020302030203232343020302032323430202d3232343020302060b78201527f2d3232343020302030202d323234307a206d343332302030206c30202d32303860d78201527f30202d323038302030202d32303830203020302032303830203020323038302060f78201527f323038302030203230383020302030202d323038307a222f3e000000000000006101178201527f3c7061746820643d224d3634302032353630206c30202d3139323020313932306101308201527f2030203139323020302030203139323020302031393230202d313932302030206101508201527f2d3139323020302030202d313932307a206d333638302030206c30202d3137366101708201527f30202d313736302030202d3137363020302030203137363020302031373630206101908201527f313736302030203137363020302030202d313736307a222f3e000000000000006101b08201527f3c7061746820643d224d3936302032353630206c30202d3136303020313630306101c98201527f2030203136303020302030203136303020302031363030202d313630302030206101e98201527f2d3136303020302030202d313630307a206d333034302030206c30202d3134346102098201527f30202d313434302030202d3134343020302030203134343020302031343430206102298201527f313434302030203134343020302030202d313434307a222f3e000000000000006102498201527f3c7061746820643d224d313238302032353630206c30202d31323830203132386102628201527f302030203132383020302030203132383020302031323830202d3132383020306102828201527f202d3132383020302030202d313238307a206d323430302030206c30202d31316102a28201527f3230202d313132302030202d31313230203020302031313230203020313132306102c28201527f20313132302030203131323020302030202d313132307a222f3e0000000000006102e28201527f3c7061746820643d224d313630302032353630206c30202d39363020393630206102fc8201527f30203936302030203020393630203020393630202d3936302030202d3936302061031c8201527f302030202d3936307a206d313736302030206c30202d383030202d383030203061033c8201527f202d38303020302030203830302030203830302038303020302038303020302061035c820152691810169c18183d11179f60b11b61037c8201527f3c7061746820643d224d313932302032353630206c30202d36343020363430206103868201527f30203634302030203020363430203020363430202d3634302030202d363430206103a68201527f302030202d3634307a206d313132302030206c30202d343830202d34383020306103c68201527f202d3438302030203020343830203020343830203438302030203438302030206103e6820152691810169a1c183d11179f60b11b6104068201527f3c7061746820643d224d323234302032353630206c30202d33323020333230206104108201527f30203332302030203020333230203020333230202d3332302030202d333230206104308201527f302030202d3332307a206d3438302030206c30202d313630202d3136302030206104508201527f2d31363020302030203136302030203136302031363020302031363020302030610470820152681016989b183d11179f60b91b610490820152631e17b39f60e11b610499820181905292908a906115279061049d016130c4565b815190611538828260208601612862565b7f222066696c6c2d72756c653d226576656e6f646422207374726f6b653d226e6f9101908152633732911f60e11b60208201526024017f3c616e696d617465206174747269627574654e616d653d2266696c6c2220667281526337b69e9160e11b60208201526024018082516020819401916115b392612862565b019081528851906115cb826006830160208d01612862565b0190600682015284519081600d8201906115e5918a612862565b7f222063616c634d6f64653d2264697363726574652220726570656174436f756e600d92909101918201526f3a1e9134b73232b334b734ba3291179f60811b602d820152603d017f3c7061746820643d224d3136302032353630206c30202d32343030203234303081527f2030203234303020302030203234303020302032343030202d3234303020302060208201527f2d3234303020302030202d323430307a206d343634302030206c30202d32323460408201527f30202d323234302030202d32323430203020302032323430203020323234302060608201527f323234302030203232343020302030202d323234307a222f3e0000000000000060808201527f3c7061746820643d224d3438302032353630206c30202d32303830203230383060998201527f2030203230383020302030203230383020302032303830202d3230383020302060b98201527f2d3230383020302030202d323038307a206d343030302030206c30202d31393260d98201527f30202d313932302030202d31393230203020302031393230203020313932302060f98201527f313932302030203139323020302030202d313932307a222f3e000000000000006101198201527f3c7061746820643d224d3830302032353630206c30202d3137363020313736306101328201527f2030203137363020302030203137363020302031373630202d313736302030206101528201527f2d3137363020302030202d313736307a206d333336302030206c30202d3136306101728201527f30202d313630302030202d3136303020302030203136303020302031363030206101928201527f313630302030203136303020302030202d313630307a222f3e000000000000006101b28201527f3c7061746820643d224d313132302032353630206c30202d31343430203134346101cb8201527f302030203134343020302030203134343020302031343430202d3134343020306101eb8201527f202d3134343020302030202d313434307a206d323732302030206c30202d313261020b8201527f3830202d313238302030202d313238302030203020313238302030203132383061022b8201527f20313238302030203132383020302030202d313238307a222f3e00000000000061024b8201527f3c7061746820643d224d313434302032353630206c30202d31313230203131326102658201527f302030203131323020302030203131323020302031313230202d3131323020306102858201527f202d3131323020302030202d313132307a206d323038302030206c30202d39366102a58201527f30202d3936302030202d393630203020302039363020302039363020393630206102c58201527118101c9b181018101810169c9b183d11179f60711b6102e58201527f3c7061746820643d224d313736302032353630206c30202d38303020383030206102f78201527f30203830302030203020383030203020383030202d3830302030202d383030206103178201527f302030202d3830307a206d313434302030206c30202d363430202d36343020306103378201527f202d363430203020302036343020302036343020363430203020363430203020610357820152691810169b1a183d11179f60b11b6103778201527f3c7061746820643d224d323038302032353630206c30202d34383020343830206103818201527f30203438302030203020343830203020343830202d3438302030202d343830206103a18201527f302030202d3438307a206d3830302030206c30202d333230202d3332302030206103c18201527f2d333230203020302033323020302033323020333230203020333230203020306103e18201526810169999183d11179f60b91b6104018201527f3c7061746820643d224d323430302032353630206c30202d313630203136302061040a8201527f30203136302030203020313630203020313630202d3136302030202d3136302061042a8201526b1810181016989b183d11179f60a11b61044a820152610456810191909152651e17b9bb339f60d11b61045a8201520361044081018252611bd690610460018261297d565b611bdf9061312b565b92604051908160208101957f646174613a696d6167652f7376672b786d6c3b6261736536342c000000000000875280519081603a84019160200191611c2392612862565b810103601a81018352603a01611c39908361297d565b604051809160208201947f7b2274726169745f74797065223a20224475726174696f6e222c202276616c7586526432911d101160d91b604084015251908160458401611c8492612862565b62089f4b60ea1b908201604581018290527f7b2274726169745f74797065223a2022436f6c6f72222c202276616c7565223a604882015261101160f11b6068820152895190611cda82606a830160208e01612862565b01606a8101919091527f7b2274726169745f74797065223a202250726576696f757320436f6c6f72222c606d8201526a10113b30b63ab2911d101160a91b608d820152875190611d31826098830160208c01612862565b0161227d60f01b609882015203607a81018252609a01611d51908261297d565b60405194859460208601607b60f81b90526e226e616d65223a20224f435342202360881b602187015280519081603088019160200191611d9092612862565b61088b60f21b60309187019182018190527f226465736372697074696f6e223a20224f6e636861696e20426c6f636b73206660328301527f6f7220746865204f6e636861696e2053756d6d65722e222c00000000000000006052830152691134b6b0b3b2911d101160b11b606a830152935191611e139083906074840190612862565b019160748301526e2261747472696275746573223a205b60881b607683015251918260858301611e4292612862565b0160858101605d60f81b905260868101607d60f81b905203606781018252608701611e6d908261297d565b611e769061312b565b6040518091602082017f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000905280519081603d84019160200191611eb892612862565b810103601d81018252603d01611ece908261297d565b60018401600052600a60205260406000209080519067ffffffffffffffff82116120a557611efc835461290b565b601f8111612061575b50602090601f8311600114611fcb5793611fbb938360019794611fad947fd00e898459633c45b9bbadb517a9895b199c85ff2b2b0fcd28b06831293905289a98600092611fc0575b5050600019600383901b1c191690881b1790555b7ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce760206040518888018152a1604051958695018552336020860152608060408601526080850190612885565b908382036060850152612885565b0390a1005b015190508a80611f4d565b908360005260206000209160005b601f1985168110612049575093600184611fad947fd00e898459633c45b9bbadb517a9895b199c85ff2b2b0fcd28b06831293905289a9894611fbb98849b98601f19811610612030575b505050811b019055611f61565b015160001960f88460031b161c191690558a8080612023565b91926020600181928685015181550194019201611fd9565b836000526020600020601f840160051c81016020851061209e575b601f830160051c82018110612092575050611f05565b6000815560010161207c565b508061207c565b634e487b7160e01b600052604160045260246000fd5b60206120f99160405180938192630a85bd0160e11b83523360048401526000602484015260018a016044840152608060648401526084830190612885565b03816000335af160009181612170575b5061213b57612116612d8a565b8051908161213657604051633250574960e11b8152336004820152602490fd5b602001fd5b6001600160e01b03191663757a42ff60e11b016121585784610d31565b604051633250574960e11b8152336004820152602490fd5b9091506020813d6020116121ad575b8161218c6020938361297d565b8101031261016657516001600160e01b031981168103610166579086612109565b3d915061217f565b6040516339e3563760e11b815260006004820152602490fd5b6121d733612dba565b8060001981011161222057336000526006602052604060002060001982016000526020526001870160406000205560018701600052600760205260001901604060002055610d25565b634e487b7160e01b600052601160045260246000fd5b338114610d1e5761224681612dba565b600188016000526007602052604060002054818103612290575b50600188016000526000604081205581600052600660205260406000209060005260205260006040812055610d1e565b60008381526006602090815260408083208584528252808320548484528184208190558352600790915290205588612260565b6122ee60018801600052600460205260406000206bffffffffffffffffffffffff60a01b8154169055565b80600052600360205260406000206000198154019055610c60565b604051633250574960e11b815260006004820152602490fd5b905085015187610bfa565b91508260005260206000206000925b601f198316841061237c576001935082601f19811610612363575b5050811b019055610c0e565b87015160001960f88460031b161c191690558780612357565b8781015182556020938401936001909201910161233c565b826000526020600020601f830160051c8101602084106123d1575b601f830160051c820181106123c5575050610be3565b600081556001016123af565b50806123af565b60405162461bcd60e51b815260206004820152601960248201527f497465726174696f6e20616c7265616479206d696e74656421000000000000006044820152606490fd5b6004810361246757506006906124616022604051809361030360f41b60208301526124518151809260208686019101612862565b810103600281018452018261297d565b92610aea565b6003036124aa57600690612461602360405180936203030360ec1b602083015261249a8151809260208686019101612862565b810103600381018452018261297d565b91600690610aea565b9091926010600f85161015612514576125086020848660051b1684015160405193816124e88693518092868087019101612862565b82016124fc82518093868085019101612862565b0103808452018261297d565b9260041c919082610a99565b634e487b7160e01b600052603260045260246000fd5b60405162461bcd60e51b815260206004820152600b60248201526a0496e76616c6964207469760ac1b6044820152606490fd5b60405162461bcd60e51b815260206004820152602160248201527f436f6d65206261636b20666f7220746865204f6e636861696e2053756d6d65726044820152602160f81b6064820152608490fd5b90506020813d6020116125df575b816125c76020938361297d565b810103126101665751801515810361016657816107f5565b3d91506125ba565b6040513d6000823e3d90fd5b346101665760403660031901126101665761260c6128aa565b60243561261881612df3565b331515806126c7575b8061269a575b612682576001600160a01b039283169282918491167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4600090815260046020526040902080546001600160a01b0319169091179055005b60405163a9fbf51f60e01b8152336004820152602490fd5b5060018060a01b038116600052600560205260406000203360005260205260ff6040600020541615612627565b506001600160a01b038116331415612621565b34610166576020366003190112610166576004356126f781612df3565b506000526004602052602060018060a01b0360406000205416604051908152f35b346101665760003660031901126101665760405160008054908261273b8361290b565b918282526020936001908560018216918260001461046657505060011461276957506103f59250038361297d565b6000808052859250907f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e5635b8583106127ab5750506103f59350820101856103e8565b80548389018501528794508693909201918101612794565b34610166576020366003190112610166576004359063ffffffff60e01b821680920361016657602091632483248360e11b8114908115612805575b5015158152f35b63780e9d6360e01b81149150811561281f575b50836127fe565b6380ac58cd60e01b811491508115612851575b8115612840575b5083612818565b6301ffc9a760e01b14905083612839565b635b5e139f60e01b81149150612832565b60005b8381106128755750506000910152565b8181015183820152602001612865565b9060209161289e81518092818552858086019101612862565b601f01601f1916010190565b600435906001600160a01b038216820361016657565b602435906001600160a01b038216820361016657565b6060906003190112610166576001600160a01b0390600435828116810361016657916024359081168103610166579060443590565b90600182811c9216801561293b575b602083101461292557565b634e487b7160e01b600052602260045260246000fd5b91607f169161291a565b6020810190811067ffffffffffffffff8211176120a557604052565b6040810190811067ffffffffffffffff8211176120a557604052565b90601f8019910116810190811067ffffffffffffffff8211176120a557604052565b906040519182600082546129b28161290b565b90818452602094600191600181169081600014612a2257506001146129e3575b5050506129e19250038361297d565b565b600090815285812095935091905b818310612a0a5750506129e193508201013880806129d2565b855488840185015294850194879450918301916129f1565b925050506129e194925060ff191682840152151560051b8201013880806129d2565b67ffffffffffffffff81116120a557601f01601f191660200190565b6001600160a01b038281169391841561230957600094838652602095600287526040968488832054169633151580612c8d575b5087158015612c5a575b84845260038352898420805460010190558784526002835289842080546001600160a01b0319168617905587858a7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8780a415612bde5760085487845260098352808a852055600160401b811015612bca5787612b23826001612b3c9401600855612d53565b90919082549060031b91821b91600019901b1916179055565b838803612b78575b505050501692838303612b575750505050565b6064945051926364283d7b60e01b8452600484015260248301526044820152fd5b612b8190612dba565b600019810193908411612bb65782916007918a9452600681528383208584528152878484205587835252205538808080612b44565b634e487b7160e01b83526011600452602483fd5b634e487b7160e01b84526041600452602484fd5b878414612b3c57612bee88612dba565b8784526007835289842054818103612c23575b50878452838a8120558884526006835289842090845282528289812055612b3c565b898552600684528a852082865284528a8520548a8652600685528b86208287528552808c8720558552600784528a85205538612c01565b600088815260046020526040902080546001600160a01b0319169055888452600383528984208054600019019055612a9d565b80612cda575b15612c9e5738612a93565b888789612cbb576024915190637e27328960e01b82526004820152fd5b905163177e802f60e01b81523360048201526024810191909152604490fd5b503388148015612cff575b80612c9357508683526004825233868a8520541614612c93565b5087835260058252888320338452825260ff8984205416612ce5565b15612d2257565b60405162461bcd60e51b81526020600482015260096024820152682337b93134b23232b760b91b6044820152606490fd5b6008548110156125145760086000527ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30190600090565b3d15612db5573d90612d9b82612a44565b91612da9604051938461297d565b82523d6000602084013e565b606090565b6001600160a01b03168015612dda57600052600360205260406000205490565b6040516322718ad960e21b815260006004820152602490fd5b6000818152600260205260409020546001600160a01b0316908115612e16575090565b60249060405190637e27328960e01b82526004820152fd5b9190803b612e3d575b50505050565b612e7f60018060a01b0380921694604051938493630a85bd0160e11b968786523360048701521660248501526044840152608060648401526084830190612885565b03906020816000938185885af190829082612efe575b5050612ecd5782612ea4612d8a565b8051919082612ec657604051633250574960e11b815260048101839052602490fd5b9050602001fd5b6001600160e01b03191603612ee6575038808080612e37565b60249060405190633250574960e11b82526004820152fd5b909192506020813d602011612f46575b81612f1b6020938361297d565b81010312612f425751906001600160e01b031982168203612f3f5750903880612e95565b80fd5b5080fd5b3d9150612f0e565b90612f5882612a44565b612f65604051918261297d565b8281528092612f76601f1991612a44565b0190602036910137565b806000917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000808210156130b6575b506d04ee2d6d415b85acef8100000000808310156130a7575b50662386f26fc1000080831015613098575b506305f5e10080831015613089575b506127108083101561307a575b50606482101561306a575b600a80921015613060575b60019081602161301860018701612f4e565b95860101905b61302a575b5050505090565b600019019083906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a83530491821561305b5791908261301e565b613023565b9160010191613006565b9190606460029104910191612ffb565b60049193920491019138612ff0565b60089193920491019138612fe3565b60109193920491019138612fd4565b60209193920491019138612fc2565b604093508104915038612fa9565b7f3c67207472616e73666f726d3d227472616e736c61746528302e30303030303081527f2c313032342e30303030303029207363616c6528302e3230303030302c2d302e60208201526e1918181818181491103334b6361e9160891b6040820152604f0190565b9081511561328457604051916060830183811067ffffffffffffffff8211176120a557604052604083527f4142434445464748494a4b4c4d4e4f505152535455565758595a61626364656660208401527f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392b2f604084015280519260029160028501809511612220576003948590046001600160fe1b0381168103612220576131d79060029694961b612f4e565b926020840192829183518401976020890192835194600085525b8a81106132375750505050600393949596505251068060011461322457600214613219575090565b603d90600019015390565b50603d9081600019820153600119015390565b836004919b989b019a8b51600190603f9082828260121c16870101518453828282600c1c16870101518385015382828260061c1687010151878501531684010151858201530196996131f1565b905060405161329281612945565b600081529056fea264697066735822122092c218d36cb201446fa69f1760789c0bb2491b22a587f372c332b6108dc483e364736f6c63430008170033