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)
SharpeKeeper
viewfunction SharpeKeeper() view returns (address)
symbol
viewfunction symbol() view returns (string)
tickSpacing
viewfunction tickSpacing() view returns (int24)
token0
viewfunction token0() view returns (address)
token1
viewfunction token1() 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, 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, uint8 kind) 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
0x6101206040523480156200001257600080fd5b50604051620055903803806200559083398101604081905262000035916200039b565b604080518082018252600681526553686172706560d01b6020808301918252835180850190945260048452630534852560e41b9084015281519192916200007f91600391620002b4565b50805162000095906004906020840190620002b4565b5050600160055550620f42408210620000cb5760405162461bcd60e51b8152600401620000c29062000405565b60405180910390fd5b6001600160601b0319606085811b821660805284901b166101005260408051630dfe168160e01b815290516001600160a01b03861691630dfe1681916004808301926020929190829003018186803b1580156200012757600080fd5b505afa1580156200013c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000162919062000377565b6001600160a01b031660c0816001600160a01b031660601b81525050836001600160a01b031663d21220a76040518163ffffffff1660e01b815260040160206040518083038186803b158015620001b857600080fd5b505afa158015620001cd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f3919062000377565b6001600160a01b031660e0816001600160a01b031660601b81525050836001600160a01b031663d0c93a7c6040518163ffffffff1660e01b815260040160206040518083038186803b1580156200024957600080fd5b505afa1580156200025e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002849190620003e2565b600290810b900b60e81b60a0526006919091556007555050600980546001600160a01b0319163317905562000467565b828054620002c2906200042a565b90600052602060002090601f016020900481019282620002e6576000855562000331565b82601f106200030157805160ff191683800117855562000331565b8280016001018555821562000331579182015b828111156200033157825182559160200191906001019062000314565b506200033f92915062000343565b5090565b5b808211156200033f576000815560010162000344565b80516001600160a01b03811681146200037257600080fd5b919050565b60006020828403121562000389578081fd5b62000394826200035a565b9392505050565b60008060008060808587031215620003b1578283fd5b620003bc856200035a565b9350620003cc602086016200035a565b6040860151606090960151949790965092505050565b600060208284031215620003f4578081fd5b81518060020b811462000394578182fd5b6020808252600b908201526a70726f746f636f6c46656560a81b604082015260600190565b6002810460018216806200043f57607f821691505b602082108114156200046157634e487b7160e01b600052602260045260246000fd5b50919050565b60805160601c60a05160e81c60c05160601c60e05160601c6101005160601c614f7e6200061260003960008181611ea6015281816123da015281816124ac01526128300152600081816105cd01528181610862015281816109b601528181610a1b01528181610b1701528181610d1001528181610dc301528181610e7301528181610f2301528181610f6401528181610f94015281816111400152818161127f01528181611cc501528181611d6901528181611dff0152611f60015260008181610593015281816106be01528181610883015281816108e80152818161099501528181610add01528181610d3101528181610d7201528181610da201528181610e2201528181610f0201528181610fb5015281816111050152818161134e01528181611d2f01528181611dc20152611f23015260008181611ca10152612ae90152600081816106f20152818161147c0152818161167601528181611a6b01528181611b0e01528181611cf201528181611ee3015281816125b001528181612c0a01528181612cce01528181612d6301528181612f0301528181612fe701526130290152614f7e6000f3fe608060405234801561001057600080fd5b50600436106102745760003560e01c806387e5e08311610151578063c4a7761e116100c3578063dd62ed3e11610087578063dd62ed3e146104e5578063eae989a2146104f8578063f39c38a014610500578063f887ea4014610508578063fa08274314610510578063fa461e331461051857610274565b8063c4a7761e146104a7578063d0c93a7c146104af578063d21220a7146104b7578063d3487997146104bf578063dc2c256f146104d257610274565b8063a9059cbb11610115578063a9059cbb14610440578063a91ef6eb14610453578063ab033ea914610466578063abbffcb914610479578063b0e21e8a1461048c578063b3a3d00c1461049457610274565b806387e5e08314610402578063888a91341461041557806395d89b411461041d578063a00fa77f14610425578063a457c2d71461042d57610274565b80632ab4d052116101ea57806341aec538116101ae57806341aec538146103bc57806351e87af7146103c45780635aa6e675146103cc578063629d9405146103d457806370a08231146103dc578063787dce3d146103ef57610274565b80632ab4d05214610357578063313ce5671461035f578063365d0ed71461037457806339509351146103965780633f3e4c11146103a957610274565b80630f35bcac1161023c5780630f35bcac146102e957806316f0115b146102fe57806318160ddd14610306578063238efcbc1461031b57806323b872dd146103235780632a64bef61461033657610274565b80630430c1301461027957806306fdde031461028e578063095ea7b3146102ac5780630c42383a146102cc5780630dfe1681146102e1575b600080fd5b61028c61028736600461420c565b61052b565b005b6102966105f9565b6040516102a391906144e1565b60405180910390f35b6102bf6102ba366004613dfd565b61068b565b6040516102a39190614479565b6102d46106ad565b6040516102a39190614355565b6102d46106bc565b6102f16106e0565b6040516102a3919061448d565b6102d46106f0565b61030e610714565b6040516102a39190614484565b61028c61071a565b6102bf610331366004613dbd565b610758565b610349610344366004614239565b610788565b6040516102a3929190614d31565b61030e610ba0565b610367610ba6565b6040516102a39190614d5a565b610387610382366004614283565b610bab565b6040516102a393929190614d1b565b6102bf6103a4366004613dfd565b6111fd565b61028c6103b73660046141dc565b611249565b61030e611278565b6102f1611328565b6102d4611338565b61030e611347565b61030e6103ea366004613d69565b611398565b61028c6103fd3660046141dc565b6113b7565b61028c61041036600461401d565b611408565b6102f1611891565b6102966118a1565b61030e6118b0565b6102bf61043b366004613dfd565b6118b6565b6102bf61044e366004613dfd565b611922565b610349610461366004613f3d565b61193a565b61028c610474366004613d69565b6119de565b61028c610487366004613f6a565b611a2a565b61030e611baa565b61028c6104a2366004613d69565b611bb0565b610349611bfc565b6102f1611c9f565b6102d4611cc3565b61028c6104cd366004613fcc565b611ce7565b61028c6104e0366004613e28565b611d96565b61030e6104f3366004613d85565b611e64565b61030e611e8f565b6102d4611e95565b6102d4611ea4565b6102f1611ec8565b61028c610526366004613fcc565b611ed8565b6009546001600160a01b0316331461055e5760405162461bcd60e51b815260040161055590614969565b60405180910390fd5b82600b5461056c9190614ddb565b600b55600c5461057d908390614ddb565b600c5582156105ba576105ba6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168285611f83565b81156105f4576105f46001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168284611f83565b505050565b60606003805461060890614e1e565b80601f016020809104026020016040519081016040528092919081815260200182805461063490614e1e565b80156106815780601f1061065657610100808354040283529160200191610681565b820191906000526020600020905b81548152906001019060200180831161066457829003601f168201915b5050505050905090565b600080610696611fd9565b90506106a3818585611fdd565b5060019392505050565b6008546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a54600160e81b900460020b81565b7f000000000000000000000000000000000000000000000000000000000000000081565b60025490565b600a546001600160a01b031633146107445760405162461bcd60e51b815260040161055590614882565b600980546001600160a01b03191633179055565b600080610763611fd9565b9050610770858285612091565b61077b8585856120d5565b60019150505b9392505050565b600080600260055414156107ae5760405162461bcd60e51b815260040161055590614bbd565b6002600555866107d05760405162461bcd60e51b81526004016105559061498d565b6001600160a01b038416158015906107f157506001600160a01b0384163014155b61080d5760405162461bcd60e51b8152600401610555906145e1565b6000610817610714565b905061082333896121f9565b61082d88826122ea565b9093509150600184600281111561085457634e487b7160e01b600052602160045260246000fd5b14156109655760006108a7837f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006123c9565b90506108b38185614d68565b9350878410156108d55760405162461bcd60e51b815260040161055590614557565b831561090f5761090f6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168786611f83565b856001600160a01b0316336001600160a01b03167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8b87600060405161095793929190614d1b565b60405180910390a350610b8e565b600284600281111561098757634e487b7160e01b600052602160045260246000fd5b1415610a8a5760006109da847f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000006123c9565b90506109e68184614d68565b925086831015610a085760405162461bcd60e51b815260040161055590614a33565b8215610a4257610a426001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168785611f83565b856001600160a01b0316336001600160a01b03167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8b60008760405161095793929190614d1b565b86831015610aaa5760405162461bcd60e51b815260040161055590614557565b85821015610aca5760405162461bcd60e51b815260040161055590614a33565b8215610b0457610b046001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168685611f83565b8115610b3e57610b3e6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000168684611f83565b846001600160a01b0316336001600160a01b03167febff2602b3f468259e1e99f613fed6691f3a6526effe6ef3e768ba7ae7a36c4f8a8686604051610b8593929190614d1b565b60405180910390a35b50600160055590969095509350505050565b60075481565b601290565b600080600060026005541415610bd35760405162461bcd60e51b815260040161055590614bbd565b600260055587151580610be65750600087115b610c025760405162461bcd60e51b81526004016105559061480c565b6001600160a01b03841615801590610c2357506001600160a01b0384163014155b610c3f5760405162461bcd60e51b8152600401610555906145e1565b600a54610c6190600160a01b8104600290810b91600160b81b9004900b612575565b600a54610c8390600160d01b8104600290810b91600160e81b9004900b612575565b610c8d888861263b565b919450925090508261109257600082118015610ca7575080155b80610cbb5750600081118015610cbb575081155b610cd75760405162461bcd60e51b8152600401610555906148ad565b6000610ce1610714565b9050600080610cee611bfc565b91509150600080600087118015610d03575085155b15610efa576000610d55847f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061277f565b90506000610d638287614d68565b9050610d9a6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308c612893565b610deb898e8e7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000868c8c8f6128b4565b50939d50919b509950945092506000610e048a86614ddb565b1115610e4957610e498b610e188b87614ddb565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611f83565b6000610e558985614ddb565b1115610e9a57610e9a8b610e698a86614ddb565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169190611f83565b610ea48b8b612a1b565b8a6001600160a01b0316336001600160a01b03167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68c8c8c604051610eeb93929190614d1b565b60405180910390a35050611088565b6000610f47857f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000061277f565b90506000610f558286614d68565b9050610f8c6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308b612893565b610fdd888d8f7f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000868b8d8f6128b4565b50939d50909b5090995090945092506000610ff88985614ddb565b111561100c5761100c8b610e698a86614ddb565b60006110188a86614ddb565b111561102c5761102c8b610e188b87614ddb565b6110368b8b612a1b565b8a6001600160a01b0316336001600160a01b03167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68c8c8c60405161107d93929190614d1b565b60405180910390a350505b50505050506111ea565b858210156110b25760405162461bcd60e51b815260040161055590614557565b848110156110d25760405162461bcd60e51b815260040161055590614a33565b600083116110f25760405162461bcd60e51b81526004016105559061498d565b811561112d5761112d6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333085612893565b8015611168576111686001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016333084612893565b6111728484612a1b565b836001600160a01b0316336001600160a01b03167f4e2ca0515ed1aef1395f66b5303bb5d6f1bf9d61a353fa53f73f8ac9973fa9f68585856040516111b993929190614d1b565b60405180910390a36007546111cc610714565b11156111ea5760405162461bcd60e51b815260040161055590614b4b565b6001600581905550955095509592505050565b600080611208611fd9565b6001600160a01b038082166000908152600160209081526040808320938916835292905220549091506106a39082908690611244908790614d68565b611fdd565b6009546001600160a01b031633146112735760405162461bcd60e51b815260040161055590614969565b600755565b6000600c547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016112c99190614355565b60206040518083038186803b1580156112e157600080fd5b505afa1580156112f5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061131991906141f4565b6113239190614ddb565b905090565b600a54600160d01b900460020b81565b6009546001600160a01b031681565b6000600b547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166370a08231306040518263ffffffff1660e01b81526004016112c99190614355565b6001600160a01b0381166000908152602081905260409020545b919050565b6009546001600160a01b031633146113e15760405162461bcd60e51b815260040161055590614969565b620f424081106114035760405162461bcd60e51b8152600401610555906148ff565b600655565b6002600554141561142b5760405162461bcd60e51b815260040161055590614bbd565b60026005556008546001600160a01b0316331461145a5760405162461bcd60e51b815260040161055590614943565b6114648686612ae7565b61146e8484612ae7565b6114788282612ae7565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b1580156114d357600080fd5b505afa1580156114e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061150b919061414b565b50505050509150508060020b8460020b13156115395760405162461bcd60e51b8152600401610555906147a4565b8060020b8360020b1361155e5760405162461bcd60e51b815260040161055590614a57565b600a5460009061158390600160a01b8104600290810b91600160b81b9004900b612bdc565b5050600a549293506000926115b09250600160d01b8104600290810b9250600160e81b909104900b612bdc565b5050600a549293506115dc92600160a01b8104600290810b9350600160b81b909104900b905084612ca3565b5050600a546116049250600160d01b8104600290810b9250600160e81b909104900b83612ca3565b5050505050506000611614611347565b90506000611620611278565b90507f210f60adf1db7a02e9db9a49ec7c2eb2060c516cbcfd01a0c05288144738ee5d83838361164e610714565b60405161165e94939291906144c1565b60405180910390a18a1561173d576001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001663128acb083060008e13806116b3576116ae8f614eb0565b6116b5565b8e5b8e6040518563ffffffff1660e01b81526004016116d594939291906143a7565b6040805180830381600087803b1580156116ee57600080fd5b505af1158015611702573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117269190613fa9565b5050611730611347565b915061173a611278565b90505b600061174b8a8a8585612efe565b90506117588a8a83612fc1565b600a805460028c810b62ffffff908116600160a01b0262ffffff60a01b19928e900b909116600160b81b0262ffffff60b81b19909316929092171617905561179e611347565b92506117a8611278565b915060006117b889898686612efe565b905060006117c888888787612efe565b9050806001600160801b0316826001600160801b03161115611832576117ef8a8a84612fc1565b600a805460028c810b62ffffff908116600160d01b0262ffffff60d01b19928e900b909116600160e81b026001600160e81b03909316929092171617905561187c565b61183d888883612fc1565b600a805460028a810b62ffffff908116600160d01b0262ffffff60d01b19928c900b909116600160e81b026001600160e81b0390931692909217161790555b50506001600555505050505050505050505050565b600a54600160b81b900460020b81565b60606004805461060890614e1e565b600c5481565b6000806118c1611fd9565b6001600160a01b038082166000908152600160209081526040808320938916835292905220549091508381101561190a5760405162461bcd60e51b815260040161055590614c4a565b6119178286868403611fdd565b506001949350505050565b60008061192d611fd9565b90506106a38185856120d5565b600080600080600061194c8787612bdc565b945094505050925061195f878785613022565b600654919650945060009061197790620f4240614ddb565b9050620f4240611990826001600160801b038616614d94565b61199a9190614d80565b6119a49087614d68565b9550620f42406119bd826001600160801b038516614d94565b6119c79190614d80565b6119d19086614d68565b9450505050509250929050565b6009546001600160a01b03163314611a085760405162461bcd60e51b815260040161055590614969565b600a80546001600160a01b0319166001600160a01b0392909216919091179055565b6009546001600160a01b03163314611a545760405162461bcd60e51b815260040161055590614969565b60405163a34123a760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a34123a790611aa49086908690869060040161449b565b6040805180830381600087803b158015611abd57600080fd5b505af1158015611ad1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af59190613fa9565b50506040516309e3d67b60e31b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690634f1eb3d890611b52903090879087906001600160801b03908190600401614423565b6040805180830381600087803b158015611b6b57600080fd5b505af1158015611b7f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba391906140bc565b5050505050565b60065481565b6009546001600160a01b03163314611bda5760405162461bcd60e51b815260040161055590614969565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b600a54600090819081908190611c2790600160a01b8104600290810b91600160b81b9004900b61193a565b600a5491935091506000908190611c5390600160d01b8104600290810b91600160e81b9004900b61193a565b915091508184611c61611347565b611c6b9190614d68565b611c759190614d68565b95508083611c81611278565b611c8b9190614d68565b611c959190614d68565b9450505050509091565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000081565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611d1c57600080fd5b8315611d5657611d566001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163386611f83565b8215611d9057611d906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163385611f83565b50505050565b6009546001600160a01b03163314611dc05760405162461bcd60e51b815260040161055590614969565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614158015611e3457507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316836001600160a01b031614155b611e505760405162461bcd60e51b815260040161055590614924565b6105f46001600160a01b0384168284611f83565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b600b5481565b600a546001600160a01b031681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600a54600160a01b900460020b81565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611f0d57600080fd5b6000841315611f4a57611f4a6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163386611f83565b6000831315611d9057611d906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633855b6105f48363a9059cbb60e01b8484604051602401611fa2929190614460565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526130e9565b3390565b6001600160a01b0383166120035760405162461bcd60e51b815260040161055590614aa4565b6001600160a01b0382166120295760405162461bcd60e51b81526004016105559061462c565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590612084908590614484565b60405180910390a3505050565b600061209d8484611e64565b90506000198114611d9057818110156120c85760405162461bcd60e51b8152600401610555906146f0565b611d908484848403611fdd565b6001600160a01b0383166120fb5760405162461bcd60e51b8152600401610555906149ee565b6001600160a01b0382166121215760405162461bcd60e51b815260040161055590614514565b61212c8383836105f4565b6001600160a01b038316600090815260208190526040902054818110156121655760405162461bcd60e51b81526004016105559061475e565b6001600160a01b0380851660009081526020819052604080822085850390559185168152908120805484929061219c908490614d68565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516121e69190614484565b60405180910390a3611d908484846105f4565b6001600160a01b03821661221f5760405162461bcd60e51b8152600401610555906149ad565b61222b826000836105f4565b6001600160a01b038216600090815260208190526040902054818110156122645760405162461bcd60e51b81526004016105559061459f565b6001600160a01b0383166000908152602081905260408120838303905560028054849290612293908490614ddb565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906122d6908690614484565b60405180910390a36105f4836000846105f4565b600080600083856122f9611347565b6123039190614d94565b61230d9190614d80565b90506000848661231b611278565b6123259190614d94565b61232f9190614d80565b600a54909150600090819061235b90600160a01b8104600290810b91600160b81b9004900b8a8a613178565b600a549193509150600090819061238990600160d01b8104600290810b91600160e81b9004900b8c8c613178565b9092509050816123998588614d68565b6123a39190614d68565b9750806123b08487614d68565b6123ba9190614d68565b96505050505050509250929050565b60006123ff6001600160a01b0384167f00000000000000000000000000000000000000000000000000000000000000008661322c565b604080516002808252606082018352600092602083019080368337019050509050838160008151811061244257634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050828160018151811061248457634e487b7160e01b600052603260045260246000fd5b6001600160a01b0392831660209182029290920101526040516338ed173960e01b81526000917f000000000000000000000000000000000000000000000000000000000000000016906338ed1739906124e99089908590879030904290600401614cdf565b600060405180830381600087803b15801561250357600080fd5b505af1158015612517573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261253f9190810190613e69565b90508060018151811061256257634e487b7160e01b600052603260045260246000fd5b6020026020010151925050509392505050565b60006125818383612bdc565b5050505090506000816001600160801b031611156105f45760405163a34123a760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a34123a7906125ea908690869060009060040161449b565b6040805180830381600087803b15801561260357600080fd5b505af1158015612617573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba39190613fa9565b600080600080612649610714565b9050600080612656611bfc565b91509150826000148061267457506000821180156126745750600081115b61268e57634e487b7160e01b600052600160045260246000fd5b826126d6576000881180156126a35750600087115b6126bf5760405162461bcd60e51b815260040161055590614841565b8794508693506126cf85856132ef565b9550612775565b60006126f46126e5838b614d94565b6126ef858b614d94565b613306565b90508061270a5788955087945060009650612773565b81612716600183614ddb565b6127209190614d80565b61272b906001614d68565b955082612739600183614ddb565b6127439190614d80565b61274e906001614d68565b9450818361275c8684614d94565b6127669190614d80565b6127709190614d80565b96505b505b5050509250925092565b6040805160028082526060820183526000928392919060208301908036833701905050905083816000815181106127c657634e487b7160e01b600052603260045260246000fd5b60200260200101906001600160a01b031690816001600160a01b031681525050828160018151811061280857634e487b7160e01b600052603260045260246000fd5b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b81526000917f0000000000000000000000000000000000000000000000000000000000000000169063d06ca61f906128679089908690600401614cc6565b60006040518083038186803b15801561287f57600080fd5b505afa158015612517573d6000803e3d6000fd5b611d90846323b872dd60e01b858585604051602401611fa293929190614383565b6000806000806000806128c88f8a8c613315565b90935090506128d8818d8d6123c9565b915060006128f36128e98a86614d94565b6126ef8c86614d94565b9050600081116129155760405162461bcd60e51b8152600401610555906148d9565b88612921600183614ddb565b61292b9190614d80565b612936906001614d68565b955089612944600183614ddb565b61294e9190614d80565b612959906001614d68565b9450888a6129678a84614d94565b6129719190614d80565b61297b9190614d80565b96508e86101561299d5760405162461bcd60e51b8152600401610555906146a5565b8d8510156129bd5760405162461bcd60e51b81526004016105559061457b565b600087116129dd5760405162461bcd60e51b8152600401610555906146c9565b6007546129ea888a614d68565b1115612a085760405162461bcd60e51b815260040161055590614b4b565b5099509950995099509950999350505050565b6001600160a01b038216612a415760405162461bcd60e51b815260040161055590614c8f565b612a4d600083836105f4565b8060026000828254612a5f9190614d68565b90915550506001600160a01b03821660009081526020819052604081208054839290612a8c908490614d68565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90612acf908590614484565b60405180910390a3612ae3600083836105f4565b5050565b7f0000000000000000000000000000000000000000000000000000000000000000600282810b9084900b12612b2e5760405162461bcd60e51b8152600401610555906145fd565b620d89e719600284900b1215612b565760405162461bcd60e51b815260040161055590614a79565b612b63620d89e719614e8f565b60020b8260020b1315612b885760405162461bcd60e51b815260040161055590614ae8565b612b928184614e59565b60020b15612bb25760405162461bcd60e51b81526004016105559061466e565b612bbc8183614e59565b60020b156105f45760405162461bcd60e51b815260040161055590614727565b600080600080600080612bf0308989613343565b60405163514ea4bf60e01b81529091506001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063514ea4bf90612c3f908490600401614484565b60a06040518083038186803b158015612c5757600080fd5b505afa158015612c6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8f91906140ea565b939c929b5090995097509095509350505050565b60008080806001600160801b03851615612d5e5760405163a34123a760e01b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063a34123a790612d07908a908a908a9060040161449b565b6040805180830381600087803b158015612d2057600080fd5b505af1158015612d34573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d589190613fa9565b90945092505b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316634f1eb3d8308b8b6001600160801b03806040518663ffffffff1660e01b8152600401612dbc959493929190614423565b6040805180830381600087803b158015612dd557600080fd5b505af1158015612de9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e0d91906140bc565b6001600160801b039182169350169050612e278683614ddb565b9350612e338582614ddb565b60065490935060009081908015612eb357620f4240612e528289614d94565b612e5c9190614d80565b9250620f4240612e6c8288614d94565b612e769190614d80565b9150612e828388614ddb565b9650612e8e8287614ddb565b955082600b54612e9e9190614d68565b600b55600c54612eaf908390614d68565b600c555b7f1ac56d7e866e3f5ea9aa92aa11758ead39a0a5f013f3fefb0f47cb9d008edd2787878585604051612ee89493929190614d3f565b60405180910390a1505050505093509350935093565b6000807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b158015612f5a57600080fd5b505afa158015612f6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612f92919061414b565b5050505050509050612fb781612fa788613379565b612fb088613379565b8787613753565b9695505050505050565b6001600160801b038116156105f457604051633c8a7d8d60e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690633c8a7d8d906125ea9030908790879087906004016143e1565b60008060007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e06040518083038186803b15801561308057600080fd5b505afa158015613094573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130b8919061414b565b50505050505090506130dc816130cd88613379565b6130d688613379565b87613817565b9250925050935093915050565b600061313e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166138b39092919063ffffffff16565b8051909150156105f4578080602001905181019061315c9190613f23565b6105f45760405162461bcd60e51b815260040161055590614b73565b60008060006131878787612bdc565b50505050905060008486836001600160801b03166131a59190614d94565b6131af9190614d80565b90508015613221576000806000806131d08c8c6131cb886138c2565b612ca3565b9350935093509350888a836131e59190614d94565b6131ef9190614d80565b6131f99085614d68565b9750886132068b83614d94565b6132109190614d80565b61321a9084614d68565b9650505050505b505094509492505050565b8015806132b45750604051636eb1769f60e11b81526001600160a01b0384169063dd62ed3e906132629030908690600401614369565b60206040518083038186803b15801561327a57600080fd5b505afa15801561328e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132b291906141f4565b155b6132d05760405162461bcd60e51b815260040161055590614bf4565b6105f48363095ea7b360e01b8484604051602401611fa2929190614460565b6000818310156132ff5781610781565b5090919050565b60008183106132ff5781610781565b600080826133238587614d94565b61332d9190614d80565b91506133398286614ddb565b9050935093915050565b600083838360405160200161335a93929190614304565b6040516020818303038152906040528051906020012090509392505050565b60008060008360020b12613390578260020b61339d565b8260020b61339d90614eb0565b90506000600182166133b357600160801b6133c5565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff16905060028216156134045760806133ff826ffff97272373d413259a46990580e213a614d94565b901c90505b600482161561342e576080613429826ffff2e50f5f656932ef12357cf3c7fdcc614d94565b901c90505b6008821615613458576080613453826fffe5caca7e10e4e61c3624eaa0941cd0614d94565b901c90505b601082161561348257608061347d826fffcb9843d60f6159c9db58835c926644614d94565b901c90505b60208216156134ac5760806134a7826fff973b41fa98c081472e6896dfb254c0614d94565b901c90505b60408216156134d65760806134d1826fff2ea16466c96a3843ec78b326b52861614d94565b901c90505b60808216156135005760806134fb826ffe5dee046a99a2a811c461f1969c3053614d94565b901c90505b61010082161561352b576080613526826ffcbe86c7900a88aedcffc83b479aa3a4614d94565b901c90505b610200821615613556576080613551826ff987a7253ac413176f2b074cf7815e54614d94565b901c90505b61040082161561358157608061357c826ff3392b0822b70005940c7a398e4b70f3614d94565b901c90505b6108008216156135ac5760806135a7826fe7159475a2c29b7443b29c7fa6e889d9614d94565b901c90505b6110008216156135d75760806135d2826fd097f3bdfd2022b8845ad8f792aa5825614d94565b901c90505b6120008216156136025760806135fd826fa9f746462d870fdf8a65dc1f90e061e5614d94565b901c90505b61400082161561362d576080613628826f70d869a156d2a1b890bb3df62baf32f7614d94565b901c90505b618000821615613658576080613653826f31be135f97d08fd981231505542fcfa6614d94565b901c90505b6201000082161561368457608061367f826f09aa508b5b7a84e1c677de54f3e99bc9614d94565b901c90505b620200008216156136af5760806136aa826e5d6af8dedb81196699c329225ee604614d94565b901c90505b620400008216156136d95760806136d4826d2216e584f5fa1ea926041bedfe98614d94565b901c90505b620800008216156137015760806136fc826b048a170391f7dc42444e8fa2614d94565b901c90505b60008460020b131561371c5761371981600019614d80565b90505b61372b64010000000082614e7b565b1561373757600161373a565b60005b61374b9060ff16602083901c614d68565b949350505050565b6000836001600160a01b0316856001600160a01b03161115613773579293925b846001600160a01b0316866001600160a01b03161161379e576137978585856138ed565b905061380e565b836001600160a01b0316866001600160a01b031610156138005760006137c58786866138ed565b905060006137d4878986613957565b9050806001600160801b0316826001600160801b0316106137f557806137f7565b815b9250505061380e565b61380b858584613957565b90505b95945050505050565b600080836001600160a01b0316856001600160a01b03161115613838579293925b846001600160a01b0316866001600160a01b0316116138635761385c85858561398d565b91506138aa565b836001600160a01b0316866001600160a01b0316101561389c5761388886858561398d565b9150613895858785613a00565b90506138aa565b6138a7858585613a00565b90505b94509492505050565b606061374b8484600085613a4a565b60006001600160801b038211156138e957634e487b7160e01b600052600160045260246000fd5b5090565b6000826001600160a01b0316846001600160a01b0316111561390d579192915b6000613930856001600160a01b0316856001600160a01b0316600160601b613b0a565b905061380e61395284836139448989614db3565b6001600160a01b0316613b0a565b613c80565b6000826001600160a01b0316846001600160a01b03161115613977579192915b61374b61395283600160601b6139448888614db3565b6000826001600160a01b0316846001600160a01b031611156139ad579192915b6001600160a01b0384166139f66fffffffffffffffffffffffffffffffff60601b606085901b166139de8787614db3565b6001600160a01b0316866001600160a01b0316613b0a565b61374b9190614d80565b6000826001600160a01b0316846001600160a01b03161115613a20579192915b61374b6001600160801b038316613a378686614db3565b6001600160a01b0316600160601b613b0a565b606082471015613a6c5760405162461bcd60e51b8152600401610555906147c6565b613a7585613c96565b613a915760405162461bcd60e51b815260040161055590614b14565b600080866001600160a01b03168587604051613aad9190614339565b60006040518083038185875af1925050503d8060008114613aea576040519150601f19603f3d011682016040523d82523d6000602084013e613aef565b606091505b5091509150613aff828286613cc7565b979650505050505050565b6000808060001985870986860292508281109083900303905080613b405760008411613b3557600080fd5b508290049050610781565b808411613b4c57600080fd5b6000848688098084039381119092039190506000613b6c86196001614d68565b8616958690049593849004936000819003046001019050613b8d8184614d94565b909317926000613b9e876003614d94565b6002189050613bad8188614d94565b613bb8906002614ddb565b613bc29082614d94565b9050613bce8188614d94565b613bd9906002614ddb565b613be39082614d94565b9050613bef8188614d94565b613bfa906002614ddb565b613c049082614d94565b9050613c108188614d94565b613c1b906002614ddb565b613c259082614d94565b9050613c318188614d94565b613c3c906002614ddb565b613c469082614d94565b9050613c528188614d94565b613c5d906002614ddb565b613c679082614d94565b9050613c738186614d94565b9998505050505050505050565b806001600160801b03811681146113b257600080fd5b600080826001600160a01b0316803b806020016040519081016040528181526000908060200190933c511192915050565b60608315613cd6575081610781565b825115613ce65782518084602001fd5b8160405162461bcd60e51b815260040161055591906144e1565b805180151581146113b257600080fd5b60008083601f840112613d21578182fd5b50813567ffffffffffffffff811115613d38578182fd5b602083019150836020828501011115613d5057600080fd5b9250929050565b805161ffff811681146113b257600080fd5b600060208284031215613d7a578081fd5b813561078181614f0c565b60008060408385031215613d97578081fd5b8235613da281614f0c565b91506020830135613db281614f0c565b809150509250929050565b600080600060608486031215613dd1578081fd5b8335613ddc81614f0c565b92506020840135613dec81614f0c565b929592945050506040919091013590565b60008060408385031215613e0f578182fd5b8235613e1a81614f0c565b946020939093013593505050565b600080600060608486031215613e3c578283fd5b8335613e4781614f0c565b9250602084013591506040840135613e5e81614f0c565b809150509250925092565b60006020808385031215613e7b578182fd5b825167ffffffffffffffff80821115613e92578384fd5b818501915085601f830112613ea5578384fd5b815181811115613eb757613eb7614ef6565b83810260405185828201018181108582111715613ed657613ed6614ef6565b604052828152858101935084860182860187018a1015613ef4578788fd5b8795505b83861015613f16578051855260019590950194938601938601613ef8565b5098975050505050505050565b600060208284031215613f34578081fd5b61078182613d00565b60008060408385031215613f4f578182fd5b8235613f5a81614f24565b91506020830135613db281614f24565b600080600060608486031215613f7e578283fd5b8335613f8981614f24565b92506020840135613f9981614f24565b91506040840135613e5e81614f33565b60008060408385031215613fbb578182fd5b505080516020909101519092909150565b60008060008060608587031215613fe1578182fd5b8435935060208501359250604085013567ffffffffffffffff811115614005578283fd5b61401187828801613d10565b95989497509550505050565b600080600080600080600080610100898b031215614039578586fd5b88359750602089013561404b81614f0c565b9650604089013561405b81614f24565b9550606089013561406b81614f24565b9450608089013561407b81614f24565b935060a089013561408b81614f24565b925060c089013561409b81614f24565b915060e08901356140ab81614f24565b809150509295985092959890939650565b600080604083850312156140ce578182fd5b82516140d981614f33565b6020840151909250613db281614f33565b600080600080600060a08688031215614101578283fd5b855161410c81614f33565b809550506020860151935060408601519250606086015161412c81614f33565b608087015190925061413d81614f33565b809150509295509295909350565b600080600080600080600060e0888a031215614165578081fd5b875161417081614f0c565b602089015190975061418181614f24565b955061418f60408901613d57565b945061419d60608901613d57565b93506141ab60808901613d57565b925060a088015160ff811681146141c0578182fd5b91506141ce60c08901613d00565b905092959891949750929550565b6000602082840312156141ed578081fd5b5035919050565b600060208284031215614205578081fd5b5051919050565b600080600060608486031215614220578081fd5b83359250602084013591506040840135613e5e81614f0c565b600080600080600060a08688031215614250578283fd5b853594506020860135935060408601359250606086013561427081614f0c565b915060808601356003811061413d578182fd5b600080600080600060a0868803121561429a578283fd5b85359450602086013593506040860135925060608601359150608086013561413d81614f0c565b6000815180845260208085019450808401835b838110156142f95781516001600160a01b0316875295820195908201906001016142d4565b509495945050505050565b60609390931b6bffffffffffffffffffffffff19168352600291820b60e890811b6014850152910b901b6017820152601a0190565b6000825161434b818460208701614df2565b9190910192915050565b6001600160a01b0391909116815260200190565b6001600160a01b0392831681529116602082015260400190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b03948516815292151560208401526040830191909152909116606082015260a06080820181905260009082015260c00190565b6001600160a01b03949094168452600292830b6020850152910b60408301526001600160801b0316606082015260a06080820181905260009082015260c00190565b6001600160a01b03959095168552600293840b60208601529190920b60408401526001600160801b03918216606084015216608082015260a00190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b90815260200190565b60029190910b815260200190565b600293840b81529190920b60208201526001600160801b03909116604082015260600190565b60029490940b845260208401929092526040830152606082015260800190565b6000602082528251806020840152614500816040850160208701614df2565b601f01601f19169190910160400192915050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b6020808252600a908201526930b6b7bab73a1826b4b760b11b604082015260600190565b6020808252600a908201526930b6b7bab73a2126b4b760b11b604082015260600190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b602080825260029082015261746f60f01b604082015260600190565b6020808252601590820152743a34b1b5a637bbb2b9101e103a34b1b5aab83832b960591b604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b60208082526017908201527f7469636b4c6f7765722025207469636b53706163696e67000000000000000000604082015260600190565b6020808252600a908201526930b6b7bab73a20a6b4b760b11b604082015260600190565b6020808252600d908201526c7377617070656453686172657360981b604082015260600190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b60208082526017908201527f7469636b55707065722025207469636b53706163696e67000000000000000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6020808252600890820152673134b22ab83832b960c11b604082015260600190565b60208082526026908201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6040820152651c8818d85b1b60d21b606082015260800190565b6020808252818101527f616d6f756e743044657369726564206f7220616d6f756e743144657369726564604082015260600190565b60208082526021908201527f616d6f756e74304465736972656420616e6420616d6f756e74314465736972656040820152601960fa1b606082015260800190565b60208082526011908201527070656e64696e67476f7665726e616e636560781b604082015260600190565b602080825260129082015271616d6f756e7430206f7220616d6f756e743160701b604082015260600190565b6020808252600c908201526b7377617070656443726f737360a01b604082015260600190565b6020808252600b908201526a70726f746f636f6c46656560a81b604082015260600190565b6020808252600590820152643a37b5b2b760d91b604082015260600190565b6020808252600c908201526b29b430b93832a5b2b2b832b960a11b604082015260600190565b6020808252600a9082015269676f7665726e616e636560b01b604082015260600190565b60208082526006908201526573686172657360d01b604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252600a908201526930b6b7bab73a18a6b4b760b11b604082015260600190565b60208082526008908201526730b9b5a637bbb2b960c11b604082015260600190565b6020808252601190820152707469636b4c6f77657220746f6f206c6f7760781b604082015260600190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b6020808252601290820152710e8d2c6d6aae0e0cae440e8dede40d0d2ced60731b604082015260600190565b6020808252601d908201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604082015260600190565b6020808252600e908201526d6d6178546f74616c537570706c7960901b604082015260600190565b6020808252602a908201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6040820152691bdd081cdd58d8d9595960b21b606082015260800190565b6020808252601f908201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604082015260600190565b60208082526036908201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60408201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b60008382526040602083015261374b60408301846142c1565b600086825285602083015260a06040830152614cfe60a08301866142c1565b6001600160a01b0394909416606083015250608001529392505050565b9283526020830191909152604082015260600190565b918252602082015260400190565b93845260208401929092526040830152606082015260800190565b60ff91909116815260200190565b60008219821115614d7b57614d7b614eca565b500190565b600082614d8f57614d8f614ee0565b500490565b6000816000190483118215151615614dae57614dae614eca565b500290565b60006001600160a01b0383811690831681811015614dd357614dd3614eca565b039392505050565b600082821015614ded57614ded614eca565b500390565b60005b83811015614e0d578181015183820152602001614df5565b83811115611d905750506000910152565b600281046001821680614e3257607f821691505b60208210811415614e5357634e487b7160e01b600052602260045260246000fd5b50919050565b60008260020b80614e6c57614e6c614ee0565b808360020b0791505092915050565b600082614e8a57614e8a614ee0565b500690565b60008160020b627fffff19811415614ea957614ea9614eca565b9003919050565b6000600160ff1b821415614ec657614ec6614eca565b0390565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052601260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b0381168114614f2157600080fd5b50565b8060020b8114614f2157600080fd5b6001600160801b0381168114614f2157600080fdfea2646970667358221220e4adef1342c97abb6ffadc1060dca8d0c1058a8978c2c7066f17ac64e54bce9264736f6c63430008000033000000000000000000000000dac8a8e6dbf8c690ec6815e0ff03491b2770255d000000000000000000000000a5e0829caced8ffdd4de3c43696c57f7d7a678ff0000000000000000000000000000000000000000000000000000000000001388000000000000000000000000000000000000000000000000000000012a05f200