0 txs
0 calls
constructor
constructor(address wrappedNative_)
functions
getRouter
viewfunction getRouter() view returns (address)
multiswap
viewfunction multiswap(tuple data) view returns (uint256 amountOut)
multiswap2
viewfunction multiswap2(tuple data) view returns (uint256[] amountsOut)
multiswapReverse
viewfunction multiswapReverse(tuple data) view returns (uint256 amountOut)
owner
viewfunction owner() view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
acceptOwnership
nonpayablefunction acceptOwnership()
initialize
nonpayablefunction initialize(address newOwner)
renounceOwnership
nonpayablefunction renounceOwnership()
setRouter
nonpayablefunction setRouter(address router)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeTo
nonpayablefunction upgradeTo(address newImplementation)
events
Initialized
event Initialized(uint8 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Upgraded
event Upgraded(address indexed implementation)
errors
ERC1967_InvalidImplementation
error ERC1967_InvalidImplementation(address implementation)
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
Ownable_CallerIsNotTheNewOwner
error Ownable_CallerIsNotTheNewOwner(address caller)
Ownable_NewOwnerCannotBeAddressZero
error Ownable_NewOwnerCannotBeAddressZero()
Ownable_SenderIsNotOwner
error Ownable_SenderIsNotOwner(address sender)
R
error R()
T
error T()
UniswapV2_InsufficientInputAmount
error UniswapV2_InsufficientInputAmount()
UniswapV2_InsufficientOutputAmount
error UniswapV2_InsufficientOutputAmount()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60c0604052306080523480156200001557600080fd5b5060405162003a6e38038062003a6e83398101604081905262000038916200004a565b6001600160a01b031660a0526200007c565b6000602082840312156200005d57600080fd5b81516001600160a01b03811681146200007557600080fd5b9392505050565b60805160a0516139b7620000b76000396000818161028f015261043d0152600081816108080152818161083101526109c201526139b76000f3fe608060405234801561001057600080fd5b50600436106100df5760003560e01c80638da5cb5b1161008c578063c0d7865511610066578063c0d78655146101a6578063c4d66de8146101b9578063e30c3978146101cc578063f2fde38b146101dd57600080fd5b80638da5cb5b1461014a5780639e00ccbf14610175578063b0f479a11461019557600080fd5b80636ae3b135116100bd5780636ae3b13514610127578063715018a61461013a57806379ba50971461014257600080fd5b80633659cfe6146100e457806352d1902d146100f95780635dceae2814610114575b600080fd5b6100f76100f2366004613299565b6101f0565b005b61010161020d565b6040519081526020015b60405180910390f35b6101016101223660046132b6565b61023c565b6101016101353660046132b6565b6102ba565b6100f76102e9565b6100f76102fd565b6000546201000090046001600160a01b03165b6040516001600160a01b03909116815260200161010b565b6101886101833660046132f1565b610351565b60405161010b919061332c565b6002546001600160a01b031661015d565b6100f76101b4366004613299565b610658565b6100f76101c7366004613299565b61068f565b6001546001600160a01b031661015d565b6100f76101eb366004613299565b610787565b6101f86107fd565b610201816108ab565b61020a816108b3565b50565b60006102176109b7565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc90565b60006102b361024e6060840184613370565b6102588535610a00565b600061026a6060880160408901613299565b6001600160a01b03161461028d576102886060870160408801613299565b610aab565b7f0000000000000000000000000000000000000000000000000000000000000000610aab565b5092915050565b60006102e36102cc6060840184613370565b84356102de6060870160408801613299565b610b56565b92915050565b6102f1610c6c565b6102fb6000610cb8565b565b6001546001600160a01b03163314610348576040517f6cce7fdd0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b6102fb33610cb8565b60606103606040830183613370565b905067ffffffffffffffff81111561037a5761037a6133c1565b6040519080825280602002602001820160405280156103a3578160200160208202803683370190505b50905060006103b560a0840184613370565b90509050806000036103c75750919050565b6103d46080840184613370565b905081146103e25750919050565b3660006103f26040860186613370565b909250905060006104038635610a00565b90506000806104186040890160208a01613299565b6001600160a01b03161461043b576104366040880160208901613299565b61045d565b7f00000000000000000000000000000000000000000000000000000000000000005b90506000805b8681101561049e5761047860808a018a613370565b82818110610488576104886133d7565b9050602002013582019150806001019050610463565b50670de0b6b3a764000081146104b957505050505050919050565b506000198501826000805b8881101561064a578381036104db57829150610520565b670de0b6b3a76400006104f160808d018d613370565b83818110610501576105016133d7565b90506020020135870281610517576105176133ed565b04915081830392505b60008061055c61053360a08f018f613370565b85818110610543576105436133d7565b90506020028101906105559190613370565b868a610aab565b90925090506000895b80156105e157600019016001600160a01b0383168c8c8381811061058b5761058b6133d7565b90506020020160208101906105a09190613299565b6001600160a01b0316036105dc57838e82815181106105c1576105c16133d7565b602002602001018181510191508181525050600191506105e1565b610565565b508061063c578967ffffffffffffffff811115610600576106006133c1565b604051908082528060200260200182016040528015610629578160200160208202803683370190505b509e9d5050505050505050505050505050565b8360010193505050506104c4565b505050505050505050919050565b610660610c6c565b6002805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6000805460ff610100820481161592911690811580156106ac5750825b905060008267ffffffffffffffff1660011480156106c95750303b155b9050811580156106d7575080155b1561070e576040517ff92ee8a900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000805460ff191660011790558315610731576000805461ff0019166101001790555b61073a85610cb8565b8315610780576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b61078f610c6c565b61079881610cde565b6001805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038381169182179092556000805460405192936201000090910416917f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e227009190a350565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061088d57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166108817f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5490565b6001600160a01b031614155b156102fb5760405163703e46dd60e11b815260040160405180910390fd5b61020a610c6c565b806001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561090d575060408051601f3d908101601f1916820190925261090a91810190613403565b60015b61094e576040517f4a4a0aa20000000000000000000000000000000000000000000000000000000081526001600160a01b038216600482015260240161033f565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc81146109aa576040517faa1d49a40000000000000000000000000000000000000000000000000000000081526004810182905260240161033f565b6109b382610d1e565b5050565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146102fb5760405163703e46dd60e11b815260040160405180910390fd5b6002546000906001600160a01b031615610aa75760025460408051633a41a2a160e11b815281516000936001600160a01b031692637483454292600480820193918290030181865afa158015610a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7e919061341c565b915050600081118015610a9057508215155b15610aa557620f424090830204909103919050565b505b5090565b60008084808203610ac3576000809250925050610b4d565b60008060008060005b85811015610b4057610b1a8c8c83818110610ae957610ae96133d7565b90506020020135600160ff1b8116916001600160a01b0382169160b881901c60ff169160a09190911c62ffffff1690565b91975090955093509150600101610b35828a87868e89610d5e565b909a50985089610acc575b5088889650965050505050505b94509492505050565b600083808203610b6b57600019915050610c64565b6002546001600160a01b031615610c0e5760025460408051633a41a2a160e11b815281516000936001600160a01b031692637483454292600480820193918290030181865afa158015610bc2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be6919061341c565b9150508015610c0c5780620f42400385620f42400281610c0857610c086133ed565b0494505b505b60008060005b8315610c5c5760001990930192610c36898986818110610ae957610ae96133d7565b919550909350909150610c4e90508684898585611039565b909750955060018701610c14575b869450505050505b949350505050565b6000546201000090046001600160a01b031633146102fb576040517f37c14b4500000000000000000000000000000000000000000000000000000000815233600482015260240161033f565b6001805473ffffffffffffffffffffffffffffffffffffffff1916905561020a81611276565b6001600160a01b03811661020a576040517f7b30466f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610d27816112e7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6000806000866001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015610dbd575060408051601f3d908101601f19168201909252610dba9181019061344a565b60015b610dce57600080925092505061102e565b809150809250886001600160a01b0316836001600160a01b031603610e5257876001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e4f919061344a565b92505b506001600160a01b03821615801590610e7357506001600160a01b03881615155b1561102c578815610ec9576001600160a01b038083169089161085610ebe89838381610eb35773fffd8963efd1fc6a506488495d951d5263988d25611323565b6401000276a4611323565b955061102c92505050565b866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa925050508015610f23575060408051601f3d908101601f19168201909252610f2091810190613485565b60015b610f3457600080925092505061102e565b600080856001600160a01b03168d6001600160a01b031614610f57578385610f5a565b84845b6dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691508a600003610f9957610f928a83838c611a3e565b9750611026565b6040517ff140a35a000000000000000000000000000000000000000000000000000000008152600481018b90526001600160a01b038e811660248301528d169063f140a35a90604401602060405180830381865afa158015610fff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110239190613403565b97505b50505050505b505b965096945050505050565b6000806000866001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611098575060408051601f3d908101601f191682019092526110959181019061344a565b60015b6110ab576000196000925092505061126c565b809150809250826001600160a01b0316896001600160a01b03160361112f57876001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611108573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061112c919061344a565b92505b506001600160a01b0388161580159061115057506001600160a01b03821615155b1561126a57831561119f576001600160a01b0380891690831610866111948983600084900381610eb35773fffd8963efd1fc6a506488495d951d5263988d25611323565b50945061126a915050565b866001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa9250505080156111f9575060408051601f3d908101601f191682019092526111f691810190613485565b60015b61120c576000196000925092505061126c565b600080856001600160a01b0316876001600160a01b03161461122f578385611232565b84845b6dffffffffffffffffffffffffffff1691506dffffffffffffffffffffffffffff1691506112628b83838d611ac0565b975050505050505b505b9550959350505050565b600080546001600160a01b03838116620100008181027fffffffffffffffffffff0000000000000000000000000000000000000000ffff851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b803b6112ff57634a4a0aa2600052806020526024601cfd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55565b60408051606081018252600080825260208201819052918101829052819060408051808201909152600080825260208201526040805160a081018252600080825260208201819052918101829052606081018290526080810182905290871390604080518082019091526000808252602082015260008060006113a58e611b56565b6001600160a01b0383168b52600282900b60208c01529194509250905080156113d057604088018190525b6001600160a01b0383811614611487578c1561142a5787600001516001600160a01b03168b6001600160a01b0316118061141757506401000276a36001600160a01b038c16105b15611425576401000276a49a505b611487565b87600001516001600160a01b03168b6001600160a01b0316108061146a575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038c16115b156114875773fffd8963efd1fc6a506488495d951d5263988d259a505b505050602085015160020b627fffff1480156114ad575084516001600160a01b03908116145b15611586576040517f5d41514b0000000000000000000000000000000000000000000000000000000081528a15156004820152602481018a90526001600160a01b03898116604483015260009182918e1690635d41514b9060640160a060405180830381865afa158015611525573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154991906134fe565b505050915091506000821361155e5780611560565b815b600083126115715781600003611576565b826000035b9850985050505050505050610b4d565b60008060006115948e611d75565b925092509250806001600160801b0316600014806115b057508b155b156115d857856115c2576000196115c5565b60005b6000995099505050505050505050610b4d565b6001600160801b038116602088015260408801511561164a578c61161b5760ff88604001511161160957600461160c565b60105b60ff168860400151901c611647565b60ff88604001511161162e576010611633565b620100005b62ffffff1688604001516116479190613557565b87525b62ffffff9092168352600290810b6020808501919091528b855287516001600160a01b03166040860152870151900b60608401526001600160801b031660808301525b8151158015906116b35750876001600160a01b031682604001516001600160a01b031614155b156119d7576040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c081019190915260408301516001600160a01b0316815260608301516020830151611717918e918e611fac565b1515604083015260020b60208201819052620d89e719131561174257620d89e7196020820152611776565b61174f620d89e719613581565b60020b816020015160020b13156117765761176d620d89e719613581565b60020b60208201525b6117838160200151612293565b6001600160a01b0316606082015260408301516117f5908c6117bd578a6001600160a01b031683606001516001600160a01b0316116117d7565b8a6001600160a01b031683606001516001600160a01b0316105b6117e55782606001516117e7565b8a5b6080860151865186516125dc565b60c085015260a084015260808301526001600160a01b0316604084015283156118575761182b8160c001518260800151016127ce565b835103835260a081015161183e906127ce565b8360200181815161184f91906135a3565b90525061189a565b6118648160a001516127ce565b835101835260c0810151608082015161188591611880916135c3565b6127ce565b8360200181815161189691906135d6565b9052505b8451156118cb57600085600001518260c00151816118ba576118ba6133ed565b60c084018051929091049091039052505b80606001516001600160a01b031683604001516001600160a01b03160361199a5780604001511561195a5760006119068d83602001516127e0565b90508b15611912576000035b600081600f0b126119325780846080015161192d91906135fe565b61194a565b61193b8161361e565b846080015161194a9190613653565b6001600160801b03166080850152505b82608001516001600160801b031660000361197557506119d7565b8a61198457806020015161198d565b60018160200151035b60020b60608401526119d1565b80600001516001600160a01b031683604001516001600160a01b0316146119d1576119c883604001516128e6565b60020b60608401525b5061168d565b6000808415158c1515146119f357602084015184518c03611a00565b83600001518b0384602001515b9150915060008213611a125780611a14565b815b60008312611a255781600003611a2a565b826000035b985098505050505050505094509492505050565b600084600003611a7a576040517f4566b3d300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b831580611a85575082155b15611a9257506000610c64565b620f42408281038602908482029086028201808281611ab357611ab36133ed565b0498975050505050505050565b600084600003611afc576040517f4c46ea5500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b831580611b07575082155b15611b155750600019610c64565b82851115611b265750600019610c64565b620f424085850281029083900386850302808281611b4657611b466133ed565b0460010192505050949350505050565b60408051600481526024810182526020810180516001600160e01b03167f3850c7bd00000000000000000000000000000000000000000000000000000000179052905160009182918291829182916001600160a01b03881691611bb99190613673565b600060405180830381855afa9150503d8060008114611bf4576040519150601f19603f3d011682016040523d82523d6000602084013e611bf9565b606091505b50915091508115611c795760c081511115611c355780806020019051810190611c2291906136b2565b50949950929750929550611d6a92505050565b608081511115611c635780806020019051810190611c53919061371e565b50939850919650611c7492505050565b627fffff93506001600160a01b0394505b611d6a565b60408051600481526024810182526020810180516001600160e01b03167fe76c01e40000000000000000000000000000000000000000000000000000000017905290516001600160a01b03881691611cd091613673565b600060405180830381855afa9150503d8060008114611d0b576040519150601f19603f3d011682016040523d82523d6000602084013e611d10565b606091505b50805190925060e0039050611d4b57600081806020019051810190611d359190613791565b50505061ffff166000529096509450611d6a9050565b80806020019051810190611d5f9190613791565b509398509196505050505b604052509193909250565b600080519080606062ffffff84168203611e3d5760408051600481526024810182526020810180516001600160e01b03167fddca3f430000000000000000000000000000000000000000000000000000000017905290516001600160a01b03871691611de091613673565b600060405180830381855afa9150503d8060008114611e1b576040519150601f19603f3d011682016040523d82523d6000602084013e611e20565b606091505b508051909250611e3a915082016020908101908301613803565b93505b60408051600481526024810182526020810180516001600160e01b03167fd0c93a7c0000000000000000000000000000000000000000000000000000000017905290516001600160a01b03871691611e9491613673565b600060405180830381855afa9150503d8060008114611ecf576040519150601f19603f3d011682016040523d82523d6000602084013e611ed4565b606091505b508051909250611eee915082016020908101908301613828565b60408051600481526024810182526020810180516001600160e01b03167f1a6865020000000000000000000000000000000000000000000000000000000017905290519194506001600160a01b03871691611f499190613673565b600060405180830381855afa9150503d8060008114611f84576040519150601f19603f3d011682016040523d82523d6000602084013e611f89565b606091505b508051909250611fa3915082016020908101908301613843565b93959294505050565b60008060008460020b8660020b81611fc657611fc66133ed565b05905060008660020b128015611ff357508460020b8660020b81611fec57611fec6133ed565b0760020b15155b15611ffd57600019015b83156121405760405163299ce14b60e11b8152600282900b600881901d600181810b600485015290926101009092079160ff83169190911b800160001901906000906001600160a01b038c1690635339c29690602401602060405180830381865afa92505050801561208c575060408051601f3d908101601f1916820190925261208991810190613403565b60015b61210657604051630633bf1f60e51b8152600185900b600482015282906001600160a01b038d169063c677e3e090602401602060405180830381865afa1580156120da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120fe9190613403565b16905061210b565b821690505b80151595508561212257888360ff16860302612135565b8861212c82612c21565b840360ff168603025b965050505050612289565b6000806001830160020b600881901d90610100900760405163299ce14b60e11b8152600183810b600483015292945090925060ff83169190911b6000190119906000906001600160a01b038c1690635339c29690602401602060405180830381865afa9250505080156121d0575060408051601f3d908101601f191682019092526121cd91810190613403565b60015b61224a57604051630633bf1f60e51b8152600185900b600482015282906001600160a01b038d169063c677e3e090602401602060405180830381865afa15801561221e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122429190613403565b16905061224f565b821690505b80151595508561226c57888360ff0360ff16866001010102612282565b888361227783612ccf565b0360ff168660010101025b9650505050505b5094509492505050565b60008060008360020b126122aa578260020b6122b2565b8260020b6000035b9050620d89e88111156122f1576040517f2bc80f3a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008160011660000361231557700100000000000000000000000000000000612327565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561235b576ffff97272373d413259a46990580e213a0260801c5b600482161561237a576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b6008821615612399576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156123b8576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156123d7576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156123f6576fff2ea16466c96a3843ec78b326b528610260801c5b6080821615612415576ffe5dee046a99a2a811c461f1969c30530260801c5b610100821615612435576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b610200821615612455576ff987a7253ac413176f2b074cf7815e540260801c5b610400821615612475576ff3392b0822b70005940c7a398e4b70f30260801c5b610800821615612495576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156124b5576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156124d5576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156124f5576f70d869a156d2a1b890bb3df62baf32f70260801c5b618000821615612515576f31be135f97d08fd981231505542fcfa60260801c5b62010000821615612536576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b62020000821615612556576e5d6af8dedb81196699c329225ee6040260801c5b62040000821615612575576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615612592576b048a170391f7dc42444e8fa20260801c5b60008460020b13156125b35780600019816125af576125af6133ed565b0490505b6401000000008106156125c75760016125ca565b60005b60ff16602082901c0192505050919050565b60008080806001600160a01b03808916908a1610158187128015906126615760006126158989620f42400362ffffff16620f4240612db9565b90508261262e576126298c8c8c6001612e6c565b61263b565b61263b8b8d8c6001612ee5565b955085811061264c578a965061265b565b6126588c8b8386612fae565b96505b506126ab565b81612678576126738b8b8b6000612ee5565b612685565b6126858a8c8b6000612e6c565b9350838860000310612699578995506126ab565b6126a88b8a8a60000385612ffa565b95505b6001600160a01b038a811690871614821561270e578080156126ca5750815b6126e0576126db878d8c6001612ee5565b6126e2565b855b95508080156126ef575081155b61270557612700878d8c6000612e6c565b612707565b845b9450612758565b8080156127185750815b61272e576127298c888c6001612e6c565b612730565b855b955080801561273d575081155b6127535761274e8c888c6000612ee5565b612755565b845b94505b8115801561276857508860000385115b15612774578860000394505b81801561279357508a6001600160a01b0316876001600160a01b031614155b156127a25785890393506127bf565b6127bc868962ffffff168a620f42400362ffffff16613046565b93505b50505095509550955095915050565b6000600160ff1b8210610aa757600080fd5b604051600282900b602482015260009081906001600160a01b0385169060440160408051601f198184030181529181526020820180516001600160e01b03167ff30dba93000000000000000000000000000000000000000000000000000000001790525161284e9190613673565b600060405180830381855afa9150503d8060008114612889576040519150601f19603f3d011682016040523d82523d6000602084013e61288e565b606091505b509150508051610140036128c257808060200190518101906128b09190613870565b509699506102b3975050505050505050565b808060200190518101906128d691906138f9565b50949a9950505050505050505050565b60006401000276a36001600160a01b03831610801590612922575073fffd8963efd1fc6a506488495d951d5263988d266001600160a01b038316105b612958576040517f4980e1be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b77ffffffffffffffffffffffffffffffffffffffff00000000602083901b166001600160801b03811160071b81811c67ffffffffffffffff811160061b90811c63ffffffff811160051b90811c61ffff811160041b90811c60ff8111600390811b91821c600f811160021b90811c918211600190811b92831c979088119617909417909217179091171717608081106129f957607f810383901c9150612a03565b80607f0383901b91505b908002607f81811c60ff83811c9190911c800280831c81831c1c800280841c81841c1c800280851c81851c1c800280861c81861c1c800280871c81871c1c800280881c81881c1c800280891c81891c1c8002808a1c818a1c1c8002808b1c818b1c1c8002808c1c818c1c1c8002808d1c818d1c1c8002808e1c9c81901c9c909c1c80029c8d901c9e9d607f198f0160401b60c09190911c678000000000000000161760c19b909b1c674000000000000000169a909a1760c29990991c672000000000000000169890981760c39790971c671000000000000000169690961760c49590951c670800000000000000169490941760c59390931c670400000000000000169290921760c69190911c670200000000000000161760c79190911c670100000000000000161760c89190911c6680000000000000161760c99190911c6640000000000000161760ca9190911c6620000000000000161760cb9190911c6610000000000000161760cc9190911c6608000000000000161760cd9190911c66040000000000001617693627a301d71055774c8581027ffffffffffffffffffffffffffffffffffd709b7e5480fba5a50fed5e62ffc5568101608090811d906fdb2df09e81959a81455e260799a0632f8301901d600281810b9083900b14612c1257886001600160a01b0316612bf782612293565b6001600160a01b03161115612c0c5781612c14565b80612c14565b815b9998505050505050505050565b6000808211612c2f57600080fd5b7001000000000000000000000000000000008210612c4f57608091821c91015b680100000000000000008210612c6757604091821c91015b6401000000008210612c7b57602091821c91015b620100008210612c8d57601091821c91015b6101008210612c9e57600891821c91015b60108210612cae57600491821c91015b60048210612cbe57600291821c91015b60028210612cca576001015b919050565b6000808211612cdd57600080fd5b5060ff6001600160801b03821615612cf857607f1901612d00565b608082901c91505b67ffffffffffffffff821615612d1957603f1901612d21565b604082901c91505b63ffffffff821615612d3657601f1901612d3e565b602082901c91505b61ffff821615612d5157600f1901612d59565b601082901c91505b60ff821615612d6b5760071901612d73565b600882901c91505b600f821615612d855760031901612d8d565b600482901c91505b6003821615612d9f5760011901612da7565b600282901c91505b6001821615612cca5760001901919050565b6000808060001985870985870292508281108382030391505080600003612df25760008411612de757600080fd5b508290049050612e65565b808411612dfe57600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b6000836001600160a01b0316856001600160a01b03161115612e8c579293925b81612eb957612eb4836001600160801b03168686036001600160a01b0316600160601b612db9565b612edc565b612edc836001600160801b03168686036001600160a01b0316600160601b613046565b95945050505050565b6000836001600160a01b0316856001600160a01b03161115612f05579293925b7bffffffffffffffffffffffffffffffff000000000000000000000000606084901b166001600160a01b038686038116908716612f4157600080fd5b83612f7757866001600160a01b0316612f648383896001600160a01b0316612db9565b81612f7157612f716133ed565b04612fa3565b612fa3612f8e8383896001600160a01b0316613046565b886001600160a01b0316808204910615150190565b979650505050505050565b600080856001600160a01b031611612fc557600080fd5b6000846001600160801b031611612fdb57600080fd5b81612fed57612eb48585856001613086565b612edc858585600161316c565b600080856001600160a01b03161161301157600080fd5b6000846001600160801b03161161302757600080fd5b8161303957612eb4858585600061316c565b612edc8585856000613086565b6000613053848484612db9565b905060008280613065576130656133ed565b8486091115612e6557600019811061307c57600080fd5b6001019392505050565b600081156130f85760006001600160a01b038411156130bc576130b784600160601b876001600160801b0316612db9565b6130d3565b6130d36001600160801b038616606086901b61396d565b90506130f06130eb826001600160a01b0389166135c3565b61326e565b915050610c64565b60006001600160a01b038411156131265761312184600160601b876001600160801b0316613046565b613143565b613143606085901b6001600160801b038716808204910615150190565b905080866001600160a01b03161161315a57600080fd5b6001600160a01b038616039050610c64565b60008260000361317d575083610c64565b7bffffffffffffffffffffffffffffffff000000000000000000000000606085901b168215613221576001600160a01b038616848102908582816131c3576131c36133ed565b04036131f3578181018281106131f1576131e783896001600160a01b031683613046565b9350505050610c64565b505b506130f0818561320c6001600160a01b038a168361396d565b61321691906135c3565b808204910615150190565b6001600160a01b0386168481029085828161323e5761323e6133ed565b0414801561324b57508082115b61325457600080fd5b8082036131e76130eb846001600160a01b038b1684613046565b806001600160a01b0381168114612cca57600080fd5b6001600160a01b038116811461020a57600080fd5b6000602082840312156132ab57600080fd5b8135612e6581613284565b6000602082840312156132c857600080fd5b813567ffffffffffffffff8111156132df57600080fd5b820160808185031215612e6557600080fd5b60006020828403121561330357600080fd5b813567ffffffffffffffff81111561331a57600080fd5b820160c08185031215612e6557600080fd5b6020808252825182820181905260009190848201906040850190845b8181101561336457835183529284019291840191600101613348565b50909695505050505050565b6000808335601e1984360301811261338757600080fd5b83018035915067ffffffffffffffff8211156133a257600080fd5b6020019150600581901b36038213156133ba57600080fd5b9250929050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601260045260246000fd5b60006020828403121561341557600080fd5b5051919050565b6000806040838503121561342f57600080fd5b825161343a81613284565b6020939093015192949293505050565b60006020828403121561345c57600080fd5b8151612e6581613284565b80516dffffffffffffffffffffffffffff81168114612cca57600080fd5b60008060006060848603121561349a57600080fd5b6134a384613467565b92506134b160208501613467565b9150604084015163ffffffff811681146134ca57600080fd5b809150509250925092565b8051600281900b8114612cca57600080fd5b80516001600160801b0381168114612cca57600080fd5b600080600080600060a0868803121561351657600080fd5b8551945060208601519350604086015161352f81613284565b925061353d606087016134d5565b915061354b608087016134e7565b90509295509295909350565b600082613566576135666133ed565b500690565b634e487b7160e01b600052601160045260246000fd5b60008160020b627fffff19810361359a5761359a61356b565b60000392915050565b81810360008312801583831316838312821617156102b3576102b361356b565b808201808211156102e3576102e361356b565b80820182811260008312801582168215821617156135f6576135f661356b565b505092915050565b6001600160801b038181168382160190808211156102b3576102b361356b565b600081600f0b7fffffffffffffffffffffffffffffffff80000000000000000000000000000000810361359a5761359a61356b565b6001600160801b038281168282160390808211156102b3576102b361356b565b6000825160005b81811015613694576020818601810151858301520161367a565b506000920191825250919050565b80518015158114612cca57600080fd5b600080600080600080600060e0888a0312156136cd57600080fd5b87516136d881613284565b96506136e6602089016134d5565b955060408801519450606088015193506080880151925060a0880151915061371060c089016136a2565b905092959891949750929550565b60008060008060008060c0878903121561373757600080fd5b865161374281613284565b9550613750602088016134d5565b945060408701519350606087015192506080870151915061377360a088016136a2565b90509295509295509295565b805161ffff81168114612cca57600080fd5b60008060008060008060c087890312156137aa57600080fd5b86516137b581613284565b95506137c3602088016134d5565b94506137d16040880161377f565b9350606087015160ff811681146137e757600080fd5b92506137f56080880161377f565b915061377360a088016136a2565b60006020828403121561381557600080fd5b815162ffffff81168114612e6557600080fd5b60006020828403121561383a57600080fd5b612e65826134d5565b60006020828403121561385557600080fd5b612e65826134e7565b8051600f81900b8114612cca57600080fd5b6000806000806000806000806000806101408b8d03121561389057600080fd5b6138998b6134e7565b99506138a760208c0161385e565b985060408b0151975060608b0151965060808b0151955060a08b0151945060c08b0151935060e08b015192506101008b015191506138e86101208c016136a2565b90509295989b9194979a5092959850565b600080600080600080600080610100898b03121561391657600080fd5b61391f896134e7565b975061392d60208a0161385e565b965060408901519550606089015194506080890151935060a0890151925060c0890151915061395e60e08a016136a2565b90509295985092959890939650565b60008261397c5761397c6133ed565b50049056fea26469706673582212203a65a27ccccee0ca3f19bd9eadabe3b25b8e80fc74591e57911756323185717f64736f6c63430008130033000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2