Overview
Max Total Supply
1,000,000,000,000,000FLOKICOKE
Holders
2,095 (0.00%)
Transfers
-
0
Market
Price
$0.00 @ 0.000000 BNB
Onchain Market Cap
$100,000.00
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 9 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
Contract Source Code (Solidity)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"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":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"AutoBuyBackEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"BuyBackEnabledUpdated","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":false,"internalType":"uint256","name":"tokenAmount","type":"uint256"}],"name":"RewardLiquidityProviders","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapETHForTokens","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amountIn","type":"uint256"},{"indexed":false,"internalType":"address[]","name":"path","type":"address[]"}],"name":"SwapTokensForETH","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":"GetBuyBackTimeInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"GetSwapMinutes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDivisor","type":"uint256"}],"name":"SetBuyBackDivisor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinutes","type":"uint256"}],"name":"SetBuyBackMaxTimeForHistories","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newPercent","type":"uint256"}],"name":"SetBuyBackRangeRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinutes","type":"uint256"}],"name":"SetBuyBackTimeInterval","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newMinutes","type":"uint256"}],"name":"SetSwapMinutes","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"Sweep","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_addressFees","outputs":[{"internalType":"bool","name":"enable","type":"bool"},{"internalType":"uint256","name":"_taxFee","type":"uint256"},{"internalType":"uint256","name":"_liquidityFee","type":"uint256"},{"internalType":"uint256","name":"_buyTaxFee","type":"uint256"},{"internalType":"uint256","name":"_buyLiquidityFee","type":"uint256"},{"internalType":"uint256","name":"_sellTaxFee","type":"uint256"},{"internalType":"uint256","name":"_sellLiquidityFee","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBackDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBackMaxTimeForHistories","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBackRangeRate","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyBackTimeInterval","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_buyTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_intervalMinutesForSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isAutoBuyBack","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_isEnabledBuyBackAndBurn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_liquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"_sellHistories","outputs":[{"internalType":"uint256","name":"time","type":"uint256"},{"internalType":"uint256","name":"bnbAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_sellTaxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_startTimeForSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_taxFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"afterPreSale","outputs":[],"stateMutability":"nonpayable","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":"amount","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":"buyBackEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBackSellLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyBackSellLimitAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_router","type":"address"}],"name":"changeRouterVersion","outputs":[{"internalType":"address","name":"_pair","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"}],"name":"deliver","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"excludeFromReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUnlockTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"includeInReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFee","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromReward","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"time","type":"uint256"}],"name":"lock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingDivisor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumTokensBeforeSwapAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"prepareForPreSale","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tAmount","type":"uint256"},{"internalType":"bool","name":"deductTransferFee","type":"bool"}],"name":"reflectionFromToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enable","type":"bool"},{"internalType":"uint256","name":"_addressTaxFee","type":"uint256"},{"internalType":"uint256","name":"_addressLiquidityFee","type":"uint256"}],"name":"setAddressFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setAutoBuyBackEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enable","type":"bool"},{"internalType":"uint256","name":"_addressTaxFee","type":"uint256"},{"internalType":"uint256","name":"_addressLiquidityFee","type":"uint256"}],"name":"setBuyAddressFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setBuyBackEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyBackSellSetLimit","type":"uint256"}],"name":"setBuyBackSellLimit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"buyTaxFee","type":"uint256"},{"internalType":"uint256","name":"buyLiquidityFee","type":"uint256"}],"name":"setBuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"liquidityFee","type":"uint256"}],"name":"setLiquidityFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_marketingAddress","type":"address"}],"name":"setMarketingAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"divisor","type":"uint256"}],"name":"setMarketingDivisor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maxTxAmount","type":"uint256"}],"name":"setMaxTxAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_minimumTokensBeforeSwap","type":"uint256"}],"name":"setNumTokensSellToAddToBuyBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_address","type":"address"},{"internalType":"bool","name":"_enable","type":"bool"},{"internalType":"uint256","name":"_addressTaxFee","type":"uint256"},{"internalType":"uint256","name":"_addressLiquidityFee","type":"uint256"}],"name":"setSellAddressFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"sellTaxFee","type":"uint256"},{"internalType":"uint256","name":"sellLiquidityFee","type":"uint256"}],"name":"setSellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquifyEnabled","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"taxFee","type":"uint256"}],"name":"setTaxFeePercent","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"rAmount","type":"uint256"}],"name":"tokenFromReflection","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalFees","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"},{"internalType":"address","name":"_to","type":"address"}],"name":"transferForeignToken","outputs":[{"internalType":"bool","name":"_sent","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
60a0604052600380546001600160a01b031916739b4fcac810d56d02e047acf9b0c09726a86bcc1a1790556ddead00000000000000000000000060805269d3c21bcecceda1000000600a8190556200005a9060001962000588565b620000689060001962000527565b600b5560408051808201909152600980825268466c6f6b69436f6b6560b81b60209092019182526200009d91600d9162000451565b5060408051808201909152600980825268464c4f4b49434f4b4560b81b6020909201918252620000d091600e9162000451565b50600f8054600960ff1991821617909155600260108190556011819055600a6012819055601381905560149190915560158190556007601655600b601755603c6019556050601a556004601c5568a2a15d09519be00000601d55680ad78ebc5ac6200000601e55655af3107a4000601f556021805490921660011790915560225561012c602355620151806024556026805462ffffff60a81b191661010160b01b1790553480156200018157600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350600b543360009081526004602081815260409283902093909355815163c45a015560e01b815291517310ed43c718714eb63d5aa57b78b54704e256024e93849363c45a0155938181019391829003018186803b1580156200022357600080fd5b505afa15801562000238573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200025e9190620004f7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015620002a757600080fd5b505afa158015620002bc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e29190620004f7565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b1580156200032b57600080fd5b505af115801562000340573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003669190620004f7565b602680546001600160a01b03199081166001600160a01b039384161790915560258054909116918316919091179055600160076000620003ae6000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff19958616179055308152600790925290208054909116600117905542601855620003fa3390565b6001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a546040516200044291815260200190565b60405180910390a350620005a9565b8280546200045f906200054b565b90600052602060002090601f016020900481019282620004835760008555620004ce565b82601f106200049e57805160ff1916838001178555620004ce565b82800160010185558215620004ce579182015b82811115620004ce578251825591602001919060010190620004b1565b50620004dc929150620004e0565b5090565b5b80821115620004dc5760008155600101620004e1565b60006020828403121562000509578081fd5b81516001600160a01b038116811462000520578182fd5b9392505050565b6000828210156200054657634e487b7160e01b81526011600452602481fd5b500390565b600181811c908216806200056057607f821691505b602082108114156200058257634e487b7160e01b600052602260045260246000fd5b50919050565b600082620005a457634e487b7160e01b81526012600452602481fd5b500690565b60805160601c614426620005cf600039600081816106640152613a5601526144266000f3fe60806040526004361061048d5760003560e01c80637088fb7f11610255578063a9059cbb11610144578063dc44b6a0116100c1578063ea2f0b3711610085578063ea2f0b3714610e2b578063ec28438a14610e4b578063efcc52de14610e6b578063f2fde38b14610e81578063faccd1d714610ea1578063fb0ecfa414610eb757600080fd5b8063dc44b6a014610d6f578063dd46706414610d85578063dd62ed3e14610da5578063e3df003414610deb578063e79b032214610e0b57600080fd5b8063baf9035011610108578063baf9035014610cd8578063c49b9a8014610cf8578063c4a9baed14610d18578063d5a3eb5014610d38578063d6b513cf14610d5957600080fd5b8063a9059cbb14610c38578063ac7a2c9814610c58578063afabc8c614610c78578063b0cb81f114610c98578063b14869fb14610cb857600080fd5b806388f82020116101d25780639f39e4c1116101965780639f39e4c114610bb9578063a073d37f14610bce578063a457c2d714610be3578063a5ece94114610c03578063a69df4b514610c2357600080fd5b806388f8202014610b0d5780638da5cb5b14610b465780638ee88c5314610b64578063906e9dd014610b8457806395d89b4114610ba457600080fd5b80637d001732116102195780637d00173214610a185780637d1db4a514610aab57806380c1244514610ac15780638366e79a14610ad757806388790a6814610af757600080fd5b80637088fb7f146109a35780637090d9ae146109b857806370a08231146109ce578063715018a6146109ee5780637b5a931a14610a0357600080fd5b8063395093511161037c5780635342acb4116102f9578063602bc62b116102bd578063602bc62b1461090b5780636053a0e31461092057806365be043814610941578063690c22ca146109575780636ac9a8701461096d5780636bc87c3a1461098d57600080fd5b80635342acb414610869578063535acb7f146108a2578063557ed1ba146108c25780635881f3ef146108d55780635fa9ce3a146108f557600080fd5b80634906b560116103405780634906b560146107d357806349bd5a5e146107f35780634a74bb02146108135780635134f6ab1461083457806352390c021461084957600080fd5b8063395093511461073d5780633b124fe71461075d5780633bd5d17314610773578063437823ec146107935780634549b039146107b357600080fd5b80631908226e1161040a57806329370cc6116103ce57806329370cc6146106865780632d838119146106a65780632deb50fb146106c6578063313ce567146106fb5780633685d4191461071d57600080fd5b80631908226e146105e6578063200a692d146105fc578063239a093a1461061257806323b872dd1461063257806327c8f8351461065257600080fd5b80630f9b10e9116104515780630f9b10e91461054b57806313114a9d14610565578063137ae83e146105845780631694505e1461059957806318160ddd146105d157600080fd5b8063053bfcd114610499578063061c82d0146104bb57806306fdde03146104db57806307efbfdc14610506578063095ea7b31461051b57600080fd5b3661049457005b600080fd5b3480156104a557600080fd5b506104b96104b4366004614085565b610ed7565b005b3480156104c757600080fd5b506104b96104d6366004614085565b610f1b565b3480156104e757600080fd5b506104f0610f4a565b6040516104fd9190614172565b60405180910390f35b34801561051257600080fd5b506104b9610fdc565b34801561052757600080fd5b5061053b610536366004613f62565b611029565b60405190151581526020016104fd565b34801561055757600080fd5b5060215461053b9060ff1681565b34801561057157600080fd5b50600c545b6040519081526020016104fd565b34801561059057600080fd5b50610576611040565b3480156105a557600080fd5b506025546105b9906001600160a01b031681565b6040516001600160a01b0390911681526020016104fd565b3480156105dd57600080fd5b50600a54610576565b3480156105f257600080fd5b50610576601f5481565b34801561060857600080fd5b5061057660165481565b34801561061e57600080fd5b506104b961062d366004614085565b611056565b34801561063e57600080fd5b5061053b61064d366004613edd565b6110e5565b34801561065e57600080fd5b506105b97f000000000000000000000000000000000000000000000000000000000000000081565b34801561069257600080fd5b506104b96106a136600461404d565b61114e565b3480156106b257600080fd5b506105766106c1366004614085565b6111d0565b3480156106d257600080fd5b506106e66106e1366004614085565b611254565b604080519283526020830191909152016104fd565b34801561070757600080fd5b50600f5460405160ff90911681526020016104fd565b34801561072957600080fd5b506104b9610738366004613e6d565b611282565b34801561074957600080fd5b5061053b610758366004613f62565b611471565b34801561076957600080fd5b5061057660105481565b34801561077f57600080fd5b506104b961078e366004614085565b6114a7565b34801561079f57600080fd5b506104b96107ae366004613e6d565b611591565b3480156107bf57600080fd5b506105766107ce3660046140b5565b6115df565b3480156107df57600080fd5b506104b96107ee366004613f1d565b61166c565b3480156107ff57600080fd5b506026546105b9906001600160a01b031681565b34801561081f57600080fd5b5060265461053b90600160a81b900460ff1681565b34801561084057600080fd5b506104b96116ca565b34801561085557600080fd5b506104b9610864366004613e6d565b611718565b34801561087557600080fd5b5061053b610884366004613e6d565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156108ae57600080fd5b506104b96108bd366004614085565b61186b565b3480156108ce57600080fd5b5042610576565b3480156108e157600080fd5b506105b96108f0366004613e6d565b61189a565b34801561090157600080fd5b5061057660195481565b34801561091757600080fd5b50600254610576565b34801561092c57600080fd5b5060265461053b90600160b01b900460ff1681565b34801561094d57600080fd5b50610576601a5481565b34801561096357600080fd5b5061057660185481565b34801561097957600080fd5b506104b96109883660046140d9565b611bf1565b34801561099957600080fd5b5061057660125481565b3480156109af57600080fd5b506104b9611c26565b3480156109c457600080fd5b5061057660245481565b3480156109da57600080fd5b506105766109e9366004613e6d565b611c9b565b3480156109fa57600080fd5b506104b9611cfa565b348015610a0f57600080fd5b50601f54610576565b348015610a2457600080fd5b50610a74610a33366004613e6d565b601b60205260009081526040902080546001820154600283015460038401546004850154600586015460069096015460ff9095169593949293919290919087565b6040805197151588526020880196909652948601939093526060850191909152608084015260a083015260c082015260e0016104fd565b348015610ab757600080fd5b50610576601d5481565b348015610acd57600080fd5b5061057660235481565b348015610ae357600080fd5b5061053b610af2366004613ea5565b611d5c565b348015610b0357600080fd5b5061057660175481565b348015610b1957600080fd5b5061053b610b28366004613e6d565b6001600160a01b031660009081526008602052604090205460ff1690565b348015610b5257600080fd5b506000546001600160a01b03166105b9565b348015610b7057600080fd5b506104b9610b7f366004614085565b611ef4565b348015610b9057600080fd5b506104b9610b9f366004613e6d565b611f23565b348015610bb057600080fd5b506104f0611f6f565b348015610bc557600080fd5b50610576611f7e565b348015610bda57600080fd5b50601e54610576565b348015610bef57600080fd5b5061053b610bfe366004613f62565b611f8f565b348015610c0f57600080fd5b506003546105b9906001600160a01b031681565b348015610c2f57600080fd5b506104b9611fde565b348015610c4457600080fd5b5061053b610c53366004613f62565b6120e4565b348015610c6457600080fd5b506104b9610c73366004614085565b6120f1565b348015610c8457600080fd5b506104b9610c93366004613f1d565b61212c565b348015610ca457600080fd5b506104b9610cb3366004614085565b61218a565b348015610cc457600080fd5b506104b9610cd3366004614085565b6121b9565b348015610ce457600080fd5b506104b9610cf3366004614085565b6121e8565b348015610d0457600080fd5b506104b9610d1336600461404d565b612223565b348015610d2457600080fd5b506104b9610d33366004613f1d565b61229a565b348015610d4457600080fd5b5060265461053b90600160b81b900460ff1681565b348015610d6557600080fd5b50610576601c5481565b348015610d7b57600080fd5b5061057660155481565b348015610d9157600080fd5b506104b9610da0366004614085565b6122f8565b348015610db157600080fd5b50610576610dc0366004613ea5565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610df757600080fd5b506104b9610e0636600461404d565b61237d565b348015610e1757600080fd5b506104b9610e26366004614085565b6123e8565b348015610e3757600080fd5b506104b9610e46366004613e6d565b612417565b348015610e5757600080fd5b506104b9610e66366004614085565b612462565b348015610e7757600080fd5b5061057660145481565b348015610e8d57600080fd5b506104b9610e9c366004613e6d565b612491565b348015610ead57600080fd5b5061057660225481565b348015610ec357600080fd5b506104b9610ed23660046140d9565b612569565b6000546001600160a01b03163314610f0a5760405162461bcd60e51b8152600401610f01906141c5565b60405180910390fd5b610f1581603c61427b565b60245550565b6000546001600160a01b03163314610f455760405162461bcd60e51b8152600401610f01906141c5565b601055565b6060600d8054610f59906142b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610f85906142b1565b8015610fd25780601f10610fa757610100808354040283529160200191610fd2565b820191906000526020600020905b815481529060010190602001808311610fb557829003601f168201915b5050505050905090565b6000546001600160a01b031633146110065760405162461bcd60e51b8152600401610f01906141c5565b6110106001612223565b6002601055600a60125568a2a15d09519be00000601d55565b600061103633848461259e565b5060015b92915050565b60195460009061105190603c6126c2565b905090565b6000546001600160a01b031633146110805760405162461bcd60e51b8152600401610f01906141c5565b60648111156110e05760405162461bcd60e51b815260206004820152602660248201527f5468652076616c7565206d757374206e6f74206265206c61726765722074686160448201526537101898181760d11b6064820152608401610f01565b601a55565b60006110f2848484612704565b611144843361113f85604051806060016040528060288152602001614384602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190612d81565b61259e565b5060019392505050565b6000546001600160a01b031633146111785760405162461bcd60e51b8152600401610f01906141c5565b60268054821515600160b01b0260ff60b01b199091161790556040517f3794234fa370c9f3b948dda3e3040530785b2ef1eb27dda3ffde478f4e2643c0906111c590831515815260200190565b60405180910390a150565b6000600b548211156112375760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610f01565b6000611241612dbb565b905061124d83826126c2565b9392505050565b6020818154811061126457600080fd5b60009182526020909120600290910201805460019091015490915082565b6000546001600160a01b031633146112ac5760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b03811660009081526008602052604090205460ff166113145760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610f01565b60005b60095481101561146d57816001600160a01b03166009828154811061134c57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316141561145b57600980546113779060019061429a565b8154811061139557634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600980546001600160a01b0390921691839081106113cf57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600582526040808220829055600890925220805460ff19169055600980548061143557634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80611465816142ec565b915050611317565b5050565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161103691859061113f9086612dde565b3360008181526008602052604090205460ff161561151c5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610f01565b600061152783612e3d565b505050506001600160a01b03841660009081526004602052604090205491925061155391905082612e8c565b6001600160a01b038316600090815260046020526040902055600b546115799082612e8c565b600b55600c546115899084612dde565b600c55505050565b6000546001600160a01b031633146115bb5760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000600a548311156116335760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610f01565b8161165257600061164384612e3d565b5093955061103a945050505050565b600061165d84612e3d565b5092955061103a945050505050565b6000546001600160a01b031633146116965760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b03939093166000908152601b60205260409020805460ff1916921515929092178255600582015560060155565b6000546001600160a01b031633146116f45760405162461bcd60e51b8152600401610f01906141c5565b6116fe6000612223565b6000601081905560125569d3c21bcecceda1000000601d55565b6000546001600160a01b031633146117425760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b03811660009081526008602052604090205460ff16156117ab5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610f01565b6001600160a01b03811660009081526004602052604090205415611805576001600160a01b0381166000908152600460205260409020546117eb906111d0565b6001600160a01b0382166000908152600560205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6000546001600160a01b031633146118955760405162461bcd60e51b8152600401610f01906141c5565b601f55565b600080546001600160a01b031633146118c55760405162461bcd60e51b8152600401610f01906141c5565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561190357600080fd5b505afa158015611917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193b9190613e89565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561198357600080fd5b505afa158015611997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bb9190613e89565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015611a0157600080fd5b505afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a399190613e89565b91506001600160a01b038216611bbd57806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611a8257600080fd5b505afa158015611a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aba9190613e89565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0257600080fd5b505afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a9190613e89565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015611b8257600080fd5b505af1158015611b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bba9190613e89565b91505b602680546001600160a01b038085166001600160a01b03199283161790925560258054939092169216919091179055919050565b6000546001600160a01b03163314611c1b5760405162461bcd60e51b8152600401610f01906141c5565b601691909155601755565b6000546001600160a01b03163314611c505760405162461bcd60e51b8152600401610f01906141c5565b47611c636000546001600160a01b031690565b6001600160a01b03166108fc829081150290604051600060405180830381858888f1935050505015801561146d573d6000803e3d6000fd5b6001600160a01b03811660009081526008602052604081205460ff1615611cd857506001600160a01b031660009081526005602052604090205490565b6001600160a01b03821660009081526004602052604090205461103a906111d0565b6000546001600160a01b03163314611d245760405162461bcd60e51b8152600401610f01906141c5565b600080546040516001600160a01b03909116906000805160206143ac833981519152908390a3600080546001600160a01b0319169055565b600080546001600160a01b03163314611d875760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b038316301415611dec5760405162461bcd60e51b815260206004820152602360248201527f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60448201526235b2b760e91b6064820152608401610f01565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a082319060240160206040518083038186803b158015611e2e57600080fd5b505afa158015611e42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e66919061409d565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb90604401602060405180830381600087803b158015611eb457600080fd5b505af1158015611ec8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eec9190614069565b949350505050565b6000546001600160a01b03163314611f1e5760405162461bcd60e51b8152600401610f01906141c5565b601255565b6000546001600160a01b03163314611f4d5760405162461bcd60e51b8152600401610f01906141c5565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6060600e8054610f59906142b1565b60235460009061105190603c6126c2565b6000611036338461113f856040518060600160405280602581526020016143cc602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190612d81565b6001546001600160a01b031633146120445760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610f01565b60025442116120955760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c20372064617973006044820152606401610f01565b600154600080546040516001600160a01b0393841693909116916000805160206143ac83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000611036338484612704565b6000546001600160a01b0316331461211b5760405162461bcd60e51b8152600401610f01906141c5565b61212681603c61427b565b60235550565b6000546001600160a01b031633146121565760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b03939093166000908152601b60205260409020805460ff1916921515929092178255600382015560040155565b6000546001600160a01b031633146121b45760405162461bcd60e51b8152600401610f01906141c5565b601c55565b6000546001600160a01b031633146121e35760405162461bcd60e51b8152600401610f01906141c5565b601e55565b6000546001600160a01b031633146122125760405162461bcd60e51b8152600401610f01906141c5565b61221d81603c61427b565b60195550565b6000546001600160a01b0316331461224d5760405162461bcd60e51b8152600401610f01906141c5565b60268054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906111c590831515815260200190565b6000546001600160a01b031633146122c45760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b03939093166000908152601b60205260409020805460ff1916921515929092178255600182015560020155565b6000546001600160a01b031633146123225760405162461bcd60e51b8152600401610f01906141c5565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055612351814261424f565b600255600080546040516001600160a01b03909116906000805160206143ac833981519152908390a350565b6000546001600160a01b031633146123a75760405162461bcd60e51b8152600401610f01906141c5565b6021805460ff19168215159081179091556040519081527fa53c6be1202d17d11e250c717d12c9ab9ccb8f62ee9f34c8b8e2173e3d9c2c03906020016111c5565b6000546001600160a01b031633146124125760405162461bcd60e51b8152600401610f01906141c5565b602255565b6000546001600160a01b031633146124415760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b0316331461248c5760405162461bcd60e51b8152600401610f01906141c5565b601d55565b6000546001600160a01b031633146124bb5760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b0381166125205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610f01565b600080546040516001600160a01b03808516939216916000805160206143ac83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146125935760405162461bcd60e51b8152600401610f01906141c5565b601491909155601555565b6001600160a01b0383166126005760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610f01565b6001600160a01b0382166126615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610f01565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061124d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ece565b6001600160a01b0383166127685760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610f01565b6001600160a01b0382166127ca5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610f01565b6000811161282c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610f01565b6000546001600160a01b0384811691161480159061285857506000546001600160a01b03838116911614155b156128c057601d548111156128c05760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610f01565b60006128cb30611c9b565b601e54602654919250821015906001600160a01b0385811691161480156129075750602654600090612905906001600160a01b0316611c9b565b115b1561299257604080518082019091526000602082015242815261292984612efc565b6020828101918252805460018101825560009190915291517fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb600290930292830155517fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bc909101555b602654600160a01b900460ff161580156129b55750602654600160a81b900460ff165b80156129d657506026546000906129d4906001600160a01b0316611c9b565b115b15612bd5576026546001600160a01b0385811691161415612bd557808015612a0d575042601954601854612a0a919061424f565b11155b15612a245742601855601e549150612a24826130bc565b602654600160b01b900460ff1615612bd557601f5460215447919060ff1615612b465760008060235442612a58919061429a565b90506000805b602054811015612b08578260208281548110612a8a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016000015410612af657612ae660208281548110612ac557634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015485612dde90919063ffffffff16565b9350612af382600161424f565b91505b80612b00816142ec565b915050612a5e565b50600081118015612b1b57506000602254115b15612b3a57602254612b3790612b3185846126c2565b906126c2565b93505b612b42613127565b5050505b6000612b626064612b31601a54856132e890919063ffffffff16565b90506000612b70828461429a565b612b7b90600161424f565b6040805142602082015244918101919091526060016040516020818303038152906040528051906020012060001c612bb39190614307565b612bbd908361424f565b905080841115612bd057612bd081613367565b505050505b6001600160a01b03851660009081526007602052604090205460019060ff1680612c1757506001600160a01b03851660009081526007602052604090205460ff165b15612c2457506000612d6d565b6026546001600160a01b0387811691161415612c4f57612c42613399565b6014546010556015546012555b6026546001600160a01b0386811691161415612c7a57612c6d613399565b6016546010556017546012555b6001600160a01b0386166000908152601b602052604090205460ff1615612d0657612ca3613399565b6001600160a01b038087166000908152601b6020526040902060018101546010556002015460125560265486821691161415612d01576001600160a01b0386166000908152601b602052604090206005810154601055600601546012555b612d6d565b6001600160a01b0385166000908152601b602052604090205460ff1615612d6d57612d2f613399565b6026546001600160a01b0387811691161415612d6d576001600160a01b0385166000908152601b602052604090206003810154601055600401546012555b612d79868686846133c7565b505050505050565b60008184841115612da55760405162461bcd60e51b8152600401610f019190614172565b506000612db2848661429a565b95945050505050565b6000806000612dc86134ec565b9092509050612dd782826126c2565b9250505090565b600080612deb838561424f565b90508381101561124d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610f01565b6000806000806000806000806000612e548a6136a6565b9250925092506000806000612e728d8686612e6d612dbb565b6136e8565b919f909e50909c50959a5093985091965092945050505050565b600061124d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d81565b60008183612eef5760405162461bcd60e51b8152600401610f019190614172565b506000612db28486614267565b604080516002808252606082018352600092839291906020830190803683370190505090503081600081518110612f4357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015612f9757600080fd5b505afa158015612fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fcf9190613e89565b81600181518110612ff057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260255460405163d06ca61f60e01b8152600092919091169063d06ca61f9061303490879086906004016141fa565b60006040518083038186803b15801561304c57600080fd5b505afa158015613060573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130889190810190613f8d565b9050806001815181106130ab57634e487b7160e01b600052603260045260246000fd5b602002602001015192505050919050565b6026805460ff60a01b1916600160a01b179055476130d982613738565b60006130e54783612e8c565b600354601c54919250613115916001600160a01b039091169061311090606490612b319086906132e8565b6138f6565b50506026805460ff60a01b1916905550565b60008060245442613138919061429a565b905060005b60205481101561327457816020828154811061316957634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600001541061326257602081815481106131a157634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000154602084815481106131d457634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600001819055506020818154811061320a57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600101546020848154811061323d57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001018190555082600161325f919061424f565b92505b8061326c816142ec565b91505061313d565b5060205460009061328690849061429a565b905060005b818110156132e25760208054806132b257634e487b7160e01b600052603160045260246000fd5b600082815260208120600260001990930192830201818155600101559055806132da816142ec565b91505061328b565b50505050565b6000826132f75750600061103a565b6000613303838561427b565b9050826133108583614267565b1461124d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610f01565b6026805460ff60a01b1916600160a01b17905580156133895761338981613931565b506026805460ff60a01b19169055565b6010541580156133a95750601254155b156133b057565b601080546011556012805460135560009182905555565b806133d4576133d4613399565b6001600160a01b03841660009081526008602052604090205460ff16801561341557506001600160a01b03831660009081526008602052604090205460ff16155b1561342a57613425848484613b03565b6134d6565b6001600160a01b03841660009081526008602052604090205460ff1615801561346b57506001600160a01b03831660009081526008602052604090205460ff165b1561347b57613425848484613c29565b6001600160a01b03841660009081526008602052604090205460ff1680156134bb57506001600160a01b03831660009081526008602052604090205460ff165b156134cb57613425848484613cd2565b6134d6848484613d45565b806132e2576132e2601154601055601354601255565b600b54600a546000918291825b6009548110156136765782600460006009848154811061352957634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806135a2575081600560006009848154811061357b57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156135b857600b54600a54945094505050509091565b61360c60046000600984815481106135e057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612e8c565b9250613662600560006009848154811061363657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612e8c565b91508061366e816142ec565b9150506134f9565b50600a54600b54613686916126c2565b82101561369d57600b54600a549350935050509091565b90939092509050565b6000806000806136b585613d89565b905060006136c286613da5565b905060006136da826136d48986612e8c565b90612e8c565b979296509094509092505050565b60008080806136f788866132e8565b9050600061370588876132e8565b9050600061371388886132e8565b90506000613725826136d48686612e8c565b939b939a50919850919650505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061377b57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156137cf57600080fd5b505afa1580156137e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138079190613e89565b8160018151811061382857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260255461384e913091168461259e565b60255460405163791ac94760e01b81526001600160a01b039091169063791ac94790613887908590600090869030904290600401614213565b600060405180830381600087803b1580156138a157600080fd5b505af11580156138b5573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516138ea9291906141fa565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561392c573d6000803e3d6000fd5b505050565b6040805160028082526060820183526000926020830190803683375050602554604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b15801561399657600080fd5b505afa1580156139aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139ce9190613e89565b816000815181106139ef57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110613a3157634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526025541663b6f9de95836000847f0000000000000000000000000000000000000000000000000000000000000000613a814261012c612dde565b6040518663ffffffff1660e01b8152600401613aa0949392919061413d565b6000604051808303818588803b158015613ab957600080fd5b505af1158015613acd573d6000803e3d6000fd5b50505050507f6fd378a9d8b7345c2e5b18229aaf1e39d32b177b501d0a0d26a0a858a23a962482826040516138ea9291906141fa565b600080600080600080613b1587612e3d565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150613b479088612e8c565b6001600160a01b038a16600090815260056020908152604080832093909355600490522054613b769087612e8c565b6001600160a01b03808b1660009081526004602052604080822093909355908a1681522054613ba59086612dde565b6001600160a01b038916600090815260046020526040902055613bc781613dc1565b613bd18483613e49565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613c1691815260200190565b60405180910390a3505050505050505050565b600080600080600080613c3b87612e3d565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150613c6d9087612e8c565b6001600160a01b03808b16600090815260046020908152604080832094909455918b16815260059091522054613ca39084612dde565b6001600160a01b038916600090815260056020908152604080832093909355600490522054613ba59086612dde565b600080600080600080613ce487612e3d565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150613d169088612e8c565b6001600160a01b038a16600090815260056020908152604080832093909355600490522054613c6d9087612e8c565b600080600080600080613d5787612e3d565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150613b769087612e8c565b600061103a6064612b31601054856132e890919063ffffffff16565b600061103a6064612b31601254856132e890919063ffffffff16565b6000613dcb612dbb565b90506000613dd983836132e8565b30600090815260046020526040902054909150613df69082612dde565b3060009081526004602090815260408083209390935560089052205460ff161561392c5730600090815260056020526040902054613e349084612dde565b30600090815260056020526040902055505050565b600b54613e569083612e8c565b600b55600c54613e669082612dde565b600c555050565b600060208284031215613e7e578081fd5b813561124d8161435d565b600060208284031215613e9a578081fd5b815161124d8161435d565b60008060408385031215613eb7578081fd5b8235613ec28161435d565b91506020830135613ed28161435d565b809150509250929050565b600080600060608486031215613ef1578081fd5b8335613efc8161435d565b92506020840135613f0c8161435d565b929592945050506040919091013590565b60008060008060808587031215613f32578081fd5b8435613f3d8161435d565b93506020850135613f4d81614375565b93969395505050506040820135916060013590565b60008060408385031215613f74578182fd5b8235613f7f8161435d565b946020939093013593505050565b60006020808385031215613f9f578182fd5b825167ffffffffffffffff80821115613fb6578384fd5b818501915085601f830112613fc9578384fd5b815181811115613fdb57613fdb614347565b8060051b604051601f19603f8301168101818110858211171561400057614000614347565b604052828152858101935084860182860187018a101561401e578788fd5b8795505b83861015614040578051855260019590950194938601938601614022565b5098975050505050505050565b60006020828403121561405e578081fd5b813561124d81614375565b60006020828403121561407a578081fd5b815161124d81614375565b600060208284031215614096578081fd5b5035919050565b6000602082840312156140ae578081fd5b5051919050565b600080604083850312156140c7578182fd5b823591506020830135613ed281614375565b600080604083850312156140eb578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b838110156141325781516001600160a01b03168752958201959082019060010161410d565b509495945050505050565b84815260806020820152600061415660808301866140fa565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b8181101561419e57858101830151858201604001528201614182565b818111156141af5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000611eec60408301846140fa565b85815284602082015260a06040820152600061423260a08301866140fa565b6001600160a01b0394909416606083015250608001529392505050565b600082198211156142625761426261431b565b500190565b60008261427657614276614331565b500490565b60008160001904831182151516156142955761429561431b565b500290565b6000828210156142ac576142ac61431b565b500390565b600181811c908216806142c557607f821691505b602082108114156142e657634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156143005761430061431b565b5060010190565b60008261431657614316614331565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461437257600080fd5b50565b801515811461437257600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220713bf36accc672f69e902ca8bd7ddb65057ddba6638dd6b27c6c8ec4a231a7a864736f6c63430008040033
Deployed Bytecode
0x60806040526004361061048d5760003560e01c80637088fb7f11610255578063a9059cbb11610144578063dc44b6a0116100c1578063ea2f0b3711610085578063ea2f0b3714610e2b578063ec28438a14610e4b578063efcc52de14610e6b578063f2fde38b14610e81578063faccd1d714610ea1578063fb0ecfa414610eb757600080fd5b8063dc44b6a014610d6f578063dd46706414610d85578063dd62ed3e14610da5578063e3df003414610deb578063e79b032214610e0b57600080fd5b8063baf9035011610108578063baf9035014610cd8578063c49b9a8014610cf8578063c4a9baed14610d18578063d5a3eb5014610d38578063d6b513cf14610d5957600080fd5b8063a9059cbb14610c38578063ac7a2c9814610c58578063afabc8c614610c78578063b0cb81f114610c98578063b14869fb14610cb857600080fd5b806388f82020116101d25780639f39e4c1116101965780639f39e4c114610bb9578063a073d37f14610bce578063a457c2d714610be3578063a5ece94114610c03578063a69df4b514610c2357600080fd5b806388f8202014610b0d5780638da5cb5b14610b465780638ee88c5314610b64578063906e9dd014610b8457806395d89b4114610ba457600080fd5b80637d001732116102195780637d00173214610a185780637d1db4a514610aab57806380c1244514610ac15780638366e79a14610ad757806388790a6814610af757600080fd5b80637088fb7f146109a35780637090d9ae146109b857806370a08231146109ce578063715018a6146109ee5780637b5a931a14610a0357600080fd5b8063395093511161037c5780635342acb4116102f9578063602bc62b116102bd578063602bc62b1461090b5780636053a0e31461092057806365be043814610941578063690c22ca146109575780636ac9a8701461096d5780636bc87c3a1461098d57600080fd5b80635342acb414610869578063535acb7f146108a2578063557ed1ba146108c25780635881f3ef146108d55780635fa9ce3a146108f557600080fd5b80634906b560116103405780634906b560146107d357806349bd5a5e146107f35780634a74bb02146108135780635134f6ab1461083457806352390c021461084957600080fd5b8063395093511461073d5780633b124fe71461075d5780633bd5d17314610773578063437823ec146107935780634549b039146107b357600080fd5b80631908226e1161040a57806329370cc6116103ce57806329370cc6146106865780632d838119146106a65780632deb50fb146106c6578063313ce567146106fb5780633685d4191461071d57600080fd5b80631908226e146105e6578063200a692d146105fc578063239a093a1461061257806323b872dd1461063257806327c8f8351461065257600080fd5b80630f9b10e9116104515780630f9b10e91461054b57806313114a9d14610565578063137ae83e146105845780631694505e1461059957806318160ddd146105d157600080fd5b8063053bfcd114610499578063061c82d0146104bb57806306fdde03146104db57806307efbfdc14610506578063095ea7b31461051b57600080fd5b3661049457005b600080fd5b3480156104a557600080fd5b506104b96104b4366004614085565b610ed7565b005b3480156104c757600080fd5b506104b96104d6366004614085565b610f1b565b3480156104e757600080fd5b506104f0610f4a565b6040516104fd9190614172565b60405180910390f35b34801561051257600080fd5b506104b9610fdc565b34801561052757600080fd5b5061053b610536366004613f62565b611029565b60405190151581526020016104fd565b34801561055757600080fd5b5060215461053b9060ff1681565b34801561057157600080fd5b50600c545b6040519081526020016104fd565b34801561059057600080fd5b50610576611040565b3480156105a557600080fd5b506025546105b9906001600160a01b031681565b6040516001600160a01b0390911681526020016104fd565b3480156105dd57600080fd5b50600a54610576565b3480156105f257600080fd5b50610576601f5481565b34801561060857600080fd5b5061057660165481565b34801561061e57600080fd5b506104b961062d366004614085565b611056565b34801561063e57600080fd5b5061053b61064d366004613edd565b6110e5565b34801561065e57600080fd5b506105b97f000000000000000000000000000000000000000000000000000000000000dead81565b34801561069257600080fd5b506104b96106a136600461404d565b61114e565b3480156106b257600080fd5b506105766106c1366004614085565b6111d0565b3480156106d257600080fd5b506106e66106e1366004614085565b611254565b604080519283526020830191909152016104fd565b34801561070757600080fd5b50600f5460405160ff90911681526020016104fd565b34801561072957600080fd5b506104b9610738366004613e6d565b611282565b34801561074957600080fd5b5061053b610758366004613f62565b611471565b34801561076957600080fd5b5061057660105481565b34801561077f57600080fd5b506104b961078e366004614085565b6114a7565b34801561079f57600080fd5b506104b96107ae366004613e6d565b611591565b3480156107bf57600080fd5b506105766107ce3660046140b5565b6115df565b3480156107df57600080fd5b506104b96107ee366004613f1d565b61166c565b3480156107ff57600080fd5b506026546105b9906001600160a01b031681565b34801561081f57600080fd5b5060265461053b90600160a81b900460ff1681565b34801561084057600080fd5b506104b96116ca565b34801561085557600080fd5b506104b9610864366004613e6d565b611718565b34801561087557600080fd5b5061053b610884366004613e6d565b6001600160a01b031660009081526007602052604090205460ff1690565b3480156108ae57600080fd5b506104b96108bd366004614085565b61186b565b3480156108ce57600080fd5b5042610576565b3480156108e157600080fd5b506105b96108f0366004613e6d565b61189a565b34801561090157600080fd5b5061057660195481565b34801561091757600080fd5b50600254610576565b34801561092c57600080fd5b5060265461053b90600160b01b900460ff1681565b34801561094d57600080fd5b50610576601a5481565b34801561096357600080fd5b5061057660185481565b34801561097957600080fd5b506104b96109883660046140d9565b611bf1565b34801561099957600080fd5b5061057660125481565b3480156109af57600080fd5b506104b9611c26565b3480156109c457600080fd5b5061057660245481565b3480156109da57600080fd5b506105766109e9366004613e6d565b611c9b565b3480156109fa57600080fd5b506104b9611cfa565b348015610a0f57600080fd5b50601f54610576565b348015610a2457600080fd5b50610a74610a33366004613e6d565b601b60205260009081526040902080546001820154600283015460038401546004850154600586015460069096015460ff9095169593949293919290919087565b6040805197151588526020880196909652948601939093526060850191909152608084015260a083015260c082015260e0016104fd565b348015610ab757600080fd5b50610576601d5481565b348015610acd57600080fd5b5061057660235481565b348015610ae357600080fd5b5061053b610af2366004613ea5565b611d5c565b348015610b0357600080fd5b5061057660175481565b348015610b1957600080fd5b5061053b610b28366004613e6d565b6001600160a01b031660009081526008602052604090205460ff1690565b348015610b5257600080fd5b506000546001600160a01b03166105b9565b348015610b7057600080fd5b506104b9610b7f366004614085565b611ef4565b348015610b9057600080fd5b506104b9610b9f366004613e6d565b611f23565b348015610bb057600080fd5b506104f0611f6f565b348015610bc557600080fd5b50610576611f7e565b348015610bda57600080fd5b50601e54610576565b348015610bef57600080fd5b5061053b610bfe366004613f62565b611f8f565b348015610c0f57600080fd5b506003546105b9906001600160a01b031681565b348015610c2f57600080fd5b506104b9611fde565b348015610c4457600080fd5b5061053b610c53366004613f62565b6120e4565b348015610c6457600080fd5b506104b9610c73366004614085565b6120f1565b348015610c8457600080fd5b506104b9610c93366004613f1d565b61212c565b348015610ca457600080fd5b506104b9610cb3366004614085565b61218a565b348015610cc457600080fd5b506104b9610cd3366004614085565b6121b9565b348015610ce457600080fd5b506104b9610cf3366004614085565b6121e8565b348015610d0457600080fd5b506104b9610d1336600461404d565b612223565b348015610d2457600080fd5b506104b9610d33366004613f1d565b61229a565b348015610d4457600080fd5b5060265461053b90600160b81b900460ff1681565b348015610d6557600080fd5b50610576601c5481565b348015610d7b57600080fd5b5061057660155481565b348015610d9157600080fd5b506104b9610da0366004614085565b6122f8565b348015610db157600080fd5b50610576610dc0366004613ea5565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b348015610df757600080fd5b506104b9610e0636600461404d565b61237d565b348015610e1757600080fd5b506104b9610e26366004614085565b6123e8565b348015610e3757600080fd5b506104b9610e46366004613e6d565b612417565b348015610e5757600080fd5b506104b9610e66366004614085565b612462565b348015610e7757600080fd5b5061057660145481565b348015610e8d57600080fd5b506104b9610e9c366004613e6d565b612491565b348015610ead57600080fd5b5061057660225481565b348015610ec357600080fd5b506104b9610ed23660046140d9565b612569565b6000546001600160a01b03163314610f0a5760405162461bcd60e51b8152600401610f01906141c5565b60405180910390fd5b610f1581603c61427b565b60245550565b6000546001600160a01b03163314610f455760405162461bcd60e51b8152600401610f01906141c5565b601055565b6060600d8054610f59906142b1565b80601f0160208091040260200160405190810160405280929190818152602001828054610f85906142b1565b8015610fd25780601f10610fa757610100808354040283529160200191610fd2565b820191906000526020600020905b815481529060010190602001808311610fb557829003601f168201915b5050505050905090565b6000546001600160a01b031633146110065760405162461bcd60e51b8152600401610f01906141c5565b6110106001612223565b6002601055600a60125568a2a15d09519be00000601d55565b600061103633848461259e565b5060015b92915050565b60195460009061105190603c6126c2565b905090565b6000546001600160a01b031633146110805760405162461bcd60e51b8152600401610f01906141c5565b60648111156110e05760405162461bcd60e51b815260206004820152602660248201527f5468652076616c7565206d757374206e6f74206265206c61726765722074686160448201526537101898181760d11b6064820152608401610f01565b601a55565b60006110f2848484612704565b611144843361113f85604051806060016040528060288152602001614384602891396001600160a01b038a1660009081526006602090815260408083203384529091529020549190612d81565b61259e565b5060019392505050565b6000546001600160a01b031633146111785760405162461bcd60e51b8152600401610f01906141c5565b60268054821515600160b01b0260ff60b01b199091161790556040517f3794234fa370c9f3b948dda3e3040530785b2ef1eb27dda3ffde478f4e2643c0906111c590831515815260200190565b60405180910390a150565b6000600b548211156112375760405162461bcd60e51b815260206004820152602a60248201527f416d6f756e74206d757374206265206c657373207468616e20746f74616c207260448201526965666c656374696f6e7360b01b6064820152608401610f01565b6000611241612dbb565b905061124d83826126c2565b9392505050565b6020818154811061126457600080fd5b60009182526020909120600290910201805460019091015490915082565b6000546001600160a01b031633146112ac5760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b03811660009081526008602052604090205460ff166113145760405162461bcd60e51b815260206004820152601760248201527f4163636f756e74206973206e6f74206578636c756465640000000000000000006044820152606401610f01565b60005b60095481101561146d57816001600160a01b03166009828154811061134c57634e487b7160e01b600052603260045260246000fd5b6000918252602090912001546001600160a01b0316141561145b57600980546113779060019061429a565b8154811061139557634e487b7160e01b600052603260045260246000fd5b600091825260209091200154600980546001600160a01b0390921691839081106113cf57634e487b7160e01b600052603260045260246000fd5b600091825260208083209190910180546001600160a01b0319166001600160a01b039485161790559184168152600582526040808220829055600890925220805460ff19169055600980548061143557634e487b7160e01b600052603160045260246000fd5b600082815260209020810160001990810180546001600160a01b03191690550190555050565b80611465816142ec565b915050611317565b5050565b3360008181526006602090815260408083206001600160a01b0387168452909152812054909161103691859061113f9086612dde565b3360008181526008602052604090205460ff161561151c5760405162461bcd60e51b815260206004820152602c60248201527f4578636c75646564206164647265737365732063616e6e6f742063616c6c207460448201526b3434b990333ab731ba34b7b760a11b6064820152608401610f01565b600061152783612e3d565b505050506001600160a01b03841660009081526004602052604090205491925061155391905082612e8c565b6001600160a01b038316600090815260046020526040902055600b546115799082612e8c565b600b55600c546115899084612dde565b600c55505050565b6000546001600160a01b031633146115bb5760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b03166000908152600760205260409020805460ff19166001179055565b6000600a548311156116335760405162461bcd60e51b815260206004820152601f60248201527f416d6f756e74206d757374206265206c657373207468616e20737570706c79006044820152606401610f01565b8161165257600061164384612e3d565b5093955061103a945050505050565b600061165d84612e3d565b5092955061103a945050505050565b6000546001600160a01b031633146116965760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b03939093166000908152601b60205260409020805460ff1916921515929092178255600582015560060155565b6000546001600160a01b031633146116f45760405162461bcd60e51b8152600401610f01906141c5565b6116fe6000612223565b6000601081905560125569d3c21bcecceda1000000601d55565b6000546001600160a01b031633146117425760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b03811660009081526008602052604090205460ff16156117ab5760405162461bcd60e51b815260206004820152601b60248201527f4163636f756e7420697320616c7265616479206578636c7564656400000000006044820152606401610f01565b6001600160a01b03811660009081526004602052604090205415611805576001600160a01b0381166000908152600460205260409020546117eb906111d0565b6001600160a01b0382166000908152600560205260409020555b6001600160a01b03166000818152600860205260408120805460ff191660019081179091556009805491820181559091527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af0180546001600160a01b0319169091179055565b6000546001600160a01b031633146118955760405162461bcd60e51b8152600401610f01906141c5565b601f55565b600080546001600160a01b031633146118c55760405162461bcd60e51b8152600401610f01906141c5565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b15801561190357600080fd5b505afa158015611917573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193b9190613e89565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561198357600080fd5b505afa158015611997573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119bb9190613e89565b6040516001600160e01b031960e085901b1681526001600160a01b0392831660048201529116602482015260440160206040518083038186803b158015611a0157600080fd5b505afa158015611a15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a399190613e89565b91506001600160a01b038216611bbd57806001600160a01b031663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b158015611a8257600080fd5b505afa158015611a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aba9190613e89565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015611b0257600080fd5b505afa158015611b16573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b3a9190613e89565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381600087803b158015611b8257600080fd5b505af1158015611b96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611bba9190613e89565b91505b602680546001600160a01b038085166001600160a01b03199283161790925560258054939092169216919091179055919050565b6000546001600160a01b03163314611c1b5760405162461bcd60e51b8152600401610f01906141c5565b601691909155601755565b6000546001600160a01b03163314611c505760405162461bcd60e51b8152600401610f01906141c5565b47611c636000546001600160a01b031690565b6001600160a01b03166108fc829081150290604051600060405180830381858888f1935050505015801561146d573d6000803e3d6000fd5b6001600160a01b03811660009081526008602052604081205460ff1615611cd857506001600160a01b031660009081526005602052604090205490565b6001600160a01b03821660009081526004602052604090205461103a906111d0565b6000546001600160a01b03163314611d245760405162461bcd60e51b8152600401610f01906141c5565b600080546040516001600160a01b03909116906000805160206143ac833981519152908390a3600080546001600160a01b0319169055565b600080546001600160a01b03163314611d875760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b038316301415611dec5760405162461bcd60e51b815260206004820152602360248201527f43616e2774206c657420796f752074616b6520616c6c206e617469766520746f60448201526235b2b760e91b6064820152608401610f01565b6040516370a0823160e01b81523060048201526000906001600160a01b038516906370a082319060240160206040518083038186803b158015611e2e57600080fd5b505afa158015611e42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e66919061409d565b60405163a9059cbb60e01b81526001600160a01b038581166004830152602482018390529192509085169063a9059cbb90604401602060405180830381600087803b158015611eb457600080fd5b505af1158015611ec8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611eec9190614069565b949350505050565b6000546001600160a01b03163314611f1e5760405162461bcd60e51b8152600401610f01906141c5565b601255565b6000546001600160a01b03163314611f4d5760405162461bcd60e51b8152600401610f01906141c5565b600380546001600160a01b0319166001600160a01b0392909216919091179055565b6060600e8054610f59906142b1565b60235460009061105190603c6126c2565b6000611036338461113f856040518060600160405280602581526020016143cc602591393360009081526006602090815260408083206001600160a01b038d1684529091529020549190612d81565b6001546001600160a01b031633146120445760405162461bcd60e51b815260206004820152602360248201527f596f7520646f6e27742068617665207065726d697373696f6e20746f20756e6c6044820152626f636b60e81b6064820152608401610f01565b60025442116120955760405162461bcd60e51b815260206004820152601f60248201527f436f6e7472616374206973206c6f636b656420756e74696c20372064617973006044820152606401610f01565b600154600080546040516001600160a01b0393841693909116916000805160206143ac83398151915291a3600154600080546001600160a01b0319166001600160a01b03909216919091179055565b6000611036338484612704565b6000546001600160a01b0316331461211b5760405162461bcd60e51b8152600401610f01906141c5565b61212681603c61427b565b60235550565b6000546001600160a01b031633146121565760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b03939093166000908152601b60205260409020805460ff1916921515929092178255600382015560040155565b6000546001600160a01b031633146121b45760405162461bcd60e51b8152600401610f01906141c5565b601c55565b6000546001600160a01b031633146121e35760405162461bcd60e51b8152600401610f01906141c5565b601e55565b6000546001600160a01b031633146122125760405162461bcd60e51b8152600401610f01906141c5565b61221d81603c61427b565b60195550565b6000546001600160a01b0316331461224d5760405162461bcd60e51b8152600401610f01906141c5565b60268054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc159906111c590831515815260200190565b6000546001600160a01b031633146122c45760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b03939093166000908152601b60205260409020805460ff1916921515929092178255600182015560020155565b6000546001600160a01b031633146123225760405162461bcd60e51b8152600401610f01906141c5565b60008054600180546001600160a01b03199081166001600160a01b03841617909155169055612351814261424f565b600255600080546040516001600160a01b03909116906000805160206143ac833981519152908390a350565b6000546001600160a01b031633146123a75760405162461bcd60e51b8152600401610f01906141c5565b6021805460ff19168215159081179091556040519081527fa53c6be1202d17d11e250c717d12c9ab9ccb8f62ee9f34c8b8e2173e3d9c2c03906020016111c5565b6000546001600160a01b031633146124125760405162461bcd60e51b8152600401610f01906141c5565b602255565b6000546001600160a01b031633146124415760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b03166000908152600760205260409020805460ff19169055565b6000546001600160a01b0316331461248c5760405162461bcd60e51b8152600401610f01906141c5565b601d55565b6000546001600160a01b031633146124bb5760405162461bcd60e51b8152600401610f01906141c5565b6001600160a01b0381166125205760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610f01565b600080546040516001600160a01b03808516939216916000805160206143ac83398151915291a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146125935760405162461bcd60e51b8152600401610f01906141c5565b601491909155601555565b6001600160a01b0383166126005760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610f01565b6001600160a01b0382166126615760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610f01565b6001600160a01b0383811660008181526006602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600061124d83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612ece565b6001600160a01b0383166127685760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610f01565b6001600160a01b0382166127ca5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610f01565b6000811161282c5760405162461bcd60e51b815260206004820152602960248201527f5472616e7366657220616d6f756e74206d7573742062652067726561746572206044820152687468616e207a65726f60b81b6064820152608401610f01565b6000546001600160a01b0384811691161480159061285857506000546001600160a01b03838116911614155b156128c057601d548111156128c05760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610f01565b60006128cb30611c9b565b601e54602654919250821015906001600160a01b0385811691161480156129075750602654600090612905906001600160a01b0316611c9b565b115b1561299257604080518082019091526000602082015242815261292984612efc565b6020828101918252805460018101825560009190915291517fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bb600290930292830155517fc97bfaf2f8ee708c303a06d134f5ecd8389ae0432af62dc132a24118292866bc909101555b602654600160a01b900460ff161580156129b55750602654600160a81b900460ff165b80156129d657506026546000906129d4906001600160a01b0316611c9b565b115b15612bd5576026546001600160a01b0385811691161415612bd557808015612a0d575042601954601854612a0a919061424f565b11155b15612a245742601855601e549150612a24826130bc565b602654600160b01b900460ff1615612bd557601f5460215447919060ff1615612b465760008060235442612a58919061429a565b90506000805b602054811015612b08578260208281548110612a8a57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016000015410612af657612ae660208281548110612ac557634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001015485612dde90919063ffffffff16565b9350612af382600161424f565b91505b80612b00816142ec565b915050612a5e565b50600081118015612b1b57506000602254115b15612b3a57602254612b3790612b3185846126c2565b906126c2565b93505b612b42613127565b5050505b6000612b626064612b31601a54856132e890919063ffffffff16565b90506000612b70828461429a565b612b7b90600161424f565b6040805142602082015244918101919091526060016040516020818303038152906040528051906020012060001c612bb39190614307565b612bbd908361424f565b905080841115612bd057612bd081613367565b505050505b6001600160a01b03851660009081526007602052604090205460019060ff1680612c1757506001600160a01b03851660009081526007602052604090205460ff165b15612c2457506000612d6d565b6026546001600160a01b0387811691161415612c4f57612c42613399565b6014546010556015546012555b6026546001600160a01b0386811691161415612c7a57612c6d613399565b6016546010556017546012555b6001600160a01b0386166000908152601b602052604090205460ff1615612d0657612ca3613399565b6001600160a01b038087166000908152601b6020526040902060018101546010556002015460125560265486821691161415612d01576001600160a01b0386166000908152601b602052604090206005810154601055600601546012555b612d6d565b6001600160a01b0385166000908152601b602052604090205460ff1615612d6d57612d2f613399565b6026546001600160a01b0387811691161415612d6d576001600160a01b0385166000908152601b602052604090206003810154601055600401546012555b612d79868686846133c7565b505050505050565b60008184841115612da55760405162461bcd60e51b8152600401610f019190614172565b506000612db2848661429a565b95945050505050565b6000806000612dc86134ec565b9092509050612dd782826126c2565b9250505090565b600080612deb838561424f565b90508381101561124d5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610f01565b6000806000806000806000806000612e548a6136a6565b9250925092506000806000612e728d8686612e6d612dbb565b6136e8565b919f909e50909c50959a5093985091965092945050505050565b600061124d83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612d81565b60008183612eef5760405162461bcd60e51b8152600401610f019190614172565b506000612db28486614267565b604080516002808252606082018352600092839291906020830190803683370190505090503081600081518110612f4357634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b158015612f9757600080fd5b505afa158015612fab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fcf9190613e89565b81600181518110612ff057634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260255460405163d06ca61f60e01b8152600092919091169063d06ca61f9061303490879086906004016141fa565b60006040518083038186803b15801561304c57600080fd5b505afa158015613060573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526130889190810190613f8d565b9050806001815181106130ab57634e487b7160e01b600052603260045260246000fd5b602002602001015192505050919050565b6026805460ff60a01b1916600160a01b179055476130d982613738565b60006130e54783612e8c565b600354601c54919250613115916001600160a01b039091169061311090606490612b319086906132e8565b6138f6565b50506026805460ff60a01b1916905550565b60008060245442613138919061429a565b905060005b60205481101561327457816020828154811061316957634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600001541061326257602081815481106131a157634e487b7160e01b600052603260045260246000fd5b906000526020600020906002020160000154602084815481106131d457634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600001819055506020818154811061320a57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060020201600101546020848154811061323d57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600202016001018190555082600161325f919061424f565b92505b8061326c816142ec565b91505061313d565b5060205460009061328690849061429a565b905060005b818110156132e25760208054806132b257634e487b7160e01b600052603160045260246000fd5b600082815260208120600260001990930192830201818155600101559055806132da816142ec565b91505061328b565b50505050565b6000826132f75750600061103a565b6000613303838561427b565b9050826133108583614267565b1461124d5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610f01565b6026805460ff60a01b1916600160a01b17905580156133895761338981613931565b506026805460ff60a01b19169055565b6010541580156133a95750601254155b156133b057565b601080546011556012805460135560009182905555565b806133d4576133d4613399565b6001600160a01b03841660009081526008602052604090205460ff16801561341557506001600160a01b03831660009081526008602052604090205460ff16155b1561342a57613425848484613b03565b6134d6565b6001600160a01b03841660009081526008602052604090205460ff1615801561346b57506001600160a01b03831660009081526008602052604090205460ff165b1561347b57613425848484613c29565b6001600160a01b03841660009081526008602052604090205460ff1680156134bb57506001600160a01b03831660009081526008602052604090205460ff165b156134cb57613425848484613cd2565b6134d6848484613d45565b806132e2576132e2601154601055601354601255565b600b54600a546000918291825b6009548110156136765782600460006009848154811061352957634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b0316835282019290925260400190205411806135a2575081600560006009848154811061357b57634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b03168352820192909252604001902054115b156135b857600b54600a54945094505050509091565b61360c60046000600984815481106135e057634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548490612e8c565b9250613662600560006009848154811061363657634e487b7160e01b600052603260045260246000fd5b60009182526020808320909101546001600160a01b031683528201929092526040019020548390612e8c565b91508061366e816142ec565b9150506134f9565b50600a54600b54613686916126c2565b82101561369d57600b54600a549350935050509091565b90939092509050565b6000806000806136b585613d89565b905060006136c286613da5565b905060006136da826136d48986612e8c565b90612e8c565b979296509094509092505050565b60008080806136f788866132e8565b9050600061370588876132e8565b9050600061371388886132e8565b90506000613725826136d48686612e8c565b939b939a50919850919650505050505050565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061377b57634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201810191909152602554604080516315ab88c960e31b81529051919093169263ad5c4648926004808301939192829003018186803b1580156137cf57600080fd5b505afa1580156137e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138079190613e89565b8160018151811061382857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260255461384e913091168461259e565b60255460405163791ac94760e01b81526001600160a01b039091169063791ac94790613887908590600090869030904290600401614213565b600060405180830381600087803b1580156138a157600080fd5b505af11580156138b5573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a782826040516138ea9291906141fa565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f1935050505015801561392c573d6000803e3d6000fd5b505050565b6040805160028082526060820183526000926020830190803683375050602554604080516315ab88c960e31b815290519394506001600160a01b039091169263ad5c464892506004808301926020929190829003018186803b15801561399657600080fd5b505afa1580156139aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139ce9190613e89565b816000815181106139ef57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110613a3157634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526025541663b6f9de95836000847f000000000000000000000000000000000000000000000000000000000000dead613a814261012c612dde565b6040518663ffffffff1660e01b8152600401613aa0949392919061413d565b6000604051808303818588803b158015613ab957600080fd5b505af1158015613acd573d6000803e3d6000fd5b50505050507f6fd378a9d8b7345c2e5b18229aaf1e39d32b177b501d0a0d26a0a858a23a962482826040516138ea9291906141fa565b600080600080600080613b1587612e3d565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150613b479088612e8c565b6001600160a01b038a16600090815260056020908152604080832093909355600490522054613b769087612e8c565b6001600160a01b03808b1660009081526004602052604080822093909355908a1681522054613ba59086612dde565b6001600160a01b038916600090815260046020526040902055613bc781613dc1565b613bd18483613e49565b876001600160a01b0316896001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef85604051613c1691815260200190565b60405180910390a3505050505050505050565b600080600080600080613c3b87612e3d565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150613c6d9087612e8c565b6001600160a01b03808b16600090815260046020908152604080832094909455918b16815260059091522054613ca39084612dde565b6001600160a01b038916600090815260056020908152604080832093909355600490522054613ba59086612dde565b600080600080600080613ce487612e3d565b6001600160a01b038f16600090815260056020526040902054959b50939950919750955093509150613d169088612e8c565b6001600160a01b038a16600090815260056020908152604080832093909355600490522054613c6d9087612e8c565b600080600080600080613d5787612e3d565b6001600160a01b038f16600090815260046020526040902054959b50939950919750955093509150613b769087612e8c565b600061103a6064612b31601054856132e890919063ffffffff16565b600061103a6064612b31601254856132e890919063ffffffff16565b6000613dcb612dbb565b90506000613dd983836132e8565b30600090815260046020526040902054909150613df69082612dde565b3060009081526004602090815260408083209390935560089052205460ff161561392c5730600090815260056020526040902054613e349084612dde565b30600090815260056020526040902055505050565b600b54613e569083612e8c565b600b55600c54613e669082612dde565b600c555050565b600060208284031215613e7e578081fd5b813561124d8161435d565b600060208284031215613e9a578081fd5b815161124d8161435d565b60008060408385031215613eb7578081fd5b8235613ec28161435d565b91506020830135613ed28161435d565b809150509250929050565b600080600060608486031215613ef1578081fd5b8335613efc8161435d565b92506020840135613f0c8161435d565b929592945050506040919091013590565b60008060008060808587031215613f32578081fd5b8435613f3d8161435d565b93506020850135613f4d81614375565b93969395505050506040820135916060013590565b60008060408385031215613f74578182fd5b8235613f7f8161435d565b946020939093013593505050565b60006020808385031215613f9f578182fd5b825167ffffffffffffffff80821115613fb6578384fd5b818501915085601f830112613fc9578384fd5b815181811115613fdb57613fdb614347565b8060051b604051601f19603f8301168101818110858211171561400057614000614347565b604052828152858101935084860182860187018a101561401e578788fd5b8795505b83861015614040578051855260019590950194938601938601614022565b5098975050505050505050565b60006020828403121561405e578081fd5b813561124d81614375565b60006020828403121561407a578081fd5b815161124d81614375565b600060208284031215614096578081fd5b5035919050565b6000602082840312156140ae578081fd5b5051919050565b600080604083850312156140c7578182fd5b823591506020830135613ed281614375565b600080604083850312156140eb578182fd5b50508035926020909101359150565b6000815180845260208085019450808401835b838110156141325781516001600160a01b03168752958201959082019060010161410d565b509495945050505050565b84815260806020820152600061415660808301866140fa565b6001600160a01b03949094166040830152506060015292915050565b6000602080835283518082850152825b8181101561419e57858101830151858201604001528201614182565b818111156141af5783604083870101525b50601f01601f1916929092016040019392505050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b828152604060208201526000611eec60408301846140fa565b85815284602082015260a06040820152600061423260a08301866140fa565b6001600160a01b0394909416606083015250608001529392505050565b600082198211156142625761426261431b565b500190565b60008261427657614276614331565b500490565b60008160001904831182151516156142955761429561431b565b500290565b6000828210156142ac576142ac61431b565b500390565b600181811c908216806142c557607f821691505b602082108114156142e657634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156143005761430061431b565b5060010190565b60008261431657614316614331565b500690565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461437257600080fd5b50565b801515811461437257600080fdfe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63658be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e045524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220713bf36accc672f69e902ca8bd7ddb65057ddba6638dd6b27c6c8ec4a231a7a864736f6c63430008040033
Deployed Bytecode Sourcemap
16688:28997:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;40084:149;;;;;;;;;;-1:-1:-1;40084:149:0;;;;;:::i;:::-;;:::i;:::-;;41095:98;;;;;;;;;;-1:-1:-1;41095:98:0;;;;;:::i;:::-;;:::i;20862:83::-;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;43118:192;;;;;;;;;;;;;:::i;21774:161::-;;;;;;;;;;-1:-1:-1;21774:161:0;;;;;:::i;:::-;;:::i;:::-;;;6848:14:1;;6841:22;6823:41;;6811:2;6796:18;21774:161:0;6778:92:1;18912:33:0;;;;;;;;;;-1:-1:-1;18912:33:0;;;;;;;;22895:87;;;;;;;;;;-1:-1:-1;22964:10:0;;22895:87;;;16431:25:1;;;16419:2;16404:18;22895:87:0;16386:76:1;40834:112:0;;;;;;;;;;;;;:::i;19117:41::-;;;;;;;;;;-1:-1:-1;19117:41:0;;;;-1:-1:-1;;;;;19117:41:0;;;;;;-1:-1:-1;;;;;5827:32:1;;;5809:51;;5797:2;5782:18;19117:41:0;5764:102:1;21139:95:0;;;;;;;;;;-1:-1:-1;21219:7:0;;21139:95;;18772:44;;;;;;;;;;;;;;;;18279:30;;;;;;;;;;;;;;;;40630:196;;;;;;;;;;-1:-1:-1;40630:196:0;;;;;:::i;:::-;;:::i;21943:313::-;;;;;;;;;;-1:-1:-1;21943:313:0;;;;;:::i;:::-;;:::i;16933:81::-;;;;;;;;;;;;;;;42580:150;;;;;;;;;;-1:-1:-1;42580:150:0;;;;;:::i;:::-;;:::i;24073:253::-;;;;;;;;;;-1:-1:-1;24073:253:0;;;;;:::i;:::-;;:::i;18868:37::-;;;;;;;;;;-1:-1:-1;18868:37:0;;;;;:::i;:::-;;:::i;:::-;;;;17565:25:1;;;17621:2;17606:18;;17599:34;;;;17538:18;18868:37:0;17520:119:1;21048:83:0;;;;;;;;;;-1:-1:-1;21114:9:0;;21048:83;;21114:9;;;;17786:36:1;;17774:2;17759:18;21048:83:0;17741:87:1;24677:475:0;;;;;;;;;;-1:-1:-1;24677:475:0;;;;;:::i;:::-;;:::i;22264:218::-;;;;;;;;;;-1:-1:-1;22264:218:0;;;;;:::i;:::-;;:::i;18004:26::-;;;;;;;;;;;;;;;;23241:377;;;;;;;;;;-1:-1:-1;23241:377:0;;;;;:::i;:::-;;:::i;38808:111::-;;;;;;;;;;-1:-1:-1;38808:111:0;;;;;:::i;:::-;;:::i;23629:436::-;;;;;;;;;;-1:-1:-1;23629:436:0;;;;;:::i;:::-;;:::i;45351:326::-;;;;;;;;;;-1:-1:-1;45351:326:0;;;;;:::i;:::-;;:::i;19165:28::-;;;;;;;;;;-1:-1:-1;19165:28:0;;;;-1:-1:-1;;;;;19165:28:0;;;19233:41;;;;;;;;;;-1:-1:-1;19233:41:0;;;;-1:-1:-1;;;19233:41:0;;;;;;42907:200;;;;;;;;;;;;;:::i;24334:335::-;;;;;;;;;;-1:-1:-1;24334:335:0;;;;;:::i;:::-;;:::i;38674:123::-;;;;;;;;;;-1:-1:-1;38674:123:0;;;;;:::i;:::-;-1:-1:-1;;;;;38762:27:0;38738:4;38762:27;;;:18;:27;;;;;;;;;38674:123;41701:134;;;;;;;;;;-1:-1:-1;41701:134:0;;;;;:::i;:::-;;:::i;8082:90::-;;;;;;;;;;-1:-1:-1;8149:15:0;8082:90;;43455:636;;;;;;;;;;-1:-1:-1;43455:636:0;;;;;:::i;:::-;;:::i;18401:54::-;;;;;;;;;;;;;;;;7981:90;;;;;;;;;;-1:-1:-1;8054:9:0;;7981:90;;19281:33;;;;;;;;;;-1:-1:-1;19281:33:0;;;;-1:-1:-1;;;19281:33:0;;;;;;18464:37;;;;;;;;;;;;;;;;18362:32;;;;;;;;;;;;;;;;41387:175;;;;;;;;;;-1:-1:-1;41387:175:0;;;;;:::i;:::-;;:::i;18090:33::-;;;;;;;;;;;;;;;;44545:139;;;;;;;;;;;;;:::i;19048:60::-;;;;;;;;;;;;;;;;21242:198;;;;;;;;;;-1:-1:-1;21242:198:0;;;;;:::i;:::-;;:::i;7573:148::-;;;;;;;;;;;;;:::i;23124:106::-;;;;;;;;;;-1:-1:-1;23206:16:0;;23124:106;;18534:51;;;;;;;;;;-1:-1:-1;18534:51:0;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7209:14:1;;7202:22;7184:41;;7256:2;7241:18;;7234:34;;;;7284:18;;;7277:34;;;;7342:2;7327:18;;7320:34;;;;7385:3;7370:19;;7363:35;7429:3;7414:19;;7407:35;7473:3;7458:19;;7451:35;7171:3;7156:19;18534:51:0;7138:354:1;18641:53:0;;;;;;;;;;;;;;;;18994:47;;;;;;;;;;;;;;;;44207:327;;;;;;;;;;-1:-1:-1;44207:327:0;;;;;:::i;:::-;;:::i;18316:37::-;;;;;;;;;;;;;;;;22767:120;;;;;;;;;;-1:-1:-1;22767:120:0;;;;;:::i;:::-;-1:-1:-1;;;;;22859:20:0;22835:4;22859:20;;;:11;:20;;;;;;;;;22767:120;7351:79;;;;;;;;;;-1:-1:-1;7389:7:0;7416:6;-1:-1:-1;;;;;7416:6:0;7351:79;;41573:120;;;;;;;;;;-1:-1:-1;41573:120:0;;;;;:::i;:::-;;:::i;42251:139::-;;;;;;;;;;-1:-1:-1;42251:139:0;;;;;:::i;:::-;;:::i;20953:87::-;;;;;;;;;;;;;:::i;40362:117::-;;;;;;;;;;;;;:::i;22993:120::-;;;;;;;;;;-1:-1:-1;23082:23:0;;22993:120;;22490:269;;;;;;;;;;-1:-1:-1;22490:269:0;;;;;:::i;:::-;;:::i;16812:93::-;;;;;;;;;;-1:-1:-1;16812:93:0;;;;-1:-1:-1;;;;;16812:93:0;;;8417:305;;;;;;;;;;;;;:::i;21448:167::-;;;;;;;;;;-1:-1:-1;21448:167:0;;;;;:::i;:::-;;:::i;40487:135::-;;;;;;;;;;-1:-1:-1;40487:135:0;;;;;:::i;:::-;;:::i;45017:323::-;;;;;;;;;;-1:-1:-1;45017:323:0;;;;;:::i;:::-;;:::i;41963:110::-;;;;;;;;;;-1:-1:-1;41963:110:0;;;;;:::i;:::-;;:::i;42081:162::-;;;;;;;;;;-1:-1:-1;42081:162:0;;;;;:::i;:::-;;:::i;40954:130::-;;;;;;;;;;-1:-1:-1;40954:130:0;;;;;:::i;:::-;;:::i;42398:171::-;;;;;;;;;;-1:-1:-1;42398:171:0;;;;;:::i;:::-;;:::i;44692:314::-;;;;;;;;;;-1:-1:-1;44692:314:0;;;;;:::i;:::-;;:::i;19323:43::-;;;;;;;;;;-1:-1:-1;19323:43:0;;;;-1:-1:-1;;;19323:43:0;;;;;;18594:35;;;;;;;;;;;;;;;;18231:36;;;;;;;;;;;;;;;;8180:226;;;;;;;;;;-1:-1:-1;8180:226:0;;;;;:::i;:::-;;:::i;21623:143::-;;;;;;;;;;-1:-1:-1;21623:143:0;;;;;:::i;:::-;-1:-1:-1;;;;;21731:18:0;;;21704:7;21731:18;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;21623:143;42738:158;;;;;;;;;;-1:-1:-1;42738:158:0;;;;;:::i;:::-;;:::i;40241:113::-;;;;;;;;;;-1:-1:-1;40241:113:0;;;;;:::i;:::-;;:::i;38930:110::-;;;;;;;;;;-1:-1:-1;38930:110:0;;;;;:::i;:::-;;:::i;41843:109::-;;;;;;;;;;-1:-1:-1;41843:109:0;;;;;:::i;:::-;;:::i;18195:29::-;;;;;;;;;;;;;;;;7729:244;;;;;;;;;;-1:-1:-1;7729:244:0;;;;;:::i;:::-;;:::i;18952:35::-;;;;;;;;;;;;;;;;41208:168;;;;;;;;;;-1:-1:-1;41208:168:0;;;;;:::i;:::-;;:::i;40084:149::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;;;;;;;;;40203:22:::1;:10:::0;40216:9:::1;40203:22;:::i;:::-;40173:27;:52:::0;-1:-1:-1;40084:149:0:o;41095:98::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;41169:7:::1;:16:::0;41095:98::o;20862:83::-;20899:13;20932:5;20925:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;20862:83;:::o;43118:192::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;43172:30:::1;43197:4;43172:24;:30::i;:::-;43223:1;43213:7;:11:::0;43251:2:::1;43235:13;:18:::0;43279:23:::1;43264:12;:38:::0;43118:192::o;21774:161::-;21849:4;21866:39;1737:10;21889:7;21898:6;21866:8;:39::i;:::-;-1:-1:-1;21923:4:0;21774:161;;;;;:::o;40834:112::-;40907:23;;40880:7;;40907:31;;40935:2;40907:27;:31::i;:::-;40900:38;;40834:112;:::o;40630:196::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;40731:3:::1;40717:10;:17;;40709:68;;;::::0;-1:-1:-1;;;40709:68:0;;14092:2:1;40709:68:0::1;::::0;::::1;14074:21:1::0;14131:2;14111:18;;;14104:30;14170:34;14150:18;;;14143:62;-1:-1:-1;;;14221:18:1;;;14214:36;14267:19;;40709:68:0::1;14064:228:1::0;40709:68:0::1;40788:17;:30:::0;40630:196::o;21943:313::-;22041:4;22058:36;22068:6;22076:9;22087:6;22058:9;:36::i;:::-;22105:121;22114:6;1737:10;22136:89;22174:6;22136:89;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;22136:19:0;;;;;;:11;:19;;;;;;;;1737:10;22136:33;;;;;;;;;;:37;:89::i;:::-;22105:8;:121::i;:::-;-1:-1:-1;22244:4:0;21943:313;;;;;:::o;42580:150::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;42650:14:::1;:25:::0;;;::::1;;-1:-1:-1::0;;;42650:25:0::1;-1:-1:-1::0;;;;42650:25:0;;::::1;;::::0;;42691:31:::1;::::0;::::1;::::0;::::1;::::0;42667:8;6848:14:1;6841:22;6823:41;;6811:2;6796:18;;6778:92;42691:31:0::1;;;;;;;;42580:150:::0;:::o;24073:253::-;24139:7;24178;;24167;:18;;24159:73;;;;-1:-1:-1;;;24159:73:0;;9865:2:1;24159:73:0;;;9847:21:1;9904:2;9884:18;;;9877:30;9943:34;9923:18;;;9916:62;-1:-1:-1;;;9994:18:1;;;9987:40;10044:19;;24159:73:0;9837:232:1;24159:73:0;24243:19;24266:10;:8;:10::i;:::-;24243:33;-1:-1:-1;24294:24:0;:7;24243:33;24294:11;:24::i;:::-;24287:31;24073:253;-1:-1:-1;;;24073:253:0:o;18868:37::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;18868:37:0;:::o;24677:475::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24759:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;24751:56;;;::::0;-1:-1:-1;;;24751:56:0;;11798:2:1;24751:56:0::1;::::0;::::1;11780:21:1::0;11837:2;11817:18;;;11810:30;11876:25;11856:18;;;11849:53;11919:18;;24751:56:0::1;11770:173:1::0;24751:56:0::1;24823:9;24818:327;24842:9;:16:::0;24838:20;::::1;24818:327;;;24900:7;-1:-1:-1::0;;;;;24884:23:0::1;:9;24894:1;24884:12;;;;;;-1:-1:-1::0;;;24884:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;24884:12:0::1;:23;24880:254;;;24943:9;24953:16:::0;;:20:::1;::::0;24972:1:::1;::::0;24953:20:::1;:::i;:::-;24943:31;;;;;;-1:-1:-1::0;;;24943:31:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;::::1;::::0;24928:9:::1;:12:::0;;-1:-1:-1;;;;;24943:31:0;;::::1;::::0;24938:1;;24928:12;::::1;;;-1:-1:-1::0;;;24928:12:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;;;::::1;:46:::0;;-1:-1:-1;;;;;;24928:46:0::1;-1:-1:-1::0;;;;;24928:46:0;;::::1;;::::0;;24993:16;;::::1;::::0;;:7:::1;:16:::0;;;;;;:20;;;25032:11:::1;:20:::0;;;;:28;;-1:-1:-1;;25032:28:0::1;::::0;;25079:9:::1;:15:::0;;;::::1;;-1:-1:-1::0;;;25079:15:0::1;;;;;;;;;;::::0;;;::::1;::::0;;;;-1:-1:-1;;25079:15:0;;;;;-1:-1:-1;;;;;;25079:15:0::1;::::0;;;;;24818:327:::1;24677:475:::0;:::o;24880:254::-:1;24860:3:::0;::::1;::::0;::::1;:::i;:::-;;;;24818:327;;;;24677:475:::0;:::o;22264:218::-;1737:10;22352:4;22401:25;;;:11;:25;;;;;;;;-1:-1:-1;;;;;22401:34:0;;;;;;;;;;22352:4;;22369:83;;22392:7;;22401:50;;22440:10;22401:38;:50::i;23241:377::-;1737:10;23293:14;23342:19;;;:11;:19;;;;;;;;23341:20;23333:77;;;;-1:-1:-1;;;23333:77:0;;15670:2:1;23333:77:0;;;15652:21:1;15709:2;15689:18;;;15682:30;15748:34;15728:18;;;15721:62;-1:-1:-1;;;15799:18:1;;;15792:42;15851:19;;23333:77:0;15642:234:1;23333:77:0;23422:15;23446:19;23457:7;23446:10;:19::i;:::-;-1:-1:-1;;;;;;;;;23494:15:0;;;;;;:7;:15;;;;;;23421:44;;-1:-1:-1;23494:28:0;;:15;-1:-1:-1;23421:44:0;23494:19;:28::i;:::-;-1:-1:-1;;;;;23476:15:0;;;;;;:7;:15;;;;;:46;23543:7;;:20;;23555:7;23543:11;:20::i;:::-;23533:7;:30;23587:10;;:23;;23602:7;23587:14;:23::i;:::-;23574:10;:36;-1:-1:-1;;;23241:377:0:o;38808:111::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;38877:27:0::1;;::::0;;;:18:::1;:27;::::0;;;;:34;;-1:-1:-1;;38877:34:0::1;38907:4;38877:34;::::0;;38808:111::o;23629:436::-;23719:7;23758;;23747;:18;;23739:62;;;;-1:-1:-1;;;23739:62:0;;12150:2:1;23739:62:0;;;12132:21:1;12189:2;12169:18;;;12162:30;12228:33;12208:18;;;12201:61;12279:18;;23739:62:0;12122:181:1;23739:62:0;23817:17;23812:246;;23852:15;23876:19;23887:7;23876:10;:19::i;:::-;-1:-1:-1;23851:44:0;;-1:-1:-1;23910:14:0;;-1:-1:-1;;;;;23910:14:0;23812:246;23959:23;23990:19;24001:7;23990:10;:19::i;:::-;-1:-1:-1;23957:52:0;;-1:-1:-1;24024:22:0;;-1:-1:-1;;;;;24024:22:0;45351:326;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;45494:22:0;;;::::1;;::::0;;;:12:::1;:22;::::0;;;;:39;;-1:-1:-1;;45494:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;45544:34:::1;::::0;::::1;:51:::0;45606:40:::1;;:63:::0;45351:326::o;42907:200::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;42966:31:::1;42991:5;42966:24;:31::i;:::-;43018:1;43008:7;:11:::0;;;43030:13:::1;:17:::0;43073:26:::1;43058:12;:41:::0;42907:200::o;24334:335::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;24419:20:0;::::1;;::::0;;;:11:::1;:20;::::0;;;;;::::1;;24418:21;24410:61;;;::::0;-1:-1:-1;;;24410:61:0;;11442:2:1;24410:61:0::1;::::0;::::1;11424:21:1::0;11481:2;11461:18;;;11454:30;11520:29;11500:18;;;11493:57;11567:18;;24410:61:0::1;11414:177:1::0;24410:61:0::1;-1:-1:-1::0;;;;;24485:16:0;::::1;24504:1;24485:16:::0;;;:7:::1;:16;::::0;;;;;:20;24482:108:::1;;-1:-1:-1::0;;;;;24561:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;;24541:37:::1;::::0;:19:::1;:37::i;:::-;-1:-1:-1::0;;;;;24522:16:0;::::1;;::::0;;;:7:::1;:16;::::0;;;;:56;24482:108:::1;-1:-1:-1::0;;;;;24600:20:0::1;;::::0;;;:11:::1;:20;::::0;;;;:27;;-1:-1:-1;;24600:27:0::1;24623:4;24600:27:::0;;::::1;::::0;;;24638:9:::1;:23:::0;;;;::::1;::::0;;;;;;::::1;::::0;;-1:-1:-1;;;;;;24638:23:0::1;::::0;;::::1;::::0;;24334:335::o;41701:134::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;41789:16:::1;:38:::0;41701:134::o;43455:636::-;43526:13;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;43552:35:::1;43609:7;43552:65;;43663:16;-1:-1:-1::0;;;;;43663:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;43645:53:0::1;;43707:4;43714:16;-1:-1:-1::0;;;;;43714:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;43645:93;::::0;-1:-1:-1;;;;;;43645:93:0::1;::::0;;;;;;-1:-1:-1;;;;;6325:15:1;;;43645:93:0::1;::::0;::::1;6307:34:1::0;6377:15;;6357:18;;;6350:43;6242:18;;43645:93:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;43637:101:::0;-1:-1:-1;;;;;;43752:19:0;::::1;43749:203;;43848:16;-1:-1:-1::0;;;;;43848:24:0::1;;:26;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;43830:70:0::1;;43909:4;43916:16;-1:-1:-1::0;;;;;43916:21:0::1;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;43830:110;::::0;-1:-1:-1;;;;;;43830:110:0::1;::::0;;;;;;-1:-1:-1;;;;;6325:15:1;;;43830:110:0::1;::::0;::::1;6307:34:1::0;6377:15;;6357:18;;;6350:43;6242:18;;43830:110:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;43822:118;;43749:203;43962:13;:21:::0;;-1:-1:-1;;;;;43962:21:0;;::::1;-1:-1:-1::0;;;;;;43962:21:0;;::::1;;::::0;;;44049:15:::1;:34:::0;;;;;::::1;::::0;::::1;::::0;;;::::1;::::0;;43978:5;43455:636;-1:-1:-1;43455:636:0:o;41387:175::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;41483:11:::1;:24:::0;;;;41518:17:::1;:36:::0;41387:175::o;44545:139::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;44610:21:::1;44650:7;7389::::0;7416:6;-1:-1:-1;;;;;7416:6:0;;7351:79;44650:7:::1;-1:-1:-1::0;;;;;44642:25:0::1;:34;44668:7;44642:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;21242:198:::0;-1:-1:-1;;;;;21332:20:0;;21308:7;21332:20;;;:11;:20;;;;;;;;21328:49;;;-1:-1:-1;;;;;;21361:16:0;;;;;:7;:16;;;;;;;21242:198::o;21328:49::-;-1:-1:-1;;;;;21415:16:0;;;;;;:7;:16;;;;;;21395:37;;:19;:37::i;7573:148::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;7680:1:::1;7664:6:::0;;7643:40:::1;::::0;-1:-1:-1;;;;;7664:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;7643:40:0;7680:1;;7643:40:::1;7711:1;7694:19:::0;;-1:-1:-1;;;;;;7694:19:0::1;::::0;;7573:148::o;44207:327::-;44291:10;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;44321:23:0;::::1;44339:4;44321:23;;44313:71;;;::::0;-1:-1:-1;;;44313:71:0;;9461:2:1;44313:71:0::1;::::0;::::1;9443:21:1::0;9500:2;9480:18;;;9473:30;9539:34;9519:18;;;9512:62;-1:-1:-1;;;9590:18:1;;;9583:33;9633:19;;44313:71:0::1;9433:225:1::0;44313:71:0::1;44422:39;::::0;-1:-1:-1;;;44422:39:0;;44455:4:::1;44422:39;::::0;::::1;5809:51:1::0;44395:24:0::1;::::0;-1:-1:-1;;;;;44422:24:0;::::1;::::0;::::1;::::0;5782:18:1;;44422:39:0::1;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;44480:46;::::0;-1:-1:-1;;;44480:46:0;;-1:-1:-1;;;;;6596:32:1;;;44480:46:0::1;::::0;::::1;6578:51:1::0;6645:18;;;6638:34;;;44395:66:0;;-1:-1:-1;44480:23:0;;::::1;::::0;::::1;::::0;6551:18:1;;44480:46:0::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;44472:54:::0;44207:327;-1:-1:-1;;;;44207:327:0:o;41573:120::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;41657:13:::1;:28:::0;41573:120::o;42251:139::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;42337:16:::1;:45:::0;;-1:-1:-1;;;;;;42337:45:0::1;-1:-1:-1::0;;;;;42337:45:0;;;::::1;::::0;;;::::1;::::0;;42251:139::o;20953:87::-;20992:13;21025:7;21018:14;;;;;:::i;40362:117::-;40443:20;;40416:7;;40443:28;;40468:2;40443:24;:28::i;22490:269::-;22583:4;22600:129;1737:10;22623:7;22632:96;22671:15;22632:96;;;;;;;;;;;;;;;;;1737:10;22632:25;;;;:11;:25;;;;;;;;-1:-1:-1;;;;;22632:34:0;;;;;;;;;;;;:38;:96::i;8417:305::-;8469:14;;-1:-1:-1;;;;;8469:14:0;8487:10;8469:28;8461:76;;;;-1:-1:-1;;;8461:76:0;;16083:2:1;8461:76:0;;;16065:21:1;16122:2;16102:18;;;16095:30;16161:34;16141:18;;;16134:62;-1:-1:-1;;;16212:18:1;;;16205:33;16255:19;;8461:76:0;16055:225:1;8461:76:0;8574:9;;8556:15;:27;8548:72;;;;-1:-1:-1;;;8548:72:0;;15310:2:1;8548:72:0;;;15292:21:1;15349:2;15329:18;;;15322:30;15388:33;15368:18;;;15361:61;15439:18;;8548:72:0;15282:181:1;8548:72:0;8665:14;;;8657:6;;8636:44;;-1:-1:-1;;;;;8665:14:0;;;;8657:6;;;;-1:-1:-1;;;;;;;;;;;8636:44:0;;8700:14;;;8691:23;;-1:-1:-1;;;;;;8691:23:0;-1:-1:-1;;;;;8700:14:0;;;8691:23;;;;;;8417:305::o;21448:167::-;21526:4;21543:42;1737:10;21567:9;21578:6;21543:9;:42::i;40487:135::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;40592:22:::1;:10:::0;40605:9:::1;40592:22;:::i;:::-;40569:20;:45:::0;-1:-1:-1;40487:135:0:o;45017:323::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;45159:22:0;;;::::1;;::::0;;;:12:::1;:22;::::0;;;;:39;;-1:-1:-1;;45159:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;45209:33:::1;::::0;::::1;:50:::0;45270:39:::1;;:62:::0;45017:323::o;41963:110::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;42039:16:::1;:26:::0;41963:110::o;42081:162::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;42185:23:::1;:50:::0;42081:162::o;40954:130::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;41054:22:::1;:10:::0;41067:9:::1;41054:22;:::i;:::-;41028:23;:48:::0;-1:-1:-1;40954:130:0:o;42398:171::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;42475:21:::1;:32:::0;;;::::1;;-1:-1:-1::0;;;42475:32:0::1;-1:-1:-1::0;;;;42475:32:0;;::::1;;::::0;;42523:38:::1;::::0;::::1;::::0;::::1;::::0;42499:8;6848:14:1;6841:22;6823:41;;6811:2;6796:18;;6778:92;44692:314:0;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;44831:22:0;;;::::1;;::::0;;;:12:::1;:22;::::0;;;;:39;;-1:-1:-1;;44831:39:0::1;::::0;::::1;;::::0;;;::::1;::::0;;-1:-1:-1;44881:30:0;::::1;:47:::0;44939:36:::1;;:59:::0;44692:314::o;8180:226::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;8261:6:::1;::::0;;;8244:23;;-1:-1:-1;;;;;;8244:23:0;;::::1;-1:-1:-1::0;;;;;8261:6:0;::::1;8244:23;::::0;;;8278:19:::1;::::0;;8320:22:::1;8338:4:::0;8320:15:::1;:22;:::i;:::-;8308:9;:34:::0;8395:1:::1;8379:6:::0;;8358:40:::1;::::0;-1:-1:-1;;;;;8379:6:0;;::::1;::::0;-1:-1:-1;;;;;;;;;;;8358:40:0;8395:1;;8358:40:::1;8180:226:::0;:::o;42738:158::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;42812:14:::1;:25:::0;;-1:-1:-1;;42812:25:0::1;::::0;::::1;;::::0;;::::1;::::0;;;42853:35:::1;::::0;6823:41:1;;;42853:35:0::1;::::0;6811:2:1;6796:18;42853:35:0::1;6778:92:1::0;40241:113:0;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;40318:15:::1;:28:::0;40241:113::o;38930:110::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;38997:27:0::1;39027:5;38997:27:::0;;;:18:::1;:27;::::0;;;;:35;;-1:-1:-1;;38997:35:0::1;::::0;;38930:110::o;41843:109::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;41918:12:::1;:26:::0;41843:109::o;7729:244::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;-1:-1:-1;;;;;7818:22:0;::::1;7810:73;;;::::0;-1:-1:-1;;;7810:73:0;;10276:2:1;7810:73:0::1;::::0;::::1;10258:21:1::0;10315:2;10295:18;;;10288:30;10354:34;10334:18;;;10327:62;-1:-1:-1;;;10405:18:1;;;10398:36;10451:19;;7810:73:0::1;10248:228:1::0;7810:73:0::1;7920:6;::::0;;7899:38:::1;::::0;-1:-1:-1;;;;;7899:38:0;;::::1;::::0;7920:6;::::1;::::0;-1:-1:-1;;;;;;;;;;;7899:38:0;::::1;7948:6;:17:::0;;-1:-1:-1;;;;;;7948:17:0::1;-1:-1:-1::0;;;;;7948:17:0;;;::::1;::::0;;;::::1;::::0;;7729:244::o;41208:168::-;7483:6;;-1:-1:-1;;;;;7483:6:0;1737:10;7483:22;7475:67;;;;-1:-1:-1;;;7475:67:0;;;;;;;:::i;:::-;41301:10:::1;:22:::0;;;;41334:16:::1;:34:::0;41208:168::o;25160:337::-;-1:-1:-1;;;;;25253:19:0;;25245:68;;;;-1:-1:-1;;;25245:68:0;;14905:2:1;25245:68:0;;;14887:21:1;14944:2;14924:18;;;14917:30;14983:34;14963:18;;;14956:62;-1:-1:-1;;;15034:18:1;;;15027:34;15078:19;;25245:68:0;14877:226:1;25245:68:0;-1:-1:-1;;;;;25332:21:0;;25324:68;;;;-1:-1:-1;;;25324:68:0;;10683:2:1;25324:68:0;;;10665:21:1;10722:2;10702:18;;;10695:30;10761:34;10741:18;;;10734:62;-1:-1:-1;;;10812:18:1;;;10805:32;10854:19;;25324:68:0;10655:224:1;25324:68:0;-1:-1:-1;;;;;25405:18:0;;;;;;;:11;:18;;;;;;;;:27;;;;;;;;;;;;;:36;;;25457:32;;16431:25:1;;;25457:32:0;;16404:18:1;25457:32:0;;;;;;;25160:337;;;:::o;3511:132::-;3569:7;3596:39;3600:1;3603;3596:39;;;;;;;;;;;;;;;;;:3;:39::i;25505:4576::-;-1:-1:-1;;;;;25627:18:0;;25619:68;;;;-1:-1:-1;;;25619:68:0;;14499:2:1;25619:68:0;;;14481:21:1;14538:2;14518:18;;;14511:30;14577:34;14557:18;;;14550:62;-1:-1:-1;;;14628:18:1;;;14621:35;14673:19;;25619:68:0;14471:227:1;25619:68:0;-1:-1:-1;;;;;25706:16:0;;25698:64;;;;-1:-1:-1;;;25698:64:0;;9057:2:1;25698:64:0;;;9039:21:1;9096:2;9076:18;;;9069:30;9135:34;9115:18;;;9108:62;-1:-1:-1;;;9186:18:1;;;9179:33;9229:19;;25698:64:0;9029:225:1;25698:64:0;25790:1;25781:6;:10;25773:64;;;;-1:-1:-1;;;25773:64:0;;13682:2:1;25773:64:0;;;13664:21:1;13721:2;13701:18;;;13694:30;13760:34;13740:18;;;13733:62;-1:-1:-1;;;13811:18:1;;;13804:39;13860:19;;25773:64:0;13654:231:1;25773:64:0;7389:7;7416:6;-1:-1:-1;;;;;25851:15:0;;;7416:6;;25851:15;;;;:32;;-1:-1:-1;7389:7:0;7416:6;-1:-1:-1;;;;;25870:13:0;;;7416:6;;25870:13;;25851:32;25848:139;;;25918:12;;25908:6;:22;;25900:75;;;;-1:-1:-1;;;25900:75:0;;12510:2:1;25900:75:0;;;12492:21:1;12549:2;12529:18;;;12522:30;12588:34;12568:18;;;12561:62;-1:-1:-1;;;12639:18:1;;;12632:38;12687:19;;25900:75:0;12482:230:1;25900:75:0;25999:28;26030:24;26048:4;26030:9;:24::i;:::-;26120:23;;26170:13;;25999:55;;-1:-1:-1;26096:47:0;;;;-1:-1:-1;;;;;26164:19:0;;;26170:13;;26164:19;:51;;;;-1:-1:-1;26197:13:0;;26214:1;;26187:24;;-1:-1:-1;;;;;26197:13:0;26187:9;:24::i;:::-;:28;26164:51;26160:278;;;-1:-1:-1;;;;;;;;;;;;;;26298:15:0;26279:34;;26352:25;26370:6;26352:17;:25::i;:::-;26328:21;;;;:49;;;26394:32;;;;;;;-1:-1:-1;26394:32:0;;;;;;;;;;;;;;;;;;;;;26160:278;26491:16;;-1:-1:-1;;;26491:16:0;;;;26490:17;:42;;;;-1:-1:-1;26511:21:0;;-1:-1:-1;;;26511:21:0;;;;26490:42;:74;;;;-1:-1:-1;26546:13:0;;26563:1;;26536:24;;-1:-1:-1;;;;;26546:13:0;26536:9;:24::i;:::-;:28;26490:74;26486:1930;;;26591:13;;-1:-1:-1;;;;;26585:19:0;;;26591:13;;26585:19;26581:1811;;;26629:23;:89;;;;;26703:15;26676:23;;26656:17;;:43;;;;:::i;:::-;:62;;26629:89;26625:301;;;26763:15;26743:17;:35;26824:23;;;-1:-1:-1;26870:32:0;26824:23;26870:10;:32::i;:::-;26952:14;;-1:-1:-1;;;26952:14:0;;;;26948:1429;;;27095:16;;27140:14;;27011:21;;27095:16;27140:14;;27136:839;;;27185:20;27236:17;27274:20;;27256:15;:38;;;;:::i;:::-;27236:58;;27321:11;27370:6;27365:353;27386:14;:21;27382:25;;27365:353;;;27505:9;27479:14;27494:1;27479:17;;;;;;-1:-1:-1;;;27479:17:0;;;;;;;;;;;;;;;;;;;:22;;;:35;27475:216;;27566:45;27583:14;27598:1;27583:17;;;;;;-1:-1:-1;;;27583:17:0;;;;;;;;;;;;;;;;;;;:27;;;27566:12;:16;;:45;;;;:::i;:::-;27551:60;-1:-1:-1;27652:7:0;:3;27658:1;27652:7;:::i;:::-;27646:13;;27475:216;27409:4;;;;:::i;:::-;;;;27365:353;;;;27756:1;27750:3;:7;:30;;;;;27779:1;27761:15;;:19;27750:30;27746:152;;;27854:15;;27828:42;;:21;:12;27845:3;27828:16;:21::i;:::-;:25;;:42::i;:::-;27813:57;;27746:152;27926:25;:23;:25::i;:::-;27136:839;;;;27999:20;28022:44;28062:3;28022:35;28039:17;;28022:12;:16;;:35;;;;:::i;:44::-;27999:67;-1:-1:-1;28091:17:0;28201:27;27999:67;28201:12;:27;:::i;:::-;:31;;28231:1;28201:31;:::i;:::-;28144:51;;;28161:15;28144:51;;;5568:19:1;28178:16:0;5603:12:1;;;5596:28;;;;5640:12;;28144:51:0;;;;;;;;;;;;28134:62;;;;;;28126:71;;:107;;;;:::i;:::-;28111:122;;:12;:122;:::i;:::-;28091:142;;28272:9;28262:7;:19;28258:100;;;28310:24;28324:9;28310:13;:24::i;:::-;26948:1429;;;;;-1:-1:-1;;;;;28555:24:0;;28428:12;28555:24;;;:18;:24;;;;;;28443:4;;28555:24;;;:50;;-1:-1:-1;;;;;;28583:22:0;;;;;;:18;:22;;;;;;;;28555:50;28552:1464;;;-1:-1:-1;28631:5:0;28552:1464;;;28708:13;;-1:-1:-1;;;;;28700:21:0;;;28708:13;;28700:21;28697:164;;;28741:14;:12;:14::i;:::-;28784:10;;28774:7;:20;28829:16;;28813:13;:32;28697:164;28905:13;;-1:-1:-1;;;;;28899:19:0;;;28905:13;;28899:19;28896:164;;;28938:14;:12;:14::i;:::-;28981:11;;28971:7;:21;29027:17;;29011:13;:33;28896:164;-1:-1:-1;;;;;29140:18:0;;;;;;:12;:18;;;;;:25;;;29137:868;;;29185:14;:12;:14::i;:::-;-1:-1:-1;;;;;29228:18:0;;;;;;;:12;:18;;;;;:26;;;;29218:7;:36;29289:32;;;29273:13;:48;29391:13;;29385:19;;;29391:13;;29385:19;29382:181;;;-1:-1:-1;;;;;29438:18:0;;;;;;:12;:18;;;;;:30;;;;29428:7;:40;29507:36;;;29491:13;:52;29382:181;29137:868;;;-1:-1:-1;;;;;29671:16:0;;;;;;:12;:16;;;;;:23;;;29668:322;;;29745:14;:12;:14::i;:::-;29793:13;;-1:-1:-1;;;;;29785:21:0;;;29793:13;;29785:21;29782:189;;;-1:-1:-1;;;;;29844:16:0;;;;;;:12;:16;;;;;:27;;;;29834:7;:37;29914:33;;;29898:13;:49;29782:189;30035:38;30050:4;30055:2;30058:6;30065:7;30035:14;:38::i;:::-;25505:4576;;;;;;:::o;3051:192::-;3137:7;3173:12;3165:6;;;;3157:29;;;;-1:-1:-1;;;3157:29:0;;;;;;;;:::i;:::-;-1:-1:-1;3197:9:0;3209:5;3213:1;3209;:5;:::i;:::-;3197:17;3051:192;-1:-1:-1;;;;;3051:192:0:o;36831:163::-;36872:7;36893:15;36910;36929:19;:17;:19::i;:::-;36892:56;;-1:-1:-1;36892:56:0;-1:-1:-1;36966:20:0;36892:56;;36966:11;:20::i;:::-;36959:27;;;;36831:163;:::o;2718:181::-;2776:7;;2808:5;2812:1;2808;:5;:::i;:::-;2796:17;;2837:1;2832;:6;;2824:46;;;;-1:-1:-1;;;2824:46:0;;11086:2:1;2824:46:0;;;11068:21:1;11125:2;11105:18;;;11098:30;11164:29;11144:18;;;11137:57;11211:18;;2824:46:0;11058:177:1;35629:419:0;35688:7;35697;35706;35715;35724;35733;35754:23;35779:12;35793:18;35815:20;35827:7;35815:11;:20::i;:::-;35753:82;;;;;;35847:15;35864:23;35889:12;35905:50;35917:7;35926:4;35932:10;35944;:8;:10::i;:::-;35905:11;:50::i;:::-;35846:109;;;;-1:-1:-1;35846:109:0;;-1:-1:-1;36006:15:0;;-1:-1:-1;36023:4:0;;-1:-1:-1;36029:10:0;;-1:-1:-1;35629:419:0;;-1:-1:-1;;;;;35629:419:0:o;2907:136::-;2965:7;2992:43;2996:1;2999;2992:43;;;;;;;;;;;;;;;;;:3;:43::i;3651:278::-;3737:7;3772:12;3765:5;3757:28;;;;-1:-1:-1;;;3757:28:0;;;;;;;;:::i;:::-;-1:-1:-1;3796:9:0;3808:5;3812:1;3808;:5;:::i;39050:331::-;39163:16;;;39177:1;39163:16;;;;;;;;39119:7;;;;39163:16;39177:1;39163:16;;;;;;;;;;-1:-1:-1;39163:16:0;39139:40;;39210:4;39192;39197:1;39192:7;;;;;;-1:-1:-1;;;39192:7:0;;;;;;;;;-1:-1:-1;;;;;39192:23:0;;;:7;;;;;;;;;;:23;;;;39236:15;;:22;;;-1:-1:-1;;;39236:22:0;;;;:15;;;;;:20;;:22;;;;;39192:7;;39236:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;39226:4;39231:1;39226:7;;;;;;-1:-1:-1;;;39226:7:0;;;;;;;;;-1:-1:-1;;;;;39226:32:0;;;:7;;;;;;;;;:32;39295:15;;:48;;-1:-1:-1;;;39295:48:0;;39271:21;;39295:15;;;;;:29;;:48;;39325:11;;39338:4;;39295:48;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;39295:48:0;;;;;;;;;;;;:::i;:::-;39271:72;;39363:7;39371:1;39363:10;;;;;;-1:-1:-1;;;39363:10:0;;;;;;;;;;;;;;;39356:17;;;;39050:331;;;:::o;30089:423::-;19947:16;:23;;-1:-1:-1;;;;19947:23:0;-1:-1:-1;;;19947:23:0;;;30204:21:::1;30236:38;30253:20:::0;30236:16:::1;:38::i;:::-;30285:26;30314:41;:21;30340:14:::0;30314:25:::1;:41::i;:::-;30427:16;::::0;30468::::1;::::0;30285:70;;-1:-1:-1;30406:89:0::1;::::0;-1:-1:-1;;;;;30427:16:0;;::::1;::::0;30445:49:::1;::::0;30490:3:::1;::::0;30445:40:::1;::::0;30285:70;;30445:22:::1;:40::i;:49::-;30406:20;:89::i;:::-;-1:-1:-1::0;;19993:16:0;:24;;-1:-1:-1;;;;19993:24:0;;;-1:-1:-1;30089:423:0:o;39389:687::-;39443:9;39467:32;39520:27;;39502:15;:45;;;;:::i;:::-;39467:80;;39565:9;39560:327;39584:14;:21;39580:25;;39560:327;;;39660:24;39634:14;39649:1;39634:17;;;;;;-1:-1:-1;;;39634:17:0;;;;;;;;;;;;;;;;;;;:22;;;:50;39630:246;;39732:14;39747:1;39732:17;;;;;;-1:-1:-1;;;39732:17:0;;;;;;;;;;;;;;;;;;;:22;;;39707:14;39722:1;39707:17;;;;;;-1:-1:-1;;;39707:17:0;;;;;;;;;;;;;;;;;;;:22;;:47;;;;39803:14;39818:1;39803:17;;;;;;-1:-1:-1;;;39803:17:0;;;;;;;;;;;;;;;;;;;:27;;;39773:14;39788:1;39773:17;;;;;;-1:-1:-1;;;39773:17:0;;;;;;;;;;;;;;;;;;;:27;;:57;;;;39855:1;39859;39855:5;;;;:::i;:::-;39851:9;;39630:246;39607:4;;;;:::i;:::-;;;;39560:327;;;-1:-1:-1;39920:14:0;:21;39899:18;;39920:25;;39944:1;;39920:25;:::i;:::-;39899:46;;39963:9;39958:102;39982:10;39978:1;:14;39958:102;;;40028:14;:20;;;;;-1:-1:-1;;;40028:20:0;;;;;;;;;;;;;;;;;-1:-1:-1;;40028:20:0;;;;;;;;;;;;;;;39994:4;;;;:::i;:::-;;;;39958:102;;;;39389:687;;;:::o;3251:250::-;3309:7;3333:6;3329:47;;-1:-1:-1;3363:1:0;3356:8;;3329:47;3388:9;3400:5;3404:1;3400;:5;:::i;:::-;3388:17;-1:-1:-1;3433:1:0;3424:5;3428:1;3388:17;3424:5;:::i;:::-;:10;3416:56;;;;-1:-1:-1;;;3416:56:0;;12919:2:1;3416:56:0;;;12901:21:1;12958:2;12938:18;;;12931:30;12997:34;12977:18;;;12970:62;-1:-1:-1;;;13048:18:1;;;13041:31;13089:19;;3416:56:0;12891:223:1;30525:130:0;19947:16;:23;;-1:-1:-1;;;;19947:23:0;-1:-1:-1;;;19947:23:0;;;30595:10;;30591:57:::1;;30617:24;30634:6;30617:16;:24::i;:::-;-1:-1:-1::0;19993:16:0;:24;;-1:-1:-1;;;;19993:24:0;;;30525:130::o;38282:248::-;38328:7;;:12;:34;;;;-1:-1:-1;38344:13:0;;:18;38328:34;38325:46;;;38282:248::o;38325:46::-;38408:7;;;38390:15;:25;38450:13;;;38426:21;:37;-1:-1:-1;38483:11:0;;;;38505:17;38282:248::o;32451:702::-;32562:7;32558:40;;32584:14;:12;:14::i;:::-;-1:-1:-1;;;;;32622:19:0;;;;;;:11;:19;;;;;;;;:46;;;;-1:-1:-1;;;;;;32646:22:0;;;;;;:11;:22;;;;;;;;32645:23;32622:46;32618:467;;;32685:48;32707:6;32715:9;32726:6;32685:21;:48::i;:::-;32618:467;;;-1:-1:-1;;;;;32756:19:0;;;;;;:11;:19;;;;;;;;32755:20;:46;;;;-1:-1:-1;;;;;;32779:22:0;;;;;;:11;:22;;;;;;;;32755:46;32751:334;;;32818:46;32838:6;32846:9;32857:6;32818:19;:46::i;32751:334::-;-1:-1:-1;;;;;32886:19:0;;;;;;:11;:19;;;;;;;;:45;;;;-1:-1:-1;;;;;;32909:22:0;;;;;;:11;:22;;;;;;;;32886:45;32882:203;;;32948:48;32970:6;32978:9;32989:6;32948:21;:48::i;32882:203::-;33029:44;33047:6;33055:9;33066:6;33029:17;:44::i;:::-;33108:7;33104:41;;33130:15;38595;;38585:7;:25;38637:21;;38621:13;:37;38541:125;37002:561;37099:7;;37135;;37052;;;;;37159:289;37183:9;:16;37179:20;;37159:289;;;37249:7;37225;:21;37233:9;37243:1;37233:12;;;;;;-1:-1:-1;;;37233:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;37233:12:0;37225:21;;;;;;;;;;;;;:31;;:66;;;37284:7;37260;:21;37268:9;37278:1;37268:12;;;;;;-1:-1:-1;;;37268:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;37268:12:0;37260:21;;;;;;;;;;;;;:31;37225:66;37221:97;;;37301:7;;37310;;37293:25;;;;;;;37002:561;;:::o;37221:97::-;37343:34;37355:7;:21;37363:9;37373:1;37363:12;;;;;;-1:-1:-1;;;37363:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;37363:12:0;37355:21;;;;;;;;;;;;;37343:7;;:11;:34::i;:::-;37333:44;;37402:34;37414:7;:21;37422:9;37432:1;37422:12;;;;;;-1:-1:-1;;;37422:12:0;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;37422:12:0;37414:21;;;;;;;;;;;;;37402:7;;:11;:34::i;:::-;37392:44;-1:-1:-1;37201:3:0;;;;:::i;:::-;;;;37159:289;;;-1:-1:-1;37484:7:0;;37472;;:20;;:11;:20::i;:::-;37462:7;:30;37458:61;;;37502:7;;37511;;37494:25;;;;;;37002:561;;:::o;37458:61::-;37538:7;;37547;;-1:-1:-1;37002:561:0;-1:-1:-1;37002:561:0:o;36056:330::-;36116:7;36125;36134;36154:12;36169:24;36185:7;36169:15;:24::i;:::-;36154:39;;36204:18;36225:30;36247:7;36225:21;:30::i;:::-;36204:51;-1:-1:-1;36266:23:0;36292:33;36204:51;36292:17;:7;36304:4;36292:11;:17::i;:::-;:21;;:33::i;:::-;36266:59;36361:4;;-1:-1:-1;36367:10:0;;-1:-1:-1;36056:330:0;;-1:-1:-1;;;36056:330:0:o;36394:429::-;36509:7;;;;36565:24;:7;36577:11;36565;:24::i;:::-;36547:42;-1:-1:-1;36600:12:0;36615:21;:4;36624:11;36615:8;:21::i;:::-;36600:36;-1:-1:-1;36647:18:0;36668:27;:10;36683:11;36668:14;:27::i;:::-;36647:48;-1:-1:-1;36706:23:0;36732:33;36647:48;36732:17;:7;36744:4;36732:11;:17::i;:33::-;36784:7;;;;-1:-1:-1;36810:4:0;;-1:-1:-1;36394:429:0;;-1:-1:-1;;;;;;;36394:429:0:o;30666:665::-;30816:16;;;30830:1;30816:16;;;;;;;;30792:21;;30816:16;;;;;;;;;;-1:-1:-1;30816:16:0;30792:40;;30861:4;30843;30848:1;30843:7;;;;;;-1:-1:-1;;;30843:7:0;;;;;;;;;-1:-1:-1;;;;;30843:23:0;;;:7;;;;;;;;;;:23;;;;30887:15;;:22;;;-1:-1:-1;;;30887:22:0;;;;:15;;;;;:20;;:22;;;;;30843:7;;30887:22;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;30877:4;30882:1;30877:7;;;;;;-1:-1:-1;;;30877:7:0;;;;;;;;;-1:-1:-1;;;;;30877:32:0;;;:7;;;;;;;;;:32;30954:15;;30922:62;;30939:4;;30954:15;30972:11;30922:8;:62::i;:::-;31023:15;;:240;;-1:-1:-1;;;31023:240:0;;-1:-1:-1;;;;;31023:15:0;;;;:66;;:240;;31104:11;;31023:15;;31174:4;;31201;;31237:15;;31023:240;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31288:35;31305:11;31318:4;31288:35;;;;;;;:::i;:::-;;;;;;;;30666:665;;:::o;43321:126::-;43413:26;;-1:-1:-1;;;;;43413:18:0;;;:26;;;;;43432:6;;43413:26;;;;43432:6;43413:18;:26;;;;;;;;;;;;;;;;;;;;;43321:126;;:::o;31342:577::-;31487:16;;;31501:1;31487:16;;;;;;;;31463:21;;31487:16;;;;;;;;-1:-1:-1;;31524:15:0;;:22;;;-1:-1:-1;;;31524:22:0;;;;31463:40;;-1:-1:-1;;;;;;31524:15:0;;;;:20;;-1:-1:-1;31524:22:0;;;;;;;;;;;;;;:15;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;31514:4;31519:1;31514:7;;;;;;-1:-1:-1;;;31514:7:0;;;;;;;;;;;;;;:32;-1:-1:-1;;;;;31514:32:0;;;-1:-1:-1;;;;;31514:32:0;;;;;31575:4;31557;31562:1;31557:7;;;;;;-1:-1:-1;;;31557:7:0;;;;;;;;;-1:-1:-1;;;;;31557:23:0;;;:7;;;;;;;;;:23;31617:15;;;:66;31691:6;31617:15;31760:4;31779:11;31821:24;:15;31841:3;31821:19;:24::i;:::-;31617:239;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;31881:30;31898:6;31906:4;31881:30;;;;;;;:::i;34259:561::-;34362:15;34379:23;34404:12;34418:23;34443:12;34457:18;34479:19;34490:7;34479:10;:19::i;:::-;-1:-1:-1;;;;;34523:15:0;;;;;;:7;:15;;;;;;34361:137;;-1:-1:-1;34361:137:0;;-1:-1:-1;34361:137:0;;-1:-1:-1;34361:137:0;-1:-1:-1;34361:137:0;-1:-1:-1;34361:137:0;-1:-1:-1;34523:28:0;;34543:7;34523:19;:28::i;:::-;-1:-1:-1;;;;;34505:15:0;;;;;;:7;:15;;;;;;;;:46;;;;34580:7;:15;;;;:28;;34600:7;34580:19;:28::i;:::-;-1:-1:-1;;;;;34562:15:0;;;;;;;:7;:15;;;;;;:46;;;;34640:18;;;;;;;:39;;34663:15;34640:22;:39::i;:::-;-1:-1:-1;;;;;34619:18:0;;;;;;:7;:18;;;;;:60;34692:26;34707:10;34692:14;:26::i;:::-;34729:23;34741:4;34747;34729:11;:23::i;:::-;34785:9;-1:-1:-1;;;;;34768:44:0;34777:6;-1:-1:-1;;;;;34768:44:0;;34796:15;34768:44;;;;16431:25:1;;16419:2;16404:18;;16386:76;34768:44:0;;;;;;;;34259:561;;;;;;;;;:::o;33671:580::-;33772:15;33789:23;33814:12;33828:23;33853:12;33867:18;33889:19;33900:7;33889:10;:19::i;:::-;-1:-1:-1;;;;;33932:15:0;;;;;;:7;:15;;;;;;33771:137;;-1:-1:-1;33771:137:0;;-1:-1:-1;33771:137:0;;-1:-1:-1;33771:137:0;-1:-1:-1;33771:137:0;-1:-1:-1;33771:137:0;-1:-1:-1;33932:28:0;;33771:137;33932:19;:28::i;:::-;-1:-1:-1;;;;;33914:15:0;;;;;;;:7;:15;;;;;;;;:46;;;;33992:18;;;;;:7;:18;;;;;:39;;34015:15;33992:22;:39::i;:::-;-1:-1:-1;;;;;33971:18:0;;;;;;:7;:18;;;;;;;;:60;;;;34063:7;:18;;;;:39;;34086:15;34063:22;:39::i;34828:638::-;34931:15;34948:23;34973:12;34987:23;35012:12;35026:18;35048:19;35059:7;35048:10;:19::i;:::-;-1:-1:-1;;;;;35092:15:0;;;;;;:7;:15;;;;;;34930:137;;-1:-1:-1;34930:137:0;;-1:-1:-1;34930:137:0;;-1:-1:-1;34930:137:0;-1:-1:-1;34930:137:0;-1:-1:-1;34930:137:0;-1:-1:-1;35092:28:0;;35112:7;35092:19;:28::i;:::-;-1:-1:-1;;;;;35074:15:0;;;;;;:7;:15;;;;;;;;:46;;;;35149:7;:15;;;;:28;;35169:7;35149:19;:28::i;33161:502::-;33260:15;33277:23;33302:12;33316:23;33341:12;33355:18;33377:19;33388:7;33377:10;:19::i;:::-;-1:-1:-1;;;;;33425:15:0;;;;;;:7;:15;;;;;;33259:137;;-1:-1:-1;33259:137:0;;-1:-1:-1;33259:137:0;;-1:-1:-1;33259:137:0;-1:-1:-1;33259:137:0;-1:-1:-1;33259:137:0;-1:-1:-1;33425:28:0;;33259:137;33425:19;:28::i;37940:154::-;38004:7;38031:55;38070:5;38031:20;38043:7;;38031;:11;;:20;;;;:::i;38105:166::-;38175:7;38202:61;38247:5;38202:26;38214:13;;38202:7;:11;;:26;;;;:::i;37574:355::-;37637:19;37660:10;:8;:10::i;:::-;37637:33;-1:-1:-1;37681:18:0;37702:27;:10;37637:33;37702:14;:27::i;:::-;37781:4;37765:22;;;;:7;:22;;;;;;37681:48;;-1:-1:-1;37765:38:0;;37681:48;37765:26;:38::i;:::-;37756:4;37740:22;;;;:7;:22;;;;;;;;:63;;;;37817:11;:26;;;;;;37814:107;;;37899:4;37883:22;;;;:7;:22;;;;;;:38;;37910:10;37883:26;:38::i;:::-;37874:4;37858:22;;;;:7;:22;;;;;:63;37574:355;;;:::o;35474:147::-;35552:7;;:17;;35564:4;35552:11;:17::i;:::-;35542:7;:27;35593:10;;:20;;35608:4;35593:14;:20::i;:::-;35580:10;:33;-1:-1:-1;;35474:147:0:o;14:257:1:-;73:6;126:2;114:9;105:7;101:23;97:32;94:2;;;147:6;139;132:22;94:2;191:9;178:23;210:31;235:5;210:31;:::i;276:261::-;346:6;399:2;387:9;378:7;374:23;370:32;367:2;;;420:6;412;405:22;367:2;457:9;451:16;476:31;501:5;476:31;:::i;542:398::-;610:6;618;671:2;659:9;650:7;646:23;642:32;639:2;;;692:6;684;677:22;639:2;736:9;723:23;755:31;780:5;755:31;:::i;:::-;805:5;-1:-1:-1;862:2:1;847:18;;834:32;875:33;834:32;875:33;:::i;:::-;927:7;917:17;;;629:311;;;;;:::o;945:466::-;1022:6;1030;1038;1091:2;1079:9;1070:7;1066:23;1062:32;1059:2;;;1112:6;1104;1097:22;1059:2;1156:9;1143:23;1175:31;1200:5;1175:31;:::i;:::-;1225:5;-1:-1:-1;1282:2:1;1267:18;;1254:32;1295:33;1254:32;1295:33;:::i;:::-;1049:362;;1347:7;;-1:-1:-1;;;1401:2:1;1386:18;;;;1373:32;;1049:362::o;1416:529::-;1499:6;1507;1515;1523;1576:3;1564:9;1555:7;1551:23;1547:33;1544:2;;;1598:6;1590;1583:22;1544:2;1642:9;1629:23;1661:31;1686:5;1661:31;:::i;:::-;1711:5;-1:-1:-1;1768:2:1;1753:18;;1740:32;1781:30;1740:32;1781:30;:::i;:::-;1534:411;;1830:7;;-1:-1:-1;;;;1884:2:1;1869:18;;1856:32;;1935:2;1920:18;1907:32;;1534:411::o;1950:325::-;2018:6;2026;2079:2;2067:9;2058:7;2054:23;2050:32;2047:2;;;2100:6;2092;2085:22;2047:2;2144:9;2131:23;2163:31;2188:5;2163:31;:::i;:::-;2213:5;2265:2;2250:18;;;;2237:32;;-1:-1:-1;;;2037:238:1:o;2280:1161::-;2375:6;2406:2;2449;2437:9;2428:7;2424:23;2420:32;2417:2;;;2470:6;2462;2455:22;2417:2;2508:9;2502:16;2537:18;2578:2;2570:6;2567:14;2564:2;;;2599:6;2591;2584:22;2564:2;2642:6;2631:9;2627:22;2617:32;;2687:7;2680:4;2676:2;2672:13;2668:27;2658:2;;2714:6;2706;2699:22;2658:2;2748;2742:9;2770:2;2766;2763:10;2760:2;;;2776:18;;:::i;:::-;2822:2;2819:1;2815:10;2854:2;2848:9;2917:2;2913:7;2908:2;2904;2900:11;2896:25;2888:6;2884:38;2972:6;2960:10;2957:22;2952:2;2940:10;2937:18;2934:46;2931:2;;;2983:18;;:::i;:::-;3019:2;3012:22;3069:18;;;3103:15;;;;-1:-1:-1;3138:11:1;;;3168;;;3164:20;;3161:33;-1:-1:-1;3158:2:1;;;3212:6;3204;3197:22;3158:2;3239:6;3230:15;;3254:156;3268:2;3265:1;3262:9;3254:156;;;3325:10;;3313:23;;3286:1;3279:9;;;;;3356:12;;;;3388;;3254:156;;;-1:-1:-1;3429:6:1;2386:1055;-1:-1:-1;;;;;;;;2386:1055:1:o;3446:251::-;3502:6;3555:2;3543:9;3534:7;3530:23;3526:32;3523:2;;;3576:6;3568;3561:22;3523:2;3620:9;3607:23;3639:28;3661:5;3639:28;:::i;3702:255::-;3769:6;3822:2;3810:9;3801:7;3797:23;3793:32;3790:2;;;3843:6;3835;3828:22;3790:2;3880:9;3874:16;3899:28;3921:5;3899:28;:::i;3962:190::-;4021:6;4074:2;4062:9;4053:7;4049:23;4045:32;4042:2;;;4095:6;4087;4080:22;4042:2;-1:-1:-1;4123:23:1;;4032:120;-1:-1:-1;4032:120:1:o;4157:194::-;4227:6;4280:2;4268:9;4259:7;4255:23;4251:32;4248:2;;;4301:6;4293;4286:22;4248:2;-1:-1:-1;4329:16:1;;4238:113;-1:-1:-1;4238:113:1:o;4356:319::-;4421:6;4429;4482:2;4470:9;4461:7;4457:23;4453:32;4450:2;;;4503:6;4495;4488:22;4450:2;4544:9;4531:23;4521:33;;4604:2;4593:9;4589:18;4576:32;4617:28;4639:5;4617:28;:::i;4680:258::-;4748:6;4756;4809:2;4797:9;4788:7;4784:23;4780:32;4777:2;;;4830:6;4822;4815:22;4777:2;-1:-1:-1;;4858:23:1;;;4928:2;4913:18;;;4900:32;;-1:-1:-1;4767:171:1:o;4943:463::-;4996:3;5034:5;5028:12;5061:6;5056:3;5049:19;5087:4;5116:2;5111:3;5107:12;5100:19;;5153:2;5146:5;5142:14;5174:3;5186:195;5200:6;5197:1;5194:13;5186:195;;;5265:13;;-1:-1:-1;;;;;5261:39:1;5249:52;;5321:12;;;;5356:15;;;;5297:1;5215:9;5186:195;;;-1:-1:-1;5397:3:1;;5004:402;-1:-1:-1;;;;;5004:402:1:o;7732:510::-;8003:6;7992:9;7985:25;8046:3;8041:2;8030:9;8026:18;8019:31;7966:4;8067:57;8119:3;8108:9;8104:19;8096:6;8067:57;:::i;:::-;-1:-1:-1;;;;;8160:32:1;;;;8155:2;8140:18;;8133:60;-1:-1:-1;8224:2:1;8209:18;8202:34;8059:65;7975:267;-1:-1:-1;;7975:267:1:o;8247:603::-;8359:4;8388:2;8417;8406:9;8399:21;8449:6;8443:13;8492:6;8487:2;8476:9;8472:18;8465:34;8517:4;8530:140;8544:6;8541:1;8538:13;8530:140;;;8639:14;;;8635:23;;8629:30;8605:17;;;8624:2;8601:26;8594:66;8559:10;;8530:140;;;8688:6;8685:1;8682:13;8679:2;;;8758:4;8753:2;8744:6;8733:9;8729:22;8725:31;8718:45;8679:2;-1:-1:-1;8834:2:1;8813:15;-1:-1:-1;;8809:29:1;8794:45;;;;8841:2;8790:54;;8368:482;-1:-1:-1;;;8368:482:1:o;13119:356::-;13321:2;13303:21;;;13340:18;;;13333:30;13399:34;13394:2;13379:18;;13372:62;13466:2;13451:18;;13293:182::o;16467:332::-;16674:6;16663:9;16656:25;16717:2;16712;16701:9;16697:18;16690:30;16637:4;16737:56;16789:2;16778:9;16774:18;16766:6;16737:56;:::i;16804:582::-;17103:6;17092:9;17085:25;17146:6;17141:2;17130:9;17126:18;17119:34;17189:3;17184:2;17173:9;17169:18;17162:31;17066:4;17210:57;17262:3;17251:9;17247:19;17239:6;17210:57;:::i;:::-;-1:-1:-1;;;;;17303:32:1;;;;17298:2;17283:18;;17276:60;-1:-1:-1;17367:3:1;17352:19;17345:35;17202:65;17075:311;-1:-1:-1;;;17075:311:1:o;17833:128::-;17873:3;17904:1;17900:6;17897:1;17894:13;17891:2;;;17910:18;;:::i;:::-;-1:-1:-1;17946:9:1;;17881:80::o;17966:120::-;18006:1;18032;18022:2;;18037:18;;:::i;:::-;-1:-1:-1;18071:9:1;;18012:74::o;18091:168::-;18131:7;18197:1;18193;18189:6;18185:14;18182:1;18179:21;18174:1;18167:9;18160:17;18156:45;18153:2;;;18204:18;;:::i;:::-;-1:-1:-1;18244:9:1;;18143:116::o;18264:125::-;18304:4;18332:1;18329;18326:8;18323:2;;;18337:18;;:::i;:::-;-1:-1:-1;18374:9:1;;18313:76::o;18394:380::-;18473:1;18469:12;;;;18516;;;18537:2;;18591:4;18583:6;18579:17;18569:27;;18537:2;18644;18636:6;18633:14;18613:18;18610:38;18607:2;;;18690:10;18685:3;18681:20;18678:1;18671:31;18725:4;18722:1;18715:15;18753:4;18750:1;18743:15;18607:2;;18449:325;;;:::o;18779:135::-;18818:3;-1:-1:-1;;18839:17:1;;18836:2;;;18859:18;;:::i;:::-;-1:-1:-1;18906:1:1;18895:13;;18826:88::o;18919:112::-;18951:1;18977;18967:2;;18982:18;;:::i;:::-;-1:-1:-1;19016:9:1;;18957:74::o;19036:127::-;19097:10;19092:3;19088:20;19085:1;19078:31;19128:4;19125:1;19118:15;19152:4;19149:1;19142:15;19168:127;19229:10;19224:3;19220:20;19217:1;19210:31;19260:4;19257:1;19250:15;19284:4;19281:1;19274:15;19300:127;19361:10;19356:3;19352:20;19349:1;19342:31;19392:4;19389:1;19382:15;19416:4;19413:1;19406:15;19432:131;-1:-1:-1;;;;;19507:31:1;;19497:42;;19487:2;;19553:1;19550;19543:12;19487:2;19477:86;:::o;19568:118::-;19654:5;19647:13;19640:21;19633:5;19630:32;19620:2;;19676:1;19673;19666:12
Swarm Source
ipfs://713bf36accc672f69e902ca8bd7ddb65057ddba6638dd6b27c6c8ec4a231a7a8
🤖 Code Reader
Generate instant answers for your smart contract questions using Al Models. Read more.
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.
Add Token to MetaMask (Web3)