[ { "inputs": [ { "internalType": "address", "name": "_locker", "type": "address" }, { "internalType": "uint24", "name": "_poolFee", "type": "uint24" }, { "internalType": "address", "name": "_projectOwner", "type": "address" }, { "components": [ { "internalType": "uint256", "name": "totalSupply", "type": "uint256" }, { "internalType": "address", "name": "uniswapRouter", "type": "address" }, { "internalType": "address", "name": "uniswapFactory", "type": "address" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "string", "name": "meta", "type": "string" }, { "internalType": "uint256", "name": "afterBlock", "type": "uint256" }, { "internalType": "uint256", "name": "softTopCap", "type": "uint256" }, { "internalType": "uint256", "name": "refundFeeRate", "type": "uint256" }, { "internalType": "address", "name": "refundFeeTo", "type": "address" } ], "internalType": "struct FairLaunchLimitBlockStruct", "name": "params", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [], "name": "ReentrancyGuardReentrantCall", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "addr", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_type", "type": "uint256" } ], "name": "Deployed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "ethAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amountOfTokens", "type": "uint256" } ], "name": "FundEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "ethAmount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "liquidity", "type": "uint256" } ], "name": "LaunchEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "eth", "type": "uint256" } ], "name": "RefundEvent", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "CLAIM_COMMAND", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINIMAL_FUND", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINT_COMMAND", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "REFUND_COMMAND", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "START_COMMAND", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "canStart", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "claimed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "clearRefundFee", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "fundBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_addr", "type": "address" } ], "name": "getExtraETH", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "launchFeeRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "locker", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxFundLimit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "meta", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "mightGet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "minted", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poolFee", "outputs": [ { "internalType": "uint24", "name": "", "type": "uint24" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "projectOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "refundFeeRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "refundFeeTo", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "softTopCap", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "started", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tickLower", "outputs": [ { "internalType": "int24", "name": "", "type": "int24" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tickUpper", "outputs": [ { "internalType": "int24", "name": "", "type": "int24" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalDispatch", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalEthers", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "uniswapFactory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uniswapPositionManager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "untilBlockNumber", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "weth", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
6102406040523480156200001257600080fd5b5060405162003dd438038062003dd4833981016040819052620000359162000763565b6060810151608082015160a08301518282600362000054838262000961565b50600462000063828262000961565b5060059150620000769050828262000961565b5050600160065550503060808190526007805460ff19169055815160e0819052620000a291906200032b565b60208101516001600160a01b0390811660a0908152604083015190911660c052810151600590620000d4908262000961565b50438160c00151620000e7919062000a43565b61010090815260e082015161012090815290820151600b558101516001600160a01b03908116610140528481166101605282166101a05262ffffff831661018052336101c05260384614806200013d5750466061145b6200014d57620d89b31962000153565b620d89d1195b60020b6102005260384614806200016a5750466061145b6200017957620d89b46200017e565b620d89d25b60020b6102208160020b8152505060a0516001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f3919062000a59565b6001600160a01b03166101e08190526000908190301062000219576101e051306200021f565b306101e0515b915091506000806101e0516001600160a01b0316306001600160a01b0316106200025e5761012051600260e05162000258919062000a7e565b62000274565b600260e0516200026f919062000a7e565b610120515b909250905060006200028783836200036d565b60a051610180516040516309f56ab160e11b81526001600160a01b038981166004830152888116602483015262ffffff9092166044820152818416606482015292935016906313ead562906084016020604051808303816000875af1158015620002f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200031b919062000a59565b5050505050505050505062000abb565b6001600160a01b0382166200035b5760405163ec442f0560e01b8152600060048201526024015b60405180910390fd5b620003696000838362000423565b5050565b600080831180156200037f5750600082115b620003cd5760405162461bcd60e51b815260206004820152601e60248201527f416d6f756e7473206d7573742062652067726561746572207468616e20300000604482015260640162000352565b600083620003e484670de0b6b3a764000062000aa1565b620003f0919062000a7e565b90506000620003ff8262000495565b9050600062000417633b9aca00606084901b62000a7e565b93505050505b92915050565b60008111620004835760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b606482015260840162000352565b620004908383836200050a565b505050565b600081600003620004a857506000919050565b816000620004b860028362000a7e565b620004c590600162000a43565b90505b818110156200050357905080600281620004e3818762000a7e565b620004ef919062000a43565b620004fb919062000a7e565b9050620004c8565b5092915050565b620004908383836001600160a01b0383166200054057806002600082825462000534919062000a43565b90915550620005b49050565b6001600160a01b03831660009081526020819052604090205481811015620005955760405163391434e360e21b81526001600160a01b0385166004820152602481018290526044810183905260640162000352565b6001600160a01b03841660009081526020819052604090209082900390555b6001600160a01b038216620005d257600280548290039055620005f1565b6001600160a01b03821660009081526020819052604090208054820190555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200063791815260200190565b60405180910390a3505050565b80516001600160a01b03811681146200065c57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b03811182821017156200069d576200069d62000661565b60405290565b604051601f8201601f191681016001600160401b0381118282101715620006ce57620006ce62000661565b604052919050565b600082601f830112620006e857600080fd5b81516001600160401b0381111562000704576200070462000661565b60206200071a601f8301601f19168201620006a3565b82815285828487010111156200072f57600080fd5b60005b838110156200074f57858101830151828201840152820162000732565b506000928101909101919091529392505050565b600080600080608085870312156200077a57600080fd5b620007858562000644565b9350602085015162ffffff811681146200079e57600080fd5b9250620007ae6040860162000644565b60608601519092506001600160401b0380821115620007cc57600080fd5b908601906101408289031215620007e257600080fd5b620007ec62000677565b82518152620007fe6020840162000644565b6020820152620008116040840162000644565b60408201526060830151828111156200082957600080fd5b620008378a828601620006d6565b6060830152506080830151828111156200085057600080fd5b6200085e8a828601620006d6565b60808301525060a0830151828111156200087757600080fd5b620008858a828601620006d6565b60a08301525060c083015160c082015260e083015160e0820152610100915081830151828201526101209150620008be82840162000644565b8282015280935050505092959194509250565b600181811c90821680620008e657607f821691505b6020821081036200090757634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000490576000816000526020600020601f850160051c81016020861015620009385750805b601f850160051c820191505b81811015620009595782815560010162000944565b505050505050565b81516001600160401b038111156200097d576200097d62000661565b62000995816200098e8454620008d1565b846200090d565b602080601f831160018114620009cd5760008415620009b45750858301515b600019600386901b1c1916600185901b17855562000959565b600085815260208120601f198616915b82811015620009fe57888601518255948401946001909101908401620009dd565b508582101562000a1d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b808201808211156200041d576200041d62000a2d565b60006020828403121562000a6c57600080fd5b62000a778262000644565b9392505050565b60008262000a9c57634e487b7160e01b600052601260045260246000fd5b500490565b80820281158282048414176200041d576200041d62000a2d565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516101c0516101e051610200516102205161315962000c7b6000396000818161073b01526118a20152600081816107820152611879015260008181610694015281816116ef015281816117170152818161173f0152818161177e015281816118ee01526119660152600081816109a4015261266601526000818161091b01528181611ee4015261205c015260008181610547015261184e015260008181610a4a015281816119c701528181611c9b01528181611d1201528181611e2d0152611f16015260008181610707015281816112d5015281816113160152611f81015260008181610b5001528181610eec01528181610f800152818161160d0152818161163a0152818161166601528181612533015261256401526000818161042a015281816107b60152610b0201526000818161086901528181610d80015281816117ac015281816117dc01528181611b5401528181611c0201526124b8015260006108b80152600081816102e401528181610ad1015281816115c60152818161168e01528181611d410152611dd801526000610b8a01526131596000f3fe6080604052600436106102bf5760003560e01c8063825521701161016e578063c884ef83116100cb578063e5047b301161007f578063f196248611610064578063f196248614610b29578063f570ee6b14610b3e578063fb5d5d4d146108ef57600080fd5b8063e5047b3014610abf578063ec30903814610af357600080fd5b8063d35e7efc116100b0578063d35e7efc14610a0b578063d7b96d4e14610a38578063dd62ed3e14610a6c57600080fd5b8063c884ef83146109c6578063c885044e146109f657600080fd5b8063a4475ce411610122578063a92bc58a11610107578063a92bc58a1461095d578063b5e4fed11461097d578063c45a01551461099257600080fd5b8063a4475ce414610909578063a9059cbb1461093d57600080fd5b806395d89b411161015357806395d89b41146108da578063996eba2d146108ef5780639ecf0090146106db57600080fd5b8063825521701461088b5780638bdb2afa146108a657600080fd5b80633fc8cef31161021c5780635ce38d99116101d05780636ee2627b116101b55780636ee2627b146107f857806370a08231146108145780637b0fa9541461085757600080fd5b80635ce38d99146107a457806368b63c24146107d857600080fd5b8063544d46a311610201578063544d46a3146106f557806355b812a81461072957806359c4f9051461077057600080fd5b80633fc8cef314610682578063475a519f146106db57600080fd5b80631e7269c51161027357806323b872dd1161025857806323b872dd14610630578063313ce5671461065057806332c4f2bf1461066c57600080fd5b80631e7269c5146105e65780631f2698ab1461061657600080fd5b8063095ea7b3116102a4578063095ea7b31461057d5780630a4625af146105ad57806318160ddd146105d157600080fd5b806306fdde031461050a578063089fe6aa1461053557600080fd5b36610505576102cc610b72565b3373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016146103a3573233146103835760405162461bcd60e51b815260206004820152602d60248201527f466169724d696e743a2063616e206e6f742073656e6420636f6d6d616e64206660448201527f726f6d20636f6e74726163742e0000000000000000000000000000000000000060648201526084015b60405180910390fd5b60075460ff161561042857655af3107a400034036103a5576103a3610bb6565b005b65b5e620f4800034036103ba576103a3610e68565b60405162461bcd60e51b815260206004820152602e60248201527f466169724d696e743a20696e76616c696420636f6d6d616e64202d206d696e7460448201527f206f7220636c61696d206f6e6c79000000000000000000000000000000000000606482015260840161037a565b7f000000000000000000000000000000000000000000000000000000000000000043106104e85765b5e620f480003403610464576103a36111a2565b6601c6bf52634000340361047a576103a361150a565b60405162461bcd60e51b815260206004820152603060248201527f466169724d696e743a20696e76616c696420636f6d6d616e64202d207374617260448201527f74206f7220726566756e64206f6e6c7900000000000000000000000000000000606482015260840161037a565b65b5e620f4800034036104fd576103a36111a2565b6103a36121f9565b600080fd5b34801561051657600080fd5b5061051f61239f565b60405161052c9190612d31565b60405180910390f35b34801561054157600080fd5b506105697f000000000000000000000000000000000000000000000000000000000000000081565b60405162ffffff909116815260200161052c565b34801561058957600080fd5b5061059d610598366004612dc3565b612431565b604051901515815260200161052c565b3480156105b957600080fd5b506105c3600a5481565b60405190815260200161052c565b3480156105dd57600080fd5b506002546105c3565b3480156105f257600080fd5b5061059d610601366004612def565b60096020526000908152604090205460ff1681565b34801561062257600080fd5b5060075461059d9060ff1681565b34801561063c57600080fd5b5061059d61064b366004612e0c565b61244b565b34801561065c57600080fd5b506040516012815260200161052c565b34801561067857600080fd5b506105c3600b5481565b34801561068e57600080fd5b506106b67f000000000000000000000000000000000000000000000000000000000000000081565b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200161052c565b3480156106e757600080fd5b506105c3655af3107a400081565b34801561070157600080fd5b506106b67f000000000000000000000000000000000000000000000000000000000000000081565b34801561073557600080fd5b5061075d7f000000000000000000000000000000000000000000000000000000000000000081565b60405160029190910b815260200161052c565b34801561077c57600080fd5b5061075d7f000000000000000000000000000000000000000000000000000000000000000081565b3480156107b057600080fd5b506105c37f000000000000000000000000000000000000000000000000000000000000000081565b3480156107e457600080fd5b506105c36107f3366004612def565b61246f565b34801561080457600080fd5b506105c3678ac7230489e8000081565b34801561082057600080fd5b506105c361082f366004612def565b73ffffffffffffffffffffffffffffffffffffffff1660009081526020819052604090205490565b34801561086357600080fd5b506105c37f000000000000000000000000000000000000000000000000000000000000000081565b34801561089757600080fd5b506105c36601c6bf5263400081565b3480156108b257600080fd5b506106b67f000000000000000000000000000000000000000000000000000000000000000081565b3480156108e657600080fd5b5061051f6124f7565b3480156108fb57600080fd5b506105c365b5e620f4800081565b34801561091557600080fd5b506106b67f000000000000000000000000000000000000000000000000000000000000000081565b34801561094957600080fd5b5061059d610958366004612dc3565b612506565b34801561096957600080fd5b506105c3610978366004612def565b612514565b34801561098957600080fd5b506105c3601e81565b34801561099e57600080fd5b506106b67f000000000000000000000000000000000000000000000000000000000000000081565b3480156109d257600080fd5b5061059d6109e1366004612def565b600c6020526000908152604090205460ff1681565b348015610a0257600080fd5b5061051f6125d4565b348015610a1757600080fd5b506105c3610a26366004612def565b60086020526000908152604090205481565b348015610a4457600080fd5b506106b67f000000000000000000000000000000000000000000000000000000000000000081565b348015610a7857600080fd5b506105c3610a87366004612e4d565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260016020908152604080832093909416825291909152205490565b348015610acb57600080fd5b506106b67f000000000000000000000000000000000000000000000000000000000000000081565b348015610aff57600080fd5b507f000000000000000000000000000000000000000000000000000000000000000043101561059d565b348015610b3557600080fd5b506103a3612662565b348015610b4a57600080fd5b506105c37f000000000000000000000000000000000000000000000000000000000000000081565b3073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001614610bb457600080fd5b565b610bbe612778565b60075460ff16610c105760405162461bcd60e51b815260206004820152601560248201527f466169724d696e743a206e6f7420737461727465640000000000000000000000604482015260640161037a565b333214610c855760405162461bcd60e51b815260206004820152602360248201527f466169724d696e743a2063616e206e6f74206d696e7420746f20636f6e74726160448201527f63742e0000000000000000000000000000000000000000000000000000000000606482015260840161037a565b3360009081526009602052604090205460ff1615610ce55760405162461bcd60e51b815260206004820152601860248201527f466169724d696e743a20616c7265616479206d696e7465640000000000000000604482015260640161037a565b33600081815260096020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905590610d279061246f565b905060008111610d795760405162461bcd60e51b815260206004820152601d60248201527f466169724d696e743a206d696e7420616d6f756e74206973207a65726f000000604482015260640161037a565b610da460027f0000000000000000000000000000000000000000000000000000000000000000612eb5565b811115610db357610db3612ef0565b610dbe3033836127bb565b6040516000903390655af3107a4000908381818185875af1925050503d8060008114610e06576040519150601f19603f3d011682016040523d82523d6000602084013e610e0b565b606091505b5050905080610e5c5760405162461bcd60e51b815260206004820152601560248201527f466169724d696e743a206d696e74206661696c65640000000000000000000000604482015260640161037a565b5050610bb46001600655565b610e70612778565b60075460ff16610ee85760405162461bcd60e51b815260206004820152602d60248201527f466169724d696e743a20776974686472617720657874726120657468206d757360448201527f7420616674657220737461727400000000000000000000000000000000000000606482015260840161037a565b60007f000000000000000000000000000000000000000000000000000000000000000011610f7e5760405162461bcd60e51b815260206004820152602260248201527f466169724d696e743a20736f667420746f7020636170206d757374206265207360448201527f6574000000000000000000000000000000000000000000000000000000000000606482015260840161037a565b7f0000000000000000000000000000000000000000000000000000000000000000600a5411610fef5760405162461bcd60e51b815260206004820152601660248201527f466169724d696e743a206e6f2065787472612065746800000000000000000000604482015260640161037a565b336000908152600860205260409020548061104c5760405162461bcd60e51b815260206004820152601160248201527f466169724d696e743a206e6f2066756e64000000000000000000000000000000604482015260640161037a565b336000908152600c602052604090205460ff16156110ac5760405162461bcd60e51b815260206004820152601960248201527f466169724d696e743a20616c726561647920636c61696d656400000000000000604482015260640161037a565b336000818152600c6020526040812080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055906110ee90612514565b905060003361110365b5e620f4800084612f1f565b604051600081818185875af1925050503d806000811461113f576040519150601f19603f3d011682016040523d82523d6000602084013e611144565b606091505b50509050806111955760405162461bcd60e51b815260206004820152601960248201527f466169724d696e743a207769746864726177206661696c656400000000000000604482015260640161037a565b505050610bb46001600655565b6111aa612778565b60075460ff16156111fd5760405162461bcd60e51b815260206004820152601960248201527f466169724d696e743a20616c7265616479207374617274656400000000000000604482015260640161037a565b336000818152600860205260409020548061125a5760405162461bcd60e51b815260206004820152601160248201527f466169724d696e743a206e6f2066756e64000000000000000000000000000000604482015260640161037a565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600860205260408120819055600a8054839290611294908490612f32565b9091555050600b54600090612710906112ad9084612f45565b6112b79190612eb5565b90508181106112c8576112c8612ef0565b60008111801561130d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1615155b156113e45760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168260405160006040518083038185875af1925050503d806000811461138c576040519150601f19603f3d011682016040523d82523d6000602084013e611391565b606091505b50509050806113e25760405162461bcd60e51b815260206004820152601b60248201527f466169724d696e743a20726566756e6420666565206661696c65640000000000604482015260640161037a565b505b600073ffffffffffffffffffffffffffffffffffffffff841665b5e620f4800061140e8486612f32565b6114189190612f1f565b604051600081818185875af1925050503d8060008114611454576040519150601f19603f3d011682016040523d82523d6000602084013e611459565b606091505b50509050806114aa5760405162461bcd60e51b815260206004820152601760248201527f466169724d696e743a20726566756e64206661696c6564000000000000000000604482015260640161037a565b60408051600081526020810185905273ffffffffffffffffffffffffffffffffffffffff8616917fb24b09fd2e8e4d8904c3c26f3e935824e032891520ffda419dec9f086b0e1eea910160405180910390a250505050610bb46001600655565b611512612778565b60075460ff16156115655760405162461bcd60e51b815260206004820152601960248201527f466169724d696e743a20616c7265616479207374617274656400000000000000604482015260640161037a565b30600090815260208190526040812054116115c25760405162461bcd60e51b815260206004820152601460248201527f466169724d696e743a206e6f2062616c616e6365000000000000000000000000604482015260640161037a565b60007f0000000000000000000000000000000000000000000000000000000000000000905060006115f4600a5461286b565b9050600081600a546116069190612f32565b90506000807f0000000000000000000000000000000000000000000000000000000000000000116116375781611686565b817f0000000000000000000000000000000000000000000000000000000000000000106116645781611686565b7f00000000000000000000000000000000000000000000000000000000000000005b90506116d5307f00000000000000000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6000612885565b60008073ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016301061173c577f00000000000000000000000000000000000000000000000000000000000000003061175f565b307f00000000000000000000000000000000000000000000000000000000000000005b909250905060008073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001630106117d557846117d060027f0000000000000000000000000000000000000000000000000000000000000000612eb5565b611802565b61180060027f0000000000000000000000000000000000000000000000000000000000000000612eb5565b855b9150915060006040518061016001604052808673ffffffffffffffffffffffffffffffffffffffff1681526020018573ffffffffffffffffffffffffffffffffffffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000062ffffff1681526020017f000000000000000000000000000000000000000000000000000000000000000060020b81526020017f000000000000000000000000000000000000000000000000000000000000000060020b81526020018481526020018381526020018673ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff161461192f576000611948565b61271061193e86612648612f45565b6119489190612eb5565b81526020018573ffffffffffffffffffffffffffffffffffffffff167f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16146119a75760006119c0565b6127106119b685612648612f45565b6119c09190612eb5565b81526020017f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1615611a075730611a0a565b60005b73ffffffffffffffffffffffffffffffffffffffff168152602001611a3142610e10612f1f565b81525090506000806000808c73ffffffffffffffffffffffffffffffffffffffff1663883164568b876040518363ffffffff1660e01b8152600401611a769190612f5c565b60806040518083038185885af1158015611a94573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190611ab99190613047565b93509350935093508c73ffffffffffffffffffffffffffffffffffffffff166312210e8a6040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611b0957600080fd5b505af1158015611b1d573d6000803e3d6000fd5b5050600780547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905550611b78905060027f0000000000000000000000000000000000000000000000000000000000000000612eb5565b6040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201819052906370a0823190602401602060405180830381865afa158015611bcd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bf1919061309a565b1115611c4557611c4530611c2660027f0000000000000000000000000000000000000000000000000000000000000000612eb5565b30600090815260208190526040902054611c409190612f32565b6129ce565b60408051838152602081018390526fffffffffffffffffffffffffffffffff851681830152905130917fef1e73540aed31615f5f09b178cff91261e831560c37718c23862e93a3fc3ceb919081900360600190a27f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1615611f77576040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018690527f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390604401600060405180830381600087803b158015611d8557600080fd5b505af1158015611d99573d6000803e3d6000fd5b50506040517fe2ab691d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166004830152602482018890527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60448301527f000000000000000000000000000000000000000000000000000000000000000093506000925083169063e2ab691d906064016020604051808303816000875af1158015611e7d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea1919061309a565b6040517f23b872dd00000000000000000000000000000000000000000000000000000000815230600482015273ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000081166024830152604482018390529192507f0000000000000000000000000000000000000000000000000000000000000000909116906323b872dd90606401600060405180830381600087803b158015611f5c57600080fd5b505af1158015611f70573d6000803e3d6000fd5b5050505050505b8b156121425760007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166103e8600a54611fc69190612eb5565b604051600081818185875af1925050503d8060008114612002576040519150601f19603f3d011682016040523d82523d6000602084013e612007565b606091505b50509050806120585760405162461bcd60e51b815260206004820152601b60248201527f466169724d696e743a20726566756e6420666565206661696c65640000000000604482015260640161037a565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166103e8600a5460026120a39190612f45565b6120ad9190612eb5565b604051600081818185875af1925050503d80600081146120e9576040519150601f19603f3d011682016040523d82523d6000602084013e6120ee565b606091505b505090508061213f5760405162461bcd60e51b815260206004820152601c60248201527f466169724d696e743a2070726f6a65637420666565206661696c656400000000604482015260640161037a565b50505b60405160009033906601c6bf52634000908381818185875af1925050503d806000811461218b576040519150601f19603f3d011682016040523d82523d6000602084013e612190565b606091505b50509050806121e15760405162461bcd60e51b815260206004820152601560248201527f466169724d696e743a206d696e74206661696c65640000000000000000000000604482015260640161037a565b5050505050505050505050505050610bb46001600655565b612201612778565b60075460ff16156122545760405162461bcd60e51b815260206004820152601960248201527f466169724d696e743a20616c7265616479207374617274656400000000000000604482015260640161037a565b655af3107a40003410156122aa5760405162461bcd60e51b815260206004820152601760248201527f466169724d696e743a2076616c756520746f6f206c6f77000000000000000000604482015260640161037a565b33600090815260086020526040902054678ac7230489e80000906122cf903490612f1f565b111561231d5760405162461bcd60e51b815260206004820152601c60248201527f466169724d696e743a2066756e64206c696d6974207265616368656400000000604482015260640161037a565b336000908152600860205260408120805434929061233c908490612f1f565b9250508190555034600a60008282546123559190612f1f565b9091555050604080513481526000602082015233917f4c10b3a5590fcdc7a6f3b564c09870bd275facbd00a0bcf68c8b069e32f9508b910160405180910390a2610bb46001600655565b6060600380546123ae906130b3565b80601f01602080910402602001604051908101604052809291908181526020018280546123da906130b3565b80156124275780601f106123fc57610100808354040283529160200191612427565b820191906000526020600020905b81548152906001019060200180831161240a57829003601f168201915b5050505050905090565b60003361243f818585612a2e565b60019150505b92915050565b600033612459858285612a3b565b6124648585856127bb565b506001949350505050565b6000600a5460000361248357506000919050565b600a5473ffffffffffffffffffffffffffffffffffffffff83166000908152600860205260408120549091906002906124dc907f0000000000000000000000000000000000000000000000000000000000000000612f45565b6124e69190612eb5565b6124f09190612eb5565b9392505050565b6060600480546123ae906130b3565b60003361243f8185856127bb565b600080612522600a5461286b565b600a5461252f9190612f32565b90507f00000000000000000000000000000000000000000000000000000000000000008111156125cb57600a546000906125897f000000000000000000000000000000000000000000000000000000000000000084612f32565b73ffffffffffffffffffffffffffffffffffffffff86166000908152600860205260409020546125b99190612f45565b6125c39190612eb5565b949350505050565b50600092915050565b600580546125e1906130b3565b80601f016020809104026020016040519081016040528092919081815260200182805461260d906130b3565b801561265a5780601f1061262f5761010080835404028352916020019161265a565b820191906000526020600020905b81548152906001019060200180831161263d57829003601f168201915b505050505081565b60007f000000000000000000000000000000000000000000000000000000000000000090508073ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156126d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126f69190613106565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146127705760405162461bcd60e51b815260206004820152601460248201527f466169724d696e743a206f6e6c79206f776e6572000000000000000000000000604482015260640161037a565b506000600b55565b6002600654036127b4576040517f3ee5aeb500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6002600655565b73ffffffffffffffffffffffffffffffffffffffff831661280b576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526000600482015260240161037a565b73ffffffffffffffffffffffffffffffffffffffff821661285b576040517fec442f050000000000000000000000000000000000000000000000000000000081526000600482015260240161037a565b612866838383612b04565b505050565b600061271061287b601e84612f45565b6124459190612eb5565b73ffffffffffffffffffffffffffffffffffffffff84166128d5576040517fe602df050000000000000000000000000000000000000000000000000000000081526000600482015260240161037a565b73ffffffffffffffffffffffffffffffffffffffff8316612925576040517f94280d620000000000000000000000000000000000000000000000000000000081526000600482015260240161037a565b73ffffffffffffffffffffffffffffffffffffffff808516600090815260016020908152604080832093871683529290522082905580156129c8578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516129bf91815260200190565b60405180910390a35b50505050565b73ffffffffffffffffffffffffffffffffffffffff8216612a1e576040517f96c6fd1e0000000000000000000000000000000000000000000000000000000081526000600482015260240161037a565b612a2a82600083612b04565b5050565b6128668383836001612885565b73ffffffffffffffffffffffffffffffffffffffff8381166000908152600160209081526040808320938616835292905220547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146129c85781811015612af5576040517ffb8f41b200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84166004820152602481018290526044810183905260640161037a565b6129c884848484036000612885565b60008111612b7a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161037a565b61286683838361286683838373ffffffffffffffffffffffffffffffffffffffff8316612bbe578060026000828254612bb39190612f1f565b90915550612c709050565b73ffffffffffffffffffffffffffffffffffffffff831660009081526020819052604090205481811015612c44576040517fe450d38c00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152602481018290526044810183905260640161037a565b73ffffffffffffffffffffffffffffffffffffffff841660009081526020819052604090209082900390555b73ffffffffffffffffffffffffffffffffffffffff8216612c9957600280548290039055612cc5565b73ffffffffffffffffffffffffffffffffffffffff821660009081526020819052604090208054820190555b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051612d2491815260200190565b60405180910390a3505050565b60006020808352835180602085015260005b81811015612d5f57858101830151858201604001528201612d43565b5060006040828601015260407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8301168501019250505092915050565b73ffffffffffffffffffffffffffffffffffffffff81168114612dc057600080fd5b50565b60008060408385031215612dd657600080fd5b8235612de181612d9e565b946020939093013593505050565b600060208284031215612e0157600080fd5b81356124f081612d9e565b600080600060608486031215612e2157600080fd5b8335612e2c81612d9e565b92506020840135612e3c81612d9e565b929592945050506040919091013590565b60008060408385031215612e6057600080fd5b8235612e6b81612d9e565b91506020830135612e7b81612d9e565b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600082612eeb577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052600160045260246000fd5b8082018082111561244557612445612e86565b8181038181111561244557612445612e86565b808202811582820484141761244557612445612e86565b815173ffffffffffffffffffffffffffffffffffffffff16815261016081016020830151612fa2602084018273ffffffffffffffffffffffffffffffffffffffff169052565b506040830151612fb9604084018262ffffff169052565b506060830151612fce606084018260020b9052565b506080830151612fe3608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516130368285018273ffffffffffffffffffffffffffffffffffffffff169052565b505061014092830151919092015290565b6000806000806080858703121561305d57600080fd5b8451935060208501516fffffffffffffffffffffffffffffffff8116811461308457600080fd5b6040860151606090960151949790965092505050565b6000602082840312156130ac57600080fd5b5051919050565b600181811c908216806130c757607f821691505b602082108103613100577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b60006020828403121561311857600080fd5b81516124f081612d9e56fea264697066735822122081b27b95517aae35b0d0391b7c357e7de22cd11a21144bead4859575d17664d464736f6c6343000818003300000000000000000000000099090d2d220901de904c6e3d003d7ced4b6ec2a40000000000000000000000000000000000000000000000000000000000000bb8000000000000000000000000a0f7b92b4f6eb51b0dce12b3e473dbae0bf24ce000000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000409f9cbc7c4a04c220000000000000000000000000000000c36442b4a4522e871399cd717abdd847ab11fe880000000000000000000000001f98431c8ad98523631ae4a59f267346ea31f9840000000000000000000000000000000000000000000000000000000000000140000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000000005dc000000000000000000000000000000000000000000000001158e460913d0000000000000000000000000000000000000000000000000000000000000000000c800000000000000000000000069691ce612c244b0829b9e124cca063816da144800000000000000000000000000000000000000000000000000000000000000084d6f6f2044656e6700000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000074d6f6f44656e670000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002c5646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c5733736964484a686158526664486c775a534936496d526c63324e79615842306157397549697769646d4673645755694f694a4a4a32306c4d6a424e623239455a57356e4a544a444a544977595355794d474e316447556c4d6a426959574a354a54497761476c776347386c4d6a426d636d39744a5449775647686861577868626d51754a5449774a544242553352706247776c4d6a427361585a70626d636c4d6a4270626955794d48526f5a5355794d454e68644331456232636c4d6a4246636d467a4a544e474a5449775358516e637955794d48526f5a5355794d4531766230526c626d636c4d6a42556157316c637955794d4735766479456c4d6a416c526a416c4f55596c5154596c4f55496966537837496e527959576c3058335235634755694f694a335a574a7a6158526c49697769646d4673645755694f694a6f64485277637a6f764c32746f5957397261475676647935366232393061474670624746755a433576636d636966537837496e527959576c3058335235634755694f694a305a57786c5a334a6862534973496e5a686248566c496a6f696148523063484d364c7939304c6d316c4c3031766230526c626d64475957357a496e307365794a30636d4670644639306558426c496a6f6965434973496e5a686248566c496a6f696148523063484d364c7939344c6d4e766253394e623239455a57356e526d467563794a394c48736964484a686158526664486c775a534936496d6c745957646c49697769646d4673645755694f694a6f64485277637a6f764c32467a633256306379357962324e725a585175625756745a53396863334e6c64484d764d6a41794e4441354d6a4d784e6938325a444d7a596a51335a4330324f5441784c5451344f5463744f545a684e6930774d5451314f5745795a546c6d4f544d756347356e496e3164000000000000000000000000000000000000000000000000000000