0 txs
0 calls
constructor
constructor(address _token, address _formula, uint32 _maxChangeFee, address _reserveToken, uint32 _reserveRatio)
functions
changeableToken
viewfunction changeableToken(uint16 _tokenIndex) view returns (address tokenAddress)
changeableTokenCount
viewfunction changeableTokenCount() view returns (uint16 count)
changeFee
viewfunction changeFee() view returns (uint32)
changerType
viewfunction changerType() view returns (string)
changingEnabled
viewfunction changingEnabled() view returns (bool)
formula
viewfunction formula() view returns (address)
getChangeFeeAmount
viewfunction getChangeFeeAmount(uint256 _amount) view returns (uint256 feeAmount)
getPurchaseReturn
viewfunction getPurchaseReturn(address _reserveToken, uint256 _depositAmount) view returns (uint256 amount)
getQuickBuyEtherToken
viewfunction getQuickBuyEtherToken() view returns (address etherToken)
getQuickBuyPathLength
viewfunction getQuickBuyPathLength() view returns (uint256 length)
getReserveBalance
viewfunction getReserveBalance(address _reserveToken) view returns (uint256 balance)
getReturn
viewfunction getReturn(address _fromToken, address _toToken, uint256 _amount) view returns (uint256 amount)
getSaleReturn
viewfunction getSaleReturn(address _reserveToken, uint256 _sellAmount) view returns (uint256 amount)
hasQuickBuyEtherToken
viewfunction hasQuickBuyEtherToken() view returns (bool)
manager
viewfunction manager() view returns (address)
maxChangeFee
viewfunction maxChangeFee() view returns (uint32)
newManager
viewfunction newManager() view returns (address)
newOwner
viewfunction newOwner() view returns (address)
owner
viewfunction owner() view returns (address)
quickBuyPath
viewfunction quickBuyPath(uint256) view returns (address)
reserves
viewfunction reserves(address) view returns (uint256 virtualBalance, uint32 ratio, bool isVirtualBalanceEnabled, bool isPurchaseEnabled, bool isSet)
reserveTokenCount
viewfunction reserveTokenCount() view returns (uint16 count)
reserveTokens
viewfunction reserveTokens(uint256) view returns (address)
token
viewfunction token() view returns (address)
version
viewfunction version() view returns (string)
acceptManagement
nonpayablefunction acceptManagement()
acceptOwnership
nonpayablefunction acceptOwnership()
acceptTokenOwnership
nonpayablefunction acceptTokenOwnership()
addReserve
nonpayablefunction addReserve(address _token, uint32 _ratio, bool _enableVirtualBalance)
buy
nonpayablefunction buy(address _reserveToken, uint256 _depositAmount, uint256 _minReturn) returns (uint256 amount)
change
nonpayablefunction change(address _fromToken, address _toToken, uint256 _amount, uint256 _minReturn) returns (uint256 amount)
clearQuickBuyPath
nonpayablefunction clearQuickBuyPath()
disableChanging
nonpayablefunction disableChanging(bool _disable)
disableReservePurchases
nonpayablefunction disableReservePurchases(address _reserveToken, bool _disable)
disableTokenTransfers
nonpayablefunction disableTokenTransfers(bool _disable)
quickBuy
payablefunction quickBuy(uint256 _minReturn) payable returns (uint256 amount)
quickChange
nonpayablefunction quickChange(address[] _path, uint256 _amount, uint256 _minReturn) returns (uint256 amount)
sell
nonpayablefunction sell(address _reserveToken, uint256 _sellAmount, uint256 _minReturn) returns (uint256 amount)
setChangeFee
nonpayablefunction setChangeFee(uint32 _changeFee)
setFormula
nonpayablefunction setFormula(address _formula)
setQuickBuyPath
nonpayablefunction setQuickBuyPath(address[] _path)
transferManagement
nonpayablefunction transferManagement(address _newManager)
transferOwnership
nonpayablefunction transferOwnership(address _newOwner)
transferTokenOwnership
nonpayablefunction transferTokenOwnership(address _newOwner)
updateReserve
nonpayablefunction updateReserve(address _reserveToken, uint32 _ratio, bool _enableVirtualBalance, uint256 _virtualBalance)
withdrawFromToken
nonpayablefunction withdrawFromToken(address _token, address _to, uint256 _amount)
withdrawTokens
nonpayablefunction withdrawTokens(address _token, address _to, uint256 _amount)
events
Change
event Change(address indexed _fromToken, address indexed _toToken, address indexed _trader, uint256 _amount, uint256 _return, uint256 _currentPriceN, uint256 _currentPriceD)
ManagerUpdate
event ManagerUpdate(address _prevManager, address _newManager)
OwnerUpdate
event OwnerUpdate(address _prevOwner, address _newOwner)
errors
No errors.
creation bytecode
0x606060405260408051908101604052600381527f302e320000000000000000000000000000000000000000000000000000000000602082015260059080516200004d92916020019062000485565b506040805190810160405260068082527f62616e636f72000000000000000000000000000000000000000000000000000060208301529080516200009692916020019062000485565b50600b80546001606860020a0319166c010000000000000000000000001790553415620000c257600080fd5b60405160a080620036f183398101604052808051919060200180519190602001805191906020018051919060200180519150505b5b845b5b5b5b60008054600160a060020a03191633600160a060020a03161790555b5b5b80600160a060020a03811615156200013157600080fd5b60028054600160a060020a031916600160a060020a0384161790555b5b505060038054600160a060020a03191633600160a060020a03161790555b83600160a060020a03811615156200018357600080fd5b8360008163ffffffff1610158015620001a55750620f424063ffffffff821611155b1515620001b157600080fd5b60078054600160a060020a031916600160a060020a0388811691909117909155600b805467ffffffff00000000191664010000000063ffffffff89160217905584161562000215576200021584846000640100000000620011186200022682021704565b5b5b5b505b5050505050506200055c565b60005433600160a060020a039081169116146200023f57fe5b600254600160a060020a033081169116638da5cb5b6000604051602001526040518163ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401602060405180830381600087803b1515620002a557600080fd5b6102c65a03f11515620002b757600080fd5b50505060405180519050600160a060020a031614151515620002d557fe5b82600160a060020a0381161515620002ec57600080fd5b8330600160a060020a031681600160a060020a0316141515156200030f57600080fd5b8360008163ffffffff16118015620003305750620f424063ffffffff821611155b15156200033c57600080fd5b600254600160a060020a03878116911614801590620003815750600160a060020a0386166000908152600a60205260409020600101546601000000000000900460ff16155b8015620003a05750600b54620f424063ffffffff918216870190911611155b1515620003ac57600080fd5b600160a060020a0386166000908152600a602052604081209081556001908101805466010000000000006501000000000063ffffffff1990921663ffffffff8a161764ff000000001916640100000000891515021765ff000000000019169190911766ff000000000000191617905560088054909181016200042f83826200050b565b916000526020600020900160005b8154600160a060020a03808b166101009390930a9283029202191617905550600b805463ffffffff80821688011663ffffffff199091161790555b5b505b505b505b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10620004c857805160ff1916838001178555620004f8565b82800160010185558215620004f8579182015b82811115620004f8578251825591602001919060010190620004db565b5b506200050792915062000538565b5090565b8154818355818115116200047f576000838152602090206200047f91810190830162000538565b5b505050565b6200055991905b808211156200050757600081556001016200053f565b5090565b90565b613185806200056c6000396000f3006060604052361561021e5763ffffffff60e060020a60003504166240ff6c811461022d5780630b3f191a1461025957806315226b54146102735780631e1401f8146102a457806321e6b53d146102de5780632ee6f8b6146102ff5780633291b39a1461038a57806338a5e016146103b957806341a5b33d146103ce57806342906029146103f8578063481c6a751461042757806348d6ca55146104565780634b75f54f1461047e5780634e2280c4146104ad578063503adbf6146104c257806354fd4d50146104f857806359f8714b146105835780635e35359e146105ad5780635e5144eb146105d75780636a2724621461061457806372b44b2c1461064b57806373e61cf21461067f5780637758c4f8146106a657806379ba5097146106c357806385d5e631146106d857806388c0b8a7146106f25780638da5cb5b146107105780639396a7f01461073f5780639b99a8e214610764578063a2c4c3361461078e578063a59ac6dd146107c2578063a93d7c72146107f9578063ab5841f214610861578063abeb5f9f14610893578063b3a9afb7146108ba578063c8c2fe6c146108e9578063d031370b146108fe578063d395ee0f14610930578063d4ee1d9014610981578063d66bd524146109b0578063def7eb4414610a0b578063e4edf85214610a37578063e7ee85a514610a58578063e8c7893414610a8a578063ecc06c7614610ab0578063f2fde38b14610ad1578063fc0c546a14610af2575b5b6102296001610b21565b505b005b341561023857600080fd5b610240610db3565b60405163ffffffff909116815260200160405180910390f35b341561026457600080fd5b61022b6004351515610dcb565b005b341561027e57600080fd5b610292600160a060020a0360043516610e10565b60405190815260200160405180910390f35b34156102af57600080fd5b610292600160a060020a0360043581169060243516604435610efc565b60405190815260200160405180910390f35b34156102e957600080fd5b61022b600160a060020a0360043516610ff9565b005b341561030a57600080fd5b61031261107a565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561034f5780820151818401525b602001610336565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561039557600080fd5b61022b600160a060020a036004351663ffffffff602435166044351515611118565b005b34156103c457600080fd5b61022b611351565b005b34156103d957600080fd5b61022b600160a060020a03600435811690602435166044356113c0565b005b341561040357600080fd5b61040b611456565b604051600160a060020a03909116815260200160405180910390f35b341561043257600080fd5b61040b611465565b604051600160a060020a03909116815260200160405180910390f35b341561046157600080fd5b610292600435611474565b60405190815260200160405180910390f35b341561048957600080fd5b61040b6114ae565b604051600160a060020a03909116815260200160405180910390f35b34156104b857600080fd5b61022b6114bd565b005b34156104cd57600080fd5b61040b61ffff600435166114e7565b604051600160a060020a03909116815260200160405180910390f35b341561050357600080fd5b610312611544565b60405160208082528190810183818151815260200191508051906020019080838360005b8381101561034f5780820151818401525b602001610336565b50505050905090810190601f16801561037c5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561058e57600080fd5b6105966115e2565b60405161ffff909116815260200160405180910390f35b34156105b857600080fd5b61022b600160a060020a03600435811690602435166044356115f5565b005b34156105e257600080fd5b610292600160a060020a03600435811690602435166044356064356116e8565b60405190815260200160405180910390f35b341561061f57600080fd5b610292600160a060020a036004351660243560443561177a565b60405190815260200160405180910390f35b341561065657600080fd5b610292600160a060020a0360043516602435611b0b565b60405190815260200160405180910390f35b341561068a57600080fd5b610692611b86565b604051901515815260200160405180910390f35b610292600435610b21565b60405190815260200160405180910390f35b34156106ce57600080fd5b61022b611b9f565b005b34156106e357600080fd5b61022b6004351515611c3a565b005b34156106fd57600080fd5b61022b63ffffffff60043516611cb3565b005b341561071b57600080fd5b61040b611d31565b604051600160a060020a03909116815260200160405180910390f35b341561074a57600080fd5b610292611d40565b60405190815260200160405180910390f35b341561076f57600080fd5b610596611d47565b60405161ffff909116815260200160405180910390f35b341561079957600080fd5b610292600160a060020a0360043516602435611d4e565b60405190815260200160405180910390f35b34156107cd57600080fd5b610292600160a060020a0360043516602435604435611f76565b60405190815260200160405180910390f35b341561080457600080fd5b6102926004602481358181019083013580602081810201604051908101604052809392919081815260200183836020028082843750949650508435946020013593506121ff92505050565b60405190815260200160405180910390f35b341561086c57600080fd5b61022b600160a060020a036004351663ffffffff6024351660443515156064356125c2565b005b341561089e57600080fd5b6106926126d9565b604051901515815260200160405180910390f35b34156108c557600080fd5b61040b6126e4565b604051600160a060020a03909116815260200160405180910390f35b34156108f457600080fd5b61022b612728565b005b341561090957600080fd5b61040b6004356127c3565b604051600160a060020a03909116815260200160405180910390f35b341561093b57600080fd5b61022b60046024813581810190830135806020818102016040519081016040528093929190818152602001838360200280828437509496506127f595505050505050565b005b341561098c57600080fd5b61040b612860565b604051600160a060020a03909116815260200160405180910390f35b34156109bb57600080fd5b6109cf600160a060020a036004351661286f565b60405194855263ffffffff90931660208501529015156040808501919091529015156060840152901515608083015260a0909101905180910390f35b3415610a1657600080fd5b6102406128b5565b60405163ffffffff909116815260200160405180910390f35b3415610a4257600080fd5b61022b600160a060020a03600435166128c9565b005b3415610a6357600080fd5b61040b60043561291c565b604051600160a060020a03909116815260200160405180910390f35b3415610a9557600080fd5b61022b600160a060020a0360043516602435151561294e565b005b3415610abb57600080fd5b61022b600160a060020a03600435166129d7565b005b3415610adc57600080fd5b61022b600160a060020a0360043516612a4b565b005b3415610afd57600080fd5b61040b612a9e565b604051600160a060020a03909116815260200160405180910390f35b600080600080600080600980549050111515610b3957fe5b600980546000908110610b4857fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316935083600160a060020a031663d0e30db0346040518263ffffffff1660e060020a0281526004016000604051808303818588803b1515610ba757600080fd5b6125ee5a03f11515610bb857600080fd5b5050505060096001815481101515610bcc57fe5b906000526020600020900160005b9054906101000a9004600160a060020a0316925082600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610c3457600080fd5b6102c65a03f11515610c4557600080fd5b505050604051805190509150610c5c848334612aad565b81600160a060020a031663a93d7c72600934896000604051602001526040518463ffffffff1660e060020a02815260040180806020018481526020018381526020018281038252858181548152602001915080548015610ce557602002820191906000526020600020905b8154600160a060020a03168152600190910190602001808311610cc7575b5050945050505050602060405180830381600087803b1515610d0657600080fd5b6102c65a03f11515610d1757600080fd5b5050506040518051600254909250600160a060020a0316905063a9059cbb338360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515610d8357600080fd5b6102c65a03f11515610d9457600080fd5b505050604051805190501515610da657fe5b8094505b50505050919050565b600b5468010000000000000000900463ffffffff1681565b60035433600160a060020a03908116911614610de357fe5b600b80546cff000000000000000000000000191682156c01000000000000000000000000021790555b5b50565b600160a060020a0381166000908152600a6020526040812060010154819083906601000000000000900460ff161515610e4857600080fd5b600160a060020a0384166000908152600a602052604090206001810154909250640100000000900460ff16610eee5783600160a060020a03166370a082313060006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b1515610ece57600080fd5b6102c65a03f11515610edf57600080fd5b50505060405180519050610ef1565b81545b92505b5b5050919050565b600080600160a060020a038581169085161415610f1857600080fd5b600254600160a060020a0385811691161415610f3f57610f388584611d4e565b9150610ff1565b600254600160a060020a0386811691161415610f6657610f388484611b0b565b9150610ff1565b5b610f718584611d4e565b600254909150610fee9085908390610fe990600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515610fc857600080fd5b6102c65a03f11515610fd957600080fd5b5050506040518051905085612cba565b612cd4565b91505b509392505050565b60005433600160a060020a0390811691161461101157fe5b600254600160a060020a031663f2fde38b8260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401600060405180830381600087803b151561106157600080fd5b6102c65a03f1151561107257600080fd5b5050505b5b50565b60068054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111105780601f106110e557610100808354040283529160200191611110565b820191906000526020600020905b8154815290600101906020018083116110f357829003601f168201915b505050505081565b60005433600160a060020a0390811691161461113057fe5b600254600160a060020a033081169116638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561117c57600080fd5b6102c65a03f1151561118d57600080fd5b50505060405180519050600160a060020a0316141515156111aa57fe5b82600160a060020a03811615156111c057600080fd5b8330600160a060020a031681600160a060020a0316141515156111e257600080fd5b8360008163ffffffff161180156112025750620f424063ffffffff821611155b151561120d57600080fd5b600254600160a060020a038781169116148015906112515750600160a060020a0386166000908152600a60205260409020600101546601000000000000900460ff16155b801561126f5750600b54620f424063ffffffff918216870190911611155b151561127a57600080fd5b600160a060020a0386166000908152600a602052604081209081556001908101805466010000000000006501000000000063ffffffff1990921663ffffffff8a161764ff000000001916640100000000891515021765ff000000000019169190911766ff000000000000191617905560088054909181016112fb8382613051565b916000526020600020900160005b8154600160a060020a03808b166101009390930a9283029202191617905550600b805463ffffffff80821688011663ffffffff199091161790555b5b505b505b505b5b505050565b60005433600160a060020a0390811691161461136957fe5b600254600160a060020a03166379ba50976040518163ffffffff1660e060020a028152600401600060405180830381600087803b15156113a857600080fd5b6102c65a03f1151561134b57600080fd5b5050505b5b565b60005433600160a060020a039081169116146113d857fe5b600254600160a060020a0316635e35359e84848460405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401600060405180830381600087803b151561143b57600080fd5b6102c65a03f1151561134457600080fd5b5050505b5b505050565b600454600160a060020a031681565b600354600160a060020a031681565b600b54600090620f42409061149c90849068010000000000000000900463ffffffff16612e88565b8115156114a557fe5b0490505b919050565b600754600160a060020a031681565b60005433600160a060020a039081169116146114d557fe5b6000610e0c600982613051565b505b5b565b600061ffff821615156115065750600254600160a060020a03166114a9565b6008805461ffff60001985011690811061151c57fe5b906000526020600020900160005b9054906101000a9004600160a060020a031690505b919050565b60058054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156111105780601f106110e557610100808354040283529160200191611110565b820191906000526020600020905b8154815290600101906020018083116110f357829003601f168201915b505050505081565b60006115ec611d47565b60010190505b90565b60005433600160a060020a0390811691161461160d57fe5b82600160a060020a038116151561162357600080fd5b82600160a060020a038116151561163957600080fd5b8330600160a060020a031681600160a060020a03161415151561165b57600080fd5b85600160a060020a031663a9059cbb868660006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156116b857600080fd5b6102c65a03f115156116c957600080fd5b50505060405180519050151561134457fe5b5b5b505b505b505b505050565b600080600160a060020a03868116908616141561170457600080fd5b600254600160a060020a038681169116141561172c57611725868585611f76565b9150611771565b600254600160a060020a03878116911614156117545761172585858561177a565b9150611771565b5b61176186856001611f76565b905061176e85828561177a565b91505b50949350505050565b600080600080600080600b600c9054906101000a900460ff16151561179b57fe5b86600081116117a957600080fd5b600254600160a060020a03166370a082313360006040516020015260405160e060020a63ffffffff8416028152600160a060020a039091166004820152602401602060405180830381600087803b151561180257600080fd5b6102c65a03f1151561181357600080fd5b50505060405180518a1115905061182957600080fd5b6118338a8a611b0b565b965086158015906118445750878710155b151561184c57fe5b600254600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561189457600080fd5b6102c65a03f115156118a557600080fd5b5050506040518051905095506118ba8a610e10565b9450848710806118d3575084871480156118d357508589145b5b15156118dc57fe5b600160a060020a038a166000908152600a602052604090206001810154909450640100000000900460ff161561191b5783546119189088612eb7565b84555b600254600160a060020a031663a24835d1338b60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561197157600080fd5b6102c65a03f1151561198257600080fd5b50505089600160a060020a031663a9059cbb338960006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b15156119e257600080fd5b6102c65a03f115156119f357600080fd5b505050604051805190501515611a0557fe5b611a1a611a118b610e10565b620f4240612e88565b600254909350611a9590600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611a6957600080fd5b6102c65a03f11515611a7a57600080fd5b5050506040518051600187015490915063ffffffff16612e88565b600254909250600160a060020a03338116918c821691167f7a222e1014ca7136a33e1c036d11f04c2fb08a3ecb33c8e02760a7e038580f908c8b87896040518085815260200184815260200183815260200182815260200194505050505060405180910390a45b5b505b50505050509392505050565b600254600090611b7d9084908490600160a060020a03166318160ddd85604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611b5d57600080fd5b6102c65a03f11515611b6e57600080fd5b50505060405180519050612cd4565b90505b92915050565b600b546c01000000000000000000000000900460ff1681565b60015433600160a060020a03908116911614611bba57600080fd5b6000546001547f343765429aea5a34b3ff6a3785a98a5abb2597aca87bfbb58632c173d585373a91600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a16001805460008054600160a060020a0319908116600160a060020a038416179091551690555b565b60005433600160a060020a03908116911614611c5257fe5b600254600160a060020a0316631608f18f8260405160e060020a63ffffffff84160281529015156004820152602401600060405180830381600087803b151561106157600080fd5b6102c65a03f1151561107257600080fd5b5050505b5b50565b60035433600160a060020a03908116911614611ccb57fe5b8060008163ffffffff1610158015611cf75750600b5463ffffffff640100000000909104811690821611155b1515611d0257600080fd5b600b80546bffffffff000000000000000019166801000000000000000063ffffffff8516021790555b5b505b50565b600054600160a060020a031681565b6009545b90565b6008545b90565b6002546000908190819081908190600160a060020a033081169116638da5cb5b83604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611da457600080fd5b6102c65a03f11515611db557600080fd5b50505060405180519050600160a060020a0316141515611dd157fe5b600160a060020a0387166000908152600a602052604090206001015487906601000000000000900460ff161515611e0757600080fd5b600160a060020a0388166000908152600a60205260409020600181015490955065010000000000900460ff161515611e3e57600080fd5b600254600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611e8657600080fd5b6102c65a03f11515611e9757600080fd5b505050604051805190509350611eac88610e10565b6007546001870154919450600160a060020a0316906329a00e7c908690869063ffffffff168b6000604051602001526040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b1515611f3457600080fd5b6102c65a03f11515611f4557600080fd5b505050604051805190509550611f5a86611474565b9150611f668683612eb7565b95505b5b505b5050505092915050565b600080600080600b600c9054906101000a900460ff161515611f9457fe5b8460008111611fa257600080fd5b611fac8888611d4e565b94508415801590611fbd5750858510155b1515611fc557fe5b600160a060020a0388166000908152600a602052604090206001810154909450640100000000900460ff16156120045783546120019088612cba565b84555b87600160a060020a03166323b872dd33308a60006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b151561206e57600080fd5b6102c65a03f1151561207f57600080fd5b50505060405180519050151561209157fe5b600254600160a060020a031663867904b4338760405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b15156120e757600080fd5b6102c65a03f115156120f857600080fd5b505050612110611a1189610e10565b620f4240612e88565b60025490935061218b90600160a060020a03166318160ddd6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515611a6957600080fd5b6102c65a03f11515611a7a57600080fd5b5050506040518051600187015490915063ffffffff16612e88565b600254909250600160a060020a03338116918116908a167f7a222e1014ca7136a33e1c036d11f04c2fb08a3ecb33c8e02760a7e038580f908a8988886040518085815260200184815260200183815260200182815260200194505050505060405180910390a45b5b505b5050509392505050565b6000806000806000806000808a6002815111801561221f57506015815111155b801561223857506002815181151561223357fe5b066001145b151561224357600080fd5b8b60008151811061225057fe5b90602001906020020151975061226788338d612ece565b8b519350600192505b838310156123da578b838151811061228457fe5b9060200190602002015196508b836001018151811061229f57fe5b90602001906020020151955086600160a060020a0316638da5cb5b6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b15156122f157600080fd5b6102c65a03f1151561230257600080fd5b5050506040518051955050600160a060020a038781169089161461232b5761232b88868d612aad565b5b84600160a060020a0316635e5144eb89888e60028903881461234f576001612351565b8e5b60006040516020015260405160e060020a63ffffffff8716028152600160a060020a03948516600482015292909316602483015260448201526064810191909152608401602060405180830381600087803b15156123ae57600080fd5b6102c65a03f115156123bf57600080fd5b505050604051805190509a508597505b600283019250612270565b84600160a060020a031663abeb5f9f6000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561242057600080fd5b6102c65a03f1151561243157600080fd5b5050506040518051905080156124b8575085600160a060020a031685600160a060020a031663b3a9afb76000604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b151561249257600080fd5b6102c65a03f115156124a357600080fd5b50505060405180519050600160a060020a0316145b1561252d5785915081600160a060020a031663205c2878338d60405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b151561251457600080fd5b6102c65a03f1151561252557600080fd5b5050506125ad565b85600160a060020a031663a9059cbb338d60006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b151561258a57600080fd5b6102c65a03f1151561259b57600080fd5b5050506040518051905015156125ad57fe5b5b8a98505b5b50505050505050509392505050565b6000805433600160a060020a039081169116146125db57fe5b600160a060020a0385166000908152600a602052604090206001015485906601000000000000900460ff16151561261157600080fd5b8460008163ffffffff161180156126315750620f424063ffffffff821611155b151561263c57600080fd5b600160a060020a0387166000908152600a602052604090206001810154600b54919450620f424063ffffffff91821692821692909203880116111561268057600080fd5b600183018054600b805463ffffffff928316818416038a01831663ffffffff199182161790915582548815156401000000000264ff0000000019938b169190921617919091161790558383555b5b505b505b5050505050565b600954600090115b90565b6009546000908190116126f357fe5b60098054600090811061270257fe5b906000526020600020900160005b9054906101000a9004600160a060020a031690505b90565b60045433600160a060020a0390811691161461274357600080fd5b6003546004547fbe4cc281795971a471c980e842627a7f1ea3892ddfce8c5b6357cd2611c1973291600160a060020a039081169116604051600160a060020a039283168152911660208201526040908101905180910390a16004805460038054600160a060020a0319908116600160a060020a038416179091551690555b565b60088054829081106127d157fe5b906000526020600020900160005b915054906101000a9004600160a060020a031681565b60005433600160a060020a0390811691161461280d57fe5b806002815111801561282157506015815111155b801561283a57506002815181151561283557fe5b066001145b151561284557600080fd5b600982805161134b9291602001906130a5565b505b5b505b50565b600154600160a060020a031681565b600a602052600090815260409020805460019091015463ffffffff81169060ff640100000000820481169165010000000000810482169166010000000000009091041685565b600b54640100000000900463ffffffff1681565b60035433600160a060020a039081169116146128e157fe5b600354600160a060020a03828116911614156128fc57600080fd5b60048054600160a060020a031916600160a060020a0383161790555b5b50565b60098054829081106127d157fe5b906000526020600020900160005b915054906101000a9004600160a060020a031681565b60005433600160a060020a0390811691161461296657fe5b600160a060020a0382166000908152600a602052604090206001015482906601000000000000900460ff16151561299c57600080fd5b600160a060020a0383166000908152600a60205260409020600101805465ff00000000001916831565010000000000021790555b5b505b5050565b60005433600160a060020a039081169116146129ef57fe5b80600160a060020a0381161515612a0557600080fd5b8130600160a060020a031681600160a060020a031614151515612a2757600080fd5b60078054600160a060020a031916600160a060020a0385161790555b5b505b505b50565b60005433600160a060020a03908116911614612a6357fe5b600054600160a060020a0382811691161415612a7e57600080fd5b60018054600160a060020a031916600160a060020a0383161790555b5b50565b600254600160a060020a031681565b8083600160a060020a031663dd62ed3e308560006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b1515612b0d57600080fd5b6102c65a03f11515612b1e57600080fd5b50505060405180519050101515612b345761134b565b82600160a060020a031663dd62ed3e308460006040516020015260405160e060020a63ffffffff8516028152600160a060020a03928316600482015291166024820152604401602060405180830381600087803b1515612b9357600080fd5b6102c65a03f11515612ba457600080fd5b5050506040518051159050612c335782600160a060020a031663095ea7b3836000806040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612c1057600080fd5b6102c65a03f11515612c2157600080fd5b505050604051805190501515612c3357fe5b5b82600160a060020a031663095ea7b3838360006040516020015260405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401602060405180830381600087803b1515612c9157600080fd5b6102c65a03f11515612ca257600080fd5b50505060405180519050151561134b57fe5b5b505050565b600082820183811015612cc957fe5b8091505b5092915050565b600254600090819081908190600160a060020a033081169116638da5cb5b83604051602001526040518163ffffffff1660e060020a028152600401602060405180830381600087803b1515612d2857600080fd5b6102c65a03f11515612d3957600080fd5b50505060405180519050600160a060020a0316141515612d5557fe5b600160a060020a0387166000908152600a602052604090206001015487906601000000000000900460ff161515612d8b57600080fd5b8560008111612d9957600080fd5b600160a060020a0389166000908152600a602052604090209450612dbc89610e10565b6007546001870154919550600160a060020a0316906349f9b0f7908990879063ffffffff168c6000604051602001526040518563ffffffff1660e060020a028152600401808581526020018481526020018363ffffffff1663ffffffff168152602001828152602001945050505050602060405180830381600087803b1515612e4457600080fd5b6102c65a03f11515612e5557600080fd5b505050604051805190509550612e6a86611474565b9250612e768684612eb7565b95505b5b505b505b5050509392505050565b6000828202831580612ea45750828482811515612ea157fe5b04145b1515612cc957fe5b8091505b5092915050565b600081831015612ec357fe5b508082035b92915050565b600254600160a060020a0384811691161415612fbe57600254600160a060020a031663a24835d1838360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515612f3a57600080fd5b6102c65a03f11515612f4b57600080fd5b5050600254600160a060020a0316905063867904b4308360405160e060020a63ffffffff8516028152600160a060020a0390921660048301526024820152604401600060405180830381600087803b1515612fa557600080fd5b6102c65a03f11515612fb657600080fd5b50505061134b565b82600160a060020a03166323b872dd83308460006040516020015260405160e060020a63ffffffff8616028152600160a060020a0393841660048201529190921660248201526044810191909152606401602060405180830381600087803b1515612c9157600080fd5b6102c65a03f11515612ca257600080fd5b50505060405180519050151561134b57fe5b5b505050565b81548183558181151161134b5760008381526020902061134b91810190830161310d565b5b505050565b81548183558181151161134b5760008381526020902061134b91810190830161310d565b5b505050565b8280548282559060005260206000209081019282156130fc579160200282015b828111156130fc5782518254600160a060020a031916600160a060020a0391909116178255602092909201916001909101906130c5565b5b5061310992915061312e565b5090565b6115f291905b808211156131095760008155600101613113565b5090565b90565b6115f291905b80821115613109578054600160a060020a0319168155600101613134565b5090565b905600a165627a7a7230582092f27b04325b6e39a644e4103cb9e749249f75840541bdeb4d45bede9302127d00290000000000000000000000001f573d6fb3f13d689ff844b4ce37794d79a7ff1c0000000000000000000000008b0c11e0df925387de1ce92504fe0e4af23af6f20000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c0829421c1d260bd3cb3e0f06cfe2d52db2ce31500000000000000000000000000000000000000000000000000000000000186a0