[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyClaimed", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "ERC1155MissingApprovalForAll", "type": "error" }, { "inputs": [], "name": "MismatchedSignature", "type": "error" }, { "inputs": [], "name": "NotAllowed", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nonce", "type": "uint256" }, { "internalType": "uint256[]", "name": "itemIds", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "itemAmounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "signature", "type": "bytes" } ], "name": "claimLoot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "currentNonce", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "", "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": "_registryContract", "type": "address" }, { "internalType": "string", "name": "_uri", "type": "string" }, { "internalType": "address", "name": "_signer", "type": "address" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "registry", "outputs": [ { "internalType": "contract IRegistry", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "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": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "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": "_baseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint96", "name": "feeNumerator", "type": "uint96" } ], "name": "setDefaultRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "contractAddress", "type": "address" } ], "name": "setRegistryAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_signer", "type": "address" } ], "name": "setSigner", "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": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "version", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" } ]
60a08060405234620000e157306080526000549060ff8260081c166200008f575060ff8082160362000053575b6040516136369081620000e782396080518181816114a50152818161159001526119c60152f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a1386200002c565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe6040608081526004908136101561001557600080fd5b600091823560e01c8062fdd58e146124be57806301ffc9a71461240057806304634d8d146122f85780630e89341c146120a2578063248a9ca3146120775780632a55205a14611fbb5780632eb2c2d614611cb55780632f2ff15d14611bf757806336568abe14611b655780633659cfe61461199f5780634e1273f41461180f5780634f1ef2861461155257806352d1902d1461149057806354fd4d501461144757806355f804b31461132f57806363c15e2e14610ecc5780636437ecfc14610e935780636c19e78314610e4e5780637b10399914610e245780637bb7c0d8146109b55780639010d07c1461097457806391d148541461092d578063a217fddf14610912578063a22cb46514610831578063ab7b4993146107e9578063ca15c873146107c1578063d547741f14610785578063e985e9c514610733578063f242432a146103a35763f5298aca1461016a57600080fd5b3461039f57606036600319011261039f576101836124ee565b6001600160a01b039081169160248035926044359291903386141580610380575b610364578515610316576101b785612f69565b506101c184612f69565b508787516101ce81612598565b526101c6541691865180936370c5e04560e11b82523383830152818460209687935afa90811561030c5789916102d2575b50156102c4578488526065835286882086895283528688205491848310610276578861027389828a8a8a8a818b848752606583528787208688528352038686205585519283528201527fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62843392a451612598565b80f35b875162461bcd60e51b8152918201849052808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b606482015260849150fd5b8651631eb49d6d60e11b8152fd5b90508381813d8311610305575b6102e981836125e9565b810103126103015751801515810361030157386101ff565b8880fd5b503d6102df565b88513d8b823e3d90fd5b865162461bcd60e51b81526020818501526023818401527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b865163711bec9160e11b81523381850152808301879052604490fd5b50858852606660205286882033895260205260ff8789205416156101a4565b8280fd5b50903461039f5760a036600319011261039f576103be6124ee565b6103c6612509565b906044356064356084356001600160401b03811161072f576103eb90369088016126df565b926001600160a01b03908116923384148015610710575b61040b90612d12565b8186169161041a831515612d75565b61042382612f69565b5061042d84612f69565b506101c6541695875180976370c5e04560e11b8252338b83015281602460209a8b935afa908115610706578b916106cc575b50156106bc5790899594939291818752606588528887208588528852838988205461048c82821015612dcf565b83895260658a528a8920878a528a5203898820558187526065885288872083885288528887206104bd858254612e2e565b905582858a51848152868b8201527fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628c3392a43b6104f9578580f35b8895879461053a8a519788968795869463f23a6e6160e01b9c8d8752339087015260248601526044850152606484015260a0608484015260a4830190612542565b03925af186918161068d575b50610618575050600190610558612edd565b6308c379a0146105e5575b506105785750505b3880808381808080808580f35b5162461bcd60e51b8152915081906105e190820160809060208152603460208201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356040820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60608201520190565b0390fd5b6105ed612efb565b806105f85750610563565b6105e18591855193849362461bcd60e51b85528401526024830190612542565b6001600160e01b03191603905061063057505061056b565b5162461bcd60e51b8152915081906105e190820160809060208152602860208201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b60608201520190565b6106ae919250843d86116106b5575b6106a681836125e9565b810190612ebd565b9038610546565b503d61069c565b8751631eb49d6d60e11b81528990fd5b90508781813d83116106ff575b6106e381836125e9565b810103126106fb575180151581036106fb573861045f565b8a80fd5b503d6106d9565b89513d8d823e3d90fd5b5083895260666020908152878a20338b5290528689205460ff16610402565b8780fd5b50503461078157806003193601126107815760ff816020936107536124ee565b61075b612509565b6001600160a01b0391821683526066875283832091168252855220549151911615158152f35b5080fd5b50903461039f578060031936011261039f5761027391356107bc60016107a9612509565b9383875261012d60205286200154612954565b612a60565b503461039f57602036600319011261039f57602092829135815261015f845220549051908152f35b833461082e57602036600319011261082e576108036124ee565b61080b61275e565b6101c680546001600160a01b0319166001600160a01b0390921691909117905580f35b80fd5b50903461039f578060031936011261039f5761084b6124ee565b906024359182151580930361090e576001600160a01b0316923384146108ba5750338452606660205280842083855260205280842060ff1981541660ff8416179055519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a380f35b6020608492519162461bcd60e51b8352820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152fd5b8480fd5b50503461078157816003193601126107815751908152602090f35b503461039f578160031936011261039f578160209360ff9261094d612509565b9035825261012d86528282206001600160a01b039091168252855220549151911615158152f35b503461039f578160031936011261039f5760209261099f9135815261015f8452826024359120613136565b905491519160018060a01b039160031b1c168152f35b50903461039f57606036600319011261039f576109d06124ee565b6001600160401b03602435818111610e205736602382011215610e2057610a0090369060248188013591016126a8565b6001600160a01b039160443583811692919083900361072f5787549660ff8860081c161595868097610e13575b8015610dfc575b15610da25760ff19808a1660019081178c559988610d91575b50610a9060ff8c5460081c16610a6281613364565b610a6b81613364565b610a7481613364565b8b61019155610a8281613364565b610a8b81613364565b613364565b8451848111610d7e57610aa46067546132ca565b601f8111610d16575b508060208d601f8311600114610c995791610c8e575b50600019600383901b1c1916908b1b176067555b8a805261012d80602052898c20338d5260205260ff8a8d20541615610c46575b505089805261015f602052610b0e33898c2061314e565b506001600160601b0360a01b956101c69116868254161790558251918211610c335750806101c492610b4982610b4486546132ca565b613304565b602090601f8311600114610bc8578a92610bbd575b5050600019600383901b1c191690871b1790555b6101c591825416179055610b84578280f35b825461ff0019168355519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb384740249890602090a138808280f35b015190503880610b5e565b848b528993506000805160206135c18339815191529190601f1984168c5b818110610c1b57508411610c02575b505050811b019055610b72565b015160001960f88460031b161c19169055388080610bf5565b8284015185558c969094019360209384019301610be6565b634e487b7160e01b895260419052602488fd5b8b8052602052888b20338c5260205289898c209182541617905533338b7f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a43880610af7565b905086015138610ac3565b908d9350601f198316606783527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae925b818110610cfe57508311610ce5575b5050811b01606755610ad7565b88015160001960f88460031b161c191690553880610cd8565b8a83015184558f959093019260209283019201610cc9565b60678d527f9787eeb91fe3101235e4a76063c7023ecb40f923f97916639c598592fa30d6ae601f830160051c81019160208410610d74575b601f0160051c01908c908e5b838210610d6957505050610aad565b8155018c908e610d5a565b9091508190610d4e565b634e487b7160e01b8c526041845260248cfd5b61ffff1916610101178b5538610a4d565b875162461bcd60e51b8152602081840152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b158015610a345750600160ff8a1614610a34565b50600160ff8a1610610a2d565b8580fd5b5050346107815781600319360112610781576101c65490516001600160a01b039091168152602090f35b833461082e57602036600319011261082e57610e686124ee565b610e7061275e565b6101c580546001600160a01b0319166001600160a01b0390921691909117905580f35b5050346107815760203660031901126107815760209181906001600160a01b03610ebb6124ee565b1681526101c3845220549051908152f35b50829034610781576003199060803683011261039f578035936024926001600160401b0392843584811161132b57610f07903690830161272e565b91909560443586811161030157610f21903690840161272e565b9660643590811161132757610f3990369085016126df565b976101919460028654146112e55788999a9b6002879a999a558c600160a01b60019003809d816101c55416928d519c8d60209e8f8101923360601b845288603483015260548201610f8b908b8d6133c4565b610f95918d6133c4565b03601f1981018252610fa790826125e9565b5190207f19457468657265756d205369676e6564204d6573736167653a0a3332000000008252601c52603c902090610fde916134f9565b610fe7906133df565b16036112d557338d528c818b6101c392838d52205410156112c557338e528952898d2055611023929161101b913691612621565b983691612621565b938651986110308a612598565b8a8a523315611279578683916110498b51895114612e3b565b6101c654168951928380926370c5e04560e11b825233898301525afa90811561126f578b91611239575b501561122957895b8a89518210156110c85790896110bc8a6110c3946110a48561109d818e612ce8565b5195612ce8565b51815260658c528181203382528c5220918254612e2e565b9055612cc3565b61107b565b9398949991929695905087518433917f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb339180611106878c83612e98565b0390a4333b611118575b8360018b5580f35b61117486938a9695936111658a946111558d51998a98899863bc197c8160e01b9d8e8b5233908b015289015260a0604489015260a48801906126fa565b90848783030160648801526126fa565b91848303016084850152612542565b03818b335af188918161120a575b506111ed575050600191611194612edd565b6308c379a0146111b9575b50506105785750506001905b908380808086818080611110565b6111c1612efb565b90816111cd575061119f565b845162461bcd60e51b81528087019390935282916105e191830190612542565b6001600160e01b03191603915061063090505750506001906111ab565b611222919250843d86116106b5576106a681836125e9565b9089611182565b8651631eb49d6d60e11b81528390fd5b90508681813d8311611268575b61125081836125e9565b810103126106fb575180151581036106fb578b611073565b503d611246565b88513d8d823e3d90fd5b875162461bcd60e51b81528085018890526021818501527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608490fd5b8a51630c8d9eab60e31b81528790fd5b8951631b18b62560e31b81528690fd5b875162461bcd60e51b8152602081870152601f818601527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606490fd5b8980fd5b8680fd5b50823461082e5760209182600319360112610781578035906001600160401b039081831161144357366023840112156114435782013590811161039f576024368183850101116114435761138161275e565b6101c49261139383610b4486546132ca565b8495601f84116001146113d25750948495839495936113c5575b5050508160011b916000199060031b1c191617905580f35b01013590508480806113ad565b601f198416966000805160206135c1833981519152939187905b8982106114295750508460019697981061140d575b50505050811b01905580f35b60001960f88660031b161c199201013516905584808080611401565b8060018497868395968901013581550196019201906113ec565b8380fd5b505034610781578160031936011261078157805161148c9161146882612567565b60058252640312e312e360dc1b602083015251918291602083526020830190612542565b0390f35b50823461082e578060031936011261082e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031630036114ea57602082516000805160206135e18339815191528152f35b6020608492519162461bcd60e51b8352820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152fd5b50908060031936011261039f576115676124ee565b906024356001600160401b03811161090e5761158690369085016126df565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081169291906115c030851415612aec565b6115dd6000805160206135e1833981519152948286541614612b4d565b6115e561275e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff161561161d57505050506102739150612bae565b82516352d1902d60e01b81526020959394918416919086818981865afa8991816117e0575b506116a157855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b969192959493960361178b57506116b785612bae565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8680a2825115801590611783575b6116f2575b5050505080f35b61176f938580835195611704876125b3565b602787527f416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c86880152660819985a5b195960ca1b858801528581519101845af4913d15611779573d6117616117588261268d565b925192836125e9565b81528681943d92013e612f8e565b50388080806116eb565b5060609250612f8e565b5060016116e6565b825162461bcd60e51b8152908101849052602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608490fd5b9091508781813d8311611808575b6117f881836125e9565b8101031261132757519038611642565b503d6117ee565b503461039f578160031936011261039f5780356001600160401b0380821161090e573660238301121561090e57818301359061184a8261260a565b92611857865194856125e9565b82845260209260248486019160051b8301019136831161030157602401905b82821061198057505050602435908111610e2057611897903690850161266f565b92825184510361192d57508151946118ae8661260a565b956118bb865197886125e9565b8087526118ca601f199161260a565b0136838801375b825181101561191b57611916906119066001600160a01b036118f38387612ce8565b51166118ff8388612ce8565b5190612c3e565b6119108289612ce8565b52612cc3565b6118d1565b84518281528061148c818501896126fa565b60849185519162461bcd60e51b8352820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152fd5b81356001600160a01b0381168103611327578152908401908401611876565b50903461039f57602080600319360112611443576119bb6124ee565b916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000081166119f330821415612aec565b611a106000805160206135e1833981519152918383541614612b4d565b611a1861275e565b825191611a2483612598565b8783527f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611a605750505050506102739150612bae565b85939495169084516352d1902d60e01b815286818981865afa899181611b36575b50611ae057855162461bcd60e51b8152808901889052602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608490fd5b969192959493960361178b5750611af685612bae565b7fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b8680a2825115801590611b2f576116f2575050505080f35b50846116e6565b9091508781813d8311611b5e575b611b4e81836125e9565b8101031261132757519038611a81565b503d611b44565b50829034610781578260031936011261078157611b80612509565b90336001600160a01b03831603611b9c57906102739135612a60565b608490602085519162461bcd60e51b8352820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152fd5b50903461039f578060031936011261039f57611c6991359061015f611c1a612509565b9280865261012d90602091808352611c376001868a200154612954565b8188528083528488206001600160a01b039096168089529583528488205460ff1615611c6d575b50865252832061314e565b5080f35b81885282528387208588528252838720805460ff191660011790553385827f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8a80a438611c5e565b50903461039f576003199260a03685011261082e57611cd26124ee565b611cda612509565b93604435956001600160401b039687811161090e57611cfc903690840161266f565b606435888111610e2057611d13903690850161266f565b97608435908111610e2057611d2b90369085016126df565b6001600160a01b03949093908516923384148015611f9c575b611d4d90612d12565b611d5a83518b5114612e3b565b85891695611d69871515612d75565b6101c6541694885180966370c5e04560e11b825233858301528160246020998a935afa908115611f92578991611f5c575b5015611f4c57875b8451811015611e1e57808c8b611dc683611dbf611e19968b612ce8565b5193612ce8565b5191808d528c606592838d528082208c83528d52848d8d8385205491611dee84841015612dcf565b86865287815284862091865252039120558c5289528b8b208a8c5289526110bc8c8c20918254612e2e565b611da2565b50919697958a9193898b83888b517f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb339180611e5b8b8a83612e98565b0390a43b611e665780f35b899688958a519788968795869463bc197c8160e01b9c8d8752339087015260248601526044850160a0905260a48501611e9e916126fa565b82858203016064860152611eb1916126fa565b90838203016084840152611ec491612542565b03925af1869181611f2d575b50611f15575050600190611ee2612edd565b6308c379a014611f02575b506105785750505b8180808080808080808980f35b611f0a612efb565b806105f85750611eed565b6001600160e01b031916039050610630575050611ef5565b611f45919250843d86116106b5576106a681836125e9565b9087611ed0565b8851631eb49d6d60e11b81528390fd5b90508681813d8311611f8b575b611f7381836125e9565b81010312610301575180151581036103015738611d9a565b503d611f69565b8a513d8b823e3d90fd5b508387526066602090815288882033895290528787205460ff16611d44565b50913461082e578160031936011261082e576024359083358152609860205282812090835191611fea83612567565b546001600160a01b0380821680855260a09290921c602085015292919015612054575b6001600160601b03602083015116938481029481860414901517156120415750518351911681526127109091046020820152f35b634e487b7160e01b815260118652602490fd5b9050835161206181612567565b609754838116825260a01c60208201529061200d565b503461039f57602036600319011261039f578160209360019235815261012d85522001549051908152f35b50903461039f576020918260031936011261144357803590819480917a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000808510156122eb575b506d04ee2d6d415b85acef8100000000808810156122dd575b50662386f26fc10000808810156122ce575b506305f5e100808810156122bf575b50612710808810156122b0575b505060648610156122a0575b600a80961015612296575b600191828101966121696121548961268d565b9861216188519a8b6125e9565b808a5261268d565b94846021898b0194601f198099013687378b0101905b612267575b5050508451968793836101c49182549261219d846132ca565b938b838216918260001461223b5750506001146121ec575b878b61148c8c6121dd8d858d806121d08f8f5193849161251f565b01039081018652856125e9565b51928284938452830190612542565b8a9495965082526000805160206135c18339815191525b838310612221575050508401019190806121d061148c6121dd6121b5565b80549783018501979097528a968a94909201918101612203565b60ff19168a820152851515909502890190940196508493506121d0925061148c91506121dd90506121b5565b600019019082906f181899199a1a9b1b9c1cb0b131b232b360811b8282061a83530490858261217f5750612184565b9060010190612141565b9094606460029104950190612136565b9091929604950190388061212a565b6008919397049601913861211d565b6010919397049601913861210e565b8691939704960191386120fc565b84049650849250386120e3565b50903461039f578060031936011261039f576123126124ee565b90602435916001600160601b038316808403610e20576127109061233461275e565b116123aa576001600160a01b031692831561236857506123549051612567565b60a01b6001600160a01b0319161760975580f35b6020606492519162461bcd60e51b8352820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152fd5b815162461bcd60e51b8152602081860152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b6064820152608490fd5b503461039f57602036600319011261039f57359063ffffffff60e01b821680920361039f5760209250635a05180f60e01b8214918215612444575b50519015158152f35b909150637965db0b60e01b8114908115612461575b50903861243b565b63152a902d60e11b81149150811561247b575b5038612459565b636cdb3d1360e11b8114915081156124ad575b811561249c575b5038612474565b6301ffc9a760e01b14905038612495565b6303a24d0760e21b8114915061248e565b5050346107815780600319360112610781576020906124e76124de6124ee565b60243590612c3e565b9051908152f35b600435906001600160a01b038216820361250457565b600080fd5b602435906001600160a01b038216820361250457565b60005b8381106125325750506000910152565b8181015183820152602001612522565b9060209161255b8151809281855285808601910161251f565b601f01601f1916010190565b604081019081106001600160401b0382111761258257604052565b634e487b7160e01b600052604160045260246000fd5b602081019081106001600160401b0382111761258257604052565b606081019081106001600160401b0382111761258257604052565b608081019081106001600160401b0382111761258257604052565b90601f801991011681019081106001600160401b0382111761258257604052565b6001600160401b0381116125825760051b60200190565b929161262c8261260a565b9161263a60405193846125e9565b829481845260208094019160051b810192831161250457905b8282106126605750505050565b81358152908301908301612653565b9080601f830112156125045781602061268a93359101612621565b90565b6001600160401b03811161258257601f01601f191660200190565b9291926126b48261268d565b916126c260405193846125e9565b829481845281830111612504578281602093846000960137010152565b9080601f830112156125045781602061268a933591016126a8565b90815180825260208080930193019160005b82811061271a575050505090565b83518552938101939281019260010161270c565b9181601f84011215612504578235916001600160401b038311612504576020808501948460051b01011161250457565b3360009081527fa581b17bfc4d6578e300cafbf34fd2dc1fef0270d8c73f88a99dcde2859a6639602090815260408083205490929060ff16156127a057505050565b6127a933613038565b90808451906127b7826125ce565b6042825284820192606036853782511561294057603084538251906001918210156129405790607860218501536041915b8183116128d2575050506128905760486105e193869361287493612865985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a86015261283c815180928c60378901910161251f565b8401917001034b99036b4b9b9b4b733903937b6329607d1b60378401525180938684019061251f565b010360288101875201856125e9565b5192839262461bcd60e51b845260048401526024830190612542565b60648486519062461bcd60e51b825280600483015260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b909192600f8116601081101561292c576f181899199a1a9b1b9c1cb0b131b232b360811b901a6129028587613027565b5360041c928015612918576000190191906127e8565b634e487b7160e01b82526011600452602482fd5b634e487b7160e01b83526032600452602483fd5b634e487b7160e01b81526032600452602490fd5b60009080825260209061012d8252604092838120338252835260ff84822054161561297f5750505050565b61298833613038565b91845190612995826125ce565b6042825284820192606036853782511561294057603084538251906001918210156129405790607860218501536041915b818311612a1a575050506128905760486105e193869361287493612865985198899376020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8a86015261283c815180928c60378901910161251f565b909192600f8116601081101561292c576f181899199a1a9b1b9c1cb0b131b232b360811b901a612a4a8587613027565b5360041c928015612918576000190191906129c6565b906040612aa29260009080825261012d806020528383209460018060a01b03169485845260205260ff8484205416612aa5575b50815261015f602052206131da565b50565b81835260205282822084835260205282822060ff1981541690553384827ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b8580a438612a93565b15612af357565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b19195b1959d85d1958d85b1b60a21b6064820152608490fd5b15612b5457565b60405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201526b6163746976652070726f787960a01b6064820152608490fd5b803b15612be3576000805160206135e183398151915280546001600160a01b0319166001600160a01b03909216919091179055565b60405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608490fd5b6001600160a01b0316908115612c6b57600052606560205260406000209060005260205260406000205490565b60405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b6064820152608490fd5b6000198114612cd25760010190565b634e487b7160e01b600052601160045260246000fd5b8051821015612cfc5760209160051b010190565b634e487b7160e01b600052603260045260246000fd5b15612d1957565b60405162461bcd60e51b815260206004820152602e60248201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60448201526d195c881bdc88185c1c1c9bdd995960921b6064820152608490fd5b15612d7c57565b60405162461bcd60e51b815260206004820152602560248201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b15612dd657565b60405162461bcd60e51b815260206004820152602a60248201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60448201526939103a3930b739b332b960b11b6064820152608490fd5b91908201809211612cd257565b15612e4257565b60405162461bcd60e51b815260206004820152602860248201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206044820152670dad2e6dac2e8c6d60c31b6064820152608490fd5b9091612eaf61268a936040845260408401906126fa565b9160208184039101526126fa565b9081602091031261250457516001600160e01b0319811681036125045790565b60009060033d11612eea57565b905060046000803e60005160e01c90565b600060443d1061268a57604051600319913d83016004833e81516001600160401b03918282113d602484011117612f5857818401948551938411612f60573d85010160208487010111612f58575061268a929101602001906125e9565b949350505050565b50949350505050565b60405190612f7682612567565b60018252602082016020368237825115612cfc575290565b91929015612ff05750815115612fa2575090565b3b15612fab5790565b60405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606490fd5b8251909150156130035750805190602001fd5b60405162461bcd60e51b8152602060048201529081906105e1906024830190612542565b908151811015612cfc570160200190565b60405190613045826125b3565b602a8252602082016040368237825115612cfc57603090538151600190811015612cfc57607860218401536029905b8082116130c85750506130845790565b606460405162461bcd60e51b815260206004820152602060248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152fd5b9091600f81166010811015613121576f181899199a1a9b1b9c1cb0b131b232b360811b901a6130f78486613027565b5360041c91801561310c576000190190613074565b60246000634e487b7160e01b81526011600452fd5b60246000634e487b7160e01b81526032600452fd5b8054821015612cfc5760005260206000200190600090565b919060018301600090828252806020526040822054156000146131d457845494680100000000000000008610156131c057836131b0613197886001604098999a01855584613136565b819391549060031b600019811b9283911b169119161790565b9055549382526020522055600190565b634e487b7160e01b83526041600452602483fd5b50925050565b906001820190600092818452826020526040842054908115156000146132c357600019918083018181116132af5782549084820191821161329b57808203613266575b50505080548015613252578201916132358383613136565b909182549160031b1b191690555582526020526040812055600190565b634e487b7160e01b86526031600452602486fd5b6132866132766131979386613136565b90549060031b1c92839286613136565b9055865284602052604086205538808061321d565b634e487b7160e01b88526011600452602488fd5b634e487b7160e01b87526011600452602487fd5b5050505090565b90600182811c921680156132fa575b60208310146132e457565b634e487b7160e01b600052602260045260246000fd5b91607f16916132d9565b601f8111613310575050565b6000906101c482526000805160206135c1833981519152906020601f850160051c8301941061335a575b601f0160051c01915b82811061334f57505050565b818155600101613343565b909250829061333a565b1561336b57565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b91906001600160fb1b0381116125045760051b809282370190565b60058110156134e357806133f05750565b6001810361343d5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b6002810361348a5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b60031461349357565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b634e487b7160e01b600052602160045260246000fd5b90604181511460001461352757613523916020820151906060604084015193015160001a90613531565b9091565b5050600090600290565b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083116135b45791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa156135a75781516001600160a01b038116156135a1579190565b50600190565b50604051903d90823e3d90fd5b5050505060009060039056fe5ac35dca7c3a7d5ae9d0add1efdc4aa02e10dd5cac0b90d2122cf0f0cc68317f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212208da50298a243e0fea18dd07f1a257fe804621f8766dbb90e5ed7d82f19b93ed164736f6c63430008110033