0 txs
5 calls
constructor
constructor(address _owner, address _feeToken, address _registrationContract)
functions
addressesList
viewfunction addressesList(uint256) view returns (address)
authorizedContracts
viewfunction authorizedContracts(address) view returns (bool)
autoWealthdisSize
viewfunction autoWealthdisSize() view returns (uint256)
deployer
viewfunction deployer() view returns (address)
directpackageJoinedAddresses
viewfunction directpackageJoinedAddresses(uint256) view returns (address)
feeToken
viewfunction feeToken() view returns (address)
getAllCompletedPackagesAddres
viewfunction getAllCompletedPackagesAddres() view returns (address[][])
getCompletedPackagesDetails
viewfunction getCompletedPackagesDetails(address user) view returns (tuple[])
getCurrentPackagesContracts
viewfunction getCurrentPackagesContracts() view returns (address[])
getDirectPackageJoinedAddresses
viewfunction getDirectPackageJoinedAddresses() view returns (address[])
getLatestDeployedPackage
viewfunction getLatestDeployedPackage() view returns (address)
getPackagesPerRound
viewfunction getPackagesPerRound(uint256 round) view returns (address[])
getRandomAddresses
viewfunction getRandomAddresses() view returns (address[])
getTotalDeployedPackages
viewfunction getTotalDeployedPackages() view returns (uint256)
getUpTo10UserLevels
viewfunction getUpTo10UserLevels(address user) view returns (address[])
getUserautoWealthIncome
viewfunction getUserautoWealthIncome(address user) view returns (uint256)
getUserIncomeDetails
viewfunction getUserIncomeDetails(address user) view returns (uint256, uint256, uint256)
getUserlevelIncome
viewfunction getUserlevelIncome(address user) view returns (uint256)
getUserPackageIncome
viewfunction getUserPackageIncome(address user, address package) view returns (uint256, uint256)
getWinnerAddressesList
viewfunction getWinnerAddressesList() view returns (address[])
lastDeploymentTimestamp
viewfunction lastDeploymentTimestamp() view returns (uint256)
owner
viewfunction owner() view returns (address)
packagePrefix
viewfunction packagePrefix() view returns (string)
packages
viewfunction packages(uint256, uint256) view returns (address)
randomAddressesSize
viewfunction randomAddressesSize() view returns (uint256)
registrationContract
viewfunction registrationContract() view returns (address)
totalPackagesRound
viewfunction totalPackagesRound() view returns (uint256)
addAuthorizedContract
nonpayablefunction addAuthorizedContract(address contractAddress, bool state)
addAutoWealthIncome
nonpayablefunction addAutoWealthIncome(address user, address package, uint256 amount)
addLevelIncomes
nonpayablefunction addLevelIncomes(tuple[] levelIncomeDetails)
addressListAdd
nonpayablefunction addressListAdd(address[] newAddresses)
addressListRemove
nonpayablefunction addressListRemove(address addr)
deployNewAutoWealth_PackageContract
nonpayablefunction deployNewAutoWealth_PackageContract(bool newPackageRound, uint256 packageFee, address[] preRequisitePackages) returns (address)
joinPackagesListAdd
nonpayablefunction joinPackagesListAdd(address[] newAddresses)
joinPackagesListRemoveAddr
nonpayablefunction joinPackagesListRemoveAddr(address addr)
setAutoWealthDistributionSize
nonpayablefunction setAutoWealthDistributionSize(uint256 _autoWealthdisSize)
setFeeToken
nonpayablefunction setFeeToken(address _feeToken)
setLastDeploymentTimestamp
nonpayablefunction setLastDeploymentTimestamp(uint256 timestamp)
setRandomAddressesSize
nonpayablefunction setRandomAddressesSize(uint256 _randomAddressesSize)
setRegistrationContract
nonpayablefunction setRegistrationContract(address _registrationContract)
updateDeployer
nonpayablefunction updateDeployer(address _deployer)
updateOwner
nonpayablefunction updateOwner(address _owner)
updatePackagePrefix
nonpayablefunction updatePackagePrefix(string newPrefix)
userSubscriptionpkgEvent
nonpayablefunction userSubscriptionpkgEvent(address user, address package, uint256 amount, uint256 timestamp)
events
AutoWealthIncomeAdded
event AutoWealthIncomeAdded(address user, uint256 amount)
LevelIncomeAdded
event LevelIncomeAdded(address indexed user, (address user, address package, uint256 amount, uint8 level)[] levelIncomesDetail)
PackageSubscribed
event PackageSubscribed(address indexed user, address indexed package, uint256 amount, uint256 timestamp)
errors
No errors.
creation bytecode
0x60803461017b57601f61608d38819003918201601f19168301916001600160401b038311848410176101805780849260609460405283398101031261017b5761004781610196565b90610060604061005960208401610196565b9201610196565b91600580556032600655600c54600181811c91168015610171575b602082101461015b57601f8111610111575b507f5061636b61676520000000000000000000000000000000000000000000000010600c55600280546001600160a01b03199081166001600160a01b039384161790915560008055600180548216331790556003805482169383169390931790925542600855600780549092169216919091179055604051615ee290816101ab8239f35b600c600052601f0160051c7fdf6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7908101905b81811061014f575061008d565b60008155600101610142565b634e487b7160e01b600052602260045260246000fd5b90607f169061007b565b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b038216820361017b5756fe6080604052600436101561001257600080fd5b60003560e01c806303751ed114611e7257806315cce22414611dbb57806318ca700214611d665780631e522c3e14611d3d5780632626b59c14611c6d5780632a57575014611ba757806331294d3e14611b44578063350214771461193f5780633f6c6ac4146119245780634573f2091461185e5780634d413e7d146117a757806351eb318e14611784578063614290c414611768578063615bf93f14611713578063647846a5146116ea578063680e482e1461165e5780636e9bcae41461163557806377e86ac6146115c457806381dede6614611339578063880cdc311461128f5780638bf7126914610eb65780638da5cb5b14610e8d5780639084199b14610e645780639f72fde014610dd0578063a70912d414610d7d578063ab19174014610cfd578063aedf263214610cdf578063afd7798e14610cc1578063c44653d614610ca3578063caff0cec14610c87578063cfce8e5514610c69578063d3db03cc14610bf2578063d5b9221b14610bb3578063d5f3948814610b8a578063d62d7c3714610b56578063d85c148914610b0c578063e1fce6b814610a8a578063e3556a3914610681578063e90dbb68146105cd578063ee874fa5146105a0578063f0503ac01461054e578063f3e74fd014610462578063f4c1b1ea146102305763f71fa45a1461020057600080fd5b3461022b57602036600319011261022b57602061022361021e611ec5565b612cbc565b604051908152f35b600080fd5b3461022b57602036600319011261022b576004356001600160401b03811161022b573660238201121561022b57806004013561026b816120e1565b916102796040519384611f5b565b818352366024838301011161022b578160009260246020930183860137830101526002546001600160a01b03163314801561044e575b6102b8906120fc565b8051156104105780516001600160401b0381116103fa576102da600c54611f05565b601f811161038d575b50602091601f821160011461032157918192600092610316575b5050600019600383901b1c191660019190911b17600c55005b0151905082806102fd565b601f19821692600c600052600080516020615e8d8339815191529160005b8581106103755750836001951061035c575b505050811b01600c55005b015160001960f88460031b161c19169055828080610351565b9192602060018192868501518155019401920161033f565b600c600052601f820160051c600080516020615e8d8339815191520190602083106103e4575b601f0160051c600080516020615e8d83398151915201905b8181106103d857506102e3565b600081556001016103cb565b600080516020615e8d83398151915291506103b3565b634e487b7160e01b600052604160045260246000fd5b60405162461bcd60e51b81526020600482015260166024820152755072656669782063616e6e6f7420626520656d70747960501b6044820152606490fd5b506001546001600160a01b031633146102af565b3461022b57602036600319011261022b576004356001600160401b03811161022b57610492903690600401611fdb565b6002546001600160a01b03163314801561053a575b6104b0906120fc565b6104bc815115156122e2565b60005b8151811015610538576001600160a01b036104da8284612324565b5116906104e8821515612148565b600d54600160401b8110156103fa5760019261050e82856105329401600d55600d6120c9565b81546001600160a01b0393841660039290921b91821b9390911b1916919091179055565b016104bf565b005b506001546001600160a01b031633146104a7565b3461022b57604036600319011261022b57602435600435600052600b6020526040600020805482101561022b57602091610587916120c9565b905460405160039290921b1c6001600160a01b03168152f35b3461022b57600036600319011261022b5760206105bb612c65565b6040516001600160a01b039091168152f35b3461022b57606036600319011261022b577f6ad7010845f58e866e425b5fa555184985c82fd494aae26daf374e9b7376d3986040610609611ec5565b610611611edb565b906044359033600052600960205261062f60ff8560002054166123e2565b6001600160a01b0316916106448315156124c8565b61064f821515612c19565b82600052600a602052836000209060018060a01b031660005260205280600184600020015582519182526020820152a1005b3461022b57606036600319011261022b57600435801515810361022b576044356001600160401b03811161022b576106bd903690600401611fdb565b9060018060a01b0360025416908133148015610a76575b6106dd906120fc565b610a63575b6106ea61243d565b60018101809111610a4d576000818072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b811015610a27575b50806d04ee2d6d415b85acef8100000000600a921015610a0c575b662386f26fc100008110156109f8575b6305f5e1008110156109e7575b6127108110156109d8575b60648110156109ca575b10156109c2575b6001810191600a6021610797610781866120e1565b9561078f6040519788611f5b565b8087526120e1565b602086019490601f19013686378501015b60001901916f181899199a1a9b1b9c1cb0b131b232b360811b8282061a83530480156107d757600a90916107a8565b50506040518092600090600c546107ed81611f05565b906001811690811561099e575060011461094e575b50928161082261083295600160fd1b600196955251809386840190611f7c565b010301601f198101835282611f5b565b6003546001546007546001600160a01b0390811693918116921690610855612338565b916040519661312895868901958987106001600160401b038811176103fa5789986108966108c6966108d59a612d658d396101208a526101208a0190611f9f565b9460243560208a01526040890152606088015260808701523060a087015260c086015284820360e0860152612040565b91610100818403910152612040565b03906000f0801561094257600080548152600b602052604090208054916001600160a01b031690600160401b8310156103fa578161050e8461091e9360016020970181556120c9565b80600052600982526040600020600160ff1982541617905542600855604051908152f35b6040513d6000823e3d90fd5b909150600c600052600080516020615e8d8339815191526000905b828210610980575050820160200190610832610802565b60209192939450806001915483858a01015201910185939291610969565b60ff1916602080870191909152821515909202850190910192506108329050610802565b60010161076c565b606460029104920191610765565b6127106004910492019161075b565b6305f5e10060089104920191610750565b662386f26fc1000060109104920191610743565b6d04ee2d6d415b85acef810000000060209104920191610733565b6040925072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b90049050600a610718565b634e487b7160e01b600052601160045260246000fd5b610a6e60005461242e565b6000556106e2565b506001546001600160a01b031633146106d4565b3461022b57608036600319011261022b57610aa3611ec5565b610aab611edb565b336000526009602052610ac560ff604060002054166123e2565b60408051604435815260643560208201526001600160a01b0392831693909216917f4b7aa4b8e7ada03553319756e789927464a6721ca1cd6fa82f1ce633ba6558979190a3005b3461022b57602036600319011261022b576060610b27611ec5565b610b39610b3382612cbc565b91612518565b610b43818361250b565b9060405192835260208301526040820152f35b3461022b57600036600319011261022b57610b86610b72612338565b604051918291602083526020830190612040565b0390f35b3461022b57600036600319011261022b576001546040516001600160a01b039091168152602090f35b3461022b57602036600319011261022b576001600160a01b03610bd4611ec5565b166000526009602052602060ff604060002054166040519015158152f35b3461022b57602036600319011261022b57610c0b611ec5565b6002546001600160a01b031633148015610c55575b610c29906120fc565b6001600160a01b0316610c3d81151561277a565b6001600160601b0360a01b6007541617600755600080f35b506001546001600160a01b03163314610c20565b3461022b57600036600319011261022b576020600554604051908152f35b3461022b57600036600319011261022b57610b86610b72612bae565b3461022b57600036600319011261022b576020600654604051908152f35b3461022b57600036600319011261022b576020600854604051908152f35b3461022b57600036600319011261022b576020600054604051908152f35b3461022b57600036600319011261022b57610d16612931565b6040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210610d4e57505050500390f35b91936001919395506020610d6d8192603f198a82030186528851612040565b9601920192018594939192610d3f565b3461022b57602036600319011261022b57610538610d99611ec5565b6002546001600160a01b031633148015610dbc575b610db7906120fc565b61285d565b506001546001600160a01b03163314610dae565b3461022b57602036600319011261022b5760043560018060a01b036002541633148015610e50575b610e01906120fc565b8015610e0c57600855005b606460405162461bcd60e51b815260206004820152602060248201527f54696d657374616d70206d7573742062652067726561746572207468616e20306044820152fd5b506001546001600160a01b03163314610df8565b3461022b57602036600319011261022b57600435600d5481101561022b576105876020916120ae565b3461022b57600036600319011261022b576002546040516001600160a01b039091168152602090f35b3461022b57602036600319011261022b57610ecf611ec5565b610ed7612931565b90600091825b8151841015610f0657610efe600191610ef68685612324565b51519061250b565b930192610edd565b9250610f1183611fc4565b92610f1f6040519485611f5b565b808452610f2e601f1991611fc4565b0160005b8181106112405750506000815191825b61100957846040518091602082016020835281518091526040830190602060408260051b8601019301916000905b828210610f7f57505050500390f35b919360019193955060208091603f1989820301855287519060e0610fae83516101008452610100840190611f9f565b92848101518584015260408101516040840152606081015160608401526080810151608084015260a0810151151560a084015260c081015160c084015281878060a01b03910151169101529601920192018594939192610f70565b60009491929394198401848111610a4d5760005b6110278284612324565b5151811015611229576001600160a01b0361104c826110468587612324565b51612324565b5116604051631e3e0f7f60e31b8152602081600481855afa908115610942576000916111f0575b50611082575b5060010161101d565b6040516305af81fb60e51b81526001600160a01b038916600482015291959190600082602481845afa80156109425760009283848590869287948896611128575b509161112197959391600199979593604051976110df89611f3f565b88526020880152604087015260608601526080850152151560a084015260c083015260e08201526111108288612324565b5261111b8187612324565b5061242e565b9490611079565b955050505050503d8084833e61113e8183611f5b565b81019260e0828503126111e95781516001600160401b0381116111ec57820184601f820112156111ec57805191611174836120e1565b956111826040519788611f5b565b838752602084840101116111e95750916111ab6001969492869460208061112199019101611f7c565b602081015192604082015191606081015160808201519060c06111d060a08501612850565b93015193969490919293969850919390929496986110c3565b80fd5b5080fd5b906020823d8211611221575b8161120960209383611f5b565b810103126111e9575061121b90612850565b89611073565b3d91506111fc565b5050919093928015610a4d57600019019182610f42565b60209060405161124f81611f3f565b60608152600083820152600060408201526000606082015260006080820152600060a0820152600060c0820152600060e082015282828801015201610f32565b3461022b57602036600319011261022b576112a8611ec5565b60025490336001600160a01b038316148015611325575b6112c8906120fc565b6001600160a01b03169081156112e8576001600160a01b03191617600255005b60405162461bcd60e51b8152602060048201526015602482015274496e76616c6964206f776e6572206164647265737360581b6044820152606490fd5b506001546001600160a01b031633146112bf565b3461022b57602036600319011261022b57611352611ec5565b604051906101606113638184611f5b565b600a8352601f1901366020840137600754604051632a6f10b760e21b81526001600160a01b038084166004830152600092168282602481845afa9182156115b957839261159d575b5082935b8251841080611581575b80611577575b1561141157506001600160a01b036113d78484612324565b51166113e38587612324565b5261140a6114046001600160a01b036113fc8686612324565b51169561242e565b9361242e565b92936113af565b9084869260058210158061156d575b61147a575b509050611431816125c2565b9160005b8281106114525760405160208082528190610b8690820187612040565b6001906001600160a01b036114678285612324565b51166114738287612324565b5201611435565b604051632a6f10b760e21b81526001600160a01b03909116600482015291600090839060249082905afa9182156109425760009261154a575b506000905b825182108061152e575b80611524575b1561151a576115149061150e906001600160a01b036114e78587612324565b51166114f38288612324565b526001600160a01b036115068587612324565b51505061242e565b9161242e565b906114b8565b9150508083611425565b50600a81106114c8565b506001600160a01b036115418385612324565b511615156114c2565b61156691923d8091833e61155e8183611f5b565b8101906127c6565b90836114b3565b50600a8210611420565b50600a85106113bf565b506001600160a01b036115948585612324565b511615156113b9565b6115b29192503d8085833e61155e8183611f5b565b90856113ab565b6040513d85823e3d90fd5b3461022b57602036600319011261022b5760043560005481116115f957600052600b602052610b86610b72604060002061238e565b60405162461bcd60e51b815260206004820152601460248201527324b73b30b634b2103937bab73210373ab6b132b960611b6044820152606490fd5b3461022b57602036600319011261022b5760043560045481101561022b5761058760209161207d565b3461022b57604036600319011261022b57611677611ec5565b6024359081151580920361022b576002546001600160a01b0316331480156116d6575b6116a3906120fc565b6001600160a01b03166116b781151561277a565b600052600960205260406000209060ff80198354169116179055600080f35b506001546001600160a01b0316331461169a565b3461022b57600036600319011261022b576003546040516001600160a01b039091168152602090f35b3461022b57602036600319011261022b5760043560018060a01b036002541633148015611754575b611744906120fc565b61174f811515612296565b600555005b506001546001600160a01b0316331461173b565b3461022b57600036600319011261022b57610b86610b726125f4565b3461022b57602036600319011261022b5760206102236117a2611ec5565b612518565b3461022b57602036600319011261022b576117c0611ec5565b6002546001600160a01b03163314801561184a575b6117de906120fc565b6001600160a01b03168015611805576001600160601b0360a01b6001541617600155600080f35b60405162461bcd60e51b815260206004820152601860248201527f496e76616c6964206465706c6f796572206164647265737300000000000000006044820152606490fd5b506001546001600160a01b031633146117d5565b3461022b57604036600319011261022b57611877611ec5565b61187f611edb565b906001600160a01b03166118948115156124c8565b6001600160a01b038216156118df576000908152600a602090815260408083206001600160a01b03949094168352928152908290208054600190910154835191825291810191909152f35b60405162461bcd60e51b815260206004820152601760248201527f496e76616c6964207061636b61676520616464726573730000000000000000006044820152606490fd5b3461022b57600036600319011261022b57602061022361243d565b3461022b57602036600319011261022b576004356001600160401b03811161022b573660238201121561022b5780600401359061197b82611fc4565b906119896040519283611f5b565b82825260208201906024829460071b8201019036821161022b57602401915b818310611ad1575050503360005260096020526119cc60ff604060002054166123e2565b60005b8151811015611a3c57806119e560019284612324565b516040838060a01b038251169181858060a01b0360208301511691015192611a0e8115156124c8565b611a19841515612c19565b600052600a60205281600020600091868060a01b031682526020522055016119cf565b50604051906020820190602083525180915260408201929060005b818110611a8757337f8492489eb96b7b3253eaaf473fef7bd094878fedeca565cb2bb988debe7fe45685870386a2005b825180516001600160a01b039081168752602082810151909116818801526040808301519088015260609182015160ff169187019190915260809095019490920191600101611a57565b60808336031261022b5760405190608082018281106001600160401b038211176103fa57604052611b0184611ef1565b8252611b0f60208501611ef1565b60208301526040840135604083015260608401359060ff8216820361022b5782602092606060809501528152019201916119a8565b3461022b57600036600319011261022b576040516004548082526020820190600460005260206000209060005b818110611b8857610b8685610b7281870382611f5b565b82546001600160a01b0316845260209093019260019283019201611b71565b3461022b57602036600319011261022b576004356001600160401b03811161022b57611bd7903690600401611fdb565b6002546001600160a01b031633148015611c59575b611bf5906120fc565b611c01815115156122e2565b60005b8151811015610538576001600160a01b03611c1f8284612324565b511690611c2d821515612148565b600454600160401b8110156103fa5760019261050e8285611c53940160045560046120c9565b01611c04565b506001546001600160a01b03163314611bec565b3461022b57600036600319011261022b576040516000600c54611c8f81611f05565b8084529060018116908115611d195750600114611ccb575b610b8683611cb781850382611f5b565b604051918291602083526020830190611f9f565b919050600c600052600080516020615e8d833981519152916000905b808210611cff57509091508101602001611cb7611ca7565b919260018160209254838588010152019101909291611ce7565b60ff191660208086019190915291151560051b84019091019150611cb79050611ca7565b3461022b57600036600319011261022b576007546040516001600160a01b039091168152602090f35b3461022b57602036600319011261022b5760043560018060a01b036002541633148015611da7575b611d97906120fc565b611da2811515612296565b600655005b506001546001600160a01b03163314611d8e565b3461022b57602036600319011261022b57611dd4611ec5565b6002546001600160a01b031633148015611e5e575b611df2906120fc565b6001600160a01b03168015611e19576001600160601b0360a01b6003541617600355600080f35b60405162461bcd60e51b815260206004820152601960248201527f496e76616c69642066656520746f6b656e2061646472657373000000000000006044820152606490fd5b506001546001600160a01b03163314611de9565b3461022b57602036600319011261022b57610538611e8e611ec5565b6002546001600160a01b031633148015611eb1575b611eac906120fc565b612186565b506001546001600160a01b03163314611ea3565b600435906001600160a01b038216820361022b57565b602435906001600160a01b038216820361022b57565b35906001600160a01b038216820361022b57565b90600182811c92168015611f35575b6020831014611f1f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691611f14565b61010081019081106001600160401b038211176103fa57604052565b90601f801991011681019081106001600160401b038211176103fa57604052565b60005b838110611f8f5750506000910152565b8181015183820152602001611f7f565b90602091611fb881518092818552858086019101611f7c565b601f01601f1916010190565b6001600160401b0381116103fa5760051b60200190565b9080601f8301121561022b578135611ff281611fc4565b926120006040519485611f5b565b81845260208085019260051b82010192831161022b57602001905b8282106120285750505090565b6020809161203584611ef1565b81520191019061201b565b906020808351928381520192019060005b81811061205e5750505090565b82516001600160a01b0316845260209384019390920191600101612051565b60045481101561209857600460005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b600d5481101561209857600d60005260206000200190600090565b80548210156120985760005260206000200190600090565b6001600160401b0381116103fa57601f01601f191660200190565b1561210357565b60405162461bcd60e51b815260206004820152601860248201527f4e6f7420416e20417574686f72697a65642061646472657300000000000000006044820152606490fd5b1561214f57565b60405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606490fd5b6001600160a01b031661219a811515612148565b60005b6004548082101561225157826121b28361207d565b905460039190911b1c6001600160a01b0316146121d2575060010161219d565b600019810192508211610a4d5761050e6121ee6122069361207d565b905460039190911b1c6001600160a01b03169161207d565b600454801561223b57600019016122366122218260046120c9565b81549060018060a01b039060031b1b19169055565b600455565b634e487b7160e01b600052603160045260246000fd5b60405162461bcd60e51b815260206004820152601d60248201527f41646472657373206e6f7420666f756e6420696e20746865206c6973740000006044820152606490fd5b1561229d57565b60405162461bcd60e51b815260206004820152601b60248201527f53697a65206d7573742062652067726561746572207468616e203000000000006044820152606490fd5b156122e957565b60405162461bcd60e51b8152602060048201526013602482015272139bc81859191c995cdcd95cc81d1bc8185919606a1b6044820152606490fd5b80518210156120985760209160051b010190565b60405190600d548083528260208101600d60005260206000209260005b81811061236c57505061236a92500383611f5b565b565b84546001600160a01b0316835260019485019487945060209093019201612355565b906040519182815491828252602082019060005260206000209260005b8181106123c057505061236a92500383611f5b565b84546001600160a01b03168352600194850194879450602090930192016123ab565b156123e957565b60405162461bcd60e51b815260206004820152601a60248201527f4e6f7420416e20417574686f72697a656420436f6e74726163740000000000006044820152606490fd5b6000198114610a4d5760010190565b600060016000545b8082111561245257505090565b909260005b84600052600b6020526040600020548110156124b75784600052600b6020526124848160406000206120c9565b905460039190911b1c6001600160a01b03166124a3575b600101612457565b926124af60019161242e565b93905061249b565b50926124c29061242e565b90612445565b156124cf57565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c69642075736572206164647265737360601b6044820152606490fd5b91908201809211610a4d57565b6001600160a01b03166000908152600a602052604081208154600191905b808311156125445750505090565b91936000939193915b85600052600b6020526040600020548310156125af576125a760019187600052600b60205282604061258287826000206120c9565b905460039190911b1c60a083901b83900316600090815260208a90522001549061250b565b92019161254d565b939150936125bc9061242e565b91612536565b906125cc82611fc4565b6125d96040519182611f5b565b82815280926125ea601f1991611fc4565b0190602036910137565b60045480158015612770575b612755576005548181101561274e57905b61261a826125c2565b91612624826125c2565b9160005b8181106127235750604051602081019042825243604082015244606082015260608152612656608082611f5b565b51902060005b83811061266b57505050505090565b60405160208101908382528260408201526040815261268b606082611f5b565b5190209080840391848311610a4d5781851461270d576001926126af91068261250b565b828060a01b036126bf8289612324565b5116906126de848060a01b036126d5858b612324565b51169189612324565b526126e98288612324565b52818060a01b036126fa8288612324565b51166127068289612324565b520161265c565b634e487b7160e01b600052601260045260246000fd5b8061272f60019261207d565b838060a01b0391549060031b1c166127478287612324565b5201612628565b5080612611565b50604051612764602082611f5b565b60008152600036813790565b5060055415612600565b1561278157565b60405162461bcd60e51b815260206004820152601860248201527f496e76616c696420636f6e7472616374206164647265737300000000000000006044820152606490fd5b60208183031261022b578051906001600160401b03821161022b57019080601f8301121561022b578151906127fa82611fc4565b926128086040519485611f5b565b82845260208085019360051b82010191821161022b57602001915b8183106128305750505090565b82516001600160a01b038116810361022b57815260209283019201612823565b5190811515820361022b57565b6001600160a01b0316612871811515612148565b60005b600d54808210156122515782612889836120ae565b905460039190911b1c6001600160a01b0316146128a95750600101612874565b600019810192508211610a4d5761050e6128c56128dd936120ae565b905460039190911b1c6001600160a01b0316916120ae565b600d54801561223b57600019016128f861222182600d6120c9565b600d55565b6040519061290c602083611f5b565b600080835282815b82811061292057505050565b806060602080938501015201612914565b6000548015612ba55760009060015b81811115612a9e57508115612a915761295882611fc4565b916129666040519384611f5b565b808352612975601f1991611fc4565b0160005b818110612a8057505060009060015b818111156129965750505090565b6000818152600b60205260408120805415612a6c57815260209081902054604051631e3e0f7f60e31b81526000929091829060049082906001600160a01b03165afa908115612a61578291612a28575b506129fb575b506129f69061242e565b612988565b8193612a176040836129f695612a219552600b6020522061238e565b6111108288612324565b92906129ec565b90506020813d8211612a59575b81612a4260209383611f5b565b810103126111ec57612a5390612850565b386129e6565b3d9150612a35565b6040513d84823e3d90fd5b634e487b7160e01b82526032600452602482fd5b806060602080938701015201612979565b5050612a9b6128fd565b90565b9260005b84600052600b602052604060002054811015612b955784600052600b602052612acf8160406000206120c9565b60018060a01b0391549060031b1c1685600052600b602052612af58260406000206120c9565b905460039190911b1c6001600160a01b0316612b15575b50600101612aa2565b602060049160405192838092631e3e0f7f60e31b82525afa90811561094257600091612b5c575b50612b48575b38612b0c565b92612b5460019161242e565b939050612b42565b906020823d8211612b8d575b81612b7560209383611f5b565b810103126111e95750612b8790612850565b38612b3c565b3d9150612b68565b5092612ba09061242e565b612940565b50612a9b6128fd565b60005480156127555780600052600b602052604060002054612bcf816125c2565b9160005b828110612be05750505090565b60019082600052600b602052612bfa8160406000206120c9565b838060a01b0391549060031b1c16612c128287612324565b5201612bd3565b15612c2057565b60405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606490fd5b60005480600052600b60205260406000205415612cb6576000908152600b6020526040902080546000198101908111610a4d57612ca1916120c9565b905460039190911b1c6001600160a01b031690565b50600090565b6001600160a01b03166000908152600a602052604081208154600191905b80831115612ce85750505090565b91936000939193915b85600052600b602052604060002054831015612d5157612d4960019187600052600b6020526040612d2586826000206120c9565b905460039190911b1c60a085901b859003166000908152602089905220549061250b565b920191612cf1565b93915093612d5e9061242e565b91612cda56fe6080604052346105a55761312880380380610019816105bf565b9283398101610120828203126105a55781516001600160401b0381116105a55782019181601f840112156105a55782516001600160401b03811161044f5761006a601f8201601f19166020016105bf565b9381855283602083830101116105a55760005b8281106105aa5750506020600091850101526020810151926100a1604083016105e4565b6100ad606084016105e4565b906100ba608085016105e4565b906100c760a086016105e4565b936100d460c087016105e4565b60e08701519096906001600160401b0381116105a557886100f69183016105f8565b6101008201519098906001600160401b0381116105a55761011792016105f8565b600160009081556203f4806005556008556032600a5560405190989061014081016001600160401b0381118282101761044f57604052601e8152600f6020820152600a6040820152600a6060820152600a6080820152600560a0820152600560c0820152600560e08201526005610100820152600561012082015260005b600a811061058d575050601e805461ffff191690556001558051906001600160401b03821161044f5760025490600182811c92168015610583575b602083101461056d5781601f849311610513575b50602090601f83116001146104ab576000926104a0575b50508160011b916000199060031b1c1916176002555b601580546001600160a01b03199081166001600160a01b039384161790915560068054821693831693909317909255600780549092169216919091179055426003819055600554810190811061039f57600455601680546001600160a01b039283166001600160a01b031991821617909155601780549390921692169190911790558051906001600160401b03821161044f5768010000000000000000821161044f5760209060095483600955808410610482575b50016009600052602060002060005b83811061046557843360005260216020526040600020600160ff1982541617905560005b81518110156103b5576001600160a01b036103148284610679565b51166000908152601f60205260409020805460ff191660011790556001600160a01b036103418284610679565b51166008546000526020805260406000209060018060a01b031982541617905560085490600019821461039f5760019182016008556001600160a01b036103888285610679565b5116600052602260205242604060002055016102f9565b634e487b7160e01b600052601160045260246000fd5b508051906001600160401b03821161044f5768010000000000000000821161044f5760209060255483602555808410610431575b500190602560005260206000209160005b8281106104145742602655604051612a8490816106a48239f35b81516001600160a01b0316818501556020909101906001016103fa565b61044990602560005284846000209182019101610662565b836103e9565b634e487b7160e01b600052604160045260246000fd5b82516001600160a01b0316818301556020909201916001016102d5565b61049a90600960005284846000209182019101610662565b386102c6565b0151905038806101fb565b600260009081528281209350601f198516905b8181106104fb57509084600195949392106104e2575b505050811b01600255610211565b015160001960f88460031b161c191690553880806104d4565b929360206001819287860151815501950193016104be565b600260005261055d907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f850160051c81019160208610610563575b601f0160051c0190610662565b386101e4565b9091508190610550565b634e487b7160e01b600052602260045260246000fd5b91607f16916101d0565b600190602060ff84511693019281600b015501610195565b600080fd5b8060208092840101518282890101520161007d565b6040519190601f01601f191682016001600160401b0381118382101761044f57604052565b51906001600160a01b03821682036105a557565b9080601f830112156105a5578151916001600160401b03831161044f578260051b906020806106288185016105bf565b8096815201928201019283116105a557602001905b82821061064a5750505090565b60208091610657846105e4565b81520191019061063d565b81811061066d575050565b60008155600101610662565b805182101561068d5760209160051b010190565b634e487b7160e01b600052603260045260246000fdfe608080604052600436101561001d575b50361561001b57600080fd5b005b600090813560e01c90816315e2475f14611ab0575080631e522c3e14611a875780631f5c561914611a5e57806323e19bcd14611a385780632f84f40b14611a1a578063326c9cac146119c15780633af79e181461166b5780633b39a5f51461197d5780633ccfd60b14611821578063458e6326146117f55780634d125219146117015780634d862175146116705780634ebfc1f01461166b5780635ccb83db14611639578063614290c4146115bb578063622afad41461159d578063647846a5146115745780636502d9aa1461153557806365e4e041146114405780636a20b947146114075780636a879d68146110525780636e9bcae41461139a578063884514a8146113195780638c9b7635146112fb5780638da5cb5b146112d25780639daa44191461126b578063abc2a369146111bf578063abc8b34614611180578063b5f03f60146110da578063bade845a14611091578063c426c4df14611052578063cc5cd2e714611034578063cf09e0d014611016578063d5b9221b14610fd7578063d5f3948814610fae578063d62d7c3714610f30578063d6c91198146105dc578063e0dd2cd5146105ae578063e5f7eb2314610518578063e843cc18146104fa578063ea24c21b1461031c578063ec39335f1461025d578063f1e937361461022f5763f1f07bf80361000f573461022c578060031936011261022c57602060ff601e54166040519015158152f35b80fd5b503461022c57602036600319011261022c57602061025361024e611b18565b6121ef565b6040519015158152f35b503461022c578060031936011261022c57604051601c805480835290835290916020830191600080516020612a2f833981519152915b8181106102fd576102cd856102aa81870382611c96565b60185460ff601954601a54601b549160405196879660e0885260e0880190611b6f565b946020870152604086015260608501528181166080850152818160081c1660a085015260101c1660c08301520390f35b82546001600160a01b0316845260209093019260019283019201610293565b503461022c57602036600319011261022c5760043567ffffffffffffffff81116104f657366023820112156104f657806004013561035981611cb8565b916103676040519384611c96565b8183526024602084019260051b820101903682116104f257602401915b8183106104ce575050503382526021602052600160ff60408420541615151480156104ba575b80156104a6575b1561046157815b815181101561045d576001906001600160a01b036103d68285612059565b51168452601f602052604084208260ff19825416179055818060a01b036103fd8285612059565b51166008548552602080526040852090838060a01b03166bffffffffffffffffffffffff60a01b8254161790556104356008546121e0565b600855818060a01b036104488285612059565b511684526022602052426040852055016103b8565b8280f35b60405162461bcd60e51b815260206004820152601a60248201527f4e6f7420616e20617574686f72697a656420636f6e74726163740000000000006044820152606490fd5b506006546001600160a01b031633146103b1565b506007546001600160a01b031633146103aa565b82356001600160a01b03811681036104ee57815260209283019201610384565b8580fd5b8480fd5b5080fd5b503461022c578060031936011261022c576020600354604051908152f35b503461022c578060031936011261022c5760405160098054808352908352909160208301917f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af915b81811061058f5761058b8561057781870382611c96565b604051918291602083526020830190611b6f565b0390f35b82546001600160a01b0316845260209093019260019283019201610560565b503461022c57602036600319011261022c57600435600a8110156104f65760209150600b0154604051908152f35b503461022c578060031936011261022c576105f561228b565b60045442111580610f24575b15610edf5761061560ff601e54161561206d565b601554604051636eb1769f60e11b8152336004820152306024820152906001600160a01b0316602082604481845afa918215610ed4578392610e9b575b50600154809210610e4a576040516323b872dd60e01b815233600482015230602482015260448101929092526020908290606490829086905af1908115610b06578291610e2b575b5015610df457338152601f60205260ff604082205416610daf5760175460405163c3c5a54760e01b815233600482015290602090829060249082906001600160a01b03165afa908115610b06578291610d90575b5015610d38576106fd336121ef565b15610ce25733808252601f60209081526040808420805460ff19166001179055600880548552918052832080546001600160a01b0319169092179091555460249190610748906121e0565b6008553381526022602052426040822055600154603281029080820460321490151715610cd0576016546040516340ef6f3360e11b815233600482015293606490920491839185919082906001600160a01b03165afa928315610b06578293610cac575b509091829182918290604051926101606107c68186611c96565b600a85529596919591949291601f1901875b818110610c5b575050868115925b875160ff8a1690811080610c4e575b156108f5576001600160a01b039061080d908a612059565b5116801580156108de575b6108d157600a8610156108bd5785600b015480850290858204148617156108a95761088f876108a1946108898b61089b966108828f60ff908160646108959b04986040519561086687611c7a565b8652306020870152896040870152166060850152168093612059565b528c612059565b50612345565b96612a1d565b97612a1d565b98612a1d565b9795936107e6565b634e487b7160e01b84526011600452602484fd5b634e487b7160e01b83526032600452602483fd5b509395976108a190612a1d565b50808352601f60205260ff60408420541615610818565b50859260ff88169182151580610c45575b610bf7575b11610ba357815b60ff8116828110156109c957602061092d6109729287612059565b516015548151604092830151925163a9059cbb60e01b81526001600160a01b039182166004820152602481019390935291938492909116908290889082906044820190565b03925af180156109be579160019160ff93610990575b500116610912565b6109b09060203d81116109b7575b6109a88183611c96565b810190611d12565b5086610988565b503d61099e565b6040513d86823e3d90fd5b50506109d481611cb8565b926109e26040519485611c96565b818452601f196109f183611cb8565b01835b818110610b74575050825b60ff811683811015610a385760ff91610a3082610a1e60019487612059565b51610a29828b612059565b5288612059565b5001166109ff565b6016546001600160a01b03168587823b156104f65760405190633502147760e01b825260248201602060048401528151809152602060448401920190845b818110610b2a57505050818394818581819503925af18015610b0657610b15575b5060018060a01b0360165416600154813b15610b11578291608483926040519485938492631c3f9cd760e31b845233600485015230602485015260448401524260648401525af18015610b0657610af1575b506001905580f35b81610afb91611c96565b61022c578082610ae9565b6040513d84823e3d90fd5b5050fd5b81610b1f91611c96565b61022c578082610a97565b825180516001600160a01b039081168652602082810151909116818701526040808301519087015260609182015160ff169186019190915260809094019390920191600101610a76565b602090604051610b8381611c7a565b8681528683820152866040820152866060820152828289010152016109f4565b60405162461bcd60e51b815260206004820152602660248201527f546f74616c206469737472696275746564206578636565647320746f74616c20604482015265185b5bdd5b9d60d21b6064820152608490fd5b610c018183611cd0565b600019840160ff8111610c31576040610c2060ff610c2a931689612059565b5101918251612345565b905261090b565b634e487b7160e01b86526011600452602486fd5b50818110610906565b50600a60ff8716106107f5565b602090604099989495979951610c7081611c7a565b8981528983820152896040820152896060820152828289010152019795939296976107d8565b634e487b7160e01b600052604160045260246000fd5b610cc99193503d8084833e610cc18183611c96565b8101906122ad565b91386107ac565b50634e487b7160e01b81526011600452fd5b60405162461bcd60e51b815260206004820152602860248201527f5573657220646f6573206e6f74206d65657420707265726571756973697465206044820152677061636b6167657360c01b6064820152608490fd5b60405162461bcd60e51b815260206004820152602a60248201527f55736572206e6f74207265676973746572656420696e20646973747269627574604482015269696f6e2073797374656d60b01b6064820152608490fd5b610da9915060203d6020116109b7576109a88183611c96565b386106ee565b60405162461bcd60e51b815260206004820152601760248201527f5573657220616c726561647920737562736372696265640000000000000000006044820152606490fd5b60405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152606490fd5b610e44915060203d6020116109b7576109a88183611c96565b3861069a565b60405162461bcd60e51b8152602060048201526024808201527f496e73756666696369656e7420616c6c6f77616e636520666f7220666565207460448201526337b5b2b760e11b6064820152608490fd5b9091506020813d602011610ecc575b81610eb760209383611c96565b81010312610ec757519038610652565b600080fd5b3d9150610eaa565b6040513d85823e3d90fd5b60405162461bcd60e51b815260206004820152601860248201527f4e6f7420696e2061637469766174696f6e20706572696f6400000000000000006044820152606490fd5b50600354421015610601565b503461022c578060031936011261022c5760405160258054808352908352909160208301917f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c915b818110610f8f5761058b8561057781870382611c96565b82546001600160a01b0316845260209093019260019283019201610f78565b503461022c578060031936011261022c576006546040516001600160a01b039091168152602090f35b503461022c57602036600319011261022c5760209060ff906040906001600160a01b03611002611b18565b168152602184522054166040519015158152f35b503461022c578060031936011261022c576020602654604051908152f35b503461022c578060031936011261022c576020600454604051908152f35b503461022c57602036600319011261022c5760209060ff906040906001600160a01b0361107d611b18565b168152601f84522054166040519015158152f35b503461022c578060031936011261022c57600454421115806110ce575b806110c1575b6020906040519015158152f35b50601e5460ff16156110b4565b506003544210156110ae565b503461022c57602036600319011261022c5761115b906110f8611b18565b906001549060085492611109611cf3565b9161112e60ff60406026549360018060a01b0386168152601f60205220541692611d4a565b92604051956111478761114081611bac565b0388611c96565b60405197889760e0895260e0890190611b2e565b956020880152604087015260608601526080850152151560a084015260c08301520390f35b503461022c578060031936011261022c5761058b6040516111ab816111a481611bac565b0382611c96565b604051918291602083526020830190611b2e565b503461022c578060031936011261022c57600454421115611226576111e960ff601e54161561206d565b6007546001600160a01b031633148015611212575b61120790611fea565b61120f6120b9565b80f35b506006546001600160a01b031633146111fe565b60405162461bcd60e51b815260206004820152601b60248201527f41637469766174696f6e20706572696f64206e6f7420656e64656400000000006044820152606490fd5b503461022c578060031936011261022c5760085461128881612027565b91805b8281106112a8576040516020808252819061058b90820187611b6f565b808252602080526040822054600191906001600160a01b03166112cb8287612059565b520161128b565b503461022c578060031936011261022c576007546040516001600160a01b039091168152602090f35b503461022c578060031936011261022c576020600554604051908152f35b503461022c57602036600319011261022c576004359060245482101561022c5760245482101561138657602481527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec49091015460405160039290921b1c6001600160a01b03168152602090f35b634e487b7160e01b81526032600452602490fd5b503461022c57602036600319011261022c576004359060255482101561022c5760255482101561138657602581527f401968ff42a154441da5f6c4c935ac46b8671f0e062baaa62a7545ba53bb6e4c9091015460405160039290921b1c6001600160a01b03168152602090f35b503461022c57602036600319011261022c576020906040906001600160a01b0361142f611b18565b168152602283522054604051908152f35b503461022c578060031936011261022c5760085461145d81612027565b9061146781611cb8565b926114756040519485611c96565b81845261148182611cb8565b602085019290601f1901368437815b8181106114eb5750506114b3936020604051958695604087526040870190611b6f565b918583038287015251918281520192915b8181106114d2575050500390f35b82518452859450602093840193909201916001016114c4565b80835260208052604083205494959394600191906001600160a01b031680611513838a612059565b5284526022602052604084205461152a8287612059565b520194939294611490565b503461022c57602036600319011261022c5760209060ff906040906001600160a01b03611560611b18565b168152602384522054166040519015158152f35b503461022c578060031936011261022c576015546040516001600160a01b039091168152602090f35b503461022c578060031936011261022c576020600154604051908152f35b503461022c578060031936011261022c5760405160248054808352908352909160208301917f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4915b81811061161a5761058b8561057781870382611c96565b82546001600160a01b0316845260209093019260019283019201611603565b503461022c57602036600319011261022c576020906004358152818052604060018060a01b0391205416604051908152f35b611acc565b503461022c57602036600319011261022c576116da9061168e611b18565b90600154906008549261169f611cf3565b9160ff6040602654926116b1856121ef565b6001600160a01b039095168152601f602052205460405196911693906111478761114081611bac565b956020880152604087015260608601526080850152151560a0840152151560c08301520390f35b503461022c57602036600319011261022c5761171b611b18565b6007546001600160a01b0316331480156117e1575b61173990611fea565b6001600160a01b0316801561179c57600954600160401b811015611788578060016117679201600955611ae7565b81546001600160a01b0360039290921b91821b191692901b91909117905580f35b634e487b7160e01b83526041600452602483fd5b60405162461bcd60e51b815260206004820152601760248201527f496e76616c6964207061636b61676520616464726573730000000000000000006044820152606490fd5b506006546001600160a01b03163314611730565b503461022c57602036600319011261022c576020611819611814611b18565b611d4a565b604051908152f35b503461022c578060031936011261022c5761183a61228b565b61184333611d4a565b80156119395733808352602360209081526040808520805460ff19166001179055601554905163a9059cbb60e01b8152600481019390935260248301849052849392919082906001600160a01b03168186816044810103925af18015610ed45761191c575b506016546001600160a01b0316803b15610b1157604051631d21b76d60e31b8152336004820152306024820152604481019290925290919081908390606490829084905af1801561190f576118ff575b6001815580f35b61190891611c96565b38816118f8565b50604051903d90823e3d90fd5b6119349060203d6020116109b7576109a88183611c96565b6118a8565b606460405162461bcd60e51b815260206004820152602060248201527f4e6f20776974686472617761626c6520616d6f756e7420617661696c61626c656044820152fd5b503461022c57602036600319011261022c576004359060095482101561022c5760206119a883611ae7565b905460405160039290921b1c6001600160a01b03168152f35b503461022c578060031936011261022c5760e060185460195460ff601a54601b5490601d5493604051958652602086015260408501528181166060850152818160081c16608085015260101c1660a083015260c0820152f35b503461022c578060031936011261022c576020600a54604051908152f35b503461022c578060031936011261022c57602060ff601e5460081c166040519015158152f35b503461022c578060031936011261022c576016546040516001600160a01b039091168152602090f35b503461022c578060031936011261022c576017546040516001600160a01b039091168152602090f35b9050346104f657816003193601126104f6576020906008548152f35b34610ec7576000366003190112610ec7576020611819611cf3565b600954811015611b0257600960005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b600435906001600160a01b0382168203610ec757565b919082519283825260005b848110611b5a575050826000602080949584010152601f8019910116010190565b80602080928401015182828601015201611b39565b906020808351928381520192019060005b818110611b8d5750505090565b82516001600160a01b0316845260209384019390920191600101611b80565b90600091600254908160011c91600181168015611c70575b602084108114611c5a57838352908115611c3e5750600114611be4575050565b600260009081529293509091907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace5b838310611c24575060209250010190565b600181602092949394548385870101520191019190611c13565b9050602093945060ff929192191683830152151560051b010190565b634e487b7160e01b600052602260045260246000fd5b92607f1692611bc4565b6080810190811067ffffffffffffffff821117610c9657604052565b90601f8019910116810190811067ffffffffffffffff821117610c9657604052565b67ffffffffffffffff8111610c965760051b60200190565b91908203918211611cdd57565b634e487b7160e01b600052601160045260246000fd5b60045480421015611d0c57611d09904290611cd0565b90565b50600090565b90816020910312610ec757518015158103610ec75790565b8115611d34570490565b634e487b7160e01b600052601260045260246000fd5b6001600160a01b031660008181526023602052604090205460ff16611d0c576015546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115611fde57600091611fac575b50601c549182158015611f9c575b611f9457601c5460005b848110611dcd575050505050600090565b60008282101561138657601c9052600080516020612a2f8339815191528101546000906001600160a01b03168414611e085750600101611dbc565b939450915050601b549060ff821692838210600014611e8b57505050611e3090601854611d2a565b809110611e3a5790565b60405162461bcd60e51b815260206004820152602360248201527f496e73756666696369656e742062616c616e636520666f72206669727374207460448201526234b2b960e91b6064820152608490fd5b60ff8360081c168094019060ff8211611f80575060ff161115611f105750611eb590601954611d2a565b809110611ebf5790565b60405162461bcd60e51b8152602060048201526024808201527f496e73756666696369656e742062616c616e636520666f72207365636f6e64206044820152633a34b2b960e11b6064820152608490fd5b611f25915060ff601a549160101c1690611d2a565b809110611f2f5790565b60405162461bcd60e51b815260206004820152602360248201527f496e73756666696369656e742062616c616e636520666f72207468697264207460448201526234b2b960e91b6064820152608490fd5b634e487b7160e01b81526011600452602490fd5b505050600090565b5060ff601e5460081c1615611db2565b906020823d602011611fd6575b81611fc660209383611c96565b8101031261022c57505138611da4565b3d9150611fb9565b6040513d6000823e3d90fd5b15611ff157565b60405162461bcd60e51b815260206004820152600e60248201526d139bdd08185d5d1a1bdc9a5e995960921b6044820152606490fd5b9061203182611cb8565b61203e6040519182611c96565b828152809261204f601f1991611cb8565b0190602036910137565b8051821015611b025760209160051b010190565b1561207457565b60405162461bcd60e51b815260206004820152601a60248201527f436f6e747261637420616c726561647920636f6d706c657465640000000000006044820152606490fd5b601e5460ff8160081c1661218f5761ffff191661010117601e556015546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115611fde5760009161215d575b508015612128575061211e612352565b6121266128be565b565b60407fc359db1b32c1f03560a66f10a6185a42781504569a42647678b18d92bdc4ca2e916008549082519182526020820152a1565b906020823d602011612187575b8161217760209383611c96565b8101031261022c5750513861210e565b3d915061216a565b60405162461bcd60e51b815260206004820152602360248201527f496e74657276616c20696e636f6d6520616c72656164792064697374726962756044820152621d195960ea1b6064820152608490fd5b6000198114611cdd5760010190565b6009549081156122845760005b82811061220b57505050600190565b6024602061221883611ae7565b905460405163c426c4df60e01b81526001600160a01b038781166004830152909485939092849260039290921b1c165afa908115611fde57600091612266575b5015611f94576001016121fc565b61227e915060203d81116109b7576109a88183611c96565b38612258565b5050600190565b60026000541461229c576002600055565b633ee5aeb560e01b60005260046000fd5b602081830312610ec75780519067ffffffffffffffff8211610ec757019080601f83011215610ec7578151906122e282611cb8565b926122f06040519485611c96565b82845260208085019360051b820101918211610ec757602001915b8183106123185750505090565b82516001600160a01b0381168103610ec75781526020928301920161230b565b8015611cdd576000190190565b91908201809211611cdd57565b600854801561288b5760165460405163622329eb60e11b815292906001600160a01b0316602084600481845afa938415611fde57600094612858575b506004938084101561284f5750600083915b82601d5560405195868092631894a69f60e11b82525afa938415611fde57600094612834575b506123d083612027565b9260005b8181106128085750604051602081019042825243604082015282606082015260608152612402608082611c96565b519020906000198101908111611cdd5790815b61278257505061242481612027565b84519361243085611cb8565b9461243e6040519687611c96565b80865261244d601f1991611cb8565b013660208701376000905b8382106126f25750506000198201828111611cdd579460005b81518110156126e6576124848187612059565b5115612493575b600101612471565b6000805b8581106126a7575b5061248b57956001600160a01b036124b78884612059565b51166124c38285612059565b5280156124dd576124d5600191612338565b96905061248b565b505091935091505b805167ffffffffffffffff8111610c9657600160401b8111610c9657601c5481601c5580821061266c575b5060208201601c60005260005b82811061264157505050600a8210156125a2576125809060ff7fe7de223a28ea679d35e7f4ce2ec2710ea1df04714975b55f8518f16b830d117e931662ffffff19601b541617601b555b601b5460ff604051938493608085526080850190611b6f565b918181166020850152818160081c16604085015260101c1660608301520390a1565b603c820290821591838104603c14831715611cdd57606460ff91041692601b549060148102938185046014141715611cdd578462ff000061262b6126157fe7de223a28ea679d35e7f4ce2ec2710ea1df04714975b55f8518f16b830d117e9861ff0060646125809a0460081b1695611cd0565b61ffff1986168417851760081c60ff1690611cd0565b60101b169262ffffff1916171717601b55612567565b81516001600160a01b0316600080516020612a2f83398151915282015560209091019060010161251d565b600080516020612a2f8339815191520181600080516020612a2f833981519152015b81811061269b5750612510565b6000815560010161268e565b6001600160a01b036126b98287612059565b51166001600160a01b036126cd8587612059565b5116146126dc57600101612497565b505060013861249f565b505091935091506124e5565b9194909390926001600160a01b0361270a8685612059565b51166127168688612059565b5260005b8751811015612774576001600160a01b036127358789612059565b51166001600160a01b03612749838b612059565b5116146127585760010161271a565b94600161276b8698959497829497612059565b525b0190612458565b50929491909360019061276d565b6001820190818311611cdd578115611d34576128019181066001600160a01b036127ac8289612059565b5116906127cd6001600160a01b036127c4878b612059565b51169189612059565b526127d88488612059565b5260405160208101918252836040820152604081526127f8606082611c96565b51902091612338565b9081612415565b6000818152602080526040902054600191906001600160a01b031661282d8288612059565b52016123d4565b61284891943d8091833e610cc18183611c96565b92386123c6565b600090916123a0565b6020813d602011612883575b8161287160209383611c96565b810103126104f257519350600461238e565b3d9150612864565b60407fc359db1b32c1f03560a66f10a6185a42781504569a42647678b18d92bdc4ca2e91815190815260006020820152a1565b601c548015612a1a576015546040516370a0823160e01b81523060048201529190602090839060249082906001600160a01b03165afa918215611fde576000926129e6575b5081156129a157600a116129925760328102818104603203611cdd576064900480601855601e820290828204601e03611cdd577fb976f1c311ab620aaf714c7c86818e402f863a0e386f350798e72a46dbc147ac9260646080930480601955612975816129708585611cd0565b611cd0565b9081601a55604051938452602084015260408301526060820152a1565b60185560006019556000601a55565b60405162461bcd60e51b815260206004820152601760248201527f4e6f20696e636f6d6520746f20646973747269627574650000000000000000006044820152606490fd5b90916020823d602011612a12575b81612a0160209383611c96565b8101031261022c5750519038612903565b3d91506129f4565b50565b60ff1660ff8114611cdd576001019056fe0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211a26469706673582212207ae22d5227f7f73b882c55a710201aab77f206774017db4fa675f61a6ce5defc64736f6c634300081a0033df6966c971051c3d54ec59162606531493a51404a002842f56009d7e5cf4a8c7a26469706673582212200ea36f374880c1a2055d7703749b1b5d438b1a691628a94a7524de4d59de5fce64736f6c634300081a00330000000000000000000000002fcd55167cda33678e344d4e59b09db273ea106900000000000000000000000055d398326f99059ff775485246999027b3197955000000000000000000000000e5e8ae22b4f47a22f19bd4d86103e5250f54e2ef