0 txs
0 calls
constructor
No constructor.
functions
farmsTags
viewfunction farmsTags(uint256, uint256) view returns (uint256)
getActivePools
viewfunction getActivePools(address user) view returns (tuple[] poolInfo)
getActivePoolsIds
viewfunction getActivePoolsIds() view returns (uint256[] idsActive, uint256[] idsInactive)
getAutoBSWPool
viewfunction getAutoBSWPool(tuple poolInstance, address user) view returns (tuple poolInfo)
getFarm
viewfunction getFarm(address user, uint256 pid) view returns (tuple farm)
getFarms
viewfunction getFarms(address user) view returns (tuple[] farm, uint256 totalAllocPoint)
getHoldersPoolBalance
viewfunction getHoldersPoolBalance(address _user) view returns (uint256 holderPoolBalance)
getInactivePools
viewfunction getInactivePools(address user) view returns (tuple[] poolInfo)
getMasterChef
viewfunction getMasterChef(tuple poolInstance, address user) view returns (tuple poolInfo)
getPool
viewfunction getPool(address user, uint256 poolId) view returns (tuple poolInfo)
getPools
viewfunction getPools(address user) view returns (tuple[] poolInfo)
getSmartChef
viewfunction getSmartChef(tuple poolInstance, address user) view returns (tuple poolInfo)
getSmartChefV2
viewfunction getSmartChefV2(tuple poolInstance, address user) view returns (tuple poolInfo)
getSmartChefV2PF
viewfunction getSmartChefV2PF(tuple poolInstance, address user) view returns (tuple poolInfo)
getTokenInfo
viewfunction getTokenInfo(address tokenAddress, address user) view returns (tuple token)
poolExist
viewfunction poolExist(address _pool) view returns (bool)
poolInstances
viewfunction poolInstances(address) view returns (address poolAddress, uint8 poolType, bool inProd, string projectLink)
poolInstancesLength
viewfunction poolInstancesLength() view returns (uint256)
pools
viewfunction pools(uint256) view returns (address)
sortFarms
viewfunction sortFarms(uint256) view returns (uint256)
sortPools
viewfunction sortPools(address) view returns (uint256)
addFarmsTags
nonpayablefunction addFarmsTags(tuple[] _farmTags)
addPool
nonpayablefunction addPool(tuple[] _pools)
addSortFarms
nonpayablefunction addSortFarms(tuple[] sortFarmsIds)
addSortPools
nonpayablefunction addSortPools(tuple[] sortPoolsIds)
changeProdMode
nonpayablefunction changeProdMode(address poolAddress, bool state)
changeTagCodes
nonpayablefunction changeTagCodes(address poolAddress, uint8[] tagCodes)
delPool
nonpayablefunction delPool(address poolAddress)
setSortId
nonpayablefunction setSortId(uint256 _sortId)
transferOwnership
nonpayablefunction transferOwnership(address _newOwner)
updatePool
nonpayablefunction updatePool(address poolAddress, tuple _pool)
events
No events.
errors
No errors.
creation bytecode
0x608060405234801561001057600080fd5b50614fac806100206000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063730f7adb1161010f578063a2fdc6f9116100a2578063cb71666511610071578063cb716665146104b0578063ce82de34146104c3578063cefb23f2146104d9578063f2fde38b146104e157600080fd5b8063a2fdc6f91461043f578063ac4afa381461045f578063b4dc1ae91461048a578063bc5e9c8b1461049d57600080fd5b80637f28189f116100de5780637f28189f146103a95780638557b991146103ca57806389345efb146103dd5780639703bcdd1461041c57600080fd5b8063730f7adb146103435780637985a1b4146103565780637a32ecbe146103765780637b51786c1461038957600080fd5b806354db3cc8116101875780635c39f467116101565780635c39f467146102f7578063613cd3f31461030a5780636753847f1461031d578063716eb04e1461033057600080fd5b806354db3cc81461029e5780635823a04f146102b15780635b399d0f146102c45780635b5b9ea2146102e457600080fd5b80633820f0fa116101c35780633820f0fa14610245578063418196fc14610265578063450e8000146102785780634e1ee2b71461028b57600080fd5b806308c8ed19146101ea57806311f560181461021d5780632432814f14610232575b600080fd5b61020a6101f83660046139f0565b60056020526000908152604090205481565b6040519081526020015b60405180910390f35b61023061022b366004613a47565b6104f4565b005b610230610240366004613a80565b610570565b610258610253366004613cd2565b610632565b60405161021491906140b2565b610258610273366004613cd2565b610c00565b610230610286366004614117565b610fe2565b61020a610299366004614158565b6111c1565b6102586102ac366004613cd2565b61132a565b6102306102bf366004614158565b611699565b6102d76102d2366004614158565b61181d565b6040516102149190614175565b6102586102f23660046141d7565b6118e7565b6102d7610305366004614158565b611bdf565b610258610318366004613cd2565b611c85565b6102d761032b366004614158565b611e95565b61023061033e366004614117565b611f4b565b610230610351366004614203565b61207f565b61020a610364366004614158565b60046020526000908152604090205481565b61020a610384366004614252565b6120ec565b61039c610397366004614274565b61211d565b60405161021491906142a2565b6103bc6103b7366004614158565b612300565b6040516102149291906143d5565b6102306103d836600461443e565b6124a6565b61040c6103eb366004614158565b6001600160a01b039081166000818152600260205260409020549091161490565b6040519015158152602001610214565b61042f61042a366004614158565b612530565b6040516102149493929190614489565b61045261044d3660046141d7565b6125f4565b60405161021491906144ca565b61047261046d3660046139f0565b612be0565b6040516001600160a01b039091168152602001610214565b610230610498366004614117565b612c0a565b6102306104ab3660046139f0565b612cdc565b6102586104be366004613cd2565b612d1f565b6104cb6130bb565b6040516102149291906144dd565b60015461020a565b6102306104ef366004614158565b613679565b6000546001600160a01b031633148061051657506000546001600160a01b0316155b61053b5760405162461bcd60e51b81526004016105329061450b565b60405180910390fd5b6001600160a01b0390911660009081526002602052604090208054911515600160a81b0260ff60a81b19909216919091179055565b6000546001600160a01b031633148061059257506000546001600160a01b0316155b6105ae5760405162461bcd60e51b81526004016105329061450b565b60005b8181101561062d578282828181106105cb576105cb61452f565b90506040020160200135600460008585858181106105eb576105eb61452f565b6106019260206040909202019081019150614158565b6001600160a01b03168152602081019190915260400160002055806106258161455b565b9150506105b1565b505050565b61063a6136d9565b825160208401518290600681111561065457610654613dab565b9081600681111561066757610667613dab565b90525060038460200151600681111561068257610682613dab565b1461068e5760006106f0565b806001600160a01b0316636dad13016040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f09190614574565b61010083015260408085015115156101a084015284516001600160a01b03908116602080860182905260009182526004808252918490205461022087015260608801516101c087015260808801516101e08701528351631aed655360e01b8152935192851693631aed6553938184019390918290030181865afa15801561077b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061079f9190614574565b60c0830152604051631526fe2760e01b815260006004820152610818906001600160a01b03831690631526fe2790602401608060405180830381865afa1580156107ed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108119190614608565b518461211d565b826080018190525061088b816001600160a01b031663f7c618c16040518163ffffffff1660e01b8152600401602060405180830381865afa158015610861573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108859190614624565b8461211d565b8260400181905250806001600160a01b03166378abafaf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108d1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108f59190614574565b60e08301526040805160018082528183019092529060208083019080368337019050508260a00181905250806001600160a01b0316638ae39cac6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561095e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109829190614574565b8260a001516000815181106109995761099961452f565b602090810291909101015260808201515184516040516370a0823160e01b81526001600160a01b0391821660048201529116906370a0823190602401602060405180830381865afa1580156109f2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a169190614574565b6101208301526001600160a01b038316610a31576000610a3a565b610a3a836111c1565b6102008301516040908101919091528051600180825281830190925290602080830190803683370190505061020083015160200152604051637a0787a960e11b81526001600160a01b03848116600483015282169063f40f0f5290602401602060405180830381865afa158015610ab5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ad99190614574565b82610200015160200151600081518110610af557610af561452f565b6020908102919091010152604051630cacd00160e11b81526001600160a01b038481166004830152821690631959a002906024016040805180830381865afa158015610b45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b69919061468f565b5161020083015160a001526040808301515160208401519151636eb1769f60e11b81526001600160a01b038681166004830152928316602482015291169063dd62ed3e906044015b602060405180830381865afa158015610bce573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bf29190614574565b610200830151525092915050565b610c086136d9565b8251602084015182906006811115610c2257610c22613dab565b90816006811115610c3557610c35613dab565b90525060408085015115156101a084015284516001600160a01b03908116602080860182905260009182526004808252918490205461022087015260608801516101c087015260808801516101e08701528351631829b8f760e11b81529351610cc1949386169363305371ee938181019392918290030181865afa158015610861573d6000803e3d6000fd5b60808301819052604080840191909152805160018082528183019092529060208083019080368337019050508260a00181905250806001600160a01b031663406272656040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d579190614574565b8260a00151600081518110610d6e57610d6e61452f565b60209081029190910101526001600160a01b038316610d8e576000610d97565b610d97836111c1565b610200830151604090810191909152805160018082528183019092529060208083019080368337019050506102008301516020015260405163295315bf60e01b8152600060048201526001600160a01b03848116602483015282169063295315bf90604401602060405180830381865afa158015610e19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e3d9190614574565b82610200015160200151600081518110610e5957610e5961452f565b60209081029190910101526040516393f1a40b60e01b81526000600482018190526001600160a01b0385811660248401529091908316906393f1a40b906044016040805180830381865afa158015610eb5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed9919061468f565b805161020085015160a001526040808501515160208601519151636eb1769f60e11b81526001600160a01b0388811660048301529283166024820152929350169063dd62ed3e90604401602060405180830381865afa158015610f40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f649190614574565b8361020001516000018181525050816001600160a01b03166318678a736040518163ffffffff1660e01b8152600401602060405180830381865afa158015610fb0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd49190614574565b610120840152505092915050565b6000546001600160a01b031633148061100457506000546001600160a01b0316155b6110205760405162461bcd60e51b81526004016105329061450b565b60005b8181101561062d576110608383838181106110405761104061452f565b905060200281019061105291906146ab565b6103eb906020810190614158565b6111af5760018383838181106110785761107861452f565b905060200281019061108a91906146ab565b611098906020810190614158565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790558282828181106110dc576110dc61452f565b90506020028101906110ee91906146ab565b600260008585858181106111045761110461452f565b905060200281019061111691906146ab565b611124906020810190614158565b6001600160a01b03168152602081019190915260400160002061114782826149c0565b9050506006600081546111599061455b565b9182905550600460008585858181106111745761117461452f565b905060200281019061118691906146ab565b611194906020810190614158565b6001600160a01b031681526020810191909152604001600020555b806111b98161455b565b915050611023565b604051630cacd00160e11b81526001600160a01b038216600482015260009073a4b20183039b2f9881621c3a03732fbf0bfdff109082908290631959a00290602401608060405180830381865afa158015611220573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112449190614a99565b5050509050816001600160a01b0316633a98ef396040518163ffffffff1660e01b8152600401602060405180830381865afa158015611287573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112ab9190614574565b81836001600160a01b031663722713f76040518163ffffffff1660e01b8152600401602060405180830381865afa1580156112ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061130e9190614574565b61131891906148b5565b6113229190614acf565b949350505050565b6113326136d9565b825160208401518290600681111561134c5761134c613dab565b9081600681111561135f5761135f613dab565b90525060408481015115156101a084015284516001600160a01b03908116602080860182905260009182526004908190528382205461022087015260608801516101c087015260808801516101e08701529251636386c1c760e01b8152868316938101939093529190831690636386c1c790602401600060405180830381865afa1580156113f1573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114199190810190614c55565b905061142981606001518561211d565b608084015260405163972de53f60e01b8152600060048201526114a2906001600160a01b0384169063972de53f906024015b602060405180830381865afa158015611478573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061149c9190614624565b8561211d565b6040848101919091525163972de53f60e01b8152600160048201526114da906001600160a01b0384169063972de53f9060240161145b565b6060848101919091526040805160028082529281018252919060208301908036833750505060a0840152805180516000906115175761151761452f565b6020026020010151600001516001600160801b03168360a001516000815181106115435761154361452f565b60209081029190910101528051805160019081106115635761156361452f565b6020026020010151600001516001600160801b03168360a0015160018151811061158f5761158f61452f565b602090810291909101810191909152608082015160c0858101919091526101008084015160e08701529083015190850152604080830151610120860152828201516102008601518301528085015151918501519051636eb1769f60e11b81526001600160a01b038781166004830152918216602482015291169063dd62ed3e90604401602060405180830381865afa15801561162f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116539190614574565b610200840151526001600160a01b03841661166f576000611678565b611678846111c1565b610200840180516040019190915260e090910151905160a001525092915050565b6000546001600160a01b03163314806116bb57506000546001600160a01b0316155b6116d75760405162461bcd60e51b81526004016105329061450b565b60005b60015481101561181957600181815481106116f7576116f761452f565b6000918252602090912001546001600160a01b0390811690831603611807576001600160a01b038216600090815260026020526040812080546001600160b01b03191681559061174a60018301826137ad565b6117586002830160006137ea565b505060018054611769908290614d39565b815481106117795761177961452f565b600091825260209091200154600180546001600160a01b0390921691839081106117a5576117a561452f565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806117e4576117e4614d50565b600082815260209020810160001990810180546001600160a01b03191690550190555b806118118161455b565b9150506116da565b5050565b606060006118296130bb565b50905080516001600160401b0381111561184557611845613af4565b60405190808252806020026020018201604052801561187e57816020015b61186b6136d9565b8152602001906001900390816118635790505b50915060005b81518110156118e0576118b0848383815181106118a3576118a361452f565b60200260200101516118e7565b8382815181106118c2576118c261452f565b602002602001018190525080806118d89061455b565b915050611884565b5050919050565b6118ef6136d9565b600154821061192f5760405162461bcd60e51b815260206004820152600c60248201526b0aee4dedcce40d8cadccee8d60a31b6044820152606401610532565b600060026000600185815481106119485761194861452f565b60009182526020808320909101546001600160a01b039081168452838201949094526040928301909120825160a081019093528054938416835291929083019060ff600160a01b9091041660068111156119a4576119a4613dab565b60068111156119b5576119b5613dab565b81528154600160a81b900460ff16151560208201526001820180546040909201916119df90614724565b80601f0160208091040260200160405190810160405280929190818152602001828054611a0b90614724565b8015611a585780601f10611a2d57610100808354040283529160200191611a58565b820191906000526020600020905b815481529060010190602001808311611a3b57829003601f168201915b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015611ace57602002820191906000526020600020906000905b825461010083900a900460ff16815260206001928301818104948501949093039092029101808411611a9f5790505b505050505081525050905060006006811115611aec57611aec613dab565b81602001516006811115611b0257611b02613dab565b03611b1857611b118185612d1f565b9150611bd8565b600281602001516006811115611b3057611b30613dab565b1480611b515750600381602001516006811115611b4f57611b4f613dab565b145b15611b6057611b118185610632565b600181602001516006811115611b7857611b78613dab565b03611b8757611b118185610c00565b600481602001516006811115611b9f57611b9f613dab565b03611bae57611b118185611c85565b600581602001516006811115611bc657611bc6613dab565b03611bd857611bd5818561132a565b91505b5092915050565b6001546060906001600160401b03811115611bfc57611bfc613af4565b604051908082528060200260200182016040528015611c3557816020015b611c226136d9565b815260200190600190039081611c1a5790505b50905060005b600154811015611c7f57611c4f83826118e7565b828281518110611c6157611c6161452f565b60200260200101819052508080611c779061455b565b915050611c3b565b50919050565b611c8d6136d9565b8251602084015182906006811115611ca757611ca7613dab565b90816006811115611cba57611cba613dab565b90525060408481015115156101a084015284516001600160a01b03908116602080860182905260009182526004908190528382205461022087015260608801516101c087015260808801516101e08701529251636386c1c760e01b8152868316938101939093529190831690636386c1c790602401600060405180830381865afa158015611d4c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d749190810190614e0a565b9050611d8481606001518561211d565b608084015260405163972de53f60e01b815260006004820152611dba906001600160a01b0384169063972de53f9060240161145b565b6040848101919091525163972de53f60e01b815260016004820152611df2906001600160a01b0384169063972de53f9060240161145b565b6060848101919091526040805160028082529281018252919060208301908036833750505060a084015280518051600090611e2f57611e2f61452f565b6020026020010151600001518360a00151600081518110611e5257611e5261452f565b6020908102919091010152805180516001908110611e7257611e7261452f565b6020026020010151600001518360a0015160018151811061158f5761158f61452f565b60606000611ea16130bb565b91505080516001600160401b03811115611ebd57611ebd613af4565b604051908082528060200260200182016040528015611ef657816020015b611ee36136d9565b815260200190600190039081611edb5790505b50915060005b81518110156118e057611f1b848383815181106118a3576118a361452f565b838281518110611f2d57611f2d61452f565b60200260200101819052508080611f439061455b565b915050611efc565b6000546001600160a01b0316331480611f6d57506000546001600160a01b0316155b611f895760405162461bcd60e51b81526004016105329061450b565b60005b8181101561062d57828282818110611fa657611fa661452f565b9050602002810190611fb89190614e6b565b6040013560056000858585818110611fd257611fd261452f565b9050602002810190611fe49190614e6b565b3581526020810191909152604001600020558282828181106120085761200861452f565b905060200281019061201a9190614e6b565b61202890602081019061486c565b6003600086868681811061203e5761203e61452f565b90506020028101906120509190614e6b565b358152602081019190915260400160002061206c92909161380f565b50806120778161455b565b915050611f8c565b6000546001600160a01b03163314806120a157506000546001600160a01b0316155b6120bd5760405162461bcd60e51b81526004016105329061450b565b6001600160a01b0382166000908152600260208181526040909220835161062d9391909201919084019061385a565b6003602052816000526040600020818154811061210857600080fd5b90600052602060002001600091509150505481565b6121256138fb565b6000839050806001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612168573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061218c9190614574565b826020018181525050806001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa1580156121d3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526121fb9190810190614e81565b8260600181905250806001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa158015612241573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122699190810190614e81565b60408301526001600160a01b0380851683528316156122f1576040516370a0823160e01b81526001600160a01b0384811660048301528216906370a0823190602401602060405180830381865afa1580156122c8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122ec9190614574565b6122f4565b60005b60808301525092915050565b6060600080600173dbc1a13490deef9c3c12b44fe77b503c1b0617396001600160a01b031663081e3eda6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612359573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061237d9190614574565b6123879190614d39565b905073dbc1a13490deef9c3c12b44fe77b503c1b0617396001600160a01b03166317caf6f16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123ff9190614574565b9150806001600160401b0381111561241957612419613af4565b60405190808252806020026020018201604052801561245257816020015b61243f613933565b8152602001906001900390816124375790505b50925060005b8181101561249f5761246f8561044d836001614eee565b8482815181106124815761248161452f565b602002602001018190525080806124979061455b565b915050612458565b5050915091565b6000546001600160a01b03163314806124c857506000546001600160a01b0316155b6124e45760405162461bcd60e51b81526004016105329061450b565b6001600160a01b0380831660008181526002602052604090205490911603611819576001600160a01b0382166000908152600260205260409020819061252a82826149c0565b50505050565b600260205260009081526040902080546001820180546001600160a01b0383169360ff600160a01b8504811694600160a81b90041692909161257190614724565b80601f016020809104026020016040519081016040528092919081815260200182805461259d90614724565b80156125ea5780601f106125bf576101008083540402835291602001916125ea565b820191906000526020600020905b8154815290600101906020018083116125cd57829003601f168201915b5050505050905084565b6125fc613933565b73dbc1a13490deef9c3c12b44fe77b503c1b0617396001600160a01b031663081e3eda6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561264e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126729190614574565b821080156126805750600082115b6126b95760405162461bcd60e51b815260206004820152600a60248201526957726f6e67207069642160b01b6044820152606401610532565b6040516393f1a40b60e01b8152600481018390526001600160a01b038416602482015260009073dbc1a13490deef9c3c12b44fe77b503c1b061739906393f1a40b906044016040805180830381865afa15801561271a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061273e919061468f565b604051631526fe2760e01b81526004810185905290915060009073dbc1a13490deef9c3c12b44fe77b503c1b06173990631526fe2790602401608060405180830381865afa158015612794573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127b89190614608565b848452600085815260036020908152604091829020805483518184028101840190945280845293945091929083018282801561281357602002820191906000526020600020905b8154815260200190600101908083116127ff575b5050505060208086019290925250600085815260058252604090819020546101a086015282516001600160a01b03168186018190528151630dfe168160e01b815291516128ad939192630dfe16819260048083019391928290030181865afa158015612883573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128a79190614624565b8661211d565b83606001819052506128fa83604001516001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015612883573d6000803e3d6000fd5b836080018190525082604001516001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa158015612944573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129689190614f1d565b5060a0850180516001600160701b039283166020808301919091529383169052518051920151918116916129a2911664e8d4a510006148b5565b6129ac9190614acf565b60c084015260408084015190516370a0823160e01b815273dbc1a13490deef9c3c12b44fe77b503c1b06173960048201526001600160a01b03909116906370a0823190602401602060405180830381865afa158015612a0f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a339190614574565b60e084015260408084015190516370a0823160e01b81526001600160a01b038781166004830152909116906370a0823190602401602060405180830381865afa158015612a84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aa89190614574565b6101008401526040808401519051636eb1769f60e11b81526001600160a01b03878116600483015273dbc1a13490deef9c3c12b44fe77b503c1b06173960248301529091169063dd62ed3e90604401602060405180830381865afa158015612b14573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612b389190614574565b610120840152602081015161014084015260405163295315bf60e01b8152600481018590526001600160a01b038616602482015273dbc1a13490deef9c3c12b44fe77b503c1b0617399063295315bf90604401602060405180830381865afa158015612ba8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bcc9190614574565b610160840152505161018082015292915050565b60018181548110612bf057600080fd5b6000918252602090912001546001600160a01b0316905081565b6000546001600160a01b0316331480612c2c57506000546001600160a01b0316155b612c485760405162461bcd60e51b81526004016105329061450b565b60005b8181101561062d57828282818110612c6557612c6561452f565b9050602002810190612c779190614f60565b612c8590602081019061486c565b60036000868686818110612c9b57612c9b61452f565b9050602002810190612cad9190614f60565b3581526020810191909152604001600020612cc992909161380f565b5080612cd48161455b565b915050612c4b565b6000546001600160a01b0316331480612cfe57506000546001600160a01b0316155b612d1a5760405162461bcd60e51b81526004016105329061450b565b600655565b612d276136d9565b8251602084015182906006811115612d4157612d41613dab565b90816006811115612d5457612d54613dab565b90525060408481015115156101a084015284516001600160a01b03908116602080860182905260009182526004908190528382205461022087015260608801516101c087015260808801516101e087015260c08601919091529151630cacd00160e11b815285821692810192909252821690631959a00290602401608060405180830381865afa158015612dec573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e109190614a99565b5061020085015160a08101919091526080810191909152606001526001600160a01b038316612e40576000612e49565b612e49836111c1565b610200830151604090810191909152600061010084015260001960e084015280516343bc43c160e11b815290516001600160a01b0383169163877887829160048083019260209291908290030181865afa158015612eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ecf9190614574565b82610140018181525050612f1a816001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610861573d6000803e3d6000fd5b826080018190525081608001518260400181905250806001600160a01b031663e941fa786040518163ffffffff1660e01b8152600401602060405180830381865afa158015612f6d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f919190614574565b82610160018181525050806001600160a01b031663df10b4e66040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fd9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ffd9190614574565b61018083015260006101008301526040805163722713f760e01b815290516001600160a01b0383169163722713f79160048083019260209291908290030181865afa158015613050573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130749190614574565b6101208301526040808301515160208401519151636eb1769f60e11b81526001600160a01b038681166004830152928316602482015291169063dd62ed3e90604401610bb1565b60608060006001805490506001600160401b038111156130dd576130dd613af4565b604051908082528060200260200182016040528015613106578160200160208202803683370190505b506001549091506000906001600160401b0381111561312757613127613af4565b604051908082528060200260200182016040528015613150578160200160208202803683370190505b50905043600080805b60015481101561353d576000600260006001848154811061317c5761317c61452f565b60009182526020808320909101546001600160a01b039081168452838201949094526040928301909120825160a081019093528054938416835291929083019060ff600160a01b9091041660068111156131d8576131d8613dab565b60068111156131e9576131e9613dab565b81528154600160a81b900460ff161515602082015260018201805460409092019161321390614724565b80601f016020809104026020016040519081016040528092919081815260200182805461323f90614724565b801561328c5780601f106132615761010080835404028352916020019161328c565b820191906000526020600020905b81548152906001019060200180831161326f57829003601f168201915b505050505081526020016002820180548060200260200160405190810160405280929190818152602001828054801561330257602002820191906000526020600020906000905b825461010083900a900460ff168152602060019283018181049485019490930390920291018084116132d35790505b5050505050815250509050600080600681111561332157613321613dab565b8260200151600681111561333757613337613dab565b03613344575060016134bb565b60028260200151600681111561335c5761335c613dab565b148061337d575060038260200151600681111561337b5761337b613dab565b145b156133ef5781600001516001600160a01b0316631aed65536040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133c4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133e89190614574565b90506134bb565b60018260200151600681111561340757613407613dab565b03613414575060016134bb565b60048260200151600681111561342c5761342c613dab565b148061344d575060058260200151600681111561344b5761344b613dab565b145b156134bb5781600001516001600160a01b0316630a122c8a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613494573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134b89190614574565b90505b80600114806134c957508581115b156134fd578288866134da8161455b565b9750815181106134ec576134ec61452f565b602002602001018181525050613528565b8287856135098161455b565b96508151811061351b5761351b61452f565b6020026020010181815250505b505080806135359061455b565b915050613159565b50816001600160401b0381111561355657613556613af4565b60405190808252806020026020018201604052801561357f578160200160208202803683370190505b50965060005b828110156135d65785818151811061359f5761359f61452f565b60200260200101518882815181106135b9576135b961452f565b6020908102919091010152806135ce8161455b565b915050613585565b50806001600160401b038111156135ef576135ef613af4565b604051908082528060200260200182016040528015613618578160200160208202803683370190505b50955060005b8181101561366f578481815181106136385761363861452f565b60200260200101518782815181106136525761365261452f565b6020908102919091010152806136678161455b565b91505061361e565b5050505050509091565b6000546001600160a01b031633148061369b57506000546001600160a01b0316155b6136b75760405162461bcd60e51b81526004016105329061450b565b600080546001600160a01b0319166001600160a01b0392909216919091179055565b6040805161024081018252600080825260208201529081016136f96138fb565b81526020016137066138fb565b81526020016137136138fb565b8152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160001515815260200160608152602001606081526020016137a06040518060c001604052806000815260200160608152602001600081526020016000815260200160008152602001600081525090565b8152602001600081525090565b5080546137b990614724565b6000825580601f106137c9575050565b601f0160209004906000526020600020908101906137e791906139bd565b50565b50805460008255601f0160209004906000526020600020908101906137e791906139bd565b82805482825590600052602060002090810192821561384a579160200282015b8281111561384a57823582559160200191906001019061382f565b506138569291506139bd565b5090565b82805482825590600052602060002090601f0160209004810192821561384a5791602002820160005b838211156138c157835183826101000a81548160ff021916908360ff1602179055509260200192600101602081600001049283019260010302613883565b80156138ee5782816101000a81549060ff02191690556001016020816000010492830192600103026138c1565b50506138569291506139bd565b6040518060a0016040528060006001600160a01b03168152602001600081526020016060815260200160608152602001600081525090565b604051806101c00160405280600081526020016060815260200160006001600160a01b031681526020016139656138fb565b81526020016139726138fb565b815260200161397f6139d2565b815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b5b8082111561385657600081556001016139be565b60405180604001604052806002906020820280368337509192915050565b600060208284031215613a0257600080fd5b5035919050565b6001600160a01b03811681146137e757600080fd5b8035613a2981613a09565b919050565b80151581146137e757600080fd5b8035613a2981613a2e565b60008060408385031215613a5a57600080fd5b8235613a6581613a09565b91506020830135613a7581613a2e565b809150509250929050565b60008060208385031215613a9357600080fd5b82356001600160401b0380821115613aaa57600080fd5b818501915085601f830112613abe57600080fd5b813581811115613acd57600080fd5b8660208260061b8501011115613ae257600080fd5b60209290920196919550909350505050565b634e487b7160e01b600052604160045260246000fd5b60405160a081016001600160401b0381118282101715613b2c57613b2c613af4565b60405290565b60405160c081016001600160401b0381118282101715613b2c57613b2c613af4565b60405161012081016001600160401b0381118282101715613b2c57613b2c613af4565b604051601f8201601f191681016001600160401b0381118282101715613b9f57613b9f613af4565b604052919050565b600781106137e757600080fd5b60006001600160401b03821115613bcd57613bcd613af4565b50601f01601f191660200190565b600082601f830112613bec57600080fd5b8135613bff613bfa82613bb4565b613b77565b818152846020838601011115613c1457600080fd5b816020850160208301376000918101602001919091529392505050565b60006001600160401b03821115613c4a57613c4a613af4565b5060051b60200190565b60ff811681146137e757600080fd5b600082601f830112613c7457600080fd5b81356020613c84613bfa83613c31565b82815260059290921b84018101918181019086841115613ca357600080fd5b8286015b84811015613cc7578035613cba81613c54565b8352918301918301613ca7565b509695505050505050565b60008060408385031215613ce557600080fd5b82356001600160401b0380821115613cfc57600080fd5b9084019060a08287031215613d1057600080fd5b613d18613b0a565b8235613d2381613a09565b81526020830135613d3381613ba7565b6020820152613d4460408401613a3c565b6040820152606083013582811115613d5b57600080fd5b613d6788828601613bdb565b606083015250608083013582811115613d7f57600080fd5b613d8b88828601613c63565b6080830152509350613da291505060208401613a1e565b90509250929050565b634e487b7160e01b600052602160045260246000fd5b60078110613ddf57634e487b7160e01b600052602160045260246000fd5b9052565b60005b83811015613dfe578181015183820152602001613de6565b8381111561252a5750506000910152565b60008151808452613e27816020860160208601613de3565b601f01601f19169290920160200192915050565b60018060a01b038151168252602081015160208301526000604082015160a06040850152613e6c60a0850182613e0f565b905060608301518482036060860152613e858282613e0f565b915050608083015160808501528091505092915050565b600081518084526020808501945080840160005b83811015613ecc57815187529582019590820190600101613eb0565b509495945050505050565b600081518084526020808501945080840160005b83811015613ecc57815160ff1687529582019590820190600101613eeb565b805182526000602082015160c06020850152613f2960c0850182613e9c565b905060408301516040850152606083015160608501526080830151608085015260a083015160a08501528091505092915050565b6000610240613f6d848451613dc1565b6020830151613f8760208601826001600160a01b03169052565b506040830151816040860152613f9f82860182613e3b565b91505060608301518482036060860152613fb98282613e3b565b91505060808301518482036080860152613fd38282613e3b565b91505060a083015184820360a0860152613fed8282613e9c565b60c0858101519087015260e08086015190870152610100808601519087015261012080860151908701526101408086015190870152610160808601519087015261018080860151908701526101a0808601511515908701526101c0808601518783038289015291935091506140628382613e0f565b925050506101e0808401518583038287015261407e8382613ed7565b92505050610200808401518583038287015261409a8382613f0a565b61022095860151969095019590955250919392505050565b6020815260006140c56020830184613f5d565b9392505050565b60008083601f8401126140de57600080fd5b5081356001600160401b038111156140f557600080fd5b6020830191508360208260051b850101111561411057600080fd5b9250929050565b6000806020838503121561412a57600080fd5b82356001600160401b0381111561414057600080fd5b61414c858286016140cc565b90969095509350505050565b60006020828403121561416a57600080fd5b81356140c581613a09565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156141ca57603f198886030184526141b8858351613f5d565b9450928501929085019060010161419c565b5092979650505050505050565b600080604083850312156141ea57600080fd5b82356141f581613a09565b946020939093013593505050565b6000806040838503121561421657600080fd5b823561422181613a09565b915060208301356001600160401b0381111561423c57600080fd5b61424885828601613c63565b9150509250929050565b6000806040838503121561426557600080fd5b50508035926020909101359150565b6000806040838503121561428757600080fd5b823561429281613a09565b91506020830135613a7581613a09565b6020815260006140c56020830184613e3b565b8060005b600281101561252a5781516001600160701b03168452602093840193909101906001016142b9565b60006101e082518452602083015181602086015261430182860182613e9c565b915050604083015161431e60408601826001600160a01b03169052565b50606083015184820360608601526143368282613e3b565b915050608083015184820360808601526143508282613e3b565b91505060a083015161436560a08601826142b5565b5060c083015160e08581019190915283015161010080860191909152830151610120808601919091528301516101408086019190915283015161016080860191909152830151610180808601919091528301516101a080860191909152909201516101c090930192909252919050565b6000604082016040835280855180835260608501915060608160051b8601019250602080880160005b8381101561442c57605f1988870301855261441a8683516142e1565b955093820193908201906001016143fe565b50509490940194909452949350505050565b6000806040838503121561445157600080fd5b823561445c81613a09565b915060208301356001600160401b0381111561447757600080fd5b830160a08186031215613a7557600080fd5b6001600160a01b03851681526144a26020820185613dc1565b82151560408201526080606082015260006144c06080830184613e0f565b9695505050505050565b6020815260006140c560208301846142e1565b6040815260006144f06040830185613e9c565b82810360208401526145028185613e9c565b95945050505050565b6020808252600a908201526937b7363c9027bbb732b960b11b604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820161456d5761456d614545565b5060010190565b60006020828403121561458657600080fd5b5051919050565b8051613a2981613a09565b6000608082840312156145aa57600080fd5b604051608081018181106001600160401b03821117156145cc576145cc613af4565b806040525080915082516145df81613a09565b808252506020830151602082015260408301516040820152606083015160608201525092915050565b60006080828403121561461a57600080fd5b6140c58383614598565b60006020828403121561463657600080fd5b81516140c581613a09565b60006040828403121561465357600080fd5b604051604081018181106001600160401b038211171561467557614675613af4565b604052825181526020928301519281019290925250919050565b6000604082840312156146a157600080fd5b6140c58383614641565b60008235609e198336030181126146c157600080fd5b9190910192915050565b600081356146d881613a2e565b92915050565b6000808335601e198436030181126146f557600080fd5b8301803591506001600160401b0382111561470f57600080fd5b60200191503681900382131561411057600080fd5b600181811c9082168061473857607f821691505b602082108103611c7f57634e487b7160e01b600052602260045260246000fd5b5b818110156118195760008155600101614759565b601f82111561062d57806000526020600020601f840160051c810160208510156147945750805b6147a6601f850160051c830182614758565b5050505050565b6001600160401b038311156147c4576147c4613af4565b6147d8836147d28354614724565b8361476d565b6000601f84116001811461480c57600085156147f45750838201355b600019600387901b1c1916600186901b1783556147a6565b600083815260209020601f19861690835b8281101561483d578685013582556020948501946001909201910161481d565b508682101561485a5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6000808335601e1984360301811261488357600080fd5b8301803591506001600160401b0382111561489d57600080fd5b6020019150600581901b360382131561411057600080fd5b60008160001904831182151516156148cf576148cf614545565b500290565b600081356146d881613c54565b680100000000000000008311156148fa576148fa613af4565b80548382558084101561495057816000526020600020601f850160051c8101601f8616801561493a576000198083018054828460200360031b1c16815550505b5061494d601f840160051c830182614758565b50505b506000818152602081208391805b868110156149b75761498f614972856148d4565b845460ff600386901b81811b801990931693909116901b16178455565b60208401935060018083019250601f8311156149ae5792830192600092505b5060010161495e565b50505050505050565b81356149cb81613a09565b81546001600160a01b031981166001600160a01b0392909216918217835560208401356149f781613ba7565b60078110614a1557634e487b7160e01b600052602160045260246000fd5b6001600160a81b03199190911690911760a09190911b60ff60a01b16178155614a61614a43604084016146cb565b82805460ff60a81b191691151560a81b60ff60a81b16919091179055565b614a6e60608301836146de565b614a7c8183600186016147ad565b5050614a8b608083018361486c565b61252a8183600286016148e1565b60008060008060808587031215614aaf57600080fd5b505082516020840151604085015160609095015191969095509092509050565b600082614aec57634e487b7160e01b600052601260045260246000fd5b500490565b80516001600160801b0381168114613a2957600080fd5b805163ffffffff81168114613a2957600080fd5b600082601f830112614b2d57600080fd5b81516020614b3d613bfa83613c31565b82815260c09283028501820192828201919087851115614b5c57600080fd5b8387015b85811015614bed5781818a031215614b785760008081fd5b614b80613b32565b614b8982614af1565b8152614b96868301614af1565b868201526040614ba7818401614af1565b908201526060614bb8838201614af1565b908201526080614bc9838201614b08565b9082015260a082810151614bdc81613a2e565b908201528452928401928101614b60565b5090979650505050505050565b600082601f830112614c0b57600080fd5b81516020614c1b613bfa83613c31565b82815260059290921b84018101918181019086841115614c3a57600080fd5b8286015b84811015613cc75780518352918301918301614c3e565b600060208284031215614c6757600080fd5b81516001600160401b0380821115614c7e57600080fd5b908301906101208286031215614c9357600080fd5b614c9b613b54565b825182811115614caa57600080fd5b614cb687828601614b1c565b825250602083015182811115614ccb57600080fd5b614cd787828601614bfa565b60208301525060408301516040820152614cf36060840161458d565b60608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101009150818301518282015280935050505092915050565b600082821015614d4b57614d4b614545565b500390565b634e487b7160e01b600052603160045260246000fd5b600082601f830112614d7757600080fd5b81516020614d87613bfa83613c31565b82815260a09283028501820192828201919087851115614da657600080fd5b8387015b85811015614bed5781818a031215614dc25760008081fd5b614dca613b0a565b8151815285820151868201526040808301519082015260608083015190820152608080830151614df981613a2e565b908201528452928401928101614daa565b600060208284031215614e1c57600080fd5b81516001600160401b0380821115614e3357600080fd5b908301906101208286031215614e4857600080fd5b614e50613b54565b825182811115614e5f57600080fd5b614cb687828601614d66565b60008235605e198336030181126146c157600080fd5b600060208284031215614e9357600080fd5b81516001600160401b03811115614ea957600080fd5b8201601f81018413614eba57600080fd5b8051614ec8613bfa82613bb4565b818152856020838501011115614edd57600080fd5b614502826020830160208601613de3565b60008219821115614f0157614f01614545565b500190565b80516001600160701b0381168114613a2957600080fd5b600080600060608486031215614f3257600080fd5b614f3b84614f06565b9250614f4960208501614f06565b9150614f5760408501614b08565b90509250925092565b60008235603e198336030181126146c157600080fdfea2646970667358221220a995a1e197aa0e87220c4c78abee01f6b3e0ff70367a273a0b30a1dbaddb908a64736f6c634300080f0033