0 txs
4 calls
constructor
No constructor.
functions
DISPATCHER
viewfunction DISPATCHER() view returns (address)
feeManager
viewfunction feeManager() view returns (address)
generateSalt
viewfunction generateSalt(address deployer, uint8 tokenType, bytes constructorArgs) view returns (bytes32 salt, address token)
limitOrder
viewfunction limitOrder() view returns (address)
owner
viewfunction owner() view returns (address)
positionInfo
viewfunction positionInfo(address) view returns (address creator, uint256 positionId)
positionManager
viewfunction positionManager() view returns (address)
predictTokenAddress
viewfunction predictTokenAddress(address deployer, uint8 tokenType, bytes32 salt, bytes constructorArgs) view returns (address result)
proxiableUUID
viewfunction proxiableUUID() view returns (bytes32)
swapRouter
viewfunction swapRouter() view returns (address)
tokens
viewfunction tokens(uint256) view returns (address)
uniswapV3Factory
viewfunction uniswapV3Factory() view returns (address)
UPGRADE_INTERFACE_VERSION
viewfunction UPGRADE_INTERFACE_VERSION() view returns (string)
WETH
viewfunction WETH() view returns (address)
collect
nonpayablefunction collect(address[] _tokens) returns (uint256[2][] amounts)
createToken
nonpayablefunction createToken(tuple tokenParams, uint8 tokenType, int24 initialTick, bytes32 salt) returns (address token, uint256 positionId)
initialize
nonpayablefunction initialize(address positionManager_, address swapRouter_, address limitOrder_, address dispatcher_)
initialize
nonpayablefunction initialize(address positionManager_, address swapRouter_, address limitOrder_)
onERC721Received
nonpayablefunction onERC721Received(address, address, uint256, bytes) returns (bytes4)
renounceOwnership
nonpayablefunction renounceOwnership()
setFeeManager
nonpayablefunction setFeeManager(address newFeeManager)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
upgradeToAndCall
payablefunction upgradeToAndCall(address newImplementation, bytes data) payable
events
GoatTokenCreated
event GoatTokenCreated(address token, address pool, address creator, uint256 positionId)
Initialized
event Initialized(uint64 version)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Upgraded
event Upgraded(address indexed implementation)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
ERC1967InvalidImplementation
error ERC1967InvalidImplementation(address implementation)
ERC1967NonPayable
error ERC1967NonPayable()
FailedInnerCall
error FailedInnerCall()
Forbidden
error Forbidden()
InvalidInitialization
error InvalidInitialization()
InvalidInitialTick
error InvalidInitialTick()
InvalidTokenType
error InvalidTokenType()
NotInitializing
error NotInitializing()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
Salt
error Salt()
UUPSUnauthorizedCallContext
error UUPSUnauthorizedCallContext()
UUPSUnsupportedProxiableUUID
error UUPSUnsupportedProxiableUUID(bytes32 slot)
creation bytecode
0x60a06040523060805234801561001457600080fd5b50608051615e1561003e600039600081816114c7015281816114f101526116460152615e156000f3fe6080604052600436106200015b5760003560e01c80638da5cb5b11620000c5578063c31c9c071162000078578063c31c9c071462000497578063d0fb020314620004b9578063f0360e2514620004d9578063f2fde38b14620004fe578063f8c8765e1462000523578063fa9b5374146200054857600080fd5b80638da5cb5b1462000379578063a4520aee14620003b8578063a7a5d12b14620003ec578063ad3cb1cc146200040e578063ad5c46481462000450578063c0c53b8b146200047257600080fd5b80634f1ef286116200011e5780634f1ef28614620002a15780634f64b2be14620002b857806352d1902d14620002f65780635b549182146200031d578063715018a6146200033f578063791b98bc146200035757600080fd5b806303eaffcc1462000160578063150b7a0214620001a75780633cc963dc14620001f15780633f81d6ba1462000255578063472d35b9146200027a575b600080fd5b3480156200016d57600080fd5b50620001856200017f36600462001e77565b6200056a565b604080519283526001600160a01b039091166020830152015b60405180910390f35b348015620001b457600080fd5b50620001d7620001c636600462001ee1565b630a85bd0160e11b95945050505050565b6040516001600160e01b031990911681526020016200019e565b348015620001fe57600080fd5b50620002356200021036600462001f5b565b600660205260009081526040902080546001909101546001600160a01b039091169082565b604080516001600160a01b0390931683526020830191909152016200019e565b3480156200026257600080fd5b50620002356200027436600462001f7b565b620005d0565b3480156200028757600080fd5b506200029f6200029936600462001f5b565b620007b6565b005b6200029f620002b2366004620020c6565b620007e2565b348015620002c557600080fd5b50620002dd620002d736600462002130565b62000807565b6040516001600160a01b0390911681526020016200019e565b3480156200030357600080fd5b506200030e62000832565b6040519081526020016200019e565b3480156200032a57600080fd5b50600154620002dd906001600160a01b031681565b3480156200034c57600080fd5b506200029f62000852565b3480156200036457600080fd5b50600254620002dd906001600160a01b031681565b3480156200038657600080fd5b507f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b0316620002dd565b348015620003c557600080fd5b50620003dd620003d73660046200214a565b6200086a565b6040516200019e9190620021fc565b348015620003f957600080fd5b50600854620002dd906001600160a01b031681565b3480156200041b57600080fd5b5062000441604051806040016040528060058152602001640352e302e360dc1b81525081565b6040516200019e91906200228f565b3480156200045d57600080fd5b50600054620002dd906001600160a01b031681565b3480156200047f57600080fd5b506200029f62000491366004620022c4565b62000a9d565b348015620004a457600080fd5b50600354620002dd906001600160a01b031681565b348015620004c657600080fd5b506004546001600160a01b0316620002dd565b348015620004e657600080fd5b50620002dd620004f836600462002316565b62000cf5565b3480156200050b57600080fd5b506200029f6200051d36600462001f5b565b62000dfd565b3480156200053057600080fd5b506200029f620005423660046200234c565b62000e45565b3480156200055557600080fd5b50600754620002dd906001600160a01b031681565b60008060005b91508162000582878783888862000cf5565b6000549092506001600160a01b03908116908316108015620005ac57506001600160a01b0382163b155b620005c65780620005bd81620023c7565b91505062000570565b5094509492505050565b6000806004856004811115620005ea57620005ea620023e3565b03620006dd576040805133602082015290810184905260600160408051601f198184030181529190528051602090910120620006278780620023f9565b6200063660208a018a620023f9565b8a6040013560008054906101000a90046001600160a01b0316600760009054906101000a90046001600160a01b0316600860009054906101000a90046001600160a01b03168e61010001602081019062000691919062001f5b565b6040516200069f9062001dc8565b620006b3999897969594939291906200246b565b8190604051809103906000f5905080158015620006d4573d6000803e3d6000fd5b509150620006f6565b60405163a1e9dd9d60e01b815260040160405180910390fd5b6000546001600160a01b0380841691161015620007265760405163401356f160e01b815260040160405180910390fd5b60006200073f8584620007398a620024f4565b62000f7b565b90925090506200075c838288620007568b620024f4565b620012a4565b604080516001600160a01b0385811682528316602082015233818301526060810184905290517fc39c1ae054d6fc88ccac7ac78658f209ba90176e9838a380a4ce41c3f43d66659181900360800190a15094509492505050565b620007c06200145e565b600480546001600160a01b0319166001600160a01b0392909216919091179055565b620007ec620014bc565b620007f78262001565565b6200080382826200156f565b5050565b600581815481106200081857600080fd5b6000918252602090912001546001600160a01b0316905081565b60006200083e6200163b565b5060008051602062005dc083398151915290565b6200085c6200145e565b62000868600062001685565b565b6004546060906001600160a01b031633146200089957604051631dd2188d60e31b815260040160405180910390fd5b8151806001600160401b03811115620008b657620008b662001ff4565b604051908082528060200260200182016040528015620008f357816020015b620008df62001dd6565b815260200190600190039081620008d55790505b506040805160808101825260008082526004546001600160a01b031660208301526001600160801b0392820183905260608201929092529193505b8281101562000a955760066000868381518110620009505762000950620025c3565b6020908102919091018101516001600160a01b039081168352828201939093526040918201600020600101548552600254825163fc6f786560e01b8152865160048201529186015184166024830152918501516001600160801b039081166044830152606086015116606482015291169063fc6f78659060840160408051808303816000875af1158015620009e9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a0f9190620025d9565b85838151811062000a245762000a24620025c3565b602002602001015160006002811062000a415762000a41620025c3565b6020020186848151811062000a5a5762000a5a620025c3565b602002602001015160016002811062000a775762000a77620025c3565b6020020191909152528062000a8c81620023c7565b9150506200092e565b505050919050565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801562000ae35750825b90506000826001600160401b0316600114801562000b005750303b155b90508115801562000b0f575080155b1562000b2e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562000b5957845460ff60401b1916600160401b1785555b62000b6433620016f6565b62000b6e6200170b565b876001600160a01b0316634aa4a4fc6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000bad573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000bd39190620025fe565b6000806101000a8154816001600160a01b0302191690836001600160a01b03160217905550876001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000c37573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000c5d9190620025fe565b600180546001600160a01b03199081166001600160a01b03938416179091556002805482168b84161790556003805482168a841617905560078054909116918816919091179055831562000ceb57845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b5050505050505050565b604080516001600160a01b03871660208083019190915281830186905282518083038401815260609092019092528051910120600090816004878181111562000d425762000d42620023e3565b03620006dd5760405162000d596020820162001dc8565b601f1982820381018352601f90910116604081905262000d819190879087906020016200261e565b6040516020818303038152906040528051906020012090506040516001600160f81b031960208201526bffffffffffffffffffffffff193060601b166021820152603581018390526055810182905262000df1906075016040516020818303038152906040528051906020012090565b98975050505050505050565b62000e076200145e565b6001600160a01b03811662000e3757604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b62000e428162001685565b50565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff1615906001600160401b031660008115801562000e8b5750825b90506000826001600160401b0316600114801562000ea85750303b155b90508115801562000eb7575080155b1562000ed65760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831562000f0157845460ff60401b1916600160401b1785555b62000f0e89898962000a9d565b600880546001600160a01b0319166001600160a01b038816179055831562000f7057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050565b600080600062000f8e8660020b62001715565b60015460005460405163a167129560e01b81526001600160a01b03898116600483015291821660248201526127106044820152929350169063a1671295906064016020604051808303816000875af115801562000fef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010159190620025fe565b60405163f637731d60e01b81526001600160a01b0383811660048301529193509083169063f637731d90602401600060405180830381600087803b1580156200105d57600080fd5b505af115801562001072573d6000803e3d6000fd5b505060408051610160810182526001600160a01b03808a1682526000805490911660208301526127108284015260028b900b6060830152620d89a060808301529188015160a082015260c0810182905260e0810182905261010081018290523061012082015290925090506101408101620010ef42600a62002648565b9052600254604087810151905163095ea7b360e01b81526001600160a01b039283166004820152602481019190915291925087169063095ea7b3906044016020604051808303816000875af11580156200114d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200117391906200265e565b50600254604051634418b22b60e11b81526001600160a01b0390911690638831645690620011a690849060040162002682565b6080604051808303816000875af1158015620011c6573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011ec91906200274b565b50506040805180820182526001600160a01b038a811680835260208084018781526000838152600690925290859020935184546001600160a01b031916908416178455516001909301929092556004805493516344182dfb60e01b8152908101929092523360248301529397509216916344182dfb9150604401600060405180830381600087803b1580156200128157600080fd5b505af115801562001296573d6000803e3d6000fd5b505050505050935093915050565b836001836004811115620012bc57620012bc620023e3565b14620014575760405163221b8a9560e11b81526001600160a01b038581166004830152821690634437152a90602401600060405180830381600087803b1580156200130657600080fd5b505af11580156200131b573d6000803e3d6000fd5b50505050608082015160a083015160405163367248b360e11b81526001600160a01b0387811660048301526024820193909352604481019190915290821690636ce4916690606401600060405180830381600087803b1580156200137e57600080fd5b505af115801562001393573d6000803e3d6000fd5b5050600354604051631a74b6a760e21b81526001600160a01b03918216600482015290841692506369d2da9c9150602401600060405180830381600087803b158015620013df57600080fd5b505af1158015620013f4573d6000803e3d6000fd5b5050505060e082015160405163f2fde38b60e01b81526001600160a01b0391821660048201529082169063f2fde38b90602401600060405180830381600087803b1580156200144257600080fd5b505af115801562000f70573d6000803e3d6000fd5b5050505050565b33620014917f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300546001600160a01b031690565b6001600160a01b031614620008685760405163118cdaa760e01b815233600482015260240162000e2e565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614806200154657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166200153a60008051602062005dc0833981519152546001600160a01b031690565b6001600160a01b031614155b15620008685760405163703e46dd60e11b815260040160405180910390fd5b62000e426200145e565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015620015cc575060408051601f3d908101601f19168201909252620015c99181019062002797565b60015b620015f657604051634c9c8ce360e01b81526001600160a01b038316600482015260240162000e2e565b60008051602062005dc083398151915281146200162a57604051632a87526960e21b81526004810182905260240162000e2e565b62001636838362001b81565b505050565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614620008685760405163703e46dd60e11b815260040160405180910390fd5b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3505050565b6200170062001bde565b62000e428162001c28565b6200086862001bde565b60008060008360020b126200172e578260020b6200173d565b8260020b6200173d90620027b1565b90506200174e620d89e719620027d0565b60020b811115620017865760405162461bcd60e51b81526020600482015260016024820152601560fa1b604482015260640162000e2e565b6000816001166000036200179f57600160801b620017b1565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff1690506002821615620017f3576080620017ee826ffff97272373d413259a46990580e213a620027f5565b901c90505b6004821615620018205760806200181b826ffff2e50f5f656932ef12357cf3c7fdcc620027f5565b901c90505b60088216156200184d57608062001848826fffe5caca7e10e4e61c3624eaa0941cd0620027f5565b901c90505b60108216156200187a57608062001875826fffcb9843d60f6159c9db58835c926644620027f5565b901c90505b6020821615620018a7576080620018a2826fff973b41fa98c081472e6896dfb254c0620027f5565b901c90505b6040821615620018d4576080620018cf826fff2ea16466c96a3843ec78b326b52861620027f5565b901c90505b608082161562001901576080620018fc826ffe5dee046a99a2a811c461f1969c3053620027f5565b901c90505b6101008216156200192f5760806200192a826ffcbe86c7900a88aedcffc83b479aa3a4620027f5565b901c90505b6102008216156200195d57608062001958826ff987a7253ac413176f2b074cf7815e54620027f5565b901c90505b6104008216156200198b57608062001986826ff3392b0822b70005940c7a398e4b70f3620027f5565b901c90505b610800821615620019b9576080620019b4826fe7159475a2c29b7443b29c7fa6e889d9620027f5565b901c90505b611000821615620019e7576080620019e2826fd097f3bdfd2022b8845ad8f792aa5825620027f5565b901c90505b61200082161562001a1557608062001a10826fa9f746462d870fdf8a65dc1f90e061e5620027f5565b901c90505b61400082161562001a4357608062001a3e826f70d869a156d2a1b890bb3df62baf32f7620027f5565b901c90505b61800082161562001a7157608062001a6c826f31be135f97d08fd981231505542fcfa6620027f5565b901c90505b6201000082161562001aa057608062001a9b826f09aa508b5b7a84e1c677de54f3e99bc9620027f5565b901c90505b6202000082161562001ace57608062001ac9826e5d6af8dedb81196699c329225ee604620027f5565b901c90505b6204000082161562001afb57608062001af6826d2216e584f5fa1ea926041bedfe98620027f5565b901c90505b6208000082161562001b2657608062001b21826b048a170391f7dc42444e8fa2620027f5565b901c90505b60008460020b131562001b445762001b418160001962002825565b90505b62001b55640100000000826200283c565b1562001b6357600162001b66565b60005b62001b799060ff16602083901c62002648565b949350505050565b62001b8c8262001c32565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a280511562001bd45762001636828262001c9a565b6200080362001d18565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166200086857604051631afcd79f60e31b815260040160405180910390fd5b62000e0762001bde565b806001600160a01b03163b60000362001c6a57604051634c9c8ce360e01b81526001600160a01b038216600482015260240162000e2e565b60008051602062005dc083398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080846001600160a01b03168460405162001cb9919062002853565b600060405180830381855af49150503d806000811462001cf6576040519150601f19603f3d011682016040523d82523d6000602084013e62001cfb565b606091505b509150915062001d0d85838362001d38565b925050505b92915050565b3415620008685760405163b398979f60e01b815260040160405180910390fd5b60608262001d515762001d4b8262001d9e565b62001d97565b815115801562001d6957506001600160a01b0384163b155b1562001d9457604051639996b31560e01b81526001600160a01b038516600482015260240162000e2e565b50805b9392505050565b80511562001daf5780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b61354e806200287283390190565b60405180604001604052806002906020820280368337509192915050565b6001600160a01b038116811462000e4257600080fd5b803562001e178162001df4565b919050565b80356005811062001e1757600080fd5b60008083601f84011262001e3f57600080fd5b5081356001600160401b0381111562001e5757600080fd5b60208301915083602082850101111562001e7057600080fd5b9250929050565b6000806000806060858703121562001e8e57600080fd5b843562001e9b8162001df4565b935062001eab6020860162001e1c565b925060408501356001600160401b0381111562001ec757600080fd5b62001ed58782880162001e2c565b95989497509550505050565b60008060008060006080868803121562001efa57600080fd5b853562001f078162001df4565b9450602086013562001f198162001df4565b93506040860135925060608601356001600160401b0381111562001f3c57600080fd5b62001f4a8882890162001e2c565b969995985093965092949392505050565b60006020828403121562001f6e57600080fd5b813562001d978162001df4565b6000806000806080858703121562001f9257600080fd5b84356001600160401b0381111562001fa957600080fd5b8501610120818803121562001fbd57600080fd5b935062001fcd6020860162001e1c565b925060408501358060020b811462001fe457600080fd5b9396929550929360600135925050565b634e487b7160e01b600052604160045260246000fd5b60405161012081016001600160401b038111828210171562002030576200203062001ff4565b60405290565b604051601f8201601f191681016001600160401b038111828210171562002061576200206162001ff4565b604052919050565b60006001600160401b0383111562002085576200208562001ff4565b6200209a601f8401601f191660200162002036565b9050828152838383011115620020af57600080fd5b828260208301376000602084830101529392505050565b60008060408385031215620020da57600080fd5b8235620020e78162001df4565b915060208301356001600160401b038111156200210357600080fd5b8301601f810185136200211557600080fd5b620021268582356020840162002069565b9150509250929050565b6000602082840312156200214357600080fd5b5035919050565b600060208083850312156200215e57600080fd5b82356001600160401b03808211156200217657600080fd5b818501915085601f8301126200218b57600080fd5b813581811115620021a057620021a062001ff4565b8060051b9150620021b384830162002036565b8181529183018401918481019088841115620021ce57600080fd5b938501935b8385101562000df15784359250620021eb8362001df4565b8282529385019390850190620021d3565b60208082528251828201819052600091906040908185019086840185805b838110156200225b57825185835b6002811015620022475782518252918901919089019060010162002228565b50505093850193918601916001016200221a565b509298975050505050505050565b60005b83811015620022865781810151838201526020016200226c565b50506000910152565b6020815260008251806020840152620022b081604085016020870162002269565b601f01601f19169190910160400192915050565b600080600060608486031215620022da57600080fd5b8335620022e78162001df4565b92506020840135620022f98162001df4565b915060408401356200230b8162001df4565b809150509250925092565b6000806000806000608086880312156200232f57600080fd5b85356200233c8162001df4565b945062001f196020870162001e1c565b600080600080608085870312156200236357600080fd5b8435620023708162001df4565b93506020850135620023828162001df4565b92506040850135620023948162001df4565b91506060850135620023a68162001df4565b939692955090935050565b634e487b7160e01b600052601160045260246000fd5b600060018201620023dc57620023dc620023b1565b5060010190565b634e487b7160e01b600052602160045260246000fd5b6000808335601e198436030181126200241157600080fd5b8301803591506001600160401b038211156200242c57600080fd5b60200191503681900382131562001e7057600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60e0815260006200248160e083018b8d62002442565b828103602084015262002496818a8c62002442565b604084019890985250506001600160a01b039485166060820152928416608084015290831660a083015290911660c090910152949350505050565b600082601f830112620024e357600080fd5b62001d978383356020850162002069565b600061012082360312156200250857600080fd5b620025126200200a565b82356001600160401b03808211156200252a57600080fd5b6200253836838701620024d1565b835260208501359150808211156200254f57600080fd5b506200255e36828601620024d1565b60208301525060408301356040820152606083013560608201526080830135608082015260a083013560a082015260c083013560c0820152620025a460e0840162001e0a565b60e0820152610100620025b981850162001e0a565b9082015292915050565b634e487b7160e01b600052603260045260246000fd5b60008060408385031215620025ed57600080fd5b505080516020909101519092909150565b6000602082840312156200261157600080fd5b815162001d978162001df4565b600084516200263281846020890162002269565b8201838582376000930192835250909392505050565b8082018082111562001d125762001d12620023b1565b6000602082840312156200267157600080fd5b8151801515811462001d9757600080fd5b81516001600160a01b0316815261016081016020830151620026af60208401826001600160a01b03169052565b506040830151620026c7604084018262ffffff169052565b506060830151620026dd606084018260020b9052565b506080830151620026f3608084018260020b9052565b5060a083015160a083015260c083015160c083015260e083015160e0830152610100808401518184015250610120808401516200273a828501826001600160a01b03169052565b505061014092830151919092015290565b600080600080608085870312156200276257600080fd5b8451935060208501516001600160801b03811681146200278157600080fd5b6040860151606090960151949790965092505050565b600060208284031215620027aa57600080fd5b5051919050565b6000600160ff1b8201620027c957620027c9620023b1565b5060000390565b60008160020b627fffff198103620027ec57620027ec620023b1565b60000392915050565b808202811582820484141762001d125762001d12620023b1565b634e487b7160e01b600052601260045260246000fd5b6000826200283757620028376200280f565b500490565b6000826200284e576200284e6200280f565b500690565b600082516200286781846020870162002269565b919091019291505056fe60a0604052600c805463ffffffff60a01b191660e160a41b1790553480156200002757600080fd5b506040516200354e3803806200354e8339810160408190526200004a9162000eef565b8686868686338585600362000060838262001049565b5060046200006f828262001049565b5050506001600160a01b038116620000a257604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000ad816200012c565b506001600160a01b038216608052620000c733846200017e565b6008805462ffffff60a01b191661027160a41b179055600680546001600160a01b03199081166001600160a01b0393841617909155600c8054821698831698909817909755600d805490971695169490941790945550620012f9975050505050505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001aa5760405163ec442f0560e01b81526000600482015260240162000099565b620001b860008383620001bc565b5050565b6000620001cb8484846200033e565b90508015620001e657620001e08482620003e7565b6200020a565b3060009081526020819052604090205480156200020857620002088162000451565b505b60006200021882846200112b565b90506001600160a01b038516620002495782600260008282546200023d919062001147565b90915550620002bd9050565b6001600160a01b038516600090815260208190526040902054838110156200029e5760405163391434e360e21b81526001600160a01b0387166004820152602481018290526044810185905260640162000099565b6001600160a01b03861660009081526020819052604090209084900390555b6001600160a01b038416620002db57600280548290039055620002fa565b6001600160a01b03841660009081526020819052604090208054820190555b836001600160a01b0316856001600160a01b03166000805160206200352e833981519152836040516200032f91815260200190565b60405180910390a35050505050565b6006546000906001600160a01b03908116908516036200036157506000620003e0565b6001600160a01b038085166000908152600960209081526040808320549387168352600a9091529020546127106200039a83866200115d565b620003a691906200118d565b620003b2908462001147565b9250612710620003c382866200115d565b620003cf91906200118d565b620003db908462001147565b925050505b9392505050565b30600081815260208190526040812080548492906200040890849062001147565b92505081905550806001600160a01b0316836001600160a01b03166000805160206200352e833981519152846040516200044491815260200190565b60405180910390a3505050565b6008546001600160a01b03163b600003620004695750565b6000306001600160a01b03166305ecd0036040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015620004c8575060408051601f3d908101601f19168201909252620004c591810190620011bc565b60015b6200055757600760009054906101000a90046001600160a01b03166001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa15801562000521573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620005479190620011ed565b509395506200055a945050505050565b90505b600062000572828430608051620007d760201b60201c565b90506000612710620005876103e8826200112b565b6200059390846200115d565b6200059f91906200118d565b604080516101008101825230808252608080516001600160a01b039081166020850190815260085462ffffff600160a01b82048116878901908152606088019687524295880195865260a088018e815260c089018b8152600060e08b019081529a5163414bf38960e01b81528a51881660048201529551871660248701529151909216604485015295518416606484015293516084830152925160a4820152925160c48401529351841660e483015293945090929091169063414bf38990610104016020604051808303816000875af19250505080156200069f575060408051601f3d908101601f191682019092526200069c9181019062001284565b60015b15620007d057506080516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a0823190602401602060405180830381865afa158015620006f0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000716919062001284565b608051604051632e1a7d4d60e01b8152600481018390529192506001600160a01b031690632e1a7d4d90602401600060405180830381600087803b1580156200075e57600080fd5b505af115801562000773573d6000803e3d6000fd5b5050600c546040516001600160a01b039091169250479150600081818185875af1925050503d8060008114620007c6576040519150601f19603f3d011682016040523d82523d6000602084013e620007cb565b606091505b505050505b5050505050565b600080620007e586620008f9565b90506001600160801b036001600160a01b0382161162000875576000620008166001600160a01b038316806200115d565b9050836001600160a01b0316856001600160a01b03161062000852576200084c600160c01b6001600160801b0388168362000d5b565b6200086c565b6200086c816001600160801b038816600160c01b62000d5b565b925050620008f0565b6000620008966001600160a01b038316806801000000000000000062000d5b565b9050836001600160a01b0316856001600160a01b031610620008d257620008cc600160801b6001600160801b0388168362000d5b565b620008ec565b620008ec816001600160801b038816600160801b62000d5b565b9250505b50949350505050565b60008060008360020b1262000912578260020b62000921565b8260020b62000921906200129e565b905062000932620d89e719620012bd565b60020b8111156200096a5760405162461bcd60e51b81526020600482015260016024820152601560fa1b604482015260640162000099565b6000816001166000036200098357600160801b62000995565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b031690506002821615620009cd576080620009c8826ffff97272373d413259a46990580e213a6200115d565b901c90505b6004821615620009fa576080620009f5826ffff2e50f5f656932ef12357cf3c7fdcc6200115d565b901c90505b600882161562000a2757608062000a22826fffe5caca7e10e4e61c3624eaa0941cd06200115d565b901c90505b601082161562000a5457608062000a4f826fffcb9843d60f6159c9db58835c9266446200115d565b901c90505b602082161562000a8157608062000a7c826fff973b41fa98c081472e6896dfb254c06200115d565b901c90505b604082161562000aae57608062000aa9826fff2ea16466c96a3843ec78b326b528616200115d565b901c90505b608082161562000adb57608062000ad6826ffe5dee046a99a2a811c461f1969c30536200115d565b901c90505b61010082161562000b0957608062000b04826ffcbe86c7900a88aedcffc83b479aa3a46200115d565b901c90505b61020082161562000b3757608062000b32826ff987a7253ac413176f2b074cf7815e546200115d565b901c90505b61040082161562000b6557608062000b60826ff3392b0822b70005940c7a398e4b70f36200115d565b901c90505b61080082161562000b9357608062000b8e826fe7159475a2c29b7443b29c7fa6e889d96200115d565b901c90505b61100082161562000bc157608062000bbc826fd097f3bdfd2022b8845ad8f792aa58256200115d565b901c90505b61200082161562000bef57608062000bea826fa9f746462d870fdf8a65dc1f90e061e56200115d565b901c90505b61400082161562000c1d57608062000c18826f70d869a156d2a1b890bb3df62baf32f76200115d565b901c90505b61800082161562000c4b57608062000c46826f31be135f97d08fd981231505542fcfa66200115d565b901c90505b6201000082161562000c7a57608062000c75826f09aa508b5b7a84e1c677de54f3e99bc96200115d565b901c90505b6202000082161562000ca857608062000ca3826e5d6af8dedb81196699c329225ee6046200115d565b901c90505b6204000082161562000cd557608062000cd0826d2216e584f5fa1ea926041bedfe986200115d565b901c90505b6208000082161562000d0057608062000cfb826b048a170391f7dc42444e8fa26200115d565b901c90505b60008460020b131562000d1e5762000d1b816000196200118d565b90505b62000d2f64010000000082620012e2565b1562000d3d57600162000d40565b60005b62000d539060ff16602083901c62001147565b949350505050565b600080806000198587098587029250828110838203039150508060000362000d97576000841162000d8b57600080fd5b508290049050620003e0565b80841162000da457600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b634e487b7160e01b600052604160045260246000fd5b600082601f83011262000e3957600080fd5b81516001600160401b038082111562000e565762000e5662000e11565b604051601f8301601f19908116603f0116810190828211818310171562000e815762000e8162000e11565b8160405283815260209250868385880101111562000e9e57600080fd5b600091505b8382101562000ec2578582018301518183018401529082019062000ea3565b600093810190920192909252949350505050565b6001600160a01b038116811462000eec57600080fd5b50565b600080600080600080600060e0888a03121562000f0b57600080fd5b87516001600160401b038082111562000f2357600080fd5b62000f318b838c0162000e27565b985060208a015191508082111562000f4857600080fd5b5062000f578a828b0162000e27565b96505060408801519450606088015162000f718162000ed6565b608089015190945062000f848162000ed6565b60a089015190935062000f978162000ed6565b60c089015190925062000faa8162000ed6565b8091505092959891949750929550565b600181811c9082168062000fcf57607f821691505b60208210810362000ff057634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200104457600081815260208120601f850160051c810160208610156200101f5750805b601f850160051c820191505b8181101562001040578281556001016200102b565b5050505b505050565b81516001600160401b0381111562001065576200106562000e11565b6200107d8162001076845462000fba565b8462000ff6565b602080601f831160018114620010b557600084156200109c5750858301515b600019600386901b1c1916600185901b17855562001040565b600085815260208120601f198616915b82811015620010e657888601518255948401946001909101908401620010c5565b5085821015620011055787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b8181038181111562001141576200114162001115565b92915050565b8082018082111562001141576200114162001115565b808202811582820484141762001141576200114162001115565b634e487b7160e01b600052601260045260246000fd5b6000826200119f576200119f62001177565b500490565b8051600281900b8114620011b757600080fd5b919050565b600060208284031215620011cf57600080fd5b620003e082620011a4565b805161ffff81168114620011b757600080fd5b600080600080600080600060e0888a0312156200120957600080fd5b8751620012168162000ed6565b96506200122660208901620011a4565b95506200123660408901620011da565b94506200124660608901620011da565b93506200125660808901620011da565b925060a088015160ff811681146200126d57600080fd5b60c0890151909250801515811462000faa57600080fd5b6000602082840312156200129757600080fd5b5051919050565b6000600160ff1b8201620012b657620012b662001115565b5060000390565b60008160020b627fffff198103620012d957620012d962001115565b60000392915050565b600082620012f457620012f462001177565b500690565b6080516122046200132a6000396000818161110a0152818161116e0152818161128b015261131701526122046000f3fe6080604052600436106101bb5760003560e01c806369d2da9c116100ec57806395d89b411161008a578063cb7e905711610064578063cb7e905714610564578063d150881414610584578063dd62ed3e146105b4578063f2fde38b146105fa57600080fd5b806395d89b41146104d75780639b7bf810146104ec578063a9059cbb1461054457600080fd5b8063715018a6116100c6578063715018a61461045757806373dd250c1461046c5780638da5cb5b1461048c57806395101f90146104aa57600080fd5b806369d2da9c146103e15780636ce491661461040157806370a082311461042157600080fd5b80633bfaa4ee1161015957806354fb25231161013357806354fb2523146103545780635f6417581461037457806361d027b3146103a1578063692058c2146103c157600080fd5b80633bfaa4ee146102d95780633c1d5df0146102fb5780634437152a1461033457600080fd5b806316f0115b1161019557806316f0115b1461024657806318160ddd1461027e57806323b872dd1461029d578063313ce567146102bd57600080fd5b806305ecd003146101c757806306fdde03146101f4578063095ea7b31461021657600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101dc61061a565b60405160029190910b81526020015b60405180910390f35b34801561020057600080fd5b50610209610789565b6040516101eb9190611b9e565b34801561022257600080fd5b50610236610231366004611c01565b61081b565b60405190151581526020016101eb565b34801561025257600080fd5b50600754610266906001600160a01b031681565b6040516001600160a01b0390911681526020016101eb565b34801561028a57600080fd5b506002545b6040519081526020016101eb565b3480156102a957600080fd5b506102366102b8366004611c2d565b610835565b3480156102c957600080fd5b50604051601281526020016101eb565b3480156102e557600080fd5b506102f96102f4366004611c6e565b61085b565b005b34801561030757600080fd5b50600c5461031f90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016101eb565b34801561034057600080fd5b506102f961034f366004611c87565b610920565b34801561036057600080fd5b50600654610266906001600160a01b031681565b34801561038057600080fd5b5061028f61038f366004611c87565b600a6020526000908152604090205481565b3480156103ad57600080fd5b50600d54610266906001600160a01b031681565b3480156103cd57600080fd5b50600854610266906001600160a01b031681565b3480156103ed57600080fd5b506102f96103fc366004611c87565b61094a565b34801561040d57600080fd5b506102f961041c366004611ca4565b610aa9565b34801561042d57600080fd5b5061028f61043c366004611c87565b6001600160a01b031660009081526020819052604090205490565b34801561046357600080fd5b506102f9610ac1565b34801561047857600080fd5b506102f9610487366004611cd9565b610ad5565b34801561049857600080fd5b506005546001600160a01b0316610266565b3480156104b657600080fd5b5061028f6104c5366004611c87565b60096020526000908152604090205481565b3480156104e357600080fd5b50610209610b01565b3480156104f857600080fd5b5061052f610507366004611c87565b6001600160a01b0316600090815260096020908152604080832054600a909252909120549091565b604080519283526020830191909152016101eb565b34801561055057600080fd5b5061023661055f366004611c01565b610b10565b34801561057057600080fd5b50600c54610266906001600160a01b031681565b34801561059057600080fd5b5061023661059f366004611c87565b600b6020526000908152604090205460ff1681565b3480156105c057600080fd5b5061028f6105cf366004611cfe565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b34801561060657600080fd5b506102f9610615366004611c87565b610b1e565b60408051600280825260608201835260009283929190602083019080368337019050509050600c60149054906101000a900463ffffffff168160008151811061066557610665611d4d565b602002602001019063ffffffff16908163ffffffff168152505060008160018151811061069457610694611d4d565b63ffffffff9092166020928302919091019091015260075460405163883bdbfd60e01b81526000916001600160a01b03169063883bdbfd906106da908590600401611d63565b600060405180830381865afa1580156106f7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261071f9190810190611e76565b50905060008160008151811061073757610737611d4d565b60200260200101518260018151811061075257610752611d4d565b60200260200101516107649190611f58565b600c5490915061078190600160a01b900463ffffffff1682611f9b565b935050505090565b60606003805461079890611fd9565b80601f01602080910402602001604051908101604052809291908181526020018280546107c490611fd9565b80156108115780601f106107e657610100808354040283529160200191610811565b820191906000526020600020905b8154815290600101906020018083116107f457829003601f168201915b5050505050905090565b600033610829818585610b61565b60019150505b92915050565b600033610843858285610b6e565b61084e858585610bec565b60019150505b9392505050565b600d546001600160a01b0316331461088657604051632298d39d60e11b815260040160405180910390fd5b30600090815260208190526040812080548392906108a5908490612013565b9091555050600d546001600160a01b0316600090815260208190526040812080548392906108d4908490612026565b9091555050600d546040518281526001600160a01b039091169030907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a350565b610928610c4b565b600780546001600160a01b0319166001600160a01b0392909216919091179055565b610952610c4b565b6008546001600160a01b031680156109db5760085460405163095ea7b360e01b81526001600160a01b03909116600482015260006024820152309063095ea7b3906044016020604051808303816000875af11580156109b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d9919061204e565b505b600880546001600160a01b0319166001600160a01b03841690811790915560405163095ea7b360e01b815260048101919091526000196024820152309063095ea7b3906044016020604051808303816000875af1158015610a40573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a64919061204e565b50816001600160a01b0316816001600160a01b03167f7944eb377e472febf8aadfe5cfdd9fa974762abb456732d067c1e14d448d05a760405160405180910390a35050565b610ab1610c4b565b610abc838383610c78565b505050565b610ac9610c4b565b610ad36000610ded565b565b610add610c4b565b6008805462ffffff909216600160a01b0262ffffff60a01b19909216919091179055565b60606004805461079890611fd9565b600033610829818585610bec565b610b26610c4b565b6001600160a01b038116610b5557604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b610b5e81610ded565b50565b610abc8383836001610e3f565b6001600160a01b038381166000908152600160209081526040808320938616835292905220546000198114610be65781811015610bd757604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610b4c565b610be684848484036000610e3f565b50505050565b6001600160a01b038316610c1657604051634b637e8f60e11b815260006004820152602401610b4c565b6001600160a01b038216610c405760405163ec442f0560e01b815260006004820152602401610b4c565b610abc838383610e81565b6005546001600160a01b03163314610ad35760405163118cdaa760e01b8152336004820152602401610b4c565b6103e8821180610c8957506103e881115b15610ca757604051632bc7b84d60e21b815260040160405180910390fd5b6001600160a01b0383166000908152600b602052604090205460ff168015610cce57508115155b8015610cd957508015155b15610cf757604051632155322760e11b815260040160405180910390fd5b306001600160a01b03841603610d205760405163e339bdab60e01b815260040160405180910390fd5b6001600160a01b0383166000908152600960209081526040808320859055600a909152902081905581151580610d565750600081115b15610d83576001600160a01b0383166000908152600b60205260409020805460ff19166001179055610da4565b6001600160a01b0383166000908152600b60205260409020805460ff191690555b60408051838152602081018390526001600160a01b038516917f3702fe9b6a853faae6207a036846fcd4d7ff8a226ec78129d5588697c0d7eca0910160405180910390a2505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b306000908152602081905260409020548015610e6e5730600090815260208190526040902054610e6e90611000565b610e7a858585856113d8565b5050505050565b6000610e8e8484846114ad565b90508015610ea557610ea08482611546565b610ec6565b306000908152602081905260409020548015610ec457610ec481611000565b505b6000610ed28284612013565b90506001600160a01b038516610eff578260026000828254610ef49190612026565b90915550610f719050565b6001600160a01b03851660009081526020819052604090205483811015610f525760405163391434e360e21b81526001600160a01b03871660048201526024810182905260448101859052606401610b4c565b6001600160a01b03861660009081526020819052604090209084900390555b6001600160a01b038416610f8d57600280548290039055610fac565b6001600160a01b03841660009081526020819052604090208054820190555b836001600160a01b0316856001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610ff191815260200190565b60405180910390a35050505050565b6008546001600160a01b03163b6000036110175750565b6000306001600160a01b03166305ecd0036040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611073575060408051601f3d908101601f191682019092526110709181019061207b565b60015b6110fd57600760009054906101000a90046001600160a01b03166001600160a01b0316633850c7bd6040518163ffffffff1660e01b815260040160e060405180830381865afa1580156110ca573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110ee91906120a8565b50939550611100945050505050565b90505b600061112e8284307f00000000000000000000000000000000000000000000000000000000000000006115be565b905060006127106111416103e882612013565b61114b9084612138565b611155919061214f565b6040805161010081018252308082526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811660208401908152600854600160a01b810462ffffff90811686880190815260608701958652426080880190815260a088018e815260c089018b8152600060e08b019081529a5163414bf38960e01b81528a518916600482015296518816602488015292519093166044860152955185166064850152945160848401525160a4830152925160c48201529351811660e48501529394509092169063414bf38990610104016020604051808303816000875af192505050801561126d575060408051601f3d908101601f1916820190925261126a91810190612163565b60015b15610e7a57506040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa1580156112da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112fe9190612163565b604051632e1a7d4d60e01b8152600481018290529091507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690632e1a7d4d90602401600060405180830381600087803b15801561136357600080fd5b505af1158015611377573d6000803e3d6000fd5b5050600c546040516001600160a01b039091169250479150600081818185875af1925050503d80600081146113c8576040519150601f19603f3d011682016040523d82523d6000602084013e6113cd565b606091505b505050505050505050565b6001600160a01b0384166114025760405163e602df0560e01b815260006004820152602401610b4c565b6001600160a01b03831661142c57604051634a1406b160e11b815260006004820152602401610b4c565b6001600160a01b0380851660009081526001602090815260408083209387168352929052208290558015610be657826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161149f91815260200190565b60405180910390a350505050565b6006546000906001600160a01b03908116908516036114ce57506000610854565b6001600160a01b038085166000908152600960209081526040808320549387168352600a9091529020546127106115058386612138565b61150f919061214f565b6115199084612026565b92506127106115288286612138565b611532919061214f565b61153c9084612026565b9695505050505050565b3060008181526020819052604081208054849290611565908490612026565b92505081905550806001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516115b191815260200190565b60405180910390a3505050565b6000806115ca866116cc565b90506001600160801b036001600160a01b038216116116505760006115f86001600160a01b03831680612138565b9050836001600160a01b0316856001600160a01b0316106116305761162b600160c01b876001600160801b031683611aec565b611648565b61164881876001600160801b0316600160c01b611aec565b9250506116c3565b600061166f6001600160a01b0383168068010000000000000000611aec565b9050836001600160a01b0316856001600160a01b0316106116a7576116a2600160801b876001600160801b031683611aec565b6116bf565b6116bf81876001600160801b0316600160801b611aec565b9250505b50949350505050565b60008060008360020b126116e3578260020b6116f0565b8260020b6116f09061217c565b90506116ff620d89e719612198565b60020b8111156117355760405162461bcd60e51b81526020600482015260016024820152601560fa1b6044820152606401610b4c565b60008160011660000361174c57600160801b61175e565b6ffffcb933bd6fad37aa2d162d1a5940015b70ffffffffffffffffffffffffffffffffff169050600282161561179d576080611798826ffff97272373d413259a46990580e213a612138565b901c90505b60048216156117c75760806117c2826ffff2e50f5f656932ef12357cf3c7fdcc612138565b901c90505b60088216156117f15760806117ec826fffe5caca7e10e4e61c3624eaa0941cd0612138565b901c90505b601082161561181b576080611816826fffcb9843d60f6159c9db58835c926644612138565b901c90505b6020821615611845576080611840826fff973b41fa98c081472e6896dfb254c0612138565b901c90505b604082161561186f57608061186a826fff2ea16466c96a3843ec78b326b52861612138565b901c90505b6080821615611899576080611894826ffe5dee046a99a2a811c461f1969c3053612138565b901c90505b6101008216156118c45760806118bf826ffcbe86c7900a88aedcffc83b479aa3a4612138565b901c90505b6102008216156118ef5760806118ea826ff987a7253ac413176f2b074cf7815e54612138565b901c90505b61040082161561191a576080611915826ff3392b0822b70005940c7a398e4b70f3612138565b901c90505b610800821615611945576080611940826fe7159475a2c29b7443b29c7fa6e889d9612138565b901c90505b61100082161561197057608061196b826fd097f3bdfd2022b8845ad8f792aa5825612138565b901c90505b61200082161561199b576080611996826fa9f746462d870fdf8a65dc1f90e061e5612138565b901c90505b6140008216156119c65760806119c1826f70d869a156d2a1b890bb3df62baf32f7612138565b901c90505b6180008216156119f15760806119ec826f31be135f97d08fd981231505542fcfa6612138565b901c90505b62010000821615611a1d576080611a18826f09aa508b5b7a84e1c677de54f3e99bc9612138565b901c90505b62020000821615611a48576080611a43826e5d6af8dedb81196699c329225ee604612138565b901c90505b62040000821615611a72576080611a6d826d2216e584f5fa1ea926041bedfe98612138565b901c90505b62080000821615611a9a576080611a95826b048a170391f7dc42444e8fa2612138565b901c90505b60008460020b1315611ab557611ab28160001961214f565b90505b611ac4640100000000826121ba565b15611ad0576001611ad3565b60005b611ae49060ff16602083901c612026565b949350505050565b6000808060001985870985870292508281108382030391505080600003611b255760008411611b1a57600080fd5b508290049050610854565b808411611b3157600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b600060208083528351808285015260005b81811015611bcb57858101830151858201604001528201611baf565b506000604082860101526040601f19601f8301168501019250505092915050565b6001600160a01b0381168114610b5e57600080fd5b60008060408385031215611c1457600080fd5b8235611c1f81611bec565b946020939093013593505050565b600080600060608486031215611c4257600080fd5b8335611c4d81611bec565b92506020840135611c5d81611bec565b929592945050506040919091013590565b600060208284031215611c8057600080fd5b5035919050565b600060208284031215611c9957600080fd5b813561085481611bec565b600080600060608486031215611cb957600080fd5b8335611cc481611bec565b95602085013595506040909401359392505050565b600060208284031215611ceb57600080fd5b813562ffffff8116811461085457600080fd5b60008060408385031215611d1157600080fd5b8235611d1c81611bec565b91506020830135611d2c81611bec565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6020808252825182820181905260009190848201906040850190845b81811015611da157835163ffffffff1683529284019291840191600101611d7f565b50909695505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715611dd657611dd6611d37565b604052919050565b600067ffffffffffffffff821115611df857611df8611d37565b5060051b60200190565b600082601f830112611e1357600080fd5b81516020611e28611e2383611dde565b611dad565b82815260059290921b84018101918181019086841115611e4757600080fd5b8286015b84811015611e6b578051611e5e81611bec565b8352918301918301611e4b565b509695505050505050565b60008060408385031215611e8957600080fd5b825167ffffffffffffffff80821115611ea157600080fd5b818501915085601f830112611eb557600080fd5b81516020611ec5611e2383611dde565b82815260059290921b84018101918181019089841115611ee457600080fd5b948201945b83861015611f125785518060060b8114611f035760008081fd5b82529482019490820190611ee9565b91880151919650909350505080821115611f2b57600080fd5b50611f3885828601611e02565b9150509250929050565b634e487b7160e01b600052601160045260246000fd5b600682810b9082900b03667fffffffffffff198112667fffffffffffff8213171561082f5761082f611f42565b634e487b7160e01b600052601260045260246000fd5b60008160060b8360060b80611fb257611fb2611f85565b667fffffffffffff19821460001982141615611fd057611fd0611f42565b90059392505050565b600181811c90821680611fed57607f821691505b60208210810361200d57634e487b7160e01b600052602260045260246000fd5b50919050565b8181038181111561082f5761082f611f42565b8082018082111561082f5761082f611f42565b8051801515811461204957600080fd5b919050565b60006020828403121561206057600080fd5b61085482612039565b8051600281900b811461204957600080fd5b60006020828403121561208d57600080fd5b61085482612069565b805161ffff8116811461204957600080fd5b600080600080600080600060e0888a0312156120c357600080fd5b87516120ce81611bec565b96506120dc60208901612069565b95506120ea60408901612096565b94506120f860608901612096565b935061210660808901612096565b925060a088015160ff8116811461211c57600080fd5b915061212a60c08901612039565b905092959891949750929550565b808202811582820484141761082f5761082f611f42565b60008261215e5761215e611f85565b500490565b60006020828403121561217557600080fd5b5051919050565b6000600160ff1b820161219157612191611f42565b5060000390565b60008160020b627fffff1981036121b1576121b1611f42565b60000392915050565b6000826121c9576121c9611f85565b50069056fea264697066735822122018dd113691e93ba62978ba85e982e7fdc4fc475146dd8ff9db9507063d46342664736f6c63430008140033ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca26469706673582212202ca38c6f84d12b6b6859bdb535142e3b67164d500ed67965ed57ce4b99dbcd7964736f6c63430008140033