[ { "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": "ContractOwnershipTransferred", "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": "uint256", "name": "_id", "type": "uint256" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "uint64", "name": "_mint", "type": "uint64" }, { "internalType": "uint64", "name": "_claim", "type": "uint64" }, { "internalType": "string", "name": "_metadata", "type": "string" }, { "internalType": "address", "name": "_to", "type": "address" } ], "name": "_addMansion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "newTime", "type": "uint64" } ], "name": "_changeClaimTime", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "newReward", "type": "uint64" } ], "name": "_changeRewardPerMansion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "newReward", "type": "uint64" }, { "internalType": "uint64", "name": "newTime", "type": "uint64" }, { "internalType": "uint32", "name": "newPrecision", "type": "uint32" } ], "name": "_changeRewards", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "_deleteMansion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "_ids", "type": "uint256[]" } ], "name": "_deleteMultipleMansion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "malicious", "type": "address" }, { "internalType": "bool", "name": "value", "type": "bool" } ], "name": "_setBlacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "uri", "type": "string" } ], "name": "_setDefaultTokenUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "nodeId", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "name": "_setTokenUriFor", "outputs": [], "stateMutability": "nonpayable", "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" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "balance", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cityMultiplier", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "claim", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "claimTime", "outputs": [ { "internalType": "uint128", "name": "", "type": "uint128" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "string", "name": "nodeName", "type": "string" } ], "name": "createNode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "deadAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "defaultUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "districtMultiplier", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_enable", "type": "bool" } ], "name": "enableTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "foundersMultiplier", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "foundersNFT", "outputs": [ { "internalType": "contract FoundersNFT", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "getAddressRewards", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" } ], "name": "getCityMultiplier", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "getClaimOf", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" } ], "name": "getDistrictMultiplier", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" } ], "name": "getFoundersMultiplier", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "getMansions", "outputs": [ { "components": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "metadata", "type": "string" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint64", "name": "mint", "type": "uint64" }, { "internalType": "uint64", "name": "claim", "type": "uint64" } ], "internalType": "struct MansionManager.Mansion", "name": "", "type": "tuple" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "getMansionsOf", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "getMintOf", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "getNameOf", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_id", "type": "uint256" } ], "name": "getRewardOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" } ], "name": "getUpgradeNodeCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" } ], "name": "getUserMultiplier", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "helperContract", "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": [ { "internalType": "address", "name": "wallet", "type": "address" } ], "name": "isBlacklisted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "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": "owner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "precision", "outputs": [ { "internalType": "uint32", "name": "", "type": "uint32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" } ], "name": "price", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "id", "type": "uint64" }, { "internalType": "string", "name": "newName", "type": "string" } ], "name": "renameMansion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reward", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "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": "uint256", "name": "_foundersMultiplier", "type": "uint256" }, { "internalType": "uint256", "name": "_districtMultiplier", "type": "uint256" }, { "internalType": "uint256", "name": "_cityMultiplier", "type": "uint256" } ], "name": "setMultipliers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_founder", "type": "address" }, { "internalType": "address", "name": "_district", "type": "address" }, { "internalType": "address", "name": "_city", "type": "address" } ], "name": "setNewNodes", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint64", "name": "_vbuy1", "type": "uint64" }, { "internalType": "uint64", "name": "_vbuy2", "type": "uint64" }, { "internalType": "uint64", "name": "_vbuy3", "type": "uint64" }, { "internalType": "uint64", "name": "_vbuy4", "type": "uint64" }, { "internalType": "uint64", "name": "_vbuy5", "type": "uint64" }, { "internalType": "uint64", "name": "_vbuy6", "type": "uint64" } ], "name": "setvbuy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalNodesCreated", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferContractOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "transferIsEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "name": "updateMansion", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_upgradeManager", "type": "address" } ], "name": "updateUpgradeManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "upgradeManager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vbuy1", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vbuy2", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vbuy3", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vbuy4", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vbuy5", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "vbuy6", "outputs": [ { "internalType": "uint64", "name": "", "type": "uint64" } ], "stateMutability": "view", "type": "function" } ]
600280546001600160a01b0319908116733026c8ce0da81709a633e5a4a6745a188c25513717909155600b805490911661dead17905579048505f5e100000000000000000000000000000000000000dead600c55600d80546001600160801b0319166201518017905560a06040819052600060808190526200008491600e91620001ce565b506001600f9081557823000000000000001e00000000000000190000000000000014601055601180546001600160801b031916682d000000000000002817905560fa6012556013556000601455601580546001600160a81b031916743026c8ce0da81709a633e5a4a6745a188c255137001790556016805461dead6001600160a01b031991821681179092556017805490911690911790553480156200012957600080fd5b5062000135336200017e565b600180546001600160a01b0319163390811790915560405181906000907f2260a4d0c00902d7996e8f7d669d22564414d41be4d278a40387ddf58179d392908290a350620002b1565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054620001dc9062000274565b90600052602060002090601f0160209004810192826200020057600085556200024b565b82601f106200021b57805160ff19168380011785556200024b565b828001600101855582156200024b579182015b828111156200024b5782518255916020019190600101906200022e565b50620002599291506200025d565b5090565b5b808211156200025957600081556001016200025e565b600181811c908216806200028957607f821691505b60208210811415620002ab57634e487b7160e01b600052602260045260246000fd5b50919050565b6149ef80620002c16000396000f3fe608060405234801561001057600080fd5b50600436106104565760003560e01c806395d89b4111610250578063c6de84d311610150578063eeaa7d12116100c8578063f2fee2dc11610097578063fe575a871161007c578063fe575a8714610a60578063feb2696f14610a8c578063ff86a37314610a9f57600080fd5b8063f2fee2dc14610a3a578063f5945d0d14610a4d57600080fd5b8063eeaa7d12146109ee578063ef7ac0e514610a01578063f03637ca14610a14578063f2fde38b14610a2757600080fd5b8063d3b5dc3b1161011f578063e240c09c11610104578063e240c09c1461098b578063e4338aa31461099f578063e985e9c5146109b257600080fd5b8063d3b5dc3b1461094c578063de1547611461097857600080fd5b8063c6de84d3146108fe578063c85f22fe14610911578063c87b56dd14610931578063d2d99fec1461094457600080fd5b8063aad3ec96116101e3578063b8527aef116101b2578063bb33399d11610197578063bb33399d146108bd578063c5e22f3f146108d8578063c69533eb146108eb57600080fd5b8063b8527aef146108a2578063b88d4fde146108aa57600080fd5b8063aad3ec9614610856578063aea9107814610869578063b0d17f6f1461087c578063b2f62b961461088f57600080fd5b8063a22cb4651161021f578063a22cb46514610816578063a52c389514610829578063a5dc9e1b14610832578063a843c51f1461084357600080fd5b806395d89b411461079b578063963e0dc1146107d457806399e3b18d146107e85780639f654c74146107fb57600080fd5b8063371ffa641161035b5780636ce46bc3116102ee578063782f346c116102bd5780638da5cb5b116102a25780638da5cb5b146107575780638db7a464146107685780638e4bcb221461077b57600080fd5b8063782f346c146107315780637cba4e5e1461074457600080fd5b80636ce46bc3146106f057806370a0823114610703578063715018a6146107165780637318185a1461071e57600080fd5b806342842e0e1161032a57806342842e0e146106ae578063594d129f146106c15780636352211e146106d45780636ad70fb1146106e757600080fd5b8063371ffa641461066c57806337aad4ba1461067f5780633b0f4311146106925780633fc9850f1461069b57600080fd5b80630ca54f29116103ee578063228cb733116103bd57806327b3bf11116103a257806327b3bf111461060957806327c8f835146106465780632b3527151461065957600080fd5b8063228cb733146105db57806323b872dd146105f657600080fd5b80630ca54f291461058d5780631107aec5146105a857806312b8603f146105bb5780632282d9f2146105ce57600080fd5b806306fdde031161042a57806306fdde03146104cc578063081812fc1461050e578063095ea7b3146105395780630b0f69f21461054c57600080fd5b8062fdd58e1461045b57806301ffc9a714610481578063033e7878146104a45780630407c933146104b7575b600080fd5b61046e6104693660046140aa565b610ab2565b6040519081526020015b60405180910390f35b61049461048f366004614102565b610b5d565b6040519015158152602001610478565b61046e6104b236600461411f565b610bf6565b6104ca6104c5366004614138565b610e78565b005b60408051808201909152600881527f4d616e73696f6e7300000000000000000000000000000000000000000000000060208201525b60405161047891906141fa565b61052161051c36600461411f565b610fca565b6040516001600160a01b039091168152602001610478565b6104ca6105473660046140aa565b611078565b60105461057490700100000000000000000000000000000000900467ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001610478565b60105461057490600160401b900467ffffffffffffffff1681565b61046e6105b636600461420d565b6111a5565b6104ca6105c93660046142d4565b6112a5565b6015546104949060ff1681565b600c5461057490600160c01b900467ffffffffffffffff1681565b6104ca610604366004614322565b611410565b600d54610625906fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff9091168152602001610478565b600b54610521906001600160a01b031681565b6104ca6106673660046143bf565b611535565b6104ca61067a36600461446d565b611613565b6104ca61068d3660046144a2565b611684565b61046e60135481565b61046e6106a936600461420d565b611703565b6104ca6106bc366004614322565b61180d565b6105746106cf36600461411f565b6118dc565b6105216106e236600461411f565b611983565b61046e60125481565b6104ca6106fe3660046144d3565b611a31565b61046e61071136600461420d565b611a99565b6104ca611b33565b6104ca61072c3660046144ff565b611b99565b61046e61073f36600461420d565b611c99565b6104ca610752366004614573565b611d49565b6000546001600160a01b0316610521565b61057461077636600461411f565b611ddd565b61078e61078936600461420d565b611e8b565b604051610478919061458e565b60408051808201909152600881527f4d414e53494f4e530000000000000000000000000000000000000000000000006020820152610501565b6010546105749067ffffffffffffffff1681565b61046e6107f636600461420d565b611ef7565b60115461057490600160401b900467ffffffffffffffff1681565b6104ca6108243660046145e2565b611f5c565b61046e60145481565b6001546001600160a01b0316610521565b6104ca61085136600461420d565b611f67565b61046e6108643660046140aa565b6120a6565b61046e61087736600461420d565b612498565b6104ca61088a3660046145e2565b6125fa565b6104ca61089d366004614615565b61267f565b61046e612745565b6104ca6108b8366004614658565b61275b565b60105461057490600160c01b900467ffffffffffffffff1681565b61046e6108e636600461420d565b612893565b6104ca6108f936600461420d565b6128b6565b6104ca61090c366004614573565b61293f565b61092461091f36600461411f565b6129c4565b60405161047891906146d4565b61050161093f36600461411f565b612c09565b610501612e34565b600c5461096390600160a01b900463ffffffff1681565b60405163ffffffff9091168152602001610478565b600c54610521906001600160a01b031681565b6011546105749067ffffffffffffffff1681565b600254610521906001600160a01b031681565b6104946109c0366004614748565b6001600160a01b03918216600090815260096020908152604080832093909416825291909152205460ff1690565b6104ca6109fc366004614772565b612ec2565b6104ca610a0f3660046147be565b612ee5565b610501610a2236600461411f565b612f52565b6104ca610a3536600461420d565b612ffa565b6104ca610a483660046147d9565b6130dc565b61046e610a5b36600461420d565b613244565b610494610a6e36600461420d565b6001600160a01b03166000908152600a602052604090205460ff1690565b6104ca610a9a36600461411f565b6132cb565b6104ca610aad3660046147f5565b6133db565b60006001600160a01b038316610b355760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f20616464726573730000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b5060009081526004602090815260408083206001600160a01b03949094168352929052205490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd000000000000000000000000000000000000000000000000000000001480610bf057507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b92915050565b67ffffffffffffffff811660009081526005602052604081205482906001600160a01b0316610c7c5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610b2c565b600083815260066020526040808220815160a08101909252805482908290610ca390614845565b80601f0160208091040260200160405190810160405280929190818152602001828054610ccf90614845565b8015610d1c5780601f10610cf157610100808354040283529160200191610d1c565b820191906000526020600020905b815481529060010190602001808311610cff57829003601f168201915b50505050508152602001600182018054610d3590614845565b80601f0160208091040260200160405190810160405280929190818152602001828054610d6190614845565b8015610dae5780601f10610d8357610100808354040283529160200191610dae565b820191906000526020600020905b815481529060010190602001808311610d9157829003601f168201915b50505091835250506002820154602082015260039091015467ffffffffffffffff8082166040840152600160401b9091048116606090920191909152600d5460808301519293506000926fffffffffffffffffffffffffffffffff90911691610e18911642614890565b610e2291906148a7565b600c54909150600160a01b810463ffffffff1690610e5190600160c01b900467ffffffffffffffff16836148c9565b610e6390670de0b6b3a76400006148c9565b610e6d91906148a7565b935050505b50919050565b6000546001600160a01b03163314610ed25760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b60005b81811015610fc5576000838383818110610ef157610ef16148e8565b9050602002013590506000610f0582611983565b6001600160a01b03811660009081526003602052604081208054929350600192909190610f33908490614890565b90915550506000828152600560209081526040808320805473ffffffffffffffffffffffffffffffffffffffff191690556006909152812090610f768282613f4c565b610f84600183016000613f4c565b506000600282015560030180546fffffffffffffffffffffffffffffffff19169055610fb082826134b0565b50508080610fbd906148fe565b915050610ed5565b505050565b67ffffffffffffffff81166000818152600560205260408120549091906001600160a01b03166110515760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610b2c565b505067ffffffffffffffff166000908152600860205260409020546001600160a01b031690565b600061108382611983565b9050806001600160a01b0316836001600160a01b0316141561110d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f72000000000000000000000000000000000000000000000000000000000000006064820152608401610b2c565b336001600160a01b0382161480611129575061112981336109c0565b61119b5760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c00000000000000006064820152608401610b2c565b610fc58383613595565b6016546040516370a0823160e01b81526001600160a01b0383811660048301526000926001929116906370a0823190602401602060405180830381865afa1580156111f4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112189190614919565b10611298576013546016546040516370a0823160e01b81526001600160a01b038581166004830152610bf0939216906370a08231906024015b602060405180830381865afa15801561126e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112929190614919565b9061361b565b506000919050565b919050565b6001546001600160a01b031633146112ff5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b60408051808201909152600781527f5631204e4f4445000000000000000000000000000000000000000000000000006020918201528151908201207f726ca9a11821b08e8b39a0c12fff38e2a582b4c38cfe7da1888136bad2ac4c4214156113cf5760405162461bcd60e51b815260206004820152602160248201527f4d414e414745523a205631204e4f4445206973207265736572766564206e616d60448201527f65000000000000000000000000000000000000000000000000000000000000006064820152608401610b2c565b6000600f5490506113f381834242604051806020016040528060008152508861362e565b6001600f60008282546114069190614932565b9091555050505050565b61141a3382613817565b61148c5760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610b2c565b60155460ff161515600114156114a757610fc583838361391d565b600b546001600160a01b0383811691161461152a5760405162461bcd60e51b815260206004820152602160248201527f4d616e73696f6e205472616e736665727320617265206e6f7420616c6c6f776560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610b2c565b610fc583838361391d565b6000546001600160a01b0316331461158f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b6116098888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528b93508a925090899089908190840183828082843760009201919091525089925061362e915050565b5050505050505050565b6000546001600160a01b0316331461166d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b805161168090600e906020840190613f86565b5050565b6000546001600160a01b031633146116de5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b60008281526006602090815260409091208251610fc592600190920191840190613f86565b6017546040516370a0823160e01b81526001600160a01b03838116600483015260009283926117ee92909116906370a0823190602401602060405180830381865afa158015611756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061177a9190614919565b6016546040516370a0823160e01b81526001600160a01b038781166004830152909116906370a0823190602401602060405180830381865afa1580156117c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117e89190614919565b90613be1565b905060006118056117fe85611a99565b8390613bed565b949350505050565b60155460ff1615156001141561183857610fc58383836040518060200160405280600081525061275b565b600c546001600160a01b0316336001600160a01b0316146118c15760405162461bcd60e51b815260206004820152602260248201527f4469737472696374205472616e736665727320617265206e6f7420616c6c6f7760448201527f65640000000000000000000000000000000000000000000000000000000000006064820152608401610b2c565b610fc58383836040518060200160405280600081525061275b565b67ffffffffffffffff811660009081526005602052604081205482906001600160a01b03166119625760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610b2c565b505060009081526006602052604090206003015467ffffffffffffffff1690565b67ffffffffffffffff81166000818152600560205260408120549091906001600160a01b0316611a0a5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610b2c565b505067ffffffffffffffff166000908152600560205260409020546001600160a01b031690565b6000546001600160a01b03163314611a8b5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b601292909255601355601455565b60006001600160a01b038216611b175760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a6560448201527f726f2061646472657373000000000000000000000000000000000000000000006064820152608401610b2c565b506001600160a01b031660009081526003602052604090205490565b6000546001600160a01b03163314611b8d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b611b976000613bf9565b565b6000546001600160a01b03163314611bf35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b6010805467ffffffffffffffff9788166fffffffffffffffffffffffffffffffff1991821617600160401b9789168802176fffffffffffffffffffffffffffffffff167001000000000000000000000000000000009689169690960277ffffffffffffffffffffffffffffffffffffffffffffffff1695909517600160c01b94881694909402939093179092556011805491861691909316179316909102919091179055565b6017546040516370a0823160e01b81526001600160a01b0383811660048301526000926001929116906370a0823190602401602060405180830381865afa158015611ce8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d0c9190614919565b10611298576014546017546040516370a0823160e01b81526001600160a01b038581166004830152610bf0939216906370a0823190602401611251565b6000546001600160a01b03163314611da35760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b600c805467ffffffffffffffff909216600160c01b0277ffffffffffffffffffffffffffffffffffffffffffffffff909216919091179055565b67ffffffffffffffff811660009081526005602052604081205482906001600160a01b0316611e635760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610b2c565b5050600090815260066020526040902060030154600160401b900467ffffffffffffffff1690565b6001600160a01b038116600090815260076020908152604091829020805483518184028101840190945280845260609392830182828015611eeb57602002820191906000526020600020905b815481526020019060010190808311611ed7575b50505050509050919050565b6000806060611f0584611e8b565b905060005b8151811015611f5357611f35828281518110611f2857611f286148e8565b6020026020010151610bf6565b611f3f9084614932565b925080611f4b816148fe565b915050611f0a565b50909392505050565b611680338383613c56565b6000546001600160a01b03163314611fc15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b6001600160a01b03811661203d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610b2c565b6001546040516001600160a01b038084169216907f2260a4d0c00902d7996e8f7d669d22564414d41be4d278a40387ddf58179d39290600090a36001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b67ffffffffffffffff811660009081526005602052604081205482906001600160a01b031661212c5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610b2c565b6001546001600160a01b031633146121865760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b836001600160a01b031661219984611983565b6001600160a01b0316146121ef5760405162461bcd60e51b815260206004820152601e60248201527f4d414e414745523a20596f7520617265206e6f7420746865206f776e657200006044820152606401610b2c565b6000838152600660205260408120600d5460038201549192916fffffffffffffffffffffffffffffffff9091169061223890600160401b900467ffffffffffffffff1642614890565b61224291906148a7565b9050600181116122ba5760405162461bcd60e51b815260206004820152603260248201527f4d414e414745523a204e6f7420656e6f7567682074696d65206861732070617360448201527f736564206265747765656e20636c61696d7300000000000000000000000000006064820152608401610b2c565b600c54600090600160a01b810463ffffffff1690600160c01b900467ffffffffffffffff166122e889611703565b6122f291906148c9565b600c546123109190600160c01b900467ffffffffffffffff16614932565b61231a90846148c9565b61232c90670de0b6b3a76400006148c9565b61233691906148a7565b9050600181116123ae5760405162461bcd60e51b815260206004820152602560248201527f4d414e414745523a20596f7520646f6e2774206861766520656e6f756768207260448201527f65776172640000000000000000000000000000000000000000000000000000006064820152608401610b2c565b60006123b988612893565b90506000821180156123cb5750600081115b1561243b576103e86123dd82846148c9565b6123e791906148a7565b6123f19083614932565b60039490940180547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff16600160401b4267ffffffffffffffff160217905550919350612491915050565b8115612488575060039290920180547fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff16600160401b4267ffffffffffffffff1602179055509150612491565b60009550505050505b5092915050565b6000600a6124a583611a99565b10156124bd57505060105467ffffffffffffffff1690565b600a6124c883611a99565b101580156124de575060146124dc83611a99565b105b156124fc575050601054600160401b900467ffffffffffffffff1690565b601461250783611a99565b1015801561251d5750602861251b83611a99565b105b15612548575050601054700100000000000000000000000000000000900467ffffffffffffffff1690565b602861255383611a99565b101580156125695750605061256783611a99565b105b15612587575050601054600160c01b900467ffffffffffffffff1690565b605061259283611a99565b101580156125a8575060646125a683611a99565b105b156125bf57505060115467ffffffffffffffff1690565b60646125ca83611a99565b106125e8575050601154600160401b900467ffffffffffffffff1690565b505060105467ffffffffffffffff1690565b6000546001600160a01b031633146126545760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146126d95760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b601580546001600160a01b03948516610100027fffffffffffffffffffffff0000000000000000000000000000000000000000ff9091161790556016805492841673ffffffffffffffffffffffffffffffffffffffff1993841617905560178054919093169116179055565b60006001600f546127569190614890565b905090565b6127653383613817565b6127d75760405162461bcd60e51b815260206004820152603160248201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60448201527f776e6572206e6f7220617070726f7665640000000000000000000000000000006064820152608401610b2c565b60155460ff161515600114156127f8576127f384848484613d25565b61288d565b600c546001600160a01b0316336001600160a01b0316146128815760405162461bcd60e51b815260206004820152602160248201527f4d616e73696f6e205472616e736665727320617265206e6f7420616c6c6f776560448201527f64000000000000000000000000000000000000000000000000000000000000006064820152608401610b2c565b61288d84848484613d25565b50505050565b6000610bf06128a183611c99565b6117e86128ad856111a5565b6117e886613244565b6000546001600160a01b031633146129105760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b600c805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000546001600160a01b031633146129995760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b600d80546fffffffffffffffffffffffffffffffff191667ffffffffffffffff909216919091179055565b612a0a6040518060a00160405280606081526020016060815260200160008152602001600067ffffffffffffffff168152602001600067ffffffffffffffff1681525090565b81612a368167ffffffffffffffff166000908152600560205260409020546001600160a01b0316151590565b612a975760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610b2c565b60008381526006602052604090819020815160a08101909252805482908290612abf90614845565b80601f0160208091040260200160405190810160405280929190818152602001828054612aeb90614845565b8015612b385780601f10612b0d57610100808354040283529160200191612b38565b820191906000526020600020905b815481529060010190602001808311612b1b57829003601f168201915b50505050508152602001600182018054612b5190614845565b80601f0160208091040260200160405190810160405280929190818152602001828054612b7d90614845565b8015612bca5780601f10612b9f57610100808354040283529160200191612bca565b820191906000526020600020905b815481529060010190602001808311612bad57829003601f168201915b50505091835250506002820154602082015260039091015467ffffffffffffffff8082166040840152600160401b909104166060909101529392505050565b60606000600660008467ffffffffffffffff1681526020019081526020016000206040518060a0016040529081600082018054612c4590614845565b80601f0160208091040260200160405190810160405280929190818152602001828054612c7190614845565b8015612cbe5780601f10612c9357610100808354040283529160200191612cbe565b820191906000526020600020905b815481529060010190602001808311612ca157829003601f168201915b50505050508152602001600182018054612cd790614845565b80601f0160208091040260200160405190810160405280929190818152602001828054612d0390614845565b8015612d505780601f10612d2557610100808354040283529160200191612d50565b820191906000526020600020905b815481529060010190602001808311612d3357829003601f168201915b5050509183525050600282015460208083019190915260039092015467ffffffffffffffff8082166040840152600160401b9091041660609091015281015151909150612e2a57600e8054612da490614845565b80601f0160208091040260200160405190810160405280929190818152602001828054612dd090614845565b8015612e1d5780601f10612df257610100808354040283529160200191612e1d565b820191906000526020600020905b815481529060010190602001808311612e0057829003601f168201915b5050505050915050919050565b6020015192915050565b600e8054612e4190614845565b80601f0160208091040260200160405190810160405280929190818152602001828054612e6d90614845565b8015612eba5780601f10612e8f57610100808354040283529160200191612eba565b820191906000526020600020905b815481529060010190602001808311612e9d57829003601f168201915b505050505081565b6000838152600660205260409020612ede60018201848461400a565b5050505050565b6000546001600160a01b03163314612f3f5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b6015805460ff1916911515919091179055565b606081612f808167ffffffffffffffff166000908152600560205260409020546001600160a01b0316151590565b612fe15760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610b2c565b60008381526006602052604090208054612da490614845565b6000546001600160a01b031633146130545760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b6001600160a01b0381166130d05760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f64647265737300000000000000000000000000000000000000000000000000006064820152608401610b2c565b6130d981613bf9565b50565b60408051808201909152600781527f5631204e4f4445000000000000000000000000000000000000000000000000006020918201528151908201207f726ca9a11821b08e8b39a0c12fff38e2a582b4c38cfe7da1888136bad2ac4c4214156131ac5760405162461bcd60e51b815260206004820152602160248201527f4d414e414745523a205631204e4f4445206973207265736572766564206e616d60448201527f65000000000000000000000000000000000000000000000000000000000000006064820152608401610b2c565b336131c067ffffffffffffffff8416611983565b6001600160a01b0316146132165760405162461bcd60e51b815260206004820152601e60248201527f4d414e414745523a20596f7520617265206e6f7420746865206f776e657200006044820152606401610b2c565b67ffffffffffffffff821660009081526006602090815260409091208251909161288d918391850190613f86565b6015546040516370a0823160e01b81526001600160a01b038381166004830152600092600192610100909104909116906370a0823190602401602060405180830381865afa15801561329a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132be9190614919565b1061129857505060125490565b6000546001600160a01b031633146133255760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b600061333082611983565b6001600160a01b0381166000908152600360205260408120805492935060019290919061335e908490614890565b90915550506000828152600560209081526040808320805473ffffffffffffffffffffffffffffffffffffffff1916905560069091528120906133a18282613f4c565b6133af600183016000613f4c565b506000600282015560030180546fffffffffffffffffffffffffffffffff1916905561168082826134b0565b6000546001600160a01b031633146134355760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610b2c565b600c8054600d80546fffffffffffffffffffffffffffffffff191667ffffffffffffffff95861617905563ffffffff909216600160a01b027fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff93909416600160c01b02929092166001600160a01b0390911617919091179055565b6001600160a01b03811660009081526007602052604081208054909181905b8281101561351157858482815481106134ea576134ea6148e8565b906000526020600020015414156134ff578091505b80613509816148fe565b9150506134cf565b5082548110613521575050505050565b8261352d600184614890565b8154811061353d5761353d6148e8565b906000526020600020015483828154811061355a5761355a6148e8565b9060005260206000200181905550828054806135785761357861494a565b600190038181906000526020600020016000905590555050505050565b67ffffffffffffffff81166000908152600860205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03841690811790915581906135e282611983565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600061362782846148c9565b9392505050565b67ffffffffffffffff86166000908152600560205260409020546001600160a01b03161561369e5760405162461bcd60e51b815260206004820152601e60248201527f4d414e414745523a204d616e73696f6e20616c726561647920657869737400006044820152606401610b2c565b6040805160a081018252868152602080820185905281830189905267ffffffffffffffff8088166060840152861660808301526000898152600682529290922081518051929391926136f39284920190613f86565b50602082810151805161370c9260018501920190613f86565b50604082810151600283015560608301516003928301805460809095015167ffffffffffffffff908116600160401b026fffffffffffffffffffffffffffffffff199096169216919091179390931790925560008881526005602090815283822080546001600160a01b03871673ffffffffffffffffffffffffffffffffffffffff1990911681179091558252919091529081208054600192906137b1908490614932565b90915550506001600160a01b0381166000818152600760209081526040808320805460018101825590845291832090910189905551889291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4505050505050565b67ffffffffffffffff81166000818152600560205260408120549091906001600160a01b031661389e5760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b6064820152608401610b2c565b60006138a984611983565b9050806001600160a01b0316856001600160a01b031614806138e45750846001600160a01b03166138d985610fca565b6001600160a01b0316145b8061391457506001600160a01b0380821660009081526009602090815260408083209389168352929052205460ff165b95945050505050565b806001600160a01b03841661393182611983565b6001600160a01b0316146139ad5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e65720000000000000000000000000000000000000000000000000000006064820152608401610b2c565b6001600160a01b0383166000908152600a602052604090205460ff1615613a3c5760405162461bcd60e51b815260206004820152602f60248201527f4d414e414745523a20596f752063616e2774207472616e7366657220746f206260448201527f6c61636b6c6973746564207573657200000000000000000000000000000000006064820152608401610b2c565b6001600160a01b0384166000908152600a602052604090205460ff1615613acb5760405162461bcd60e51b815260206004820152602f60248201527f4d414e414745523a20596f752063616e2774207472616e73666572206173206260448201527f6c61636b6c6973746564207573657200000000000000000000000000000000006064820152608401610b2c565b613ad6600083613595565b6001600160a01b0384166000908152600360205260408120805460019290613aff908490614890565b90915550506001600160a01b0383166000908152600360205260408120805460019290613b2d908490614932565b909155505067ffffffffffffffff81166000818152600560209081526040808320805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b03891690811790915583526007825282208054600181018255908352912001819055613b9a90856134b0565b81836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a450505050565b60006136278284614932565b600061362782846148a7565b600080546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b816001600160a01b0316836001600160a01b03161415613cb85760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610b2c565b6001600160a01b03838116600081815260096020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b613d3084848461391d565b613d3c84848484613dae565b61288d5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610b2c565b60006001600160a01b0384163b15613f41576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a0290613e0b903390899088908890600401614960565b6020604051808303816000875af1925050508015613e46575060408051601f3d908101601f19168201909252613e439181019061499c565b60015b613ef6573d808015613e74576040519150601f19603f3d011682016040523d82523d6000602084013e613e79565b606091505b508051613eee5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e74657200000000000000000000000000006064820152608401610b2c565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a0200000000000000000000000000000000000000000000000000000000149050611805565b506001949350505050565b508054613f5890614845565b6000825580601f10613f68575050565b601f0160209004906000526020600020908101906130d9919061407e565b828054613f9290614845565b90600052602060002090601f016020900481019282613fb45760008555613ffa565b82601f10613fcd57805160ff1916838001178555613ffa565b82800160010185558215613ffa579182015b82811115613ffa578251825591602001919060010190613fdf565b5061400692915061407e565b5090565b82805461401690614845565b90600052602060002090601f0160209004810192826140385760008555613ffa565b82601f106140515782800160ff19823516178555613ffa565b82800160010185558215613ffa579182015b82811115613ffa578235825591602001919060010190614063565b5b80821115614006576000815560010161407f565b80356001600160a01b03811681146112a057600080fd5b600080604083850312156140bd57600080fd5b6140c683614093565b946020939093013593505050565b7fffffffff00000000000000000000000000000000000000000000000000000000811681146130d957600080fd5b60006020828403121561411457600080fd5b8135613627816140d4565b60006020828403121561413157600080fd5b5035919050565b6000806020838503121561414b57600080fd5b823567ffffffffffffffff8082111561416357600080fd5b818501915085601f83011261417757600080fd5b81358181111561418657600080fd5b8660208260051b850101111561419b57600080fd5b60209290920196919550909350505050565b6000815180845260005b818110156141d3576020818501810151868301820152016141b7565b818111156141e5576000602083870101525b50601f01601f19169290920160200192915050565b60208152600061362760208301846141ad565b60006020828403121561421f57600080fd5b61362782614093565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561425957614259614228565b604051601f8501601f19908116603f0116810190828211818310171561428157614281614228565b8160405280935085815286868601111561429a57600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126142c557600080fd5b6136278383356020850161423e565b600080604083850312156142e757600080fd5b6142f083614093565b9150602083013567ffffffffffffffff81111561430c57600080fd5b614318858286016142b4565b9150509250929050565b60008060006060848603121561433757600080fd5b61434084614093565b925061434e60208501614093565b9150604084013590509250925092565b60008083601f84011261437057600080fd5b50813567ffffffffffffffff81111561438857600080fd5b6020830191508360208285010111156143a057600080fd5b9250929050565b803567ffffffffffffffff811681146112a057600080fd5b60008060008060008060008060c0898b0312156143db57600080fd5b88359750602089013567ffffffffffffffff808211156143fa57600080fd5b6144068c838d0161435e565b909950975087915061441a60408c016143a7565b965061442860608c016143a7565b955060808b013591508082111561443e57600080fd5b5061444b8b828c0161435e565b909450925061445e905060a08a01614093565b90509295985092959890939650565b60006020828403121561447f57600080fd5b813567ffffffffffffffff81111561449657600080fd5b611805848285016142b4565b600080604083850312156144b557600080fd5b82359150602083013567ffffffffffffffff81111561430c57600080fd5b6000806000606084860312156144e857600080fd5b505081359360208301359350604090920135919050565b60008060008060008060c0878903121561451857600080fd5b614521876143a7565b955061452f602088016143a7565b945061453d604088016143a7565b935061454b606088016143a7565b9250614559608088016143a7565b915061456760a088016143a7565b90509295509295509295565b60006020828403121561458557600080fd5b613627826143a7565b6020808252825182820181905260009190848201906040850190845b818110156145c6578351835292840192918401916001016145aa565b50909695505050505050565b803580151581146112a057600080fd5b600080604083850312156145f557600080fd5b6145fe83614093565b915061460c602084016145d2565b90509250929050565b60008060006060848603121561462a57600080fd5b61463384614093565b925061464160208501614093565b915061464f60408501614093565b90509250925092565b6000806000806080858703121561466e57600080fd5b61467785614093565b935061468560208601614093565b925060408501359150606085013567ffffffffffffffff8111156146a857600080fd5b8501601f810187136146b957600080fd5b6146c88782356020840161423e565b91505092959194509250565b602081526000825160a060208401526146f060c08401826141ad565b90506020840151601f1984830301604085015261470d82826141ad565b91505060408401516060840152606084015167ffffffffffffffff80821660808601528060808701511660a086015250508091505092915050565b6000806040838503121561475b57600080fd5b61476483614093565b915061460c60208401614093565b60008060006040848603121561478757600080fd5b83359250602084013567ffffffffffffffff8111156147a557600080fd5b6147b18682870161435e565b9497909650939450505050565b6000602082840312156147d057600080fd5b613627826145d2565b600080604083850312156147ec57600080fd5b6142f0836143a7565b60008060006060848603121561480a57600080fd5b614813846143a7565b9250614821602085016143a7565b9150604084013563ffffffff8116811461483a57600080fd5b809150509250925092565b600181811c9082168061485957607f821691505b60208210811415610e7257634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000828210156148a2576148a261487a565b500390565b6000826148c457634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156148e3576148e361487a565b500290565b634e487b7160e01b600052603260045260246000fd5b60006000198214156149125761491261487a565b5060010190565b60006020828403121561492b57600080fd5b5051919050565b600082198211156149455761494561487a565b500190565b634e487b7160e01b600052603160045260246000fd5b60006001600160a01b0380871683528086166020840152508360408301526080606083015261499260808301846141ad565b9695505050505050565b6000602082840312156149ae57600080fd5b8151613627816140d456fea26469706673582212203a47577a6bc587ef134963e483cc7e18984bd7e72c60cd2c5188234a7dbe3a8564736f6c634300080b0033