0 txs
0 calls
constructor
constructor(address _pool, address _router, uint256 _protocolFee, uint256 _maxTotalSupply)
functions
accruedProtocolFees0
viewfunction accruedProtocolFees0() view returns (uint256)
accruedProtocolFees1
viewfunction accruedProtocolFees1() view returns (uint256)
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
baseLower
viewfunction baseLower() view returns (int24)
baseUpper
viewfunction baseUpper() view returns (int24)
decimals
viewfunction decimals() view returns (uint8)
getBalance0
viewfunction getBalance0() view returns (uint256)
getBalance1
viewfunction getBalance1() view returns (uint256)
getPositionAmounts
viewfunction getPositionAmounts(int24 tickLower, int24 tickUpper) view returns (uint256 amount0, uint256 amount1)
getTotalAmounts
viewfunction getTotalAmounts() view returns (uint256 total0, uint256 total1)
governance
viewfunction governance() view returns (address)
limitLower
viewfunction limitLower() view returns (int24)
limitUpper
viewfunction limitUpper() view returns (int24)
maxTotalSupply
viewfunction maxTotalSupply() view returns (uint256)
name
viewfunction name() view returns (string)
pendingGovernance
viewfunction pendingGovernance() view returns (address)
pool
viewfunction pool() view returns (address)
protocolFee
viewfunction protocolFee() view returns (uint256)
router
viewfunction router() view returns (address)
routerAddress
viewfunction routerAddress() view returns (address)
SharpeKeeper
viewfunction SharpeKeeper() view returns (address)
symbol
viewfunction symbol() view returns (string)
tickSpacing
viewfunction tickSpacing() view returns (int24)
token0
viewfunction token0() view returns (address)
token0Address
viewfunction token0Address() view returns (address)
token1
viewfunction token1() view returns (address)
token1Address
viewfunction token1Address() view returns (address)
totalSupply
viewfunction totalSupply() view returns (uint256)
acceptGovernance
nonpayablefunction acceptGovernance()
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
collectProtocol
nonpayablefunction collectProtocol(uint256 amount0, uint256 amount1, address to)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
deposit
nonpayablefunction deposit(uint256 amount0Desired, uint256 amount1Desired, uint256 amount0Min, uint256 amount1Min, uint256 swapMin, address to) returns (uint256 shares, uint256 amount0, uint256 amount1)
emergencyBurn
nonpayablefunction emergencyBurn(int24 tickLower, int24 tickUpper, uint128 liquidity)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
rebalance
nonpayablefunction rebalance(int256 swapAmount, uint160 sqrtPriceLimitX96, int24 _baseLower, int24 _baseUpper, int24 _bidLower, int24 _bidUpper, int24 _askLower, int24 _askUpper)
setGovernance
nonpayablefunction setGovernance(address _governance)
setMaxTotalSupply
nonpayablefunction setMaxTotalSupply(uint256 _maxTotalSupply)
setProtocolFee
nonpayablefunction setProtocolFee(uint256 _protocolFee)
setSharpeKeeper
nonpayablefunction setSharpeKeeper(address _SharpeKeeper)
sweep
nonpayablefunction sweep(address token, uint256 amount, address to)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
uniswapV3MintCallback
nonpayablefunction uniswapV3MintCallback(uint256 amount0, uint256 amount1, bytes data)
uniswapV3SwapCallback
nonpayablefunction uniswapV3SwapCallback(int256 amount0Delta, int256 amount1Delta, bytes data)
withdraw
nonpayablefunction withdraw(uint256 shares, uint256 amount0Min, uint256 amount1Min, address to) returns (uint256 amount0, uint256 amount1)
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
CollectFees
event CollectFees(uint256 feesToVault0, uint256 feesToVault1, uint256 feesToProtocol0, uint256 feesToProtocol1)
Deposit
event Deposit(address indexed sender, address indexed to, uint256 shares, uint256 amount0, uint256 amount1)
Snapshot
event Snapshot(int24 tick, uint256 totalAmount0, uint256 totalAmount1, uint256 totalSupply)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Withdraw
event Withdraw(address indexed sender, address indexed to, uint256 shares, uint256 amount0, uint256 amount1)
errors
No errors.
creation bytecode
0x6101806040523480156200001257600080fd5b5060405162005274380380620052748339810160408190526200003591620004c9565b604080518082018252600681526553686172706560d01b6020808301918252835180850190945260048452630534852560e41b9084015281519192916200007f91600391620003e2565b50805162000095906004906020840190620003e2565b50506001600555506001600160601b0319606085811b821660805284901b1660a05260408051630dfe168160e01b815290516001600160a01b03861691630dfe1681916004808301926020929190829003018186803b158015620000f857600080fd5b505afa1580156200010d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001339190620004a5565b6001600160a01b031660c0816001600160a01b031660601b81525050836001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b1580156200018957600080fd5b505afa1580156200019e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001c49190620004a5565b6001600160a01b031660e0816001600160a01b031660601b81525050836001600160a01b0316630dfe16816040518163ffffffff1660e01b815260040160206040518083038186803b1580156200021a57600080fd5b505afa1580156200022f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002559190620004a5565b6001600160a01b0316610120816001600160a01b031660601b81525050836001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015620002ac57600080fd5b505afa158015620002c1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e79190620004a5565b6001600160601b0319606091821b8116610140529084901b1661016052604080516334324e9f60e21b815290516001600160a01b0386169163d0c93a7c916004808301926020929190829003018186803b1580156200034557600080fd5b505afa1580156200035a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000380919062000510565b600290810b900b60e81b6101005260068290556007819055600980546001600160a01b03191633179055620f42408210620003d85760405162461bcd60e51b8152600401620003cf9062000533565b60405180910390fd5b5050505062000595565b828054620003f09062000558565b90600052602060002090601f0160209004810192826200041457600085556200045f565b82601f106200042f57805160ff19168380011785556200045f565b828001600101855582156200045f579182015b828111156200045f57825182559160200191906001019062000442565b506200046d92915062000471565b5090565b5b808211156200046d576000815560010162000472565b80516001600160a01b0381168114620004a057600080fd5b919050565b600060208284031215620004b7578081fd5b620004c28262000488565b9392505050565b60008060008060808587031215620004df578283fd5b620004ea8562000488565b9350620004fa6020860162000488565b6040860151606090960151949790965092505050565b60006020828403121562000522578081fd5b81518060020b8114620004c2578182fd5b6020808252600b908201526a70726f746f636f6c46656560a81b604082015260600190565b6002810460018216806200056d57607f821691505b602082108114156200058f57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160601c60a05160601c60c05160601c60e05160601c6101005160e81c6101205160601c6101405160601c6101605160601c614b2d62000747600039600081816107cc015281816110e801526114d50152600081816111ea0152818161157501526120970152600081816109fd0152818161118801526115d7015260008181611d3f015261252e015260008181610604015281816108730152818161138901528181611469015281816114a8015281816117760152818161189e01528181611d6301528181611f58015281816120680152818161212201526122830152600081816105ca015281816106f5015281816109410152818161107c015281816110bb0152818161134f0152818161173c0152818161186301528181611f1e0152818161202e015281816120e5015261224601526000818161124e0152818161163b01526121c901526000818161072901528181610a9301528181610c8d01528181611b1f01528181611bc201528181611ff1015281816122060152818161264f01528181612713015281816127a80152818161293901528181612a1d01528181612ae40152612d8d0152614b2d6000f3fe608060405234801561001057600080fd5b50600436106102955760003560e01c8063888a913411610167578063d0c93a7c116100ce578063dd62ed3e11610087578063dd62ed3e1461051e578063eae989a214610531578063f39c38a014610539578063f887ea4014610541578063fa08274314610549578063fa461e331461055157610295565b8063d0c93a7c146104cd578063d21220a7146104d5578063d331bef7146104dd578063d3487997146104f0578063d7cb416f14610503578063dc2c256f1461050b57610295565b8063a91ef6eb11610120578063a91ef6eb14610463578063ab033ea914610484578063abbffcb914610497578063b0e21e8a146104aa578063b3a3d00c146104b2578063c4a7761e146104c557610295565b8063888a9134146104035780639130700e1461040b57806395d89b411461042d578063a00fa77f14610435578063a457c2d71461043d578063a9059cbb1461045057610295565b8063313ce5671161020b5780635aa6e675116101c45780635aa6e675146103b2578063629d9405146103ba57806370a08231146103c2578063787dce3d146103d55780637ff36fbe146103e857806387e5e083146103f057610295565b8063313ce5671461035f5780633268cc5614610374578063395093511461037c5780633f3e4c111461038f57806341aec538146103a257806351e87af7146103aa57610295565b80630f35bcac1161025d5780630f35bcac1461030a57806316f0115b1461031f57806318160ddd14610327578063238efcbc1461033c57806323b872dd146103445780632ab4d0521461035757610295565b80630430c1301461029a57806306fdde03146102af578063095ea7b3146102cd5780630c42383a146102ed5780630dfe168114610302575b600080fd5b6102ad6102a8366004613eb4565b610564565b005b6102b7610630565b6040516102c49190614138565b60405180910390f35b6102e06102db366004613b5f565b6106c2565b6040516102c491906140d0565b6102f56106e4565b6040516102c49190613fc6565b6102f56106f3565b610312610717565b6040516102c491906140e4565b6102f5610727565b61032f61074b565b6040516102c491906140db565b6102ad610751565b6102e0610352366004613b1f565b61078f565b61032f6107bf565b6103676107c5565b6040516102c4919061491f565b6102f56107ca565b6102e061038a366004613b5f565b6107ee565b6102ad61039d366004613e84565b61083a565b61032f610869565b610312610918565b6102f5610928565b61032f610937565b61032f6103d0366004613acb565b61098b565b6102ad6103e3366004613e84565b6109aa565b6102f56109fb565b6102ad6103fe366004613cc5565b610a1f565b610312610ea8565b61041e610419366004613f21565b610eb8565b6040516102c4939291906148ee565b6102b761195c565b61032f61196b565b6102e061044b366004613b5f565b611971565b6102e061045e366004613b5f565b6119dd565b610476610471366004613be5565b6119f5565b6040516102c492919061486e565b6102ad610492366004613acb565b611a92565b6102ad6104a5366004613c12565b611ade565b61032f611c5e565b6102ad6104c0366004613acb565b611c64565b610476611cb0565b610312611d3d565b6102f5611d61565b6104766104eb366004613ee1565b611d85565b6102ad6104fe366004613c74565b611fe6565b6102f5612095565b6102ad610519366004613ba4565b6120b9565b61032f61052c366004613ae7565b612187565b61032f6121b2565b6102f56121b8565b6102f56121c7565b6103126121eb565b6102ad61055f366004613c74565b6121fb565b6009546001600160a01b031633146105975760405162461bcd60e51b815260040161058e90614548565b60405180910390fd5b600b546105a490846122aa565b600b55600c546105b490836122aa565b600c5582156105f1576105f16001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682856122b6565b811561062b5761062b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001682846122b6565b505050565b60606003805461063f906149e3565b80601f016020809104026020016040519081016040528092919081815260200182805461066b906149e3565b80156106b85780601f1061068d576101008083540402835291602001916106b8565b820191906000526020600020905b81548152906001019060200180831161069b57829003601f168201915b5050505050905090565b6000806106cd61230c565b90506106da818585612310565b5060019392505050565b6008546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a54600160e81b900460020b81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025490565b600a546001600160a01b0316331461077b5760405162461bcd60e51b815260040161058e90614450565b600980546001600160a01b03191633179055565b60008061079a61230c565b90506107a78582856123c4565b6107b2858585612408565b60019150505b9392505050565b60075481565b601290565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000806107f961230c565b6001600160a01b038082166000908152600160209081526040808320938916835292905220549091506106da908290869061083590879061492d565b612310565b6009546001600160a01b031633146108645760405162461bcd60e51b815260040161058e90614548565b600755565b6000610913600c547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016108bd9190613fc6565b60206040518083038186803b1580156108d557600080fd5b505afa1580156108e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061090d9190613e9c565b906122aa565b905090565b600a54600160d01b900460020b81565b6009546001600160a01b031681565b6000610913600b547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016108bd9190613fc6565b6001600160a01b0381166000908152602081905260409020545b919050565b6009546001600160a01b031633146109d45760405162461bcd60e51b815260040161058e90614548565b620f424081106109f65760405162461bcd60e51b815260040161058e906144a7565b600655565b7f000000000000000000000000000000000000000000000000000000000000000081565b60026005541415610a425760405162461bcd60e51b815260040161058e906147bb565b60026005556008546001600160a01b03163314610a715760405162461bcd60e51b815260040161058e90614522565b610a7b868661252c565b610a85848461252c565b610a8f828261252c565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015610aea57600080fd5b505afa158015610afe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b229190613df3565b50505050509150508060020b8460020b1315610b505760405162461bcd60e51b815260040161058e906143b3565b8060020b8360020b13610b755760405162461bcd60e51b815260040161058e90614655565b600a54600090610b9a90600160a01b8104600290810b91600160b81b9004900b612621565b5050600a54929350600092610bc79250600160d01b8104600290810b9250600160e81b909104900b612621565b5050600a54929350610bf392600160a01b8104600290810b9350600160b81b909104900b9050846126e8565b5050600a54610c1b9250600160d01b8104600290810b9250600160e81b909104900b836126e8565b5050505050506000610c2b610937565b90506000610c37610869565b90507f210f60adf1db7a02e9db9a49ec7c2eb2060c516cbcfd01a0c05288144738ee5d838383610c6561074b565b604051610c759493929190614118565b60405180910390a18a15610d54576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663128acb083060008e1380610cca57610cc58f614a75565b610ccc565b8e5b8e6040518563ffffffff1660e01b8152600401610cec9493929190613ffe565b6040805180830381600087803b158015610d0557600080fd5b505af1158015610d19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d3d9190613c51565b5050610d47610937565b9150610d51610869565b90505b6000610d628a8a8585612934565b9050610d6f8a8a836129f7565b600a805460028c810b62ffffff908116600160a01b0262ffffff60a01b19928e900b909116600160b81b0262ffffff60b81b199093169290921716179055610db5610937565b9250610dbf610869565b91506000610dcf89898686612934565b90506000610ddf88888787612934565b9050806001600160801b0316826001600160801b03161115610e4957610e068a8a846129f7565b600a805460028c810b62ffffff908116600160d01b0262ffffff60d01b19928e900b909116600160e81b026001600160e81b039093169290921716179055610e93565b610e548888836129f7565b600a805460028a810b62ffffff908116600160d01b0262ffffff60d01b19928c900b909116600160e81b026001600160e81b0390931692909217161790555b50506001600555505050505050505050505050565b600a54600160b81b900460020b81565b600080600060026005541415610ee05760405162461bcd60e51b815260040161058e906147bb565b600260055588151580610ef35750600088115b610f0f5760405162461bcd60e51b815260040161058e9061441b565b6001600160a01b03841615801590610f3057506001600160a01b0384163014155b610f4c5760405162461bcd60e51b815260040161058e90614214565b600a54610f6e90600160a01b8104600290810b91600160b81b9004900b612aa9565b600a54610f9090600160d01b8104600290810b91600160e81b9004900b612aa9565b610f9a8989612b1e565b9194509250905086821015610fc15760405162461bcd60e51b815260040161058e906141ae565b85811015610fe15760405162461bcd60e51b815260040161058e90614631565b8261183057600082118015610ff4575080155b806110085750600081118015611008575081155b6110245760405162461bcd60e51b815260040161058e9061447b565b600061102e61074b565b905060008061103b611cb0565b9150915060008511801561104d575083155b1561143f57600061105f866002612c81565b9050600061106d87836122aa565b90506110a46001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308a612c8d565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b390611112907f00000000000000000000000000000000000000000000000000000000000000009085906004016140b7565b602060405180830381600087803b15801561112c57600080fd5b505af1158015611140573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111649190613b8a565b506040805160028082526060820183526000926020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106111c857634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061122a57634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663472b43f3848e85306040518563ffffffff1660e01b815260040161129e949392919061487c565b602060405180830381600087803b1580156112b857600080fd5b505af11580156112cc573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112f09190613e9c565b90506112fc8482612b1e565b919b5099509750896113205760405162461bcd60e51b815260040161058e906142d8565b600061132c858b6122aa565b9050600061133a838b6122aa565b90508115611376576113766001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168e846122b6565b80156113b0576113b06001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168e836122b6565b6113ba8d8d612cae565b8c6001600160a01b0316336001600160a01b03167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68e8e8e604051611401939291906148ee565b60405180910390a36007546114168a8e612d7a565b11156114345760405162461bcd60e51b815260040161058e90614749565b505050505050611828565b600061144c856002612c81565b9050600061145a86836122aa565b90506114916001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333089612c8d565b60405163095ea7b360e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063095ea7b3906114ff907f00000000000000000000000000000000000000000000000000000000000000009085906004016140b7565b602060405180830381600087803b15801561151957600080fd5b505af115801561152d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115519190613b8a565b506040805160028082526060820183526000926020830190803683370190505090507f0000000000000000000000000000000000000000000000000000000000000000816000815181106115b557634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061161757634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b03168152505060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663472b43f3848e85306040518563ffffffff1660e01b815260040161168b949392919061487c565b602060405180830381600087803b1580156116a557600080fd5b505af11580156116b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116dd9190613e9c565b90506116e98185612b1e565b919b50995097508961170d5760405162461bcd60e51b815260040161058e906142d8565b6000611719828b6122aa565b90506000611727868b6122aa565b90508115611763576117636001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168e846122b6565b801561179d5761179d6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168e836122b6565b6117a78d8d612cae565b8c6001600160a01b0316336001600160a01b03167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68e8e8e6040516117ee939291906148ee565b60405180910390a36007546118038a8e612d7a565b11156118215760405162461bcd60e51b815260040161058e90614749565b5050505050505b505050611948565b600083116118505760405162461bcd60e51b815260040161058e9061456c565b811561188b5761188b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085612c8d565b80156118c6576118c66001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612c8d565b6118d08484612cae565b836001600160a01b0316336001600160a01b03167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f6858585604051611917939291906148ee565b60405180910390a360075461192a61074b565b11156119485760405162461bcd60e51b815260040161058e90614749565b600160058190555096509650969350505050565b60606004805461063f906149e3565b600c5481565b60008061197c61230c565b6001600160a01b03808216600090815260016020908152604080832093891683529290522054909150838110156119c55760405162461bcd60e51b815260040161058e906147f2565b6119d28286868403612310565b506001949350505050565b6000806119e861230c565b90506106da818585612408565b6000806000806000611a078787612621565b9450945050509250611a1a878785612d86565b6006549196509450600090611a3390620f4240906122aa565b9050611a5f611a58620f4240611a526001600160801b03871685612e4d565b90612c81565b8790612d7a565b9550611a85611a7e620f4240611a526001600160801b03861685612e4d565b8690612d7a565b9450505050509250929050565b6009546001600160a01b03163314611abc5760405162461bcd60e51b815260040161058e90614548565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6009546001600160a01b03163314611b085760405162461bcd60e51b815260040161058e90614548565b60405163a34123a760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a34123a790611b58908690869086906004016140f2565b6040805180830381600087803b158015611b7157600080fd5b505af1158015611b85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba99190613c51565b50506040516309e3d67b60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634f1eb3d890611c06903090879087906001600160801b0390819060040161407a565b6040805180830381600087803b158015611c1f57600080fd5b505af1158015611c33573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c579190613d64565b5050505050565b60065481565b6009546001600160a01b03163314611c8e5760405162461bcd60e51b815260040161058e90614548565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600a54600090819081908190611cdb90600160a01b8104600290810b91600160b81b9004900b6119f5565b600a5491935091506000908190611d0790600160d01b8104600290810b91600160e81b9004900b6119f5565b91509150611d2182611d1b86611d1b610937565b90612d7a565b9550611d3381611d1b85611d1b610869565b9450505050509091565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008060026005541415611dab5760405162461bcd60e51b815260040161058e906147bb565b600260055585611dcd5760405162461bcd60e51b815260040161058e9061456c565b6001600160a01b03831615801590611dee57506001600160a01b0383163014155b611e0a5760405162461bcd60e51b815260040161058e90614214565b6000611e1461074b565b9050611e203388612e59565b6000611e3882611a528a611e32610937565b90612e4d565b90506000611e4c83611a528b611e32610869565b600a549091506000908190611e7890600160a01b8104600290810b91600160b81b9004900b8d88612f4a565b600a5491935091506000908190611ea690600160d01b8104600290810b91600160e81b9004900b8f8a612f4a565b9092509050611eb982611d1b8887612d7a565b9850611ec981611d1b8786612d7a565b97508b891015611eeb5760405162461bcd60e51b815260040161058e906141ae565b8a881015611f0b5760405162461bcd60e51b815260040161058e90614631565b8815611f4557611f456001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168b8b6122b6565b8715611f7f57611f7f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168b8a6122b6565b896001600160a01b0316336001600160a01b03167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8f8c8c604051611fc6939291906148ee565b60405180910390a350505050505050600160058190555094509492505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461201b57600080fd5b8315612055576120556001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633866122b6565b821561208f5761208f6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633856122b6565b50505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6009546001600160a01b031633146120e35760405162461bcd60e51b815260040161058e90614548565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b03161415801561215757507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b6121735760405162461bcd60e51b815260040161058e906144cc565b61062b6001600160a01b03841682846122b6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600b5481565b600a546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a54600160a01b900460020b81565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461223057600080fd5b600084131561226d5761226d6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633866122b6565b600083131561208f5761208f6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633856122b6565b60006107b882846149a0565b61062b8363a9059cbb60e01b84846040516024016122d59291906140b7565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152612ff0565b3390565b6001600160a01b0383166123365760405162461bcd60e51b815260040161058e906146a2565b6001600160a01b03821661235c5760405162461bcd60e51b815260040161058e9061425f565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906123b79085906140db565b60405180910390a3505050565b60006123d08484612187565b9050600019811461208f57818110156123fb5760405162461bcd60e51b815260040161058e906142ff565b61208f8484848403612310565b6001600160a01b03831661242e5760405162461bcd60e51b815260040161058e906145ec565b6001600160a01b0382166124545760405162461bcd60e51b815260040161058e9061416b565b61245f83838361062b565b6001600160a01b038316600090815260208190526040902054818110156124985760405162461bcd60e51b815260040161058e9061436d565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906124cf90849061492d565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161251991906140db565b60405180910390a361208f84848461062b565b7f0000000000000000000000000000000000000000000000000000000000000000600282810b9084900b126125735760405162461bcd60e51b815260040161058e90614230565b620d89e719600284900b121561259b5760405162461bcd60e51b815260040161058e90614677565b6125a8620d89e719614a54565b60020b8260020b13156125cd5760405162461bcd60e51b815260040161058e906146e6565b6125d78184614a1e565b60020b156125f75760405162461bcd60e51b815260040161058e906142a1565b6126018183614a1e565b60020b1561062b5760405162461bcd60e51b815260040161058e90614336565b60008060008060008061263530898961307f565b60405163514ea4bf60e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063514ea4bf906126849084906004016140db565b60a06040518083038186803b15801561269c57600080fd5b505afa1580156126b0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d49190613d92565b939c929b5090995097509095509350505050565b60008080806001600160801b038516156127a35760405163a34123a760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a34123a79061274c908a908a908a906004016140f2565b6040805180830381600087803b15801561276557600080fd5b505af1158015612779573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279d9190613c51565b90945092505b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634f1eb3d8308b8b6001600160801b03806040518663ffffffff1660e01b815260040161280195949392919061407a565b6040805180830381600087803b15801561281a57600080fd5b505af115801561282e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128529190613d64565b6001600160801b03918216935016905061286c82876122aa565b935061287881866122aa565b600654909350600090819080156128e95761289a620f4240611a528984612e4d565b92506128ad620f4240611a528884612e4d565b91506128b987846122aa565b96506128c586836122aa565b600b549096506128d59084612d7a565b600b55600c546128e59083612d7a565b600c555b7f1ac56d7e866e3f5ea9aa92aa11758ead39a0a5f013f3fefb0f47cb9d008edd278787858560405161291e9493929190614904565b60405180910390a1505050505093509350935093565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561299057600080fd5b505afa1580156129a4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129c89190613df3565b50505050505090506129ed816129dd886130b5565b6129e6886130b5565b878761348f565b9695505050505050565b6001600160801b0381161561062b57604051633c8a7d8d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633c8a7d8d90612a58903090879087908790600401614038565b6040805180830381600087803b158015612a7157600080fd5b505af1158015612a85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c579190613c51565b6000612ab58383612621565b5050505090506000816001600160801b0316111561062b5760405163a34123a760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a34123a790612a5890869086906000906004016140f2565b600080600080612b2c61074b565b9050600080612b39611cb0565b915091508260001480612b4c5750600082115b80612b575750600081115b612b7157634e487b7160e01b600052600160045260246000fd5b82612b8d57879450869350612b868585613553565b9550612c77565b81612ba357869350612b8681611a528686612e4d565b80612bb957879450612b8682611a528786612e4d565b6000881180612bc85750600087115b612be45760405162461bcd60e51b815260040161058e906144eb565b6000612c02612bf38a84612e4d565b612bfd8a86612e4d565b61356a565b905080612c185788955087945060009650612c75565b60008111612c385760405162461bcd60e51b815260040161058e906145cd565b612c4b6001611d1b84611a5285846122aa565b9550612c606001611d1b85611a5285846122aa565b9450612c7282611a5285818589612e4d565b96505b505b5050509250925092565b60006107b88284614945565b61208f846323b872dd60e01b8585856040516024016122d593929190613fda565b6001600160a01b038216612cd45760405162461bcd60e51b815260040161058e90614837565b612ce06000838361062b565b8060026000828254612cf2919061492d565b90915550506001600160a01b03821660009081526020819052604081208054839290612d1f90849061492d565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612d629085906140db565b60405180910390a3612d766000838361062b565b5050565b60006107b8828461492d565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015612de457600080fd5b505afa158015612df8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e1c9190613df3565b5050505050509050612e4081612e31886130b5565b612e3a886130b5565b87613579565b9250925050935093915050565b60006107b88284614959565b6001600160a01b038216612e7f5760405162461bcd60e51b815260040161058e9061458c565b612e8b8260008361062b565b6001600160a01b03821660009081526020819052604090205481811015612ec45760405162461bcd60e51b815260040161058e906141d2565b6001600160a01b0383166000908152602081905260408120838303905560028054849290612ef39084906149a0565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612f369086906140db565b60405180910390a361062b8360008461062b565b6000806000612f598787612621565b5050505090506000612f8185611a5288856001600160801b0316612e4d90919063ffffffff16565b90508015612fe557600080600080612fa28c8c612f9d88613615565b6126e8565b92965090945092509050612fc4612fbd8a611a52858e612e4d565b8590612d7a565b9750612fde612fd78a611a52848e612e4d565b8490612d7a565b9650505050505b505094509492505050565b6000613045826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136409092919063ffffffff16565b80519091501561062b57808060200190518101906130639190613b8a565b61062b5760405162461bcd60e51b815260040161058e90614771565b600083838360405160200161309693929190613f75565b6040516020818303038152906040528051906020012090509392505050565b60008060008360020b126130cc578260020b6130d9565b8260020b6130d990614a75565b90506000600182166130ef57600160801b613101565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561314057608061313b826ffff97272373d413259a46990580e213a614959565b901c90505b600482161561316a576080613165826ffff2e50f5f656932ef12357cf3c7fdcc614959565b901c90505b600882161561319457608061318f826fffe5caca7e10e4e61c3624eaa0941cd0614959565b901c90505b60108216156131be5760806131b9826fffcb9843d60f6159c9db58835c926644614959565b901c90505b60208216156131e85760806131e3826fff973b41fa98c081472e6896dfb254c0614959565b901c90505b604082161561321257608061320d826fff2ea16466c96a3843ec78b326b52861614959565b901c90505b608082161561323c576080613237826ffe5dee046a99a2a811c461f1969c3053614959565b901c90505b610100821615613267576080613262826ffcbe86c7900a88aedcffc83b479aa3a4614959565b901c90505b61020082161561329257608061328d826ff987a7253ac413176f2b074cf7815e54614959565b901c90505b6104008216156132bd5760806132b8826ff3392b0822b70005940c7a398e4b70f3614959565b901c90505b6108008216156132e85760806132e3826fe7159475a2c29b7443b29c7fa6e889d9614959565b901c90505b61100082161561331357608061330e826fd097f3bdfd2022b8845ad8f792aa5825614959565b901c90505b61200082161561333e576080613339826fa9f746462d870fdf8a65dc1f90e061e5614959565b901c90505b614000821615613369576080613364826f70d869a156d2a1b890bb3df62baf32f7614959565b901c90505b61800082161561339457608061338f826f31be135f97d08fd981231505542fcfa6614959565b901c90505b620100008216156133c05760806133bb826f09aa508b5b7a84e1c677de54f3e99bc9614959565b901c90505b620200008216156133eb5760806133e6826e5d6af8dedb81196699c329225ee604614959565b901c90505b62040000821615613415576080613410826d2216e584f5fa1ea926041bedfe98614959565b901c90505b6208000082161561343d576080613438826b048a170391f7dc42444e8fa2614959565b901c90505b60008460020b13156134585761345581600019614945565b90505b61346764010000000082614a40565b15613473576001613476565b60005b6134879060ff16602083901c61492d565b949350505050565b6000836001600160a01b0316856001600160a01b031611156134af579293925b846001600160a01b0316866001600160a01b0316116134da576134d385858561364f565b905061354a565b836001600160a01b0316866001600160a01b0316101561353c57600061350187868661364f565b905060006135108789866136b9565b9050806001600160801b0316826001600160801b0316106135315780613533565b815b9250505061354a565b6135478585846136b9565b90505b95945050505050565b60008183101561356357816107b8565b5090919050565b600081831061356357816107b8565b600080836001600160a01b0316856001600160a01b0316111561359a579293925b846001600160a01b0316866001600160a01b0316116135c5576135be8585856136ef565b915061360c565b836001600160a01b0316866001600160a01b031610156135fe576135ea8685856136ef565b91506135f7858785613762565b905061360c565b613609858585613762565b90505b94509492505050565b60006001600160801b0382111561363c57634e487b7160e01b600052600160045260246000fd5b5090565b606061348784846000856137ac565b6000826001600160a01b0316846001600160a01b0316111561366f579192915b6000613692856001600160a01b0316856001600160a01b0316600160601b61386c565b905061354a6136b484836136a68989614978565b6001600160a01b031661386c565b6139e2565b6000826001600160a01b0316846001600160a01b031611156136d9579192915b6134876136b483600160601b6136a68888614978565b6000826001600160a01b0316846001600160a01b0316111561370f579192915b6001600160a01b0384166137586fffffffffffffffffffffffffffffffff60601b606085901b166137408787614978565b6001600160a01b0316866001600160a01b031661386c565b6134879190614945565b6000826001600160a01b0316846001600160a01b03161115613782579192915b6134876001600160801b0383166137998686614978565b6001600160a01b0316600160601b61386c565b6060824710156137ce5760405162461bcd60e51b815260040161058e906143d5565b6137d7856139f8565b6137f35760405162461bcd60e51b815260040161058e90614712565b600080866001600160a01b0316858760405161380f9190613faa565b60006040518083038185875af1925050503d806000811461384c576040519150601f19603f3d011682016040523d82523d6000602084013e613851565b606091505b5091509150613861828286613a29565b979650505050505050565b60008080600019858709868602925082811090839003039050806138a2576000841161389757600080fd5b5082900490506107b8565b8084116138ae57600080fd5b60008486880980840393811190920391905060006138ce8619600161492d565b86169586900495938490049360008190030460010190506138ef8184614959565b909317926000613900876003614959565b600218905061390f8188614959565b61391a9060026149a0565b6139249082614959565b90506139308188614959565b61393b9060026149a0565b6139459082614959565b90506139518188614959565b61395c9060026149a0565b6139669082614959565b90506139728188614959565b61397d9060026149a0565b6139879082614959565b90506139938188614959565b61399e9060026149a0565b6139a89082614959565b90506139b48188614959565b6139bf9060026149a0565b6139c99082614959565b90506139d58186614959565b9998505050505050505050565b806001600160801b03811681146109a557600080fd5b600080826001600160a01b0316803b806020016040519081016040528181526000908060200190933c511192915050565b60608315613a385750816107b8565b825115613a485782518084602001fd5b8160405162461bcd60e51b815260040161058e9190614138565b805180151581146109a557600080fd5b60008083601f840112613a83578182fd5b50813567ffffffffffffffff811115613a9a578182fd5b602083019150836020828501011115613ab257600080fd5b9250929050565b805161ffff811681146109a557600080fd5b600060208284031215613adc578081fd5b81356107b881614abb565b60008060408385031215613af9578081fd5b8235613b0481614abb565b91506020830135613b1481614abb565b809150509250929050565b600080600060608486031215613b33578081fd5b8335613b3e81614abb565b92506020840135613b4e81614abb565b929592945050506040919091013590565b60008060408385031215613b71578182fd5b8235613b7c81614abb565b946020939093013593505050565b600060208284031215613b9b578081fd5b6107b882613a62565b600080600060608486031215613bb8578283fd5b8335613bc381614abb565b9250602084013591506040840135613bda81614abb565b809150509250925092565b60008060408385031215613bf7578182fd5b8235613c0281614ad3565b91506020830135613b1481614ad3565b600080600060608486031215613c26578283fd5b8335613c3181614ad3565b92506020840135613c4181614ad3565b91506040840135613bda81614ae2565b60008060408385031215613c63578182fd5b505080516020909101519092909150565b60008060008060608587031215613c89578182fd5b8435935060208501359250604085013567ffffffffffffffff811115613cad578283fd5b613cb987828801613a72565b95989497509550505050565b600080600080600080600080610100898b031215613ce1578586fd5b883597506020890135613cf381614abb565b96506040890135613d0381614ad3565b95506060890135613d1381614ad3565b94506080890135613d2381614ad3565b935060a0890135613d3381614ad3565b925060c0890135613d4381614ad3565b915060e0890135613d5381614ad3565b809150509295985092959890939650565b60008060408385031215613d76578182fd5b8251613d8181614ae2565b6020840151909250613b1481614ae2565b600080600080600060a08688031215613da9578283fd5b8551613db481614ae2565b8095505060208601519350604086015192506060860151613dd481614ae2565b6080870151909250613de581614ae2565b809150509295509295909350565b600080600080600080600060e0888a031215613e0d578081fd5b8751613e1881614abb565b6020890151909750613e2981614ad3565b9550613e3760408901613ab9565b9450613e4560608901613ab9565b9350613e5360808901613ab9565b925060a088015160ff81168114613e68578182fd5b9150613e7660c08901613a62565b905092959891949750929550565b600060208284031215613e95578081fd5b5035919050565b600060208284031215613ead578081fd5b5051919050565b600080600060608486031215613ec8578081fd5b83359250602084013591506040840135613bda81614abb565b60008060008060808587031215613ef6578182fd5b8435935060208501359250604085013591506060850135613f1681614abb565b939692955090935050565b60008060008060008060c08789031215613f39578384fd5b863595506020870135945060408701359350606087013592506080870135915060a0870135613f6781614abb565b809150509295509295509295565b60609390931b6bffffffffffffffffffffffff19168352600291820b60e890811b6014850152910b901b6017820152601a0190565b60008251613fbc8184602087016149b7565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03948516815292151560208401526040830191909152909116606082015260a06080820181905260009082015260c00190565b6001600160a01b03949094168452600292830b6020850152910b60408301526001600160801b0316606082015260a06080820181905260009082015260c00190565b6001600160a01b03959095168552600293840b60208601529190920b60408401526001600160801b03918216606084015216608082015260a00190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60029190910b815260200190565b600293840b81529190920b60208201526001600160801b03909116604082015260600190565b60029490940b845260208401929092526040830152606082015260800190565b60006020825282518060208401526141578160408501602087016149b7565b601f01601f19169190910160400192915050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252600a908201526930b6b7bab73a1826b4b760b11b604082015260600190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b602080825260029082015261746f60f01b604082015260600190565b6020808252601590820152743a34b1b5a637bbb2b9101e103a34b1b5aab83832b960591b604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526017908201527f7469636b4c6f7765722025207469636b53706163696e67000000000000000000604082015260600190565b6020808252600d908201526c7377617070656453686172657360981b604082015260600190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b60208082526017908201527f7469636b55707065722025207469636b53706163696e67000000000000000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6020808252600890820152673134b22ab83832b960c11b604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b6020808252818101527f616d6f756e743044657369726564206f7220616d6f756e743144657369726564604082015260600190565b60208082526011908201527070656e64696e67476f7665726e616e636560781b604082015260600190565b602080825260129082015271616d6f756e7430206f7220616d6f756e743160701b604082015260600190565b6020808252600b908201526a70726f746f636f6c46656560a81b604082015260600190565b6020808252600590820152643a37b5b2b760d91b604082015260600190565b6020808252601b908201527f61746c65617374206f6e6520746f6b656e206973206e65656465640000000000604082015260600190565b6020808252600c908201526b29b430b93832a5b2b2b832b960a11b604082015260600190565b6020808252600a9082015269676f7665726e616e636560b01b604082015260600190565b60208082526006908201526573686172657360d01b604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526005908201526463726f737360d81b604082015260600190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252600a908201526930b6b7bab73a18a6b4b760b11b604082015260600190565b60208082526008908201526730b9b5a637bbb2b960c11b604082015260600190565b6020808252601190820152707469636b4c6f77657220746f6f206c6f7760781b604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601290820152710e8d2c6d6aae0e0cae440e8dede40d0d2ced60731b604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252600e908201526d6d6178546f74616c537570706c7960901b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b918252602082015260400190565b600060808201868352602086818501526080604085015281865180845260a0860191508288019350845b818110156148cb5784516001600160a01b0316835293830193918301916001016148a6565b50506001600160a01b039590951660609490940193909352509195945050505050565b9283526020830191909152604082015260600190565b93845260208401929092526040830152606082015260800190565b60ff91909116815260200190565b6000821982111561494057614940614a8f565b500190565b60008261495457614954614aa5565b500490565b600081600019048311821515161561497357614973614a8f565b500290565b60006001600160a01b038381169083168181101561499857614998614a8f565b039392505050565b6000828210156149b2576149b2614a8f565b500390565b60005b838110156149d25781810151838201526020016149ba565b8381111561208f5750506000910152565b6002810460018216806149f757607f821691505b60208210811415614a1857634e487b7160e01b600052602260045260246000fd5b50919050565b60008260020b80614a3157614a31614aa5565b808360020b0791505092915050565b600082614a4f57614a4f614aa5565b500690565b60008160020b627fffff19811415614a6e57614a6e614a8f565b9003919050565b6000600160ff1b821415614a8b57614a8b614a8f565b0390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b6001600160a01b0381168114614ad057600080fd5b50565b8060020b8114614ad057600080fd5b6001600160801b0381168114614ad057600080fdfea2646970667358221220717270ba6ada3d2c8cb05876ac789ad44f5f7a2ada81b7f4508efea0a3d3d5f164736f6c63430008000033000000000000000000000000dac8a8e6dbf8c690ec6815e0ff03491b2770255d00000000000000000000000068b3465833fb72a70ecdf485e0e4c7bd8665fc450000000000000000000000000000000000000000000000000000000000001388000000000000000000000000000000000000000000000000000000012a05f200