0 txs
68 calls
constructor
No constructor.
functions
booster
viewfunction booster(uint128) view returns (uint128 start, uint128 end, uint256 fee_d2)
booster1Achieved
viewfunction booster1Achieved() view returns (uint256)
boosterProgress
viewfunction boosterProgress() view returns (uint128 running)
calcUserAllocation
viewfunction calcUserAllocation(address _user, uint128 _boosterRunning) view returns (uint256 userAlloc)
candidates
viewfunction candidates(uint256) view returns (address)
candidatesLength
viewfunction candidatesLength() view returns (uint256)
DOMAIN_SEPARATOR
viewfunction DOMAIN_SEPARATOR() view returns (bytes32)
dstPaymentDecimals
viewfunction dstPaymentDecimals() view returns (uint128)
factory
viewfunction factory() view returns (address)
feeMoved
viewfunction feeMoved() view returns (uint256)
isFinalized
viewfunction isFinalized() view returns (bool)
isUser
viewfunction isUser(address) view returns (bool)
isVoteValid
viewfunction isVoteValid(address) view returns (bool)
maxComBuy
viewfunction maxComBuy() view returns (uint256)
maxFCFSBuy
viewfunction maxFCFSBuy() view returns (uint256)
message
viewfunction message() view returns (string)
minComBuy
viewfunction minComBuy() view returns (uint256)
minFCFSBuy
viewfunction minFCFSBuy() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
payment
viewfunction payment() view returns (address)
platformChainStaked
viewfunction platformChainStaked(uint256, uint240, address) view returns (uint256)
platformSalePercentage_d2
viewfunction platformSalePercentage_d2(uint256) view returns (uint256)
platformStakerIndex
viewfunction platformStakerIndex(uint256, address) view returns (uint256)
platformStakers
viewfunction platformStakers(uint256, uint256) view returns (address)
price
viewfunction price() view returns (uint256)
purchasedPerRound
viewfunction purchasedPerRound(address, uint128) view returns (uint256)
raised
viewfunction raised() view returns (uint256)
recipient
viewfunction recipient(address) view returns (string)
revenue
viewfunction revenue() view returns (uint256)
sale
viewfunction sale() view returns (uint256)
sold
viewfunction sold() view returns (uint256)
srcPaymentDecimals
viewfunction srcPaymentDecimals() view returns (uint128)
stakers
viewfunction stakers(uint256) view returns (address)
stakersLength
viewfunction stakersLength() view returns (uint256)
summaries
viewfunction summaries(address) view returns (uint256 received, uint256 bought, uint256 feeGiven)
targetSale
viewfunction targetSale() view returns (address)
totalPlatformStaked
viewfunction totalPlatformStaked(uint256) view returns (uint256)
totalPlatformUserStaked
viewfunction totalPlatformUserStaked(uint256 _platformIndex, address _staker) view returns (uint256 totalPlatformStakedNumber)
users
viewfunction users(uint256) view returns (address)
usersLength
viewfunction usersLength() view returns (uint256)
verify
viewfunction verify(address _from, bytes _signature) view returns (bool)
version
viewfunction version() view returns (string)
whitelist
viewfunction whitelist(address) view returns (uint256)
whitelists
viewfunction whitelists(uint256) view returns (address)
whitelistsLength
viewfunction whitelistsLength() view returns (uint256)
whitelistTotalAlloc
viewfunction whitelistTotalAlloc() view returns (uint256)
buyToken
nonpayablefunction buyToken(uint240, bytes, uint256 _amountIn, address)
config
nonpayablefunction config(uint256 _sale, uint256 _price, uint256[4] _fee_d2, address _payment, uint128 _dstPaymentDecimals)
finalize
nonpayablefunction finalize(bytes _salePayload)
forceMoveFund
nonpayablefunction forceMoveFund()
init
nonpayablefunction init(uint128 _start, uint128 _duration, uint256 _sale, uint256[] _platformPercentage_d2, uint256 _price, uint256[4] _fee_d2, address _payment, string[3] _nameVersionMsg)
migrateCandidates
nonpayablefunction migrateCandidates(address[] _users, bytes[] _signatures)
migrateCandidates2
nonpayablefunction migrateCandidates2(address[] _users)
moveFee
nonpayablefunction moveFee()
moveFund
nonpayablefunction moveFund(uint256 _percent_d2, bool _devAddr, address _target)
removePurchase
nonpayablefunction removePurchase(address _user)
resetCandidateChainStaked
nonpayablefunction resetCandidateChainStaked(uint256 _platformIndex, uint240 _chainID, address[] _users)
setCandidateChainStaked
nonpayablefunction setCandidateChainStaked(uint256 _platformIndex, uint240 _chainID, address[] _users, uint256[] _stakedAmount)
setMinMaxCom
nonpayablefunction setMinMaxCom(uint256[2] _minMaxComBuy)
setMinMaxFCFS
nonpayablefunction setMinMaxFCFS(uint256[2] _minMaxFCFSBuy)
setPlatformStakers
nonpayablefunction setPlatformStakers(uint256 _platformIndex, address[] _staker)
setRecipient
nonpayablefunction setRecipient(string _recipient)
setTargetSale
nonpayablefunction setTargetSale(uint128 _dstPaymentDecimals, address _targetSale)
setWhitelist_d6
nonpayablefunction setWhitelist_d6(address[] _user, uint256[] _allocation)
togglePause
nonpayablefunction togglePause()
updateStart
nonpayablefunction updateStart(uint128 _start, uint128 _duration)
updateWhitelist_d6
nonpayablefunction updateWhitelist_d6(address[] _user, uint256[] _allocation)
events
Finalize
event Finalize(uint256 remoteRaised, uint256 remoteRevenue, uint256 remoteSold)
Initialized
event Initialized(uint64 version)
Paused
event Paused(address account)
TokenBought
event TokenBought(uint128 indexed booster, address indexed user, uint256 tokenReceived, uint256 buyAmount, uint256 feeCharged)
Unpaused
event Unpaused(address account)
errors
EnforcedPause
error EnforcedPause()
ExpectedPause
error ExpectedPause()
InvalidInitialization
error InvalidInitialization()
NotInitializing
error NotInitializing()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
creation bytecode
0x6080604052348015600f57600080fd5b5061505f8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106104075760003560e01c8063605ba5ca11610220578063b0a7f9d611610130578063d60453d0116100b8578063eab11db111610087578063eab11db114610963578063f0ea4bfc1461096b578063f1b1486a14610974578063fd5e6dd114610987578063fe4d5add1461099a57600080fd5b8063d60453d0146108e8578063d9329df414610932578063dfb172031461093b578063e21f37ce1461095b57600080fd5b8063ca37cc67116100ff578063ca37cc6714610843578063ca7800e114610863578063cd245e6714610876578063d205de281461087e578063d5c19c291461088657600080fd5b8063b0a7f9d6146107fb578063b3651eea14610815578063c45a015514610828578063c4ae31681461083b57600080fd5b80637cf64a51116101b35780638d4e4083116101825780638d4e4083146107aa5780638da5cb5b146107b75780639b19251a146107bf578063a0345fca146107df578063a035b1fe146107f257600080fd5b80637cf64a51146107505780638134d8bb14610759578063825c39c81461076c578063886c67871461077f57600080fd5b8063763b414b116101ef578063763b414b1461070f57806376bbcf7b14610722578063773b7f6514610735578063795a16e31461073d57600080fd5b8063605ba5ca146106d857806365afacb5146106eb5780636ad1fe02146106f3578063763b2f7c146106fc57600080fd5b80633d4358b11161031b5780634f267557116102ae578063565c8a241161027d578063565c8a241461068857806357978a20146106915780635aec74231461069a5780635bd641c7146106ad5780635c975abb146106c057600080fd5b80634f267557146106295780634f538e871461063c578063515535c41461064f57806354fd4d501461068057600080fd5b8063450be115116102ea578063450be115146105d7578063465b0d2c146105e057806348849771146106035780634a41d1ac1461061657600080fd5b80633d4358b1146105805780633e9491a2146105885780634209fff11461059157806342f6487a146105c457600080fd5b8063166fc4411161039e5780633477ee2e1161036d5780633477ee2e14610536578063355d1114146105495780633644e51514610551578063365b98b21461055a57806339fb1ba51461056d57600080fd5b8063166fc441146104d757806329e06380146104ea5780632d73879a146105155780632defae551461051e57600080fd5b806306b268ec116103da57806306b268ec1461045957806306fdde031461046c5780630db5b3ad1461048157806313b815ea146104ac57600080fd5b8063018820d41461040c57806302c7e7af1461042157806302cbddc31461043d57806305ba013114610450575b600080fd5b61041f61041a366004614119565b6109ad565b005b61042a60005481565b6040519081526020015b60405180910390f35b61042a61044b366004614189565b610c18565b61042a60045481565b61042a6104673660046141d5565b610d67565b610474610fc5565b604051610434919061420a565b61042a61048f366004614189565b601960209081526000928352604080842090915290825290205481565b6104bf6104ba366004614258565b611053565b6040516001600160a01b039091168152602001610434565b61041f6104e536600461427a565b61108b565b6002546104fd906001600160801b031681565b6040516001600160801b039091168152602001610434565b61042a60075481565b6011546104bf9061010090046001600160a01b031681565b6104bf610544366004614296565b6111d9565b61041f611203565b61042a601f5481565b6104bf610568366004614296565b6114e2565b61041f61057b366004614362565b6114f2565b600e5461042a565b61042a60065481565b6105b461059f3660046143bd565b601b6020526000908152604090205460ff1681565b6040519015158152602001610434565b6013546104bf906001600160a01b031681565b61042a60095481565b6105b46105ee3660046143bd565b60236020526000908152604090205460ff1681565b61041f6106113660046143da565b611637565b6105b4610624366004614496565b611975565b61041f6106373660046143bd565b611b3f565b61041f61064a3660046144e5565b611c53565b61042a61065d36600461450d565b601860209081526000938452604080852082529284528284209052825290205481565b610474611c83565b61042a60085481565b61042a600b5481565b61041f6106a836600461454f565b611c90565b61041f6106bb3660046145a6565b61208b565b60008051602061500a8339815191525460ff166105b4565b61041f6106e63660046144e5565b6121b9565b61041f6121e9565b61042a60035481565b61041f61070a3660046145f1565b6122ce565b61041f61071d36600461461d565b612319565b61041f6107303660046146ac565b612565565b600f5461042a565b61041f61074b36600461477a565b6129bc565b61042a600c5481565b61041f6107673660046147c2565b612a1a565b61041f61077a3660046147ee565b612ae9565b61042a61078d3660046141d5565b601e60209081526000928352604080842090915290825290205481565b6011546105b49060ff1681565b6104bf612f39565b61042a6107cd3660046143bd565b601a6020526000908152604090205481565b61041f6107ed366004614892565b612fac565b61042a60015481565b6002546104fd90600160801b90046001600160801b031681565b6104746108233660046143bd565b613283565b6012546104bf906001600160a01b031681565b61041f61329c565b61042a610851366004614296565b60166020526000908152604090205481565b61041f61087136600461454f565b6132cc565b600d5461042a565b6104fd613486565b6108c26108943660046148c6565b601460205260009081526040902080546001909101546001600160801b0380831692600160801b9004169083565b604080516001600160801b03948516815293909216602084015290820152606001610434565b6109176108f63660046143bd565b601d6020526000908152604090208054600182015460029092015490919083565b60408051938452602084019290925290820152606001610434565b61042a600a5481565b61042a610949366004614296565b60176020526000908152604090205481565b61047461354a565b60105461042a565b61042a60055481565b61041f61098236600461454f565b613557565b6104bf610995366004614296565b613700565b6104bf6109a8366004614296565b613710565b6109b5613720565b6109bd613777565b601254604051633069201960e21b81526001600160f01b03851660048201526000916001600160a01b03169063d18f4b6090829063c1a4806490602401602060405180830381865afa158015610a17573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a3b91906148e1565b6040518263ffffffff1660e01b8152600401610a5991815260200190565b602060405180830381865afa158015610a76573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a9a91906148e1565b9050806001600160f01b0316846001600160f01b031614610aed5760405162461bcd60e51b81526020600482015260086024820152670858da185a5b925160c21b60448201526064015b60405180910390fd5b60005b82811015610c1057610b2886858584818110610b0e57610b0e6148fa565b9050602002016020810190610b2391906143bd565b6137e9565b1580610b95575060008681526018602090815260408083206001600160f01b0389168452909152812090858584818110610b6457610b646148fa565b9050602002016020810190610b7991906143bd565b6001600160a01b03168152602081019190915260400160002054155b610c085760008681526018602090815260408083206001600160f01b0389168452909152812090858584818110610bce57610bce6148fa565b9050602002016020810190610be391906143bd565b6001600160a01b03166001600160a01b03168152602001908152602001600020600090555b600101610af0565b505050505050565b600080601260009054906101000a90046001600160a01b03166001600160a01b031663acc0bbf66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c9291906148e1565b905060005b81811015610d5f57600085815260186020526040808220601254915163068c7a5b60e51b8152600481018590529092916001600160a01b03169063d18f4b6090602401602060405180830381865afa158015610cf7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d1b91906148e1565b6001600160f01b03168152602080820192909252604090810160009081206001600160a01b0388168252909252902054610d559084614926565b9250600101610c97565b505092915050565b60006001600160801b0382161580610d8857506004826001600160801b0316115b15610d9557506000610fbf565b816001600160801b0316600403610daf5750600a54610fbf565b60125460408051634990e42b60e01b815290516000926001600160a01b031691634990e42b9160048083019260209291908290030181865afa158015610df9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1d91906148e1565b6001600160a01b03851660009081526023602052604081205460035492935060ff1691905b83811015610fba57856001600160801b0316600303610e9b57610e6581886137e9565b80610e8757506001600160a01b0387166000908152601a602052604090205415155b15610e96576008549450610fba565b610fb2565b6000610ea78289610c18565b60008381526016602090815260408083205460179092528220549293509190610ed286836002613860565b9050600084118015610ee45750600083115b8015610eed5750865b15610fad57896001600160801b0316600203610f3f576000610f13600c54846002613860565b9050610f298585610f248486614939565b613889565b610f33908b614926565b99505050505050610fb2565b896001600160801b0316600103610fad57610f6d8484610f63600b54866002613860565b610f249085614939565b610f77908a614926565b6001600160a01b038c166000908152601a60205260409020549099508015610fa357610f33818b614926565b5050505050610fb2565b505050505b600101610e42565b505050505b92915050565b60208054610fd29061494c565b80601f0160208091040260200160405190810160405280929190818152602001828054610ffe9061494c565b801561104b5780601f106110205761010080835404028352916020019161104b565b820191906000526020600020905b81548152906001019060200180831161102e57829003601f168201915b505050505081565b6015602052816000526040600020818154811061106f57600080fd5b6000918252602090912001546001600160a01b03169150829050565b611093613720565b61109b613777565b60015b806001600160801b03166001036110e2576001600160801b03818116600090815260146020526040902080546001600160801b031916918516919091179055611151565b601460006110f1600184614980565b6001600160801b03908116825260208201929092526040016000205461112191600160801b90910416600161499f565b6001600160801b03828116600090815260146020526040902080546001600160801b031916929091169190911790555b6004816001600160801b031610156111b7576001600160801b038082166000908152601460205260409020546111899184911661499f565b6001600160801b03828116600090815260146020526040902080548216600160801b93909216929092021790555b6111c0816149be565b90506004816001600160801b0316111561109e57505050565b600f81815481106111e957600080fd5b6000918252602090912001546001600160a01b0316905081565b61120b613896565b60065460045460009061121e9083614939565b905061122981613975565b60008111801561123b575060115460ff165b6112575760405162461bcd60e51b8152600401610ae4906149e9565b600482815560125460408051630520084360e11b81529051611352936001600160a01b0390931692630a401086928082019260209290918290030181865afa1580156112a7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112cb9190614a06565b61134d83601260009054906101000a90046001600160a01b03166001600160a01b031663256103e56040518163ffffffff1660e01b8152600401602060405180830381865afa158015611322573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134691906148e1565b6002613860565b613a1b565b6012546040805163169f23a560e11b81529051611418926001600160a01b031691632d3e474a9160048083019260209291908290030181865afa15801561139d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113c19190614a06565b61134d83601260009054906101000a90046001600160a01b03166001600160a01b031663e05a40136040518163ffffffff1660e01b8152600401602060405180830381865afa158015611322573d6000803e3d6000fd5b601254604080516361d027b360e01b815290516114de926001600160a01b0316916361d027b39160048083019260209291908290030181865afa158015611463573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114879190614a06565b61134d83601260009054906101000a90046001600160a01b03166001600160a01b03166316aba1516040518163ffffffff1660e01b8152600401602060405180830381865afa158015611322573d6000803e3d6000fd5b5050565b601081815481106111e957600080fd5b6114fa613720565b611502613777565b601380546001600160a01b0319166001600160a01b03841690811790915560038690556001859055600280546001600160801b0319166001600160801b0384161790556040805163313ce56760e01b8152905163313ce567916004808201926020929091908290030181865afa158015611580573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115a49190614a23565b600280546001600160801b031660ff92909216600160801b0291909117905560015b836115d2600183614980565b6001600160801b0316600481106115eb576115eb6148fa565b602090810291909101516001600160801b0383166000908152601490925260409091206001015561161b816149be565b90506004816001600160801b031611156115c657505050505050565b61163f613720565b611647613777565b60115461010090046001600160a01b03166116925760405162461bcd60e51b815260206004820152600b60248201526a2174617267657453616c6560a81b6044820152606401610ae4565b60125460408051634990e42b60e01b815290516000926001600160a01b031691634990e42b9160048083019260209291908290030181865afa1580156116dc573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170091906148e1565b90506000816001600160401b0381111561171c5761171c6142af565b604051908082528060200260200182016040528015611745578160200160208202803683370190505b5090506000805b838110156117af576000818152601560205260409020541580159061176f575081155b1561177957600191505b600081815260166020526040902054835184908390811061179c5761179c6148fa565b602090810291909101015260010161174c565b50806117e85760405162461bcd60e51b8152602060048201526008602482015267217374616b65727360c01b6044820152606401610ae4565b60005b84811015611933576000868683818110611807576118076148fa565b905060200201602081019061181c91906143bd565b6001600160a01b03811660009081526023602052604090205490915060ff1615611846575061192b565b60005b858110156119285761185b81836137e9565b1561192057600061186c8284610c18565b905080868381518110611881576118816148fa565b602002602001018181516118959190614926565b9052506001600160a01b03831660009081526023602052604090205460ff1661191e576001600160a01b0383166000818152602360205260408120805460ff19166001908117909155600f805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b03191690911790555b505b600101611849565b50505b6001016117eb565b5060005b83811015610c1057828181518110611951576119516148fa565b60209081029190910181015160008381526016909252604090912055600101611937565b6000815160411461198857506000610fbf565b60008060006020850151925060408501519150606085015160001a905060006040518060400160405280886001600160a01b03168152602001602280546119ce9061494c565b80601f01602080910402602001604051908101604052809291908181526020018280546119fa9061494c565b8015611a475780601f10611a1c57610100808354040283529160200191611a47565b820191906000526020600020905b815481529060010190602001808311611a2a57829003601f168201915b505050505081525090506000601f54611a5f83613a32565b60405161190160f01b6020820152602281019290925260428201526062016040516020818303038152906040528051906020012090508260ff16601b14158015611aad57508260ff16601c14155b15611ac057611abd601b84614a46565b92505b60408051600081526020810180835283905260ff85169181019190915260608101869052608081018590526001600160a01b0389169060019060a0016020604051602081039080840390855afa158015611b1e573d6000803e3d6000fd5b505050602060405103516001600160a01b0316149550505050505092915050565b611b47613720565b611b4f613486565b6001600160801b03166004148015611b76575060008051602061500a8339815191525460ff165b611b925760405162461bcd60e51b8152600401610ae4906149e9565b6001600160a01b0381166000818152601d602081815260408084208151606081018352815481526001820180548286015260028301805494830194909452968652939092529083905592829055915560115460ff16611c3b57806020015160056000828254611c019190614939565b9091555050604081015160068054600090611c1d908490614939565b90915550508051600080548190611c35908490614939565b90915550505b6114de828260400151836020015161134d9190614926565b611c5b613720565b6004611c65613486565b6001600160801b03161015611c7a5780356009555b60200135600a55565b60218054610fd29061494c565b611c98613720565b611ca0613777565b60115461010090046001600160a01b0316611ceb5760405162461bcd60e51b815260206004820152600b60248201526a2174617267657453616c6560a81b6044820152606401610ae4565b828114611d275760405162461bcd60e51b815260206004820152600a6024820152690dad2e6e6d8cadccee8d60b31b6044820152606401610ae4565b60125460408051634990e42b60e01b815290516000926001600160a01b031691634990e42b9160048083019260209291908290030181865afa158015611d71573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d9591906148e1565b90506000816001600160401b03811115611db157611db16142af565b604051908082528060200260200182016040528015611dda578160200160208202803683370190505b5090506000805b83811015611e445760008181526015602052604090205415801590611e04575081155b15611e0e57600191505b6000818152601660205260409020548351849083908110611e3157611e316148fa565b6020908102919091010152600101611de1565b5080611e7d5760405162461bcd60e51b8152602060048201526008602482015267217374616b65727360c01b6044820152606401610ae4565b60005b8681101561203f576000888883818110611e9c57611e9c6148fa565b9050602002016020810190611eb191906143bd565b9050366000888885818110611ec857611ec86148fa565b9050602002810190611eda9190614a5f565b6001600160a01b038516600090815260236020526040902054919350915060ff1680611f435750611f418383838080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061197592505050565b155b15611f5057505050612037565b60005b8781101561203257611f6581856137e9565b1561202a576000611f768286610c18565b905080888381518110611f8b57611f8b6148fa565b60200260200101818151611f9f9190614926565b9052506001600160a01b03851660009081526023602052604090205460ff16612028576001600160a01b0385166000818152602360205260408120805460ff19166001908117909155600f805491820181559091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b03191690911790555b505b600101611f53565b505050505b600101611e80565b5060005b838110156120815782818151811061205d5761205d6148fa565b60209081029190910181015160008381526016909252604090912055600101612043565b5050505050505050565b612093613720565b61209b613777565b60005b818110156121b357600084815260156020526040902054158015906120d457506120d484848484818110610b0e57610b0e6148fa565b6121ab57600084815260156020908152604080832054601990925282209091858585818110612105576121056148fa565b905060200201602081019061211a91906143bd565b6001600160a01b03166001600160a01b031681526020019081526020016000208190555060156000858152602001908152602001600020838383818110612163576121636148fa565b905060200201602081019061217891906143bd565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790555b60010161209e565b50505050565b6121c1613720565b60036121cb613486565b6001600160801b031610156121e05780356007555b60200135600855565b6121f1613896565b60125460408051630520084360e11b815290516122cc926001600160a01b031691630a4010869160048083019260209291908290030181865afa15801561223c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122609190614a06565b6013546040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156122a8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061134d91906148e1565b565b6122d6613720565b60118054610100600160a81b0319166101006001600160a01b03841602179055600280546001600160801b0319166001600160801b0384161790556114de613aab565b612321613720565b612329613777565b601254604051633069201960e21b81526001600160f01b03871660048201526000916001600160a01b03169063d18f4b6090829063c1a4806490602401602060405180830381865afa158015612383573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123a791906148e1565b6040518263ffffffff1660e01b81526004016123c591815260200190565b602060405180830381865afa1580156123e2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061240691906148e1565b9050806001600160f01b0316866001600160f01b031614801561242857508382145b6124445760405162461bcd60e51b8152600401610ae4906149e9565b60005b848110156120815761246588878784818110610b0e57610b0e6148fa565b15806124d9575060008881526018602090815260408083206001600160f01b038b1684529091528120818888858181106124a1576124a16148fa565b90506020020160208101906124b691906143bd565b6001600160a01b03166001600160a01b0316815260200190815260200160002054115b61255d578383828181106124ef576124ef6148fa565b60008b81526018602090815260408083206001600160f01b038e16845282528220920293909301359290915088888581811061252d5761252d6148fa565b905060200201602081019061254291906143bd565b6001600160a01b031681526020810191909152604001600020555b600101612447565b600061256f613b56565b805490915060ff600160401b82041615906001600160401b03166000811580156125965750825b90506000826001600160401b031660011480156125b25750303b155b9050811580156125c0575080155b156125de5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561260857845460ff60401b1916600160401b1785555b612610613b7f565b612618613b87565b60015b806001600160801b031660010361267e578e60146000836001600160801b03166001600160801b0316815260200190815260200160002060000160006101000a8154816001600160801b0302191690836001600160801b031602179055506126ed565b6014600061268d600184614980565b6001600160801b0390811682526020820192909252604001600020546126bd91600160801b90910416600161499f565b6001600160801b03828116600090815260146020526040902080546001600160801b031916929091169190911790555b6004816001600160801b03161015612774578d60146000836001600160801b03166001600160801b0316815260200190815260200160002060000160009054906101000a90046001600160801b0316612746919061499f565b6001600160801b03828116600090815260146020526040902080548216600160801b93909216929092021790555b88612780600183614980565b6001600160801b031660048110612799576127996148fa565b602090810291909101516001600160801b038316600090815260149092526040909120600101556127c9816149be565b90506004816001600160801b0316111561261b575060038c905560005b6001600160801b0381168b111561284a578b8b826001600160801b0316818110612812576128126148fa565b9050602002013560176000836001600160801b031681526020019081526020016000208190555080612843906149be565b90506127e6565b60018a9055601380546001600160a01b0319166001600160a01b038a161790556128748780614a5f565b602091612882919083614aec565b506128906020880188614a5f565b60219161289e919083614aec565b506128ac6040880188614a5f565b6022916128ba919083614aec565b50601280546001600160a01b031916331790556013546040805163313ce56760e01b815290516001600160a01b03929092169163313ce567916004808201926020929091908290030181865afa158015612918573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061293c9190614a23565b60ff16600260106101000a8154816001600160801b0302191690836001600160801b031602179055505083156129ac57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050505050505050565b6129c4613b97565b60006129ce613486565b6001600160801b03161180156129e5575060008151115b612a015760405162461bcd60e51b8152600401610ae4906149e9565b336000908152601c602052604090206114de8282614bab565b612a22613896565b6000612a32600554856002613860565b9050612a3d81613975565b60115460ff16612a5f5760405162461bcd60e51b8152600401610ae4906149e9565b8215612adf5760125460408051630520084360e11b81529051612ada926001600160a01b031691630a4010869160048083019260209291908290030181865afa158015612ab0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ad49190614a06565b82613a1b565b6121b3565b6121b38282613a1b565b612af1613b97565b612af9613bc8565b336000612b04613486565b90506000816001600160801b0316118015612b2e575060115461010090046001600160a01b031615155b612b655760405162461bcd60e51b815260206004820152600860248201526710b137b7b9ba32b960c11b6044820152606401610ae4565b6000612b718383610d67565b905060008111612baf5760405162461bcd60e51b815260206004820152600960248201526821656c696769626c6560b81b6044820152606401610ae4565b600154600080612bcb84612bc38a86613c12565b888887613c38565b6001600160a01b0388166000908152601a6020526040812054929450909250908103612c1d576001600160801b038616600090815260146020526040902060010154612c1a9084906002613860565b90505b8260056000828254612c2f9190614926565b925050819055508060066000828254612c489190614926565b9250508190555081600080828254612c609190614926565b90915550506001600160801b038616600103612c8e5781600c6000828254612c889190614926565b90915550505b6001600160a01b0387166000908152601e602090815260408083206001600160801b038a16845290915281208054849290612cca908490614926565b90915550506001600160a01b0387166000908152601d602052604081208054849290612cf7908490614926565b90915550506001600160a01b0387166000908152601d602052604081206001018054859290612d27908490614926565b90915550506001600160a01b0387166000908152601d602052604081206002018054839290612d57908490614926565b90915550506001600160a01b0387166000908152601b602052604090205460ff16612de2576001600160a01b0387166000818152601b60205260408120805460ff191660019081179091556010805491820181559091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6720180546001600160a01b03191690911790555b612e058730612df18487614926565b6013546001600160a01b0316929190613df7565b6012546002546001600160a01b039091169063789598d290612e3b9086906001600160801b03600160801b820481169116613e5e565b6011546040516001600160e01b031960e085901b16815260048101929092526001600160a01b03808c166024840152610100909104166044820152606401600060405180830381600087803b158015612e9357600080fd5b505af1158015612ea7573d6000803e3d6000fd5b505060408051858152602081018790529081018490526001600160a01b038a1692506001600160801b03891691507f3d3d55738724056066f673413fa928e22d3d17c3e8e21bb6111927819d1e47e39060600160405180910390a350505050505050612f3260017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b5050505050565b60125460408051638da5cb5b60e01b815290516000926001600160a01b031691638da5cb5b9160048083019260209291908290030181865afa158015612f83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612fa79190614a06565b905090565b612fb4613ea6565b612fbc612f39565b6001600160a01b0316336001600160a01b0316146130065760405162461bcd60e51b815260206004820152600760248201526610b1b0b63632b960c91b6044820152606401610ae4565b600080600080600080600080888060200190518101906130269190614d6b565b97509750975097509750975097509750466001600160f01b0316886001600160f01b0316146130825760405162461bcd60e51b81526020600482015260086024820152670858da185a5b925160c21b6044820152606401610ae4565b61308b87613ed6565b60055561309786613ed6565b60065560008581555b84518110156132215760008582815181106130bd576130bd6148fa565b6020026020010151905060006130eb8684815181106130de576130de6148fa565b6020026020010151613ed6565b905060006131048585815181106130de576130de6148fa565b6001600160a01b0384166000908152601d602090815260408083208151606081018352815481526001820154938101849052600290910154918101919091529293508410156131605783826020015161315d9190614939565b90505b604082015183908110156131945760008484604001516131809190614939565b905061318c8184614926565b92505061319b565b5060408201515b60405180606001604052808a89815181106131b8576131b86148fa565b602090810291909101810151825281810188905260409182018490526001600160a01b0389166000908152601d8252829020835181559083015160018201559101516002909101558115613210576132108683613a1b565b5050505050508060010190506130a0565b506011805460ff19166001179055600554600654600054604080519384526020840192909252908201527f979129d637ba415c6d74b5f814688e1a1e65a0fe1a591c9989a64fb80fb1be329060600160405180910390a1505050505050505050565b601c6020526000908152604090208054610fd29061494c565b6132a4613720565b60008051602061500a8339815191525460ff16156132c4576122cc613f22565b6122cc613f82565b6132d4613720565b6132dc613777565b8281146132fb5760405162461bcd60e51b8152600401610ae4906149e9565b600b5460005b8481101561347c57601a600087878481811061331f5761331f6148fa565b905060200201602081019061333491906143bd565b6001600160a01b0316815260208101919091526040016000205415613474576000601a600088888581811061336b5761336b6148fa565b905060200201602081019061338091906143bd565b6001600160a01b03166001600160a01b031681526020019081526020016000205490506133c88585848181106133b8576133b86148fa565b9050602002013560066012613e5e565b601a60008989868181106133de576133de6148fa565b90506020020160208101906133f391906143bd565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550601a600088888581811061342d5761342d6148fa565b905060200201602081019061344291906143bd565b6001600160a01b031681526020810191909152604001600020546134668285614939565b6134709190614926565b9250505b600101613301565b50600b5550505050565b600060015b6004816001600160801b031611613546576001600160801b03808216600090815260146020526040902054811642909116108015906134ef57506001600160801b03808216600090815260146020526040902054600160801b900481164290911611155b8061352c5750806001600160801b0316600414801561352c57506001600160801b0380821660009081526014602052604090205481164290911610155b1561353657919050565b61353f816149be565b905061348b565b5090565b60228054610fd29061494c565b61355f613720565b613567613777565b8281146135865760405162461bcd60e51b8152600401610ae4906149e9565b600b5460005b8481101561347c576000601a60008888858181106135ac576135ac6148fa565b90506020020160208101906135c191906143bd565b6001600160a01b03166001600160a01b0316815260200190815260200160002054116136f857600d8686838181106135fb576135fb6148fa565b905060200201602081019061361091906143bd565b81546001810183556000928352602090922090910180546001600160a01b0319166001600160a01b039092169190911790556136578484838181106133b8576133b86148fa565b601a600088888581811061366d5761366d6148fa565b905060200201602081019061368291906143bd565b6001600160a01b03166001600160a01b0316815260200190815260200160002081905550601a60008787848181106136bc576136bc6148fa565b90506020020160208101906136d191906143bd565b6001600160a01b031681526020810191909152604001600020546136f59083614926565b91505b60010161358c565b600e81815481106111e957600080fd5b600d81815481106111e957600080fd5b613728612f39565b6001600160a01b0316336001600160a01b0316146122cc5760405162461bcd60e51b815260206004820152600c60248201526b1d5b985d5d1a1bdc9a5e995960a21b6044820152606401610ae4565b600160005260146020527fb6c61a840592cc84133e4b25bd509abf4659307c57b160799b38490a5aa48f2c546001600160801b0390811642909116106122cc5760405162461bcd60e51b81526020600482015260076024820152661cdd185c9d195960ca1b6044820152606401610ae4565b600082815260156020526040812054810361380657506000610fbf565b6000838152601560209081526040808320601983528184206001600160a01b038716808652935292205482549192918110613843576138436148fa565b6000918252602090912001546001600160a01b0316149392505050565b600061386d826064614f3e565b6138778486614f4a565b6138819190614f61565b949350505050565b6000826138778386614f4a565b601260009054906101000a90046001600160a01b03166001600160a01b031663dfa78bf56040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061390d9190614a06565b6001600160a01b0316336001600160a01b03161480613944575061392f612f39565b6001600160a01b0316336001600160a01b0316145b6122cc5760405162461bcd60e51b81526020600482015260026024820152613f3f60f01b6044820152606401610ae4565b6013546040516370a0823160e01b815230600482015282916001600160a01b0316906370a0823190602401602060405180830381865afa1580156139bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139e191906148e1565b1015613a185760405162461bcd60e51b8152600401610ae4906020808252600490820152636c65737360e01b604082015260600190565b50565b6013546114de906001600160a01b03168383613fcb565b8051602080830151805190820120604051600093613a8e937fadff17edcd5c0496616b11e8e6581dc02f244b948e281945d5fc27ce62284e5d939192019283526001600160a01b03919091166020830152604082015260600190565b604051602081830303815290604052805190602001209050919050565b6040516038907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f90613adf90602090614f83565b60405180910390206021604051613af69190614f83565b604080519182900382206011546020840195909552908201929092526060810191909152608081018390526101009091046001600160a01b031660a082015260c00160408051601f198184030181529190528051602090910120601f5550565b6000807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610fbf565b6122cc614001565b613b8f614001565b6122cc614026565b60008051602061500a8339815191525460ff16156122cc5760405163d93c066560e01b815260040160405180910390fd5b7f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00805460011901613c0c57604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b600081613c2784670de0b6b3a7640000614f4a565b613c319190614f61565b9392505050565b60008060008054600354613c4c9190614939565b905080871115613c5a578096505b670de0b6b3a7640000613c6d8589614f4a565b613c779190614f61565b9250846001600160801b0316600303613cd8576000600854118015613c9e57506007548710155b613cd35760405162461bcd60e51b8152600401610ae4906020808252600490820152631e36b4b760e11b604082015260600190565b613d32565b846001600160801b0316600403613d32576000600a54118015613cfd57506009548710155b613d325760405162461bcd60e51b8152600401610ae4906020808252600490820152631e36b4b760e11b604082015260600190565b6001600160a01b0386166000908152601e602090815260408083206001600160801b038916845290915290205488613d6a8983614926565b1115613d9b57670de0b6b3a764000085613d84838c614939565b613d8e9190614f4a565b613d989190614f61565b93505b8881108015613daa5750600084115b613ddf5760405162461bcd60e51b8152600401610ae4906020808252600490820152636e6f706560e01b604082015260600190565b613de98486613c12565b925050509550959350505050565b6040516001600160a01b0384811660248301528381166044830152606482018390526121b39186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b03838183161783525050505061402e565b6000613e6b83600a614f3e565b613e7683600a614f3e565b6138779086614f4a565b60017f9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f0055565b60008051602061500a8339815191525460ff166122cc57604051638dfc202b60e01b815260040160405180910390fd5b600254600090613ef0906001600160801b0316600a614ff4565b600254613f0e90600160801b90046001600160801b0316600a614ff4565b613f189084614f4a565b610fbf9190614f61565b613f2a613ea6565b60008051602061500a833981519152805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b613f8a613b97565b60008051602061500a833981519152805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833613f64565b6040516001600160a01b03838116602483015260448201839052613ffc91859182169063a9059cbb90606401613e2c565b505050565b61400961409f565b6122cc57604051631afcd79f60e31b815260040160405180910390fd5b613e80614001565b600080602060008451602086016000885af180614051576040513d6000823e3d81fd5b50506000513d91508115614069578060011415614076565b6001600160a01b0384163b155b156121b357604051635274afe760e01b81526001600160a01b0385166004820152602401610ae4565b60006140a9613b56565b54600160401b900460ff16919050565b6001600160f01b0381168114613a1857600080fd5b60008083601f8401126140e057600080fd5b5081356001600160401b038111156140f757600080fd5b6020830191508360208260051b850101111561411257600080fd5b9250929050565b6000806000806060858703121561412f57600080fd5b843593506020850135614141816140b9565b925060408501356001600160401b0381111561415c57600080fd5b614168878288016140ce565b95989497509550505050565b6001600160a01b0381168114613a1857600080fd5b6000806040838503121561419c57600080fd5b8235915060208301356141ae81614174565b809150509250929050565b80356001600160801b03811681146141d057600080fd5b919050565b600080604083850312156141e857600080fd5b82356141f381614174565b9150614201602084016141b9565b90509250929050565b602081526000825180602084015260005b81811015614238576020818601810151604086840101520161421b565b506000604082850101526040601f19601f83011684010191505092915050565b6000806040838503121561426b57600080fd5b50508035926020909101359150565b6000806040838503121561428d57600080fd5b6141f3836141b9565b6000602082840312156142a857600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156142ed576142ed6142af565b604052919050565b600082601f83011261430657600080fd5b604051608081016001600160401b0381118282101715614328576143286142af565b60405280608084018581111561433d57600080fd5b845b8181101561435757803583526020928301920161433f565b509195945050505050565b6000806000806000610100868803121561437b57600080fd5b853594506020860135935061439387604088016142f5565b925060c08601356143a381614174565b91506143b160e087016141b9565b90509295509295909350565b6000602082840312156143cf57600080fd5b8135613c3181614174565b600080602083850312156143ed57600080fd5b82356001600160401b0381111561440357600080fd5b61440f858286016140ce565b90969095509350505050565b6000806001600160401b03841115614435576144356142af565b50601f8301601f191660200161444a816142c5565b91505082815283838301111561445f57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261448757600080fd5b613c318383356020850161441b565b600080604083850312156144a957600080fd5b82356144b481614174565b915060208301356001600160401b038111156144cf57600080fd5b6144db85828601614476565b9150509250929050565b6000604082840312156144f757600080fd5b8260408301111561450757600080fd5b50919050565b60008060006060848603121561452257600080fd5b833592506020840135614534816140b9565b9150604084013561454481614174565b809150509250925092565b6000806000806040858703121561456557600080fd5b84356001600160401b0381111561457b57600080fd5b614587878288016140ce565b90955093505060208501356001600160401b0381111561415c57600080fd5b6000806000604084860312156145bb57600080fd5b8335925060208401356001600160401b038111156145d857600080fd5b6145e4868287016140ce565b9497909650939450505050565b6000806040838503121561460457600080fd5b61460d836141b9565b915060208301356141ae81614174565b6000806000806000806080878903121561463657600080fd5b863595506020870135614648816140b9565b945060408701356001600160401b0381111561466357600080fd5b61466f89828a016140ce565b90955093505060608701356001600160401b0381111561468e57600080fd5b61469a89828a016140ce565b979a9699509497509295939492505050565b60008060008060008060008060006101608a8c0312156146cb57600080fd5b6146d48a6141b9565b98506146e260208b016141b9565b975060408a0135965060608a01356001600160401b0381111561470457600080fd5b6147108c828d016140ce565b90975095505060808a0135935061472a8b60a08c016142f5565b92506101208a013561473b81614174565b91506101408a01356001600160401b0381111561475757600080fd5b8a01606081018c101561476957600080fd5b809150509295985092959850929598565b60006020828403121561478c57600080fd5b81356001600160401b038111156147a257600080fd5b8201601f810184136147b357600080fd5b6138818482356020840161441b565b6000806000606084860312156147d757600080fd5b833592506020840135801515811461453457600080fd5b60008060008060006080868803121561480657600080fd5b8535614811816140b9565b945060208601356001600160401b0381111561482c57600080fd5b8601601f8101881361483d57600080fd5b80356001600160401b0381111561485357600080fd5b88602082840101111561486557600080fd5b6020919091019450925060408601359150606086013561488481614174565b809150509295509295909350565b6000602082840312156148a457600080fd5b81356001600160401b038111156148ba57600080fd5b61388184828501614476565b6000602082840312156148d857600080fd5b613c31826141b9565b6000602082840312156148f357600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b80820180821115610fbf57610fbf614910565b81810381811115610fbf57610fbf614910565b600181811c9082168061496057607f821691505b60208210810361450757634e487b7160e01b600052602260045260246000fd5b6001600160801b038281168282160390811115610fbf57610fbf614910565b6001600160801b038181168382160190811115610fbf57610fbf614910565b60006001600160801b0382166001600160801b0381036149e0576149e0614910565b60010192915050565b60208082526003908201526218985960ea1b604082015260600190565b600060208284031215614a1857600080fd5b8151613c3181614174565b600060208284031215614a3557600080fd5b815160ff81168114613c3157600080fd5b60ff8181168382160190811115610fbf57610fbf614910565b6000808335601e19843603018112614a7657600080fd5b8301803591506001600160401b03821115614a9057600080fd5b60200191503681900382131561411257600080fd5b601f821115613ffc57806000526020600020601f840160051c81016020851015614acc5750805b601f840160051c820191505b81811015612f325760008155600101614ad8565b6001600160401b03831115614b0357614b036142af565b614b1783614b11835461494c565b83614aa5565b6000601f841160018114614b4b5760008515614b335750838201355b600019600387901b1c1916600186901b178355612f32565b600083815260209020601f19861690835b82811015614b7c5786850135825560209485019460019092019101614b5c565b5086821015614b995760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81516001600160401b03811115614bc457614bc46142af565b614bd881614bd2845461494c565b84614aa5565b6020601f821160018114614c0c5760008315614bf45750848201515b600019600385901b1c1916600184901b178455612f32565b600084815260208120601f198516915b82811015614c3c5787850151825560209485019460019092019101614c1c565b5084821015614c5a5786840151600019600387901b60f8161c191681555b50505050600190811b01905550565b80516141d0816140b9565b60006001600160401b03821115614c8d57614c8d6142af565b5060051b60200190565b600082601f830112614ca857600080fd5b8151614cbb614cb682614c74565b6142c5565b8082825260208201915060208360051b860101925085831115614cdd57600080fd5b602085015b83811015614d03578051614cf581614174565b835260209283019201614ce2565b5095945050505050565b600082601f830112614d1e57600080fd5b8151614d2c614cb682614c74565b8082825260208201915060208360051b860101925085831115614d4e57600080fd5b602085015b83811015614d03578051835260209283019201614d53565b600080600080600080600080610100898b031215614d8857600080fd5b614d9189614c69565b60208a015160408b015160608c015160808d0151939b50919950975095506001600160401b03811115614dc357600080fd5b614dcf8b828c01614c97565b94505060a08901516001600160401b03811115614deb57600080fd5b614df78b828c01614d0d565b93505060c08901516001600160401b03811115614e1357600080fd5b614e1f8b828c01614d0d565b92505060e08901516001600160401b03811115614e3b57600080fd5b614e478b828c01614d0d565b9150509295985092959890939650565b6001815b6001841115614e9257808504811115614e7657614e76614910565b6001841615614e8457908102905b60019390931c928002614e5b565b935093915050565b600082614ea957506001610fbf565b81614eb657506000610fbf565b8160018114614ecc5760028114614ed657614ef2565b6001915050610fbf565b60ff841115614ee757614ee7614910565b50506001821b610fbf565b5060208310610133831016604e8410600b8410161715614f15575081810a610fbf565b614f226000198484614e57565b8060001904821115614f3657614f36614910565b029392505050565b6000613c318383614e9a565b8082028115828204841417610fbf57610fbf614910565b600082614f7e57634e487b7160e01b600052601260045260246000fd5b500490565b6000808354614f918161494c565b600182168015614fa85760018114614fbd57614357565b60ff1983168652811515820286019350614357565b86600052602060002060005b83811015614fe557815488820152600190910190602001614fc9565b50505093909301949350505050565b6000613c316001600160801b03841683614e9a56fecd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a2646970667358221220c0f59b6beed2bf4213b0ae9cadc167b5b7bca469a5888aeb0247f11e7567cf2e64736f6c634300081e0033