Loading
[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "string", "name": "_tokenURI", "type": "string" }, { "internalType": "address", "name": "_creator", "type": "address" }, { "internalType": "uint256", "name": "_creatorFee", "type": "uint256" }, { "internalType": "uint96", "name": "_creatorRoyalty", "type": "uint96" }, { "internalType": "address", "name": "_admin", "type": "address" }, { "internalType": "uint256", "name": "_adminFee", "type": "uint256" }, { "internalType": "address", "name": "_referrer", "type": "address" }, { "internalType": "contract IERC20", "name": "_payToken", "type": "address" }, { "internalType": "contract IBondingCurve", "name": "_bondingCurve", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "CreatorToken__AddressZeroNotAllowed", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "caller", "type": "address" } ], "name": "CreatorToken__CallerIsNotOwner", "type": "error" }, { "inputs": [], "name": "CreatorToken__ContractIsPaused", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "circulatingSupply", "type": "uint256" } ], "name": "CreatorToken__LastTokensCannotBeSold", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "fee", "type": "uint256" }, { "internalType": "uint256", "name": "maxFee", "type": "uint256" } ], "name": "CreatorToken__MaxFeeExceeded", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "maxPayment", "type": "uint256" } ], "name": "CreatorToken__MaxPaymentExceeded", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "uint256", "name": "minAcceptedPrice", "type": "uint256" } ], "name": "CreatorToken__MinAcceptedPriceExceeded", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "holdingTime", "type": "uint256" }, { "internalType": "uint256", "name": "minHoldingTime", "type": "uint256" } ], "name": "CreatorToken__MinHoldingTimeNotReached", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "reason", "type": "bytes32" }, { "internalType": "address", "name": "caller", "type": "address" } ], "name": "CreatorToken__Unauthorized", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminUpdated", "type": "event" }, { "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": "payer", "type": "address" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "paymentAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "creatorFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "adminFee", "type": "uint256" } ], "name": "Bought", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "oldCreator", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newCreator", "type": "address" } ], "name": "CreatorUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "seller", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "salePrice", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "creatorFee", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "adminFee", "type": "uint256" } ], "name": "Sold", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "bool", "name": "oldPauseState", "type": "bool" }, { "indexed": false, "internalType": "bool", "name": "newPauseState", "type": "bool" }, { "indexed": false, "internalType": "address", "name": "caller", "type": "address" } ], "name": "ToggledPause", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "oldTokenURI", "type": "string" }, { "indexed": false, "internalType": "string", "name": "newTokenURI", "type": "string" } ], "name": "TokenURIUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "ADMIN_FEE_BIPS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "BONDING_CURVE", "outputs": [ { "internalType": "contract IBondingCurve", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "CREATOR_FEE_BIPS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "CREATOR_ROYALTY_BIPS", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "REFERRER", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "admin", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_numOfTokens", "type": "uint256" }, { "internalType": "uint256", "name": "_maxPayment", "type": "uint256" } ], "name": "bulkBuy", "outputs": [ { "internalType": "uint256", "name": "_totalPrice", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_numOfTokens", "type": "uint256" }, { "internalType": "uint256", "name": "_maxPayment", "type": "uint256" } ], "name": "bulkBuy", "outputs": [ { "internalType": "uint256", "name": "_totalPrice", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" }, { "internalType": "uint256", "name": "_minAcceptedPrice", "type": "uint256" } ], "name": "bulkSell", "outputs": [ { "internalType": "uint256", "name": "_netProceeds", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_tokenIds", "type": "uint256[]" } ], "name": "bulkSell", "outputs": [ { "internalType": "uint256", "name": "_netProceeds", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_maxPayment", "type": "uint256" } ], "name": "buy", "outputs": [ { "internalType": "uint256", "name": "_totalPrice", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxPayment", "type": "uint256" } ], "name": "buy", "outputs": [ { "internalType": "uint256", "name": "_totalPrice", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_price", "type": "uint256" } ], "name": "calculateFees", "outputs": [ { "internalType": "uint256", "name": "_creatorFee", "type": "uint256" }, { "internalType": "uint256", "name": "_adminFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "creator", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "isPaused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "lastId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_pauseState", "type": "bool" } ], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "payToken", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "priceToBuyNext", "outputs": [ { "internalType": "uint256", "name": "_tokenPrice", "type": "uint256" }, { "internalType": "uint256", "name": "_creatorFee", "type": "uint256" }, { "internalType": "uint256", "name": "_adminFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_numOfTokens", "type": "uint256" } ], "name": "priceToBuyNext", "outputs": [ { "internalType": "uint256", "name": "_tokenPrice", "type": "uint256" }, { "internalType": "uint256", "name": "_creatorFee", "type": "uint256" }, { "internalType": "uint256", "name": "_adminFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_numOfTokens", "type": "uint256" } ], "name": "priceToSellNext", "outputs": [ { "internalType": "uint256", "name": "_tokenPrice", "type": "uint256" }, { "internalType": "uint256", "name": "_creatorFee", "type": "uint256" }, { "internalType": "uint256", "name": "_adminFee", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "priceToSellNext", "outputs": [ { "internalType": "uint256", "name": "_tokenPrice", "type": "uint256" }, { "internalType": "uint256", "name": "_creatorFee", "type": "uint256" }, { "internalType": "uint256", "name": "_adminFee", "type": "uint256" } ], "stateMutability": "view", "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": "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": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_minAcceptedPrice", "type": "uint256" } ], "name": "sell", "outputs": [ { "internalType": "uint256", "name": "_netProceeds", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "sell", "outputs": [ { "internalType": "uint256", "name": "_netProceeds", "type": "uint256" } ], "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": "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": "", "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": "_newAdmin", "type": "address" } ], "name": "updateAdmin", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newCreator", "type": "address" } ], "name": "updateCreator", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newTokenURI", "type": "string" } ], "name": "updateTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6101206040523480156200001257600080fd5b50604051620045ab380380620045ab8339810160408190526200003591620005e2565b8a8a600262000045838262000797565b50600362000054828262000797565b50899150506001600160a01b0381166200008157604051631745eecb60e21b815260040160405180910390fd5b856001600160a01b038116620000aa57604051631745eecb60e21b815260040160405180910390fd5b6109c4891115620000de57604051630bd0becd60e11b8152600481018a90526109c460248201526044015b60405180910390fd5b6109c4886001600160601b031611156200011f57604051630bd0becd60e11b81526001600160601b03891660048201526109c46024820152604401620000d5565b6109c48611156200014f57604051630bd0becd60e11b8152600481018790526109c46024820152604401620000d5565b600c6200015d8c8262000797565b50600a80546001600160a01b0319166001600160a01b038c1617905560c08990526001600160601b03881660e052620001978a896200020f565b600b80546001600160a01b03808a166001600160a01b031992831617909255610100889052868216608052600d80548784169216919091179055831660a052620001e18a62000310565b6001600160a01b03851615620001fc57620001fc8562000310565b505050505050505050505050506200088b565b6127106001600160601b03821611156200027f5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b6064820152608401620000d5565b6001600160a01b038216620002d75760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401620000d5565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600055565b60016008600082825462000325919062000863565b90915550506008546200033a90829062000357565b6001600960008282546200034f919062000863565b909155505050565b6001600160a01b038216620003af5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401620000d5565b6000818152600460205260409020546001600160a01b031615620004165760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401620000d5565b6000818152600460205260409020546001600160a01b0316156200047d5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401620000d5565b6001600160a01b038216600081815260056020908152604080832080546001019055848352600490915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200051057600080fd5b81516001600160401b03808211156200052d576200052d620004e8565b604051601f8301601f19908116603f01168101908282118183101715620005585762000558620004e8565b816040528381526020925086838588010111156200057557600080fd5b600091505b838210156200059957858201830151818301840152908201906200057a565b600093810190920192909252949350505050565b80516001600160a01b0381168114620005c557600080fd5b919050565b80516001600160601b0381168114620005c557600080fd5b60008060008060008060008060008060006101608c8e0312156200060557600080fd5b8b516001600160401b038111156200061c57600080fd5b6200062a8e828f01620004fe565b60208e0151909c5090506001600160401b038111156200064957600080fd5b620006578e828f01620004fe565b60408e0151909b5090506001600160401b038111156200067657600080fd5b620006848e828f01620004fe565b9950506200069560608d01620005ad565b975060808c01519650620006ac60a08d01620005ca565b9550620006bc60c08d01620005ad565b945060e08c01519350620006d46101008d01620005ad565b9250620006e56101208d01620005ad565b9150620006f66101408d01620005ad565b90509295989b509295989b9093969950565b600181811c908216806200071d57607f821691505b6020821081036200073e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200079257600081815260208120601f850160051c810160208610156200076d5750805b601f850160051c820191505b818110156200078e5782815560010162000779565b5050505b505050565b81516001600160401b03811115620007b357620007b3620004e8565b620007cb81620007c4845462000708565b8462000744565b602080601f831160018114620008035760008415620007ea5750858301515b600019600386901b1c1916600185901b1785556200078e565b600085815260208120601f198616915b82811015620008345788860151825594840194600190910190840162000813565b5085821015620008535787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200088557634e487b7160e01b600052601160045260246000fd5b92915050565b60805160a05160c05160e05161010051613c95620009166000396000818161037f01526110e301526000818161047e0152610c6a0152600081816106fc01526110aa01526000818161055101528181610e9401528181610fbf015281816112c0015261139b0152600081816105fe015281816123000152818161268001526126cc0152613c956000f3fe608060405234801561001057600080fd5b50600436106102de5760003560e01c80639138194911610186578063c87b56dd116100e3578063e4849b3211610097578063f1d6b54011610071578063f1d6b5401461071e578063f851a44014610731578063f8a8696f1461075157600080fd5b8063e4849b321461069b578063e985e9c5146106ae578063eeab8ea0146106f757600080fd5b8063d79875eb116100c8578063d79875eb14610662578063d96a094a14610675578063e2f273bd1461068857600080fd5b8063c87b56dd1461063c578063cce7ec131461064f57600080fd5b8063b187bd261161013a578063c05603741161011f578063c0560374146105f9578063c1292cc314610620578063c85381851461062957600080fd5b8063b187bd26146105c1578063b88d4fde146105e657600080fd5b806396336b301161016b57806396336b301461057b57806398cd61531461059b578063a22cb465146105ae57600080fd5b8063913819491461054c57806395d89b411461057357600080fd5b806323b872dd1161023f57806350b7a5fa116101f357806370a08231116101cd57806370a082311461051e57806379e58107146105315780638de9f9721461054457600080fd5b806350b7a5fa146104d057806352238fdd146104e35780636352211e1461050b57600080fd5b806330df46511161022457806330df4651146104565780633eb382f91461047957806342842e0e146104bd57600080fd5b806323b872dd146104045780632a55205a1461041757600080fd5b8063081812fc1161029657806318160ddd1161027b57806318160ddd146103d55780631a2084f1146103de578063211bd194146103f157600080fd5b8063081812fc146103af578063095ea7b3146103c257600080fd5b806302d05d3f116102c757806302d05d3f1461032057806306fdde0314610365578063076771111461037a57600080fd5b806301ffc9a7146102e357806302329a291461030b575b600080fd5b6102f66102f136600461332e565b610764565b60405190151581526020015b60405180910390f35b61031e610319366004613359565b610775565b005b600a546103409073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610302565b61036d6108e0565b60405161030291906133e4565b6103a17f000000000000000000000000000000000000000000000000000000000000000081565b604051908152602001610302565b6103406103bd3660046133f7565b610972565b61031e6103d0366004613439565b6109a6565b6103a160095481565b61031e6103ec366004613463565b610b5d565b6103a16103ff36600461347e565b610ce1565b61031e6104123660046134a0565b610cf5565b61042a61042536600461347e565b610d96565b6040805173ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915201610302565b61045e610e8d565b60408051938452602084019290925290820152606001610302565b6104a07f000000000000000000000000000000000000000000000000000000000000000081565b6040516bffffffffffffffffffffffff9091168152602001610302565b61031e6104cb3660046134a0565b610f62565b61045e6104de3660046133f7565b610f7d565b6104f66104f13660046133f7565b61109f565b60408051928352602083019190915201610302565b6103406105193660046133f7565b611119565b6103a161052c366004613463565b6111a5565b61045e61053f3660046133f7565b611273565b61045e611394565b6103407f000000000000000000000000000000000000000000000000000000000000000081565b61036d6113ea565b600d546103409073ffffffffffffffffffffffffffffffffffffffff1681565b61031e6105a93660046135d0565b6113f9565b61031e6105bc366004613619565b6114f9565b600b546102f69074010000000000000000000000000000000000000000900460ff1681565b61031e6105f4366004613650565b611508565b6103407f000000000000000000000000000000000000000000000000000000000000000081565b6103a160085481565b6103a1610637366004613741565b6115b0565b61036d61064a3660046133f7565b6116ef565b6103a161065d366004613439565b611783565b6103a161067036600461347e565b61187a565b6103a16106833660046133f7565b611953565b61031e610696366004613463565b61195f565b6103a16106a93660046133f7565b611aa0565b6102f66106bc366004613786565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b6103a17f000000000000000000000000000000000000000000000000000000000000000081565b6103a161072c3660046137b9565b611aad565b600b546103409073ffffffffffffffffffffffffffffffffffffffff1681565b6103a161075f3660046137ee565b611aba565b600061076f82611bf8565b92915050565b600a54339073ffffffffffffffffffffffffffffffffffffffff1681148015906107ba5750600b5473ffffffffffffffffffffffffffffffffffffffff828116911614155b15610834576040517feb32bc380000000000000000000000000000000000000000000000000000000081527f6e6f742063726561746f72206f722061646d696e000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff821660248201526044015b60405180910390fd5b600b54604080517401000000000000000000000000000000000000000090920460ff1615158252831515602083015233908201527f6310d2775f6f97be8c03bbb6bbb5d8cff9eb3e1d780aa5b615713a06c55f298f9060600160405180910390a150600b805491151574010000000000000000000000000000000000000000027fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff909216919091179055565b6060600280546108ef90613821565b80601f016020809104026020016040519081016040528092919081815260200182805461091b90613821565b80156109685780601f1061093d57610100808354040283529160200191610968565b820191906000526020600020905b81548152906001019060200180831161094b57829003601f168201915b5050505050905090565b600061097d82611c9a565b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60006109b182611119565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a6e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f7200000000000000000000000000000000000000000000000000000000000000606482015260840161082b565b3373ffffffffffffffffffffffffffffffffffffffff82161480610ac2575073ffffffffffffffffffffffffffffffffffffffff8116600090815260076020908152604080832033845290915290205460ff165b610b4e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000606482015260840161082b565b610b588383611d28565b505050565b8073ffffffffffffffffffffffffffffffffffffffff8116610bab576040517f5d17bb2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600a5473ffffffffffffffffffffffffffffffffffffffff163314610c24576040517feb32bc380000000000000000000000000000000000000000000000000000000081527f6e6f742063726561746f72000000000000000000000000000000000000000000600482015233602482015260440161082b565b600a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8416179055610c8e827f0000000000000000000000000000000000000000000000000000000000000000611dc8565b6040805133815273ffffffffffffffffffffffffffffffffffffffff841660208201527f3fd5fa996ec802a4343695754eb4922a2cbba99ad7b6fa1af73a2881d62d7ddd91015b60405180910390a15050565b6000610cee338484611aba565b9392505050565b610cff3382611f41565b610d8b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f76656400000000000000000000000000000000000000606482015260840161082b565b610b58838383612001565b600082815260016020908152604080832081518083019092525473ffffffffffffffffffffffffffffffffffffffff8116808352740100000000000000000000000000000000000000009091046bffffffffffffffffffffffff16928201929092528291610e5157506040805180820190915260005473ffffffffffffffffffffffffffffffffffffffff811682527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1660208201525b602081015160009061271090610e75906bffffffffffffffffffffffff16876138a3565b610e7f91906138ba565b915196919550909350505050565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c89ea35d610ed66122fc565b600954610ee49060016138f5565b610eee9190613908565b6040518263ffffffff1660e01b8152600401610f0c91815260200190565b602060405180830381865afa158015610f29573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4d919061391b565b9250610f588361109f565b9394909392509050565b610b5883838360405180602001604052806000815250611508565b600080600080610f8b6122fc565b600954610f989190613908565b905060008080805b888110156110935773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663c89ea35d610fee8388613908565b6040518263ffffffff1660e01b815260040161100c91815260200190565b602060405180830381865afa158015611029573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061104d919061391b565b93506110588461109f565b909350915061106784896138f5565b975061107383886138f5565b965061107f82876138f5565b95508061108b81613934565b915050610fa0565b50505050509193909250565b6000806127106110cf7f0000000000000000000000000000000000000000000000000000000000000000856138a3565b6110d991906138ba565b91506127106111087f0000000000000000000000000000000000000000000000000000000000000000856138a3565b61111291906138ba565b9050915091565b60008181526004602052604081205473ffffffffffffffffffffffffffffffffffffffff168061076f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161082b565b600073ffffffffffffffffffffffffffffffffffffffff821661124a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e65720000000000000000000000000000000000000000000000606482015260840161082b565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205490565b6000806000806112816122fc565b60095461128f9060016138f5565b6112999190613908565b905060008080805b888110156110935773ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001663c89ea35d6112ef87846138f5565b6040518263ffffffff1660e01b815260040161130d91815260200190565b602060405180830381865afa15801561132a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134e919061391b565b93506113598461109f565b909350915061136884896138f5565b975061137483886138f5565b965061138082876138f5565b95508061138c81613934565b9150506112a1565b60008060007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663c89ea35d6113dd6122fc565b600954610eee9190613908565b6060600380546108ef90613821565b600a54339073ffffffffffffffffffffffffffffffffffffffff16811480159061143e5750600b5473ffffffffffffffffffffffffffffffffffffffff828116911614155b156114b3576040517feb32bc380000000000000000000000000000000000000000000000000000000081527f6e6f742063726561746f72206f722061646d696e000000000000000000000000600482015273ffffffffffffffffffffffffffffffffffffffff8216602482015260440161082b565b7ffd07e2c2d6dc82f4d6b1b46f25e49eb888aba92d238fb40945856412cce2f2dd600c836040516114e592919061396c565b60405180910390a1600c610b588382613a77565b61150433838361234c565b5050565b6115123383611f41565b61159e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206f7220617070726f76656400000000000000000000000000000000000000606482015260840161082b565b6115aa84848484612479565b50505050565b60008060008060008060005b8851811015611624576115e78982815181106115da576115da613b91565b602002602001015161251c565b919850935091506115f887876138f5565b955061160483866138f5565b945061161082856138f5565b93508061161c81613934565b9150506115bc565b508495508686101561166c576040517f8af85c15000000000000000000000000000000000000000000000000000000008152600481018790526024810188905260440161082b565b600d546116909073ffffffffffffffffffffffffffffffffffffffff1633886127db565b600a54600d546116ba9173ffffffffffffffffffffffffffffffffffffffff9182169116866127db565b600b54600d546116e49173ffffffffffffffffffffffffffffffffffffffff9182169116856127db565b505050505092915050565b6060600c80546116fe90613821565b80601f016020809104026020016040519081016040528092919081815260200182805461172a90613821565b80156117775780601f1061174c57610100808354040283529160200191611777565b820191906000526020600020905b81548152906001019060200180831161175a57829003601f168201915b50505050509050919050565b600080600080611792866128af565b91945092509050806117a483856138f5565b6117ae91906138f5565b9350848411156117f4576040517fff5f8fe7000000000000000000000000000000000000000000000000000000008152600481018590526024810186905260440161082b565b600d546118199073ffffffffffffffffffffffffffffffffffffffff1633308661298e565b600a54600d546118459173ffffffffffffffffffffffffffffffffffffffff918216913391168561298e565b600b54600d546118719173ffffffffffffffffffffffffffffffffffffffff918216913391168461298e565b50505092915050565b60008060006118888561251c565b91945092509050838310156118d3576040517f8af85c15000000000000000000000000000000000000000000000000000000008152600481018490526024810185905260440161082b565b600d546118f79073ffffffffffffffffffffffffffffffffffffffff1633856127db565b600a54600d546119219173ffffffffffffffffffffffffffffffffffffffff9182169116846127db565b600b54600d5461194b9173ffffffffffffffffffffffffffffffffffffffff9182169116836127db565b505092915050565b600061076f3383611783565b8073ffffffffffffffffffffffffffffffffffffffff81166119ad576040517f5d17bb2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600b5473ffffffffffffffffffffffffffffffffffffffff163314611a26576040517feb32bc380000000000000000000000000000000000000000000000000000000081527f6e6f742061646d696e0000000000000000000000000000000000000000000000600482015233602482015260440161082b565b600b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091556040805133815260208101929092527f101b8081ff3b56bbf45deb824d86a3b0fd38b7e3dd42421105cf8abe9106db0b9101610cd5565b600061076f82600061187a565b600061076f8260006115b0565b6000808080808080805b89811015611b1257611ad58b6128af565b91955093509150611ae684886138f5565b9650611af283876138f5565b9550611afe82866138f5565b945080611b0a81613934565b915050611ac4565b5083611b1e86886138f5565b611b2891906138f5565b965087871115611b6e576040517fff5f8fe7000000000000000000000000000000000000000000000000000000008152600481018890526024810189905260440161082b565b600d54611b939073ffffffffffffffffffffffffffffffffffffffff1633308961298e565b600a54600d54611bbf9173ffffffffffffffffffffffffffffffffffffffff918216913391168861298e565b600b54600d54611beb9173ffffffffffffffffffffffffffffffffffffffff918216913391168761298e565b5050505050509392505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd000000000000000000000000000000000000000000000000000000001480611c8b57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061076f575061076f826129ec565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff16611d25576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161082b565b50565b600081815260066020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff84169081179091558190611d8282611119565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6127106bffffffffffffffffffffffff82161115611e68576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c2065786365656460448201527f2073616c65507269636500000000000000000000000000000000000000000000606482015260840161082b565b73ffffffffffffffffffffffffffffffffffffffff8216611ee5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640161082b565b6040805180820190915273ffffffffffffffffffffffffffffffffffffffff9092168083526bffffffffffffffffffffffff90911660209092018290527401000000000000000000000000000000000000000090910217600055565b600080611f4d83611119565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611fbb575073ffffffffffffffffffffffffffffffffffffffff80821660009081526007602090815260408083209388168352929052205460ff165b80611ff957508373ffffffffffffffffffffffffffffffffffffffff16611fe184610972565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff1661202182611119565b73ffffffffffffffffffffffffffffffffffffffff16146120c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161082b565b73ffffffffffffffffffffffffffffffffffffffff8216612166576040517f08c379a0000000000000000000000000000000000000000000000000000000008152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161082b565b8273ffffffffffffffffffffffffffffffffffffffff1661218682611119565b73ffffffffffffffffffffffffffffffffffffffff1614612229576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161082b565b600081815260066020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff8781168086526005855283862080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01905590871680865283862080546001019055868652600490945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1615612341576002612344565b60015b60ff16905090565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036123e1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161082b565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526007602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612484848484612001565b61249084848484612a83565b6115aa576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161082b565b6000806000600b60149054906101000a900460ff1615612568576040517f032bebb100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61257184611119565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461260457836125ad85611119565b6040517f785b88ac000000000000000000000000000000000000000000000000000000008152600481019290925273ffffffffffffffffffffffffffffffffffffffff16602482015233604482015260640161082b565b6000848152600e6020526040902054603c906126209042613908565b101561267c576000848152600e602052604090205461263f9042613908565b6040517f4f8c28c90000000000000000000000000000000000000000000000000000000081526004810191909152603c602482015260440161082b565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161580156126c457506009546001145b8061271157507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161580159061271157506009546002145b90508015612751576009546040517f581d53d600000000000000000000000000000000000000000000000000000000815260040161082b91815260200190565b600061275b611394565b909550935090508261276d8583613908565b6127779190613908565b9450612784333088610cf5565b61278d86612c76565b6040805182815260208101869052908101849052869033907f490fdc1c23c0f3a84bf80a0384eaadcb9188c9ef71b9430da391a0e4c4c39bf69060600160405180910390a350509193909250565b60405173ffffffffffffffffffffffffffffffffffffffff8316602482015260448101829052610b589084907fa9059cbb00000000000000000000000000000000000000000000000000000000906064015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152612c9a565b6000806000600b60149054906101000a900460ff16156128fb576040517f032bebb100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b612903610e8d565b9194509250905061291384612da9565b600880546000908152600e6020908152604091829020429055915481518681529283018590529082018390529073ffffffffffffffffffffffffffffffffffffffff86169033907f2683a506cc521e11c368ce9c068585a91786a3cb7ab4089b602eb2835acb16399060600160405180910390a49193909250565b60405173ffffffffffffffffffffffffffffffffffffffff808516602483015283166044820152606481018290526115aa9085907f23b872dd000000000000000000000000000000000000000000000000000000009060840161282d565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a00000000000000000000000000000000000000000000000000000000148061076f57507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff0000000000000000000000000000000000000000000000000000000083161461076f565b600073ffffffffffffffffffffffffffffffffffffffff84163b15612c6b576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290612afa903390899088908890600401613bc0565b6020604051808303816000875af1925050508015612b53575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252612b5091810190613c09565b60015b612c20573d808015612b81576040519150601f19603f3d011682016040523d82523d6000602084013e612b86565b606091505b508051600003612c18576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161082b565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611ff9565b506001949350505050565b612c7f81612de2565b600160096000828254612c929190613908565b909155505050565b6000612cfc826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c65648152508573ffffffffffffffffffffffffffffffffffffffff16612dfc9092919063ffffffff16565b9050805160001480612d1d575080806020019051810190612d1d9190613c26565b610b58576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f74207375636365656400000000000000000000000000000000000000000000606482015260840161082b565b600160086000828254612dbc91906138f5565b92505081905550612dcf81600854612e0b565b600160096000828254612c9291906138f5565b612deb81613030565b600090815260016020526040812055565b6060611ff98484600085613108565b73ffffffffffffffffffffffffffffffffffffffff8216612e88576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161082b565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612f14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161082b565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff1615612fa0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161082b565b73ffffffffffffffffffffffffffffffffffffffff8216600081815260056020908152604080832080546001019055848352600490915280822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b600061303b82611119565b905061304682611119565b600083815260066020908152604080832080547fffffffffffffffffffffffff000000000000000000000000000000000000000090811690915573ffffffffffffffffffffffffffffffffffffffff85168085526005845282852080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190558785526004909352818420805490911690555192935084927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60608247101561319a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c0000000000000000000000000000000000000000000000000000606482015260840161082b565b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040516131c39190613c43565b60006040518083038185875af1925050503d8060008114613200576040519150601f19603f3d011682016040523d82523d6000602084013e613205565b606091505b509150915061321687838387613221565b979650505050505050565b606083156132b75782516000036132b05773ffffffffffffffffffffffffffffffffffffffff85163b6132b0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161082b565b5081611ff9565b611ff983838151156132cc5781518083602001fd5b806040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161082b91906133e4565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114611d2557600080fd5b60006020828403121561334057600080fd5b8135610cee81613300565b8015158114611d2557600080fd5b60006020828403121561336b57600080fd5b8135610cee8161334b565b60005b83811015613391578181015183820152602001613379565b50506000910152565b600081518084526133b2816020860160208601613376565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000610cee602083018461339a565b60006020828403121561340957600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff8116811461343457600080fd5b919050565b6000806040838503121561344c57600080fd5b61345583613410565b946020939093013593505050565b60006020828403121561347557600080fd5b610cee82613410565b6000806040838503121561349157600080fd5b50508035926020909101359150565b6000806000606084860312156134b557600080fd5b6134be84613410565b92506134cc60208501613410565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613552576135526134dc565b604052919050565b600067ffffffffffffffff831115613574576135746134dc565b6135a560207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8601160161350b565b90508281528383830111156135b957600080fd5b828260208301376000602084830101529392505050565b6000602082840312156135e257600080fd5b813567ffffffffffffffff8111156135f957600080fd5b8201601f8101841361360a57600080fd5b611ff98482356020840161355a565b6000806040838503121561362c57600080fd5b61363583613410565b915060208301356136458161334b565b809150509250929050565b6000806000806080858703121561366657600080fd5b61366f85613410565b935061367d60208601613410565b925060408501359150606085013567ffffffffffffffff8111156136a057600080fd5b8501601f810187136136b157600080fd5b6136c08782356020840161355a565b91505092959194509250565b600082601f8301126136dd57600080fd5b8135602067ffffffffffffffff8211156136f9576136f96134dc565b8160051b61370882820161350b565b928352848101820192828101908785111561372257600080fd5b83870192505b8483101561321657823582529183019190830190613728565b6000806040838503121561375457600080fd5b823567ffffffffffffffff81111561376b57600080fd5b613777858286016136cc565b95602094909401359450505050565b6000806040838503121561379957600080fd5b6137a283613410565b91506137b060208401613410565b90509250929050565b6000602082840312156137cb57600080fd5b813567ffffffffffffffff8111156137e257600080fd5b611ff9848285016136cc565b60008060006060848603121561380357600080fd5b61380c84613410565b95602085013595506040909401359392505050565b600181811c9082168061383557607f821691505b60208210810361386e577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b808202811582820484141761076f5761076f613874565b6000826138f0577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b8082018082111561076f5761076f613874565b8181038181111561076f5761076f613874565b60006020828403121561392d57600080fd5b5051919050565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361396557613965613874565b5060010190565b60408152600080845461397e81613821565b80604086015260606001808416600081146139a057600181146139d857613a09565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008516838901528284151560051b8901019550613a09565b8960005260208060002060005b86811015613a005781548b82018701529084019082016139e5565b8a018501975050505b50505050508281036020840152613a20818561339a565b95945050505050565b601f821115610b5857600081815260208120601f850160051c81016020861015613a505750805b601f850160051c820191505b81811015613a6f57828155600101613a5c565b505050505050565b815167ffffffffffffffff811115613a9157613a916134dc565b613aa581613a9f8454613821565b84613a29565b602080601f831160018114613af85760008415613ac25750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b178555613a6f565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b82811015613b4557888601518255948401946001909101908401613b26565b5085821015613b8157878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600073ffffffffffffffffffffffffffffffffffffffff808716835280861660208401525083604083015260806060830152613bff608083018461339a565b9695505050505050565b600060208284031215613c1b57600080fd5b8151610cee81613300565b600060208284031215613c3857600080fd5b8151610cee8161334b565b60008251613c55818460208701613376565b919091019291505056fea26469706673582212205d99fea42c95efe2d98a3f16b2143142311b975c93c87669903510173a36a25664736f6c63430008140033000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000000000000000000000200000000000000000000000000ee5cd63198c636fcb659b2b89c0fc4e3997f2e3200000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000003e8000000000000000000000000244312d5330debd654fe1f4e353badac730d7b3c000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000000000000000000000000000000004ed4e862860bed51a9570b96d89af5e1b0efefed0000000000000000000000003e3f7d1fa9ba90a530e6e0c615c2b0ebf9c47d3b000000000000000000000000000000000000000000000000000000000000002540636f6e636572742043726561746f7220546f6b656e206f6e204472616b756c612e61707000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000074452414b554c41000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000042697066733a2f2f6261667972656962746e7376757168373267656964777a7236637135376371756b71326e74636468337670347363323437376e6d74617a36777569000000000000000000000000000000000000000000000000000000000000