[ { "inputs": [ { "internalType": "address", "name": "signer_", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "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": "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": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "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": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "customBaseURI_", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setMintActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "signer_", "type": "address" } ], "name": "setSigner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "bytes32", "name": "_salt", "type": "bytes32" }, { "internalType": "bytes", "name": "_signature", "type": "bytes" } ], "name": "signatureMint", "outputs": [], "stateMutability": "payable", "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" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b506040516200483d3803806200483d833981810160405281019062000037919062000356565b6040518060400160405280600581526020017f5461636f730000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f5441434f000000000000000000000000000000000000000000000000000000008152508160009080519060200190620000bb9291906200028f565b508060019080519060200190620000d49291906200028f565b505050620000f7620000eb620001c160201b60201c565b620001c960201b60201c565b6040518060400160405280601b81526020017f68747470733a2f2f6e6f742d612e7265616c2e776562736974652f0000000000815250600a9080519060200190620001449291906200028f565b50605b6009819055506101f4600b819055506000600f60006101000a81548160ff0219169083151502179055506001600c8190555080600f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000435565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200029d90620003b6565b90600052602060002090601f016020900481019282620002c157600085556200030d565b82601f10620002dc57805160ff19168380011785556200030d565b828001600101855582156200030d579182015b828111156200030c578251825591602001919060010190620002ef565b5b5090506200031c919062000320565b5090565b5b808211156200033b57600081600090555060010162000321565b5090565b60008151905062000350816200041b565b92915050565b6000602082840312156200036957600080fd5b600062000379848285016200033f565b91505092915050565b60006200038f8262000396565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006002820490506001821680620003cf57607f821691505b60208210811415620003e657620003e5620003ec565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b620004268162000382565b81146200043257600080fd5b50565b6143f880620004456000396000f3fe6080604052600436106101355760003560e01c806370a08231116100ab578063b7254ae81161006f578063b7254ae814610425578063b88d4fde14610441578063c87b56dd1461046a578063e985e9c5146104a7578063ee1cc944146104e4578063f2fde38b1461050d57610135565b806370a0823114610352578063715018a61461038f5780638da5cb5b146103a657806395d89b41146103d1578063a22cb465146103fc57610135565b806323b872dd116100fd57806323b872dd146102335780632a55205a1461025c57806342842e0e1461029a57806355f804b3146102c35780636352211e146102ec5780636c19e7831461032957610135565b806301ffc9a71461013a57806306fdde0314610177578063081812fc146101a2578063095ea7b3146101df57806318160ddd14610208575b600080fd5b34801561014657600080fd5b50610161600480360381019061015c9190612ca5565b610536565b60405161016e919061340b565b60405180910390f35b34801561018357600080fd5b5061018c61059f565b604051610199919061346b565b60405180910390f35b3480156101ae57600080fd5b506101c960048036038101906101c49190612d38565b610631565b6040516101d6919061337b565b60405180910390f35b3480156101eb57600080fd5b5061020660048036038101906102019190612c40565b6106b6565b005b34801561021457600080fd5b5061021d6107ce565b60405161022a91906137ed565b60405180910390f35b34801561023f57600080fd5b5061025a60048036038101906102559190612b3a565b6107df565b005b34801561026857600080fd5b50610283600480360381019061027e9190612dc8565b61083f565b6040516102919291906133e2565b60405180910390f35b3480156102a657600080fd5b506102c160048036038101906102bc9190612b3a565b610870565b005b3480156102cf57600080fd5b506102ea60048036038101906102e59190612cf7565b610890565b005b3480156102f857600080fd5b50610313600480360381019061030e9190612d38565b610926565b604051610320919061337b565b60405180910390f35b34801561033557600080fd5b50610350600480360381019061034b9190612ad5565b6109d8565b005b34801561035e57600080fd5b5061037960048036038101906103749190612ad5565b610a98565b60405161038691906137ed565b60405180910390f35b34801561039b57600080fd5b506103a4610b50565b005b3480156103b257600080fd5b506103bb610bd8565b6040516103c8919061337b565b60405180910390f35b3480156103dd57600080fd5b506103e6610c02565b6040516103f3919061346b565b60405180910390f35b34801561040857600080fd5b50610423600480360381019061041e9190612c04565b610c94565b005b61043f600480360381019061043a9190612d61565b610caa565b005b34801561044d57600080fd5b5061046860048036038101906104639190612b89565b61100b565b005b34801561047657600080fd5b50610491600480360381019061048c9190612d38565b61106d565b60405161049e919061346b565b60405180910390f35b3480156104b357600080fd5b506104ce60048036038101906104c99190612afe565b6111bf565b6040516104db919061340b565b60405180910390f35b3480156104f057600080fd5b5061050b60048036038101906105069190612c7c565b611253565b005b34801561051957600080fd5b50610534600480360381019061052f9190612ad5565b6112ec565b005b6000632a55205a60e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141561058e576001905061059a565b610597826113e4565b90505b919050565b6060600080546105ae90613ab4565b80601f01602080910402602001604051908101604052809291908181526020018280546105da90613ab4565b80156106275780601f106105fc57610100808354040283529160200191610627565b820191906000526020600020905b81548152906001019060200180831161060a57829003601f168201915b5050505050905090565b600061063c826114c6565b61067b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610672906136ed565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006106c182610926565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610732576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107299061378d565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610751611532565b73ffffffffffffffffffffffffffffffffffffffff161480610780575061077f8161077a611532565b6111bf565b5b6107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b6906135ed565b60405180910390fd5b6107c9838361153a565b505050565b60006107da60086115f3565b905090565b6107f06107ea611532565b82611601565b61082f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610826906137cd565b60405180910390fd5b61083a8383836116df565b505050565b60008061084a610bd8565b612710600b548561085b9190613959565b6108659190613928565b915091509250929050565b61088b8383836040518060200160405280600081525061100b565b505050565b610898611532565b73ffffffffffffffffffffffffffffffffffffffff166108b6610bd8565b73ffffffffffffffffffffffffffffffffffffffff161461090c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109039061370d565b60405180910390fd5b80600a90805190602001906109229291906128e4565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156109cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c69061362d565b60405180910390fd5b80915050919050565b6109e0611532565b73ffffffffffffffffffffffffffffffffffffffff166109fe610bd8565b73ffffffffffffffffffffffffffffffffffffffff1614610a54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4b9061370d565b60405180910390fd5b80600f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b009061360d565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b58611532565b73ffffffffffffffffffffffffffffffffffffffff16610b76610bd8565b73ffffffffffffffffffffffffffffffffffffffff1614610bcc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bc39061370d565b60405180910390fd5b610bd66000611946565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610c1190613ab4565b80601f0160208091040260200160405190810160405280929190818152602001828054610c3d90613ab4565b8015610c8a5780601f10610c5f57610100808354040283529160200191610c8a565b820191906000526020600020905b815481529060010190602001808311610c6d57829003601f168201915b5050505050905090565b610ca6610c9f611532565b8383611a0c565b5050565b6000333084604051602001610cc1939291906132f4565b6040516020818303038152906040528051906020012090506000610cf683610ce884611b79565b611ba990919063ffffffff16565b9050600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610d88576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d7f906134ad565b60405180910390fd5b600e600085815260200190815260200160002060009054906101000a900460ff1615610de9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610de09061376d565b60405180910390fd5b600f60009054906101000a900460ff16610e38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2f906137ad565b60405180910390fd5b600c54851115610e7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e749061366d565b60405180910390fd5b600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615610f0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f019061372d565b60405180910390fd5b610f12610bd8565b73ffffffffffffffffffffffffffffffffffffffff166108fc349081150290604051600060405180830381858888f19350505050158015610f57573d6000803e3d6000fd5b5060005b85811015610f7f57610f6c33611bd0565b8080610f7790613b17565b915050610f5b565b506001600d60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600e600086815260200190815260200160002060006101000a81548160ff0219169083151502179055505050505050565b61101c611016611532565b83611601565b61105b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611052906137cd565b60405180910390fd5b61106784848484611c44565b50505050565b6060611078826114c6565b6110b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ae906136ad565b60405180910390fd5b60006006600084815260200190815260200160002080546110d790613ab4565b80601f016020809104026020016040519081016040528092919081815260200182805461110390613ab4565b80156111505780601f1061112557610100808354040283529160200191611150565b820191906000526020600020905b81548152906001019060200180831161113357829003601f168201915b505050505090506000611161611ca0565b90506000815114156111775781925050506111ba565b6000825111156111ac578082604051602001611194929190613331565b604051602081830303815290604052925050506111ba565b6111b584611d32565b925050505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61125b611532565b73ffffffffffffffffffffffffffffffffffffffff16611279610bd8565b73ffffffffffffffffffffffffffffffffffffffff16146112cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c69061370d565b60405180910390fd5b80600f60006101000a81548160ff02191690831515021790555050565b6112f4611532565b73ffffffffffffffffffffffffffffffffffffffff16611312610bd8565b73ffffffffffffffffffffffffffffffffffffffff1614611368576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135f9061370d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156113d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cf9061350d565b60405180910390fd5b6113e181611946565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806114af57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806114bf57506114be82611dd9565b5b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166115ad83610926565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b600061160c826114c6565b61164b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611642906135cd565b60405180910390fd5b600061165683610926565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806116c557508373ffffffffffffffffffffffffffffffffffffffff166116ad84610631565b73ffffffffffffffffffffffffffffffffffffffff16145b806116d657506116d581856111bf565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166116ff82610926565b73ffffffffffffffffffffffffffffffffffffffff1614611755576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174c9061352d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156117c5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117bc9061356d565b60405180910390fd5b6117d0838383611e43565b6117db60008261153a565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461182b91906139b3565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461188291906138d2565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611941838383611e48565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611a7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a729061358d565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611b6c919061340b565b60405180910390a3505050565b600081604051602001611b8c9190613355565b604051602081830303815290604052805190602001209050919050565b6000806000611bb88585611e4d565b91509150611bc581611ed0565b819250505092915050565b611bda6008612221565b600954611be760086115f3565b1115611c28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c1f906136cd565b60405180910390fd5b6000611c3460086115f3565b9050611c408282612237565b5050565b611c4f8484846116df565b611c5b84848484612411565b611c9a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c91906134ed565b60405180910390fd5b50505050565b6060600a8054611caf90613ab4565b80601f0160208091040260200160405190810160405280929190818152602001828054611cdb90613ab4565b8015611d285780601f10611cfd57610100808354040283529160200191611d28565b820191906000526020600020905b815481529060010190602001808311611d0b57829003601f168201915b5050505050905090565b6060611d3d826114c6565b611d7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d739061374d565b60405180910390fd5b6000611d86611ca0565b90506000815111611da65760405180602001604052806000815250611dd1565b80611db0846125a8565b604051602001611dc1929190613331565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050565b505050565b600080604183511415611e8f5760008060006020860151925060408601519150606086015160001a9050611e8387828585612755565b94509450505050611ec9565b604083511415611ec0576000806020850151915060408501519050611eb5868383612862565b935093505050611ec9565b60006002915091505b9250929050565b60006004811115611f0a577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816004811115611f43577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415611f4e5761221e565b60016004811115611f88577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816004811115611fc1577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b1415612002576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ff99061348d565b60405180910390fd5b6002600481111561203c577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816004811115612075577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b14156120b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ad906134cd565b60405180910390fd5b600360048111156120f0577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b816004811115612129577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561216a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612161906135ad565b60405180910390fd5b6004808111156121a3577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b8160048111156121dc577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b141561221d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122149061364d565b60405180910390fd5b5b50565b6001816000016000828254019250508190555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156122a7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161229e9061368d565b60405180910390fd5b6122b0816114c6565b156122f0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122e79061354d565b60405180910390fd5b6122fc60008383611e43565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461234c91906138d2565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461240d60008383611e48565b5050565b60006124328473ffffffffffffffffffffffffffffffffffffffff166128c1565b1561259b578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261245b611532565b8786866040518563ffffffff1660e01b815260040161247d9493929190613396565b602060405180830381600087803b15801561249757600080fd5b505af19250505080156124c857506040513d601f19601f820116820180604052508101906124c59190612cce565b60015b61254b573d80600081146124f8576040519150601f19603f3d011682016040523d82523d6000602084013e6124fd565b606091505b50600081511415612543576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253a906134ed565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506125a0565b600190505b949350505050565b606060008214156125f0576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612750565b600082905060005b6000821461262257808061260b90613b17565b915050600a8261261b9190613928565b91506125f8565b60008167ffffffffffffffff811115612664577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6040519080825280601f01601f1916602001820160405280156126965781602001600182028036833780820191505090505b5090505b60008514612749576001826126af91906139b3565b9150600a856126be9190613b8e565b60306126ca91906138d2565b60f81b818381518110612706577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856127429190613928565b945061269a565b8093505050505b919050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08360001c1115612790576000600391509150612859565b601b8560ff16141580156127a85750601c8560ff1614155b156127ba576000600491509150612859565b6000600187878787604051600081526020016040526040516127df9493929190613426565b6020604051602081039080840390855afa158015612801573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561285057600060019250925050612859565b80600092509250505b94509492505050565b60008060007f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60001b841690506000601b60ff8660001c901c6128a591906138d2565b90506128b387828885612755565b935093505050935093915050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b8280546128f090613ab4565b90600052602060002090601f0160209004810192826129125760008555612959565b82601f1061292b57805160ff1916838001178555612959565b82800160010185558215612959579182015b8281111561295857825182559160200191906001019061293d565b5b509050612966919061296a565b5090565b5b8082111561298357600081600090555060010161296b565b5090565b600061299a6129958461382d565b613808565b9050828152602081018484840111156129b257600080fd5b6129bd848285613a72565b509392505050565b60006129d86129d38461385e565b613808565b9050828152602081018484840111156129f057600080fd5b6129fb848285613a72565b509392505050565b600081359050612a128161434f565b92915050565b600081359050612a2781614366565b92915050565b600081359050612a3c8161437d565b92915050565b600081359050612a5181614394565b92915050565b600081519050612a6681614394565b92915050565b600082601f830112612a7d57600080fd5b8135612a8d848260208601612987565b91505092915050565b600082601f830112612aa757600080fd5b8135612ab78482602086016129c5565b91505092915050565b600081359050612acf816143ab565b92915050565b600060208284031215612ae757600080fd5b6000612af584828501612a03565b91505092915050565b60008060408385031215612b1157600080fd5b6000612b1f85828601612a03565b9250506020612b3085828601612a03565b9150509250929050565b600080600060608486031215612b4f57600080fd5b6000612b5d86828701612a03565b9350506020612b6e86828701612a03565b9250506040612b7f86828701612ac0565b9150509250925092565b60008060008060808587031215612b9f57600080fd5b6000612bad87828801612a03565b9450506020612bbe87828801612a03565b9350506040612bcf87828801612ac0565b925050606085013567ffffffffffffffff811115612bec57600080fd5b612bf887828801612a6c565b91505092959194509250565b60008060408385031215612c1757600080fd5b6000612c2585828601612a03565b9250506020612c3685828601612a18565b9150509250929050565b60008060408385031215612c5357600080fd5b6000612c6185828601612a03565b9250506020612c7285828601612ac0565b9150509250929050565b600060208284031215612c8e57600080fd5b6000612c9c84828501612a18565b91505092915050565b600060208284031215612cb757600080fd5b6000612cc584828501612a42565b91505092915050565b600060208284031215612ce057600080fd5b6000612cee84828501612a57565b91505092915050565b600060208284031215612d0957600080fd5b600082013567ffffffffffffffff811115612d2357600080fd5b612d2f84828501612a96565b91505092915050565b600060208284031215612d4a57600080fd5b6000612d5884828501612ac0565b91505092915050565b600080600060608486031215612d7657600080fd5b6000612d8486828701612ac0565b9350506020612d9586828701612a2d565b925050604084013567ffffffffffffffff811115612db257600080fd5b612dbe86828701612a6c565b9150509250925092565b60008060408385031215612ddb57600080fd5b6000612de985828601612ac0565b9250506020612dfa85828601612ac0565b9150509250929050565b612e0d816139e7565b82525050565b612e24612e1f826139e7565b613b60565b82525050565b612e33816139f9565b82525050565b612e4281613a05565b82525050565b612e59612e5482613a05565b613b72565b82525050565b6000612e6a8261388f565b612e7481856138a5565b9350612e84818560208601613a81565b612e8d81613c7b565b840191505092915050565b6000612ea38261389a565b612ead81856138b6565b9350612ebd818560208601613a81565b612ec681613c7b565b840191505092915050565b6000612edc8261389a565b612ee681856138c7565b9350612ef6818560208601613a81565b80840191505092915050565b6000612f0f6018836138b6565b9150612f1a82613c99565b602082019050919050565b6000612f32601e836138b6565b9150612f3d82613cc2565b602082019050919050565b6000612f55601f836138b6565b9150612f6082613ceb565b602082019050919050565b6000612f78601c836138c7565b9150612f8382613d14565b601c82019050919050565b6000612f9b6032836138b6565b9150612fa682613d3d565b604082019050919050565b6000612fbe6026836138b6565b9150612fc982613d8c565b604082019050919050565b6000612fe16025836138b6565b9150612fec82613ddb565b604082019050919050565b6000613004601c836138b6565b915061300f82613e2a565b602082019050919050565b60006130276024836138b6565b915061303282613e53565b604082019050919050565b600061304a6019836138b6565b915061305582613ea2565b602082019050919050565b600061306d6022836138b6565b915061307882613ecb565b604082019050919050565b6000613090602c836138b6565b915061309b82613f1a565b604082019050919050565b60006130b36038836138b6565b91506130be82613f69565b604082019050919050565b60006130d6602a836138b6565b91506130e182613fb8565b604082019050919050565b60006130f96029836138b6565b915061310482614007565b604082019050919050565b600061311c6022836138b6565b915061312782614056565b604082019050919050565b600061313f601e836138b6565b915061314a826140a5565b602082019050919050565b60006131626020836138b6565b915061316d826140ce565b602082019050919050565b60006131856031836138b6565b9150613190826140f7565b604082019050919050565b60006131a8601c836138b6565b91506131b382614146565b602082019050919050565b60006131cb602c836138b6565b91506131d68261416f565b604082019050919050565b60006131ee6020836138b6565b91506131f9826141be565b602082019050919050565b60006132116010836138b6565b915061321c826141e7565b602082019050919050565b6000613234602f836138b6565b915061323f82614210565b604082019050919050565b6000613257601b836138b6565b91506132628261425f565b602082019050919050565b600061327a6021836138b6565b915061328582614288565b604082019050919050565b600061329d6016836138b6565b91506132a8826142d7565b602082019050919050565b60006132c06031836138b6565b91506132cb82614300565b604082019050919050565b6132df81613a5b565b82525050565b6132ee81613a65565b82525050565b60006133008286612e13565b6014820191506133108285612e13565b6014820191506133208284612e48565b602082019150819050949350505050565b600061333d8285612ed1565b91506133498284612ed1565b91508190509392505050565b600061336082612f6b565b915061336c8284612e48565b60208201915081905092915050565b60006020820190506133906000830184612e04565b92915050565b60006080820190506133ab6000830187612e04565b6133b86020830186612e04565b6133c560408301856132d6565b81810360608301526133d78184612e5f565b905095945050505050565b60006040820190506133f76000830185612e04565b61340460208301846132d6565b9392505050565b60006020820190506134206000830184612e2a565b92915050565b600060808201905061343b6000830187612e39565b61344860208301866132e5565b6134556040830185612e39565b6134626060830184612e39565b95945050505050565b600060208201905081810360008301526134858184612e98565b905092915050565b600060208201905081810360008301526134a681612f02565b9050919050565b600060208201905081810360008301526134c681612f25565b9050919050565b600060208201905081810360008301526134e681612f48565b9050919050565b6000602082019050818103600083015261350681612f8e565b9050919050565b6000602082019050818103600083015261352681612fb1565b9050919050565b6000602082019050818103600083015261354681612fd4565b9050919050565b6000602082019050818103600083015261356681612ff7565b9050919050565b600060208201905081810360008301526135868161301a565b9050919050565b600060208201905081810360008301526135a68161303d565b9050919050565b600060208201905081810360008301526135c681613060565b9050919050565b600060208201905081810360008301526135e681613083565b9050919050565b60006020820190508181036000830152613606816130a6565b9050919050565b60006020820190508181036000830152613626816130c9565b9050919050565b60006020820190508181036000830152613646816130ec565b9050919050565b600060208201905081810360008301526136668161310f565b9050919050565b6000602082019050818103600083015261368681613132565b9050919050565b600060208201905081810360008301526136a681613155565b9050919050565b600060208201905081810360008301526136c681613178565b9050919050565b600060208201905081810360008301526136e68161319b565b9050919050565b60006020820190508181036000830152613706816131be565b9050919050565b60006020820190508181036000830152613726816131e1565b9050919050565b6000602082019050818103600083015261374681613204565b9050919050565b6000602082019050818103600083015261376681613227565b9050919050565b600060208201905081810360008301526137868161324a565b9050919050565b600060208201905081810360008301526137a68161326d565b9050919050565b600060208201905081810360008301526137c681613290565b9050919050565b600060208201905081810360008301526137e6816132b3565b9050919050565b600060208201905061380260008301846132d6565b92915050565b6000613812613823565b905061381e8282613ae6565b919050565b6000604051905090565b600067ffffffffffffffff82111561384857613847613c4c565b5b61385182613c7b565b9050602081019050919050565b600067ffffffffffffffff82111561387957613878613c4c565b5b61388282613c7b565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b60006138dd82613a5b565b91506138e883613a5b565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561391d5761391c613bbf565b5b828201905092915050565b600061393382613a5b565b915061393e83613a5b565b92508261394e5761394d613bee565b5b828204905092915050565b600061396482613a5b565b915061396f83613a5b565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156139a8576139a7613bbf565b5b828202905092915050565b60006139be82613a5b565b91506139c983613a5b565b9250828210156139dc576139db613bbf565b5b828203905092915050565b60006139f282613a3b565b9050919050565b60008115159050919050565b6000819050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015613a9f578082015181840152602081019050613a84565b83811115613aae576000848401525b50505050565b60006002820490506001821680613acc57607f821691505b60208210811415613ae057613adf613c1d565b5b50919050565b613aef82613c7b565b810181811067ffffffffffffffff82111715613b0e57613b0d613c4c565b5b80604052505050565b6000613b2282613a5b565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613b5557613b54613bbf565b5b600182019050919050565b6000613b6b82613b7c565b9050919050565b6000819050919050565b6000613b8782613c8c565b9050919050565b6000613b9982613a5b565b9150613ba483613a5b565b925082613bb457613bb3613bee565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b7f45434453413a20696e76616c6964207369676e61747572650000000000000000600082015250565b7f5369676e617475726520766572696669636174696f6e206661696c65642e0000600082015250565b7f45434453413a20696e76616c6964207369676e6174757265206c656e67746800600082015250565b7f19457468657265756d205369676e6564204d6573736167653a0a333200000000600082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008201527f7565000000000000000000000000000000000000000000000000000000000000602082015250565b7f43616e6e6f74206d696e742074686174206d616e79206174206f6e63652e0000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b7f50726f6a6563742069732066696e6973686564206d696e74696e672e00000000600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f43616e206f6e6c79206d696e7420312100000000000000000000000000000000600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f53616c742068617320616c7265616479206265656e20757365642e0000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f4d696e74696e67206973206e6f74206163746976652e00000000000000000000600082015250565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b614358816139e7565b811461436357600080fd5b50565b61436f816139f9565b811461437a57600080fd5b50565b61438681613a05565b811461439157600080fd5b50565b61439d81613a0f565b81146143a857600080fd5b50565b6143b481613a5b565b81146143bf57600080fd5b5056fea2646970667358221220fa178b04742c566f32fbd792df5836a925bf8fcff34d3b718f83616ba092d9ab64736f6c634300080100330000000000000000000000009eba90e3b2e1cb4f07052e1e8d9313e135c1deb0