0 txs
0 calls
constructor
constructor(address _operator)
functions
apiVersion
viewfunction apiVersion() view returns (string)
chainlinkPriceLastUpdated
viewfunction chainlinkPriceLastUpdated(address _token) view returns (uint256 updatedAt)
currentDay
viewfunction currentDay() view returns (uint256)
dailyLows
viewfunction dailyLows(address, uint256) view returns (uint256)
dailyUpdates
viewfunction dailyUpdates(address, uint256) view returns (uint256)
DEFAULT_POINTS
viewfunction DEFAULT_POINTS() view returns (uint256)
feeds
viewfunction feeds(address) view returns (address feedAddress, uint96 heartbeat)
getChainlinkPrice
viewfunction getChainlinkPrice(address _token) view returns (uint256 currentPrice)
getCurrentPrice
viewfunction getCurrentPrice(address _pool) view returns (uint256)
getTokenPrices
viewfunction getTokenPrices(address _pool) view returns (uint256 price0, uint256 price1)
getTwapPrice
viewfunction getTwapPrice(address _pool, address _token, uint256 _oneToken) view returns (uint256 twapPrice)
lowerPriceBound
viewfunction lowerPriceBound(address) view returns (uint256)
operator
viewfunction operator() view returns (address)
pendingOperator
viewfunction pendingOperator() view returns (address)
pointsOverride
viewfunction pointsOverride(address) view returns (uint256)
priceUpdatooors
viewfunction priceUpdatooors(address) view returns (bool)
sequencerUptimeFeed
viewfunction sequencerUptimeFeed() view returns (address)
upperPriceBound
viewfunction upperPriceBound(address) view returns (uint256)
useAdjustedPricing
viewfunction useAdjustedPricing() view returns (bool)
useChainlinkOnly
viewfunction useChainlinkOnly() view returns (bool)
useThreeDayLow
viewfunction useThreeDayLow() view returns (bool)
claimOperator
nonpayablefunction claimOperator()
setFeed
nonpayablefunction setFeed(address _token, address _feed, uint96 _heartbeat)
setManualPriceCaps
nonpayablefunction setManualPriceCaps(address _pool, uint256 _upperBound, uint256 _lowerBound)
setPendingOperator
nonpayablefunction setPendingOperator(address _newOperator)
setPointsOverride
nonpayablefunction setPointsOverride(address _pool, uint256 _points)
setPriceUpdatooors
nonpayablefunction setPriceUpdatooors(address _addr, bool _approved)
setUseAdjustedPrice
nonpayablefunction setUseAdjustedPrice(bool _useAdjusted, bool _useThreeDayLow)
setUseChainlinkOnly
nonpayablefunction setUseChainlinkOnly(bool _useChainlinkOnly)
updateManyPrices
nonpayablefunction updateManyPrices(address[] _pools)
updatePrice
nonpayablefunction updatePrice(address _pool)
events
ApprovedPriceUpdatooor
event ApprovedPriceUpdatooor(address account, bool canEndorse)
ChangeOperator
event ChangeOperator(address indexed newOperator)
ManualPriceCapsUpdated
event ManualPriceCapsUpdated(address indexed token, uint256 upperPriceCap, uint256 lowerPriceCap)
RecordDailyLow
event RecordDailyLow(address indexed token, uint256 price)
SetTokenFeed
event SetTokenFeed(address indexed token, address indexed feed, uint96 heartbeat)
SetUseAdjustedPricing
event SetUseAdjustedPricing(bool useAdjusted, bool useThreeDayWindow)
SetUseChainlinkOnly
event SetUseChainlinkOnly(bool onlyChainlink)
UpdatedPointsOverride
event UpdatedPointsOverride(address pool, uint256 points)
errors
No errors.
creation bytecode
0x60806040526001600460006101000a81548160ff0219169083151502179055506000600460016101000a81548160ff0219169083151502179055506000600460026101000a81548160ff0219169083151502179055503480156200006257600080fd5b5060405162003c6238038062003c62833981810160405281019062000088919062000192565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050620001c4565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200015a826200012d565b9050919050565b6200016c816200014d565b81146200017857600080fd5b50565b6000815190506200018c8162000161565b92915050565b600060208284031215620001ab57620001aa62000128565b5b6000620001bb848285016200017b565b91505092915050565b613a8e80620001d46000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c806384cc315b1161010f578063bc7ad56a116100a2578063d54e65fb11610071578063d54e65fb146105cc578063ed1c7023146105d6578063f42aee1114610606578063fba1c1a314610622576101e5565b8063bc7ad56a14610532578063bd58fe5614610550578063c00a0f4c14610580578063c103297f146105b0576101e5565b8063aa89aea1116100de578063aa89aea114610483578063ab17f1eb146104b3578063ac7e534e146104e4578063b791f52414610502576101e5565b806384cc315b146103fd57806396e85ced1461042d578063a726470514610449578063a966479014610467576101e5565b8063570ca7351161018757806370c4c23f1161015657806370c4c23f146103515780637552c7f31461038157806375b008bc146103b15780637a999f9f146103cd576101e5565b8063570ca735146102c75780635c9302c9146102e55780635e377fc4146103035780635f9fa52714610321576101e5565b806325829410116101c357806325829410146102405780632fba4aa91461025e5780634eb90a571461028f5780635469e74f146102ab576101e5565b806303da4dd5146101ea578063143d4e491461020857806316f0256c14610224575b600080fd5b6101f2610640565b6040516101ff9190612835565b60405180910390f35b610222600480360381019061021d91906128c2565b610653565b005b61023e60048036038101906102399190612a48565b610727565b005b6102486107fd565b6040516102559190612b10565b60405180910390f35b610278600480360381019061027391906128c2565b610836565b604051610286929190612b68565b60405180910390f35b6102a960048036038101906102a49190612bbd565b610892565b005b6102c560048036038101906102c09190612c3c565b610a7e565b005b6102cf610ba2565b6040516102dc9190612c7c565b60405180910390f35b6102ed610bc8565b6040516102fa9190612cb0565b60405180910390f35b61030b610bde565b6040516103189190612835565b60405180910390f35b61033b600480360381019061033691906128c2565b610bf1565b6040516103489190612835565b60405180910390f35b61036b60048036038101906103669190612cf7565b610c11565b6040516103789190612cb0565b60405180910390f35b61039b60048036038101906103969190612cf7565b610c36565b6040516103a89190612cb0565b60405180910390f35b6103cb60048036038101906103c69190612d37565b610c5b565b005b6103e760048036038101906103e291906128c2565b610db4565b6040516103f49190612cb0565b60405180910390f35b610417600480360381019061041291906128c2565b610e9d565b6040516104249190612cb0565b60405180910390f35b610447600480360381019061044291906128c2565b610ed5565b005b610451610f6d565b60405161045e9190612dd6565b60405180910390f35b610481600480360381019061047c9190612df1565b610f85565b005b61049d600480360381019061049891906128c2565b611069565b6040516104aa9190612cb0565b60405180910390f35b6104cd60048036038101906104c891906128c2565b611081565b6040516104db929190612e1e565b60405180910390f35b6104ec61140a565b6040516104f99190612c7c565b60405180910390f35b61051c600480360381019061051791906128c2565b611430565b6040516105299190612cb0565b60405180910390f35b61053a611448565b6040516105479190612835565b60405180910390f35b61056a600480360381019061056591906128c2565b61145b565b6040516105779190612cb0565b60405180910390f35b61059a600480360381019061059591906128c2565b611820565b6040516105a79190612cb0565b60405180910390f35b6105ca60048036038101906105c59190612e47565b611838565b005b6105d46119e8565b005b6105f060048036038101906105eb9190612e9a565b611b84565b6040516105fd9190612cb0565b60405180910390f35b610620600480360381019061061b9190612cf7565b611c64565b005b61062a611d75565b6040516106379190612cb0565b60405180910390f35b600460009054906101000a900460ff1681565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146106e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106da90612f39565b60405180910390fd5b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166107b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107aa90612fa5565b60405180910390fd5b60005b81518110156107f95760008282815181106107d4576107d3612fc5565b5b602002602001015190506107e781611d7a565b50806107f290613023565b90506107b6565b5050565b6040518060400160405280600581526020017f312e302e3000000000000000000000000000000000000000000000000000000081525081565b60056020528060005260406000206000915090508060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060000160149054906101000a90046bffffffffffffffffffffffff16905082565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610922576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161091990612f39565b60405180910390fd5b81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f54eda7559ab6131b7e3b9e83c84a485ac340a61c6c71379468d73cab33e935e683604051610a71919061306b565b60405180910390a3505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b0e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b0590612f39565b60405180910390fd5b80600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055507f4e5758f8e5e932a802f1db718705542ee589135bad6db0f561b9c620cfd946dc8282604051610b96929190613086565b60405180910390a15050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006201518042610bd991906130de565b905090565b600460019054906101000a900460ff1681565b60076020528060005260406000206000915054906101000a900460ff1681565b6000602052816000526040600020602052806000526040600020600091509150505481565b6001602052816000526040600020602052806000526040600020600091509150505481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ce290612f39565b60405180910390fd5b60011515811515148015610d03575060001515821515145b15610d43576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3a90613181565b60405180910390fd5b81600460006101000a81548160ff02191690831515021790555080600460016101000a81548160ff0219169083151502179055507f287feafa11c2a3b24883189b581133cf8c2ee0b1d56171bf73bd1125fdf315ea8282604051610da89291906131a1565b60405180910390a15050565b6000600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015610e63573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e879190613257565b9091929350909192509091505080915050919050565b6000600460009054906101000a900460ff1615610ec457610ebd82611f0a565b9050610ed0565b610ecd826121c5565b90505b919050565b600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610f61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5890612fa5565b60405180910390fd5b610f6a81611d7a565b50565b73371ead81c9102c9bf4874a9075ffff170f2ee38981565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161100c90612f39565b60405180910390fd5b80600460026101000a81548160ff0219169083151502179055507fd3c569d3aa6a005d9e6472e83478503f6d8c6879370ba0c97bb3e8911dcd5e3e8160405161105e9190612835565b60405180910390a150565b60026020528060005260406000206000915090505481565b60008060008390506000806000808473ffffffffffffffffffffffffffffffffffffffff1663392f37e96040518163ffffffff1660e01b815260040160e060405180830381865afa1580156110da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110fe91906132fc565b9650965050505093509350600073ffffffffffffffffffffffffffffffffffffffff16600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112e2576111a88261145b565b9650600073ffffffffffffffffffffffffffffffffffffffff16600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611250576112498161145b565b95506112dd565b600460029054906101000a900460ff16156112a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611297906133ea565b60405180910390fd5b6112ab888386611b84565b83846112b7919061340a565b6112c191906130de565b95508286886112d0919061340a565b6112da91906130de565b95505b611400565b600073ffffffffffffffffffffffffffffffffffffffff16600560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146113c4576113818161145b565b955061138e888285611b84565b848561139a919061340a565b6113a491906130de565b96508386886113b3919061340a565b6113bd91906130de565b96506113ff565b6040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f6906134be565b60405180910390fd5b5b5050505050915091565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60066020528060005260406000206000915090505481565b600460029054906101000a900460ff1681565b6000806000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561150d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115319190613257565b509350509250506008600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156115e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061160b9190613517565b60ff161461164e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164590613590565b60405180910390fd5b60008213611691576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611688906135fc565b60405180910390fd5b600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060000160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff168142611706919061361c565b1115611747576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161173e9061369c565b60405180910390fd5b600073371ead81c9102c9bf4874a9075ffff170f2ee38973ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156117a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117cc9190613257565b50505091505060018103611815576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180c90613708565b60405180910390fd5b829350505050919050565b60036020528060005260406000206000915090505481565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146118c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118bf90612f39565b60405180910390fd5b8181111561190b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119029061379a565b60405180910390fd5b81600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff167f5448dbedfe37a57315195bd2bceff1fb12fa4ffc86823a5227b974f3cdfd053b83836040516119db929190612e1e565b60405180910390a2505050565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a6f90613806565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506000600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8eb831fe42156caaf4721a87ad40c6e662b893dbeee76d7a3ed2564a318b091c60405160405180910390a2565b6000808490506000600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008103611bdb57600490505b8173ffffffffffffffffffffffffffffffffffffffff16639e8cc04b8686846040518463ffffffff1660e01b8152600401611c1893929190613826565b602060405180830381865afa158015611c35573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611c59919061385d565b925050509392505050565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ceb90612f39565b60405180910390fd5b80600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055507f9d43d1c03e39cce5ec1309e3b4c9fdc1988393ad4f50ff485844f621aae33ff18282604051611d6992919061388a565b60405180910390a15050565b600481565b6000611d85826121c5565b90506000611d91610bc8565b905060018060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000828254611df391906138b3565b9250508190555060008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000205490506000811480611e5c57508083105b15611f0457826000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000848152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff167fbbf79d525adf40b05f7e2779ec9f3bc352803dc6f9a7ab4512fbde7120d6759784604051611efb9190612cb0565b60405180910390a25b50505050565b600080611f16836121c5565b90506000611f22610bc8565b905060008060008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000205490506000811480611f8657508083105b15611f8f578290505b60008060008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600185611fde919061361c565b81526020019081526020016000205490508082118015611ffe5750600081115b612008578161200a565b805b9450600460019054906101000a900460ff16156120a05760008060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600286612070919061361c565b815260200190815260200160002054905080861180156120905750600081115b61209a578561209c565b805b9550505b6000600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008211801561213757508187115b15612177576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216e90613933565b60405180910390fd5b808710156121ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121b19061399f565b60405180910390fd5b505050505050919050565b60008082905060128173ffffffffffffffffffffffffffffffffffffffff1663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612218573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061223c9190613517565b60ff161461227f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227690613a0b565b60405180910390fd5b6000806000808473ffffffffffffffffffffffffffffffffffffffff1663392f37e96040518163ffffffff1660e01b815260040160e060405180830381865afa1580156122d0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122f491906132fc565b505050935093509350935083670de0b6b3a764000083612314919061340a565b61231e91906130de565b915082670de0b6b3a764000082612335919061340a565b61233f91906130de565b90506000806000806123508b611081565b915091508873ffffffffffffffffffffffffffffffffffffffff166322be3de16040518163ffffffff1660e01b8152600401602060405180830381865afa15801561239f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123c39190613a2b565b156125385761248561246d87670de0b6b3a764000089670de0b6b3a76400008b8b6123ee919061340a565b6123f891906130de565b612402919061340a565b61240c91906130de565b612416919061340a565b87670de0b6b3a764000089670de0b6b3a76400008b8d612436919061340a565b61244091906130de565b61244a919061340a565b61245491906130de565b61245e919061340a565b61246891906138b3565b612627565b670de0b6b3a7640000612480919061340a565b612627565b935061253161251a8384612499919061340a565b84856124a5919061340a565b6124af91906138b3565b8384662386f26fc100008688898a6124c7919061340a565b6124d1919061340a565b6124db919061340a565b6124e591906130de565b6124ef919061340a565b6124f9919061340a565b61250391906130de565b662386f26fc10000612515919061340a565b612627565b662386f26fc1000061252c919061340a565b612627565b9250612577565b61254c8587612547919061340a565b612627565b935061257481662386f26fc1000084612565919061340a565b61256f919061340a565b612627565b92505b8873ffffffffffffffffffffffffffffffffffffffff166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156125c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125e6919061385d565b6305f5e1006125f5919061340a565b84846002612603919061340a565b61260d919061340a565b61261791906130de565b9950505050505050505050919050565b6000808203612639576000905061271b565b6000600161264684612720565b901c6001901b905060018184816126605761265f6130af565b5b048201901c90506001818481612679576126786130af565b5b048201901c90506001818481612692576126916130af565b5b048201901c905060018184816126ab576126aa6130af565b5b048201901c905060018184816126c4576126c36130af565b5b048201901c905060018184816126dd576126dc6130af565b5b048201901c905060018184816126f6576126f56130af565b5b048201901c905061271781828581612711576127106130af565b5b04612801565b9150505b919050565b600080600090506000608084901c111561274257608083901c92506080810190505b6000604084901c111561275d57604083901c92506040810190505b6000602084901c111561277857602083901c92506020810190505b6000601084901c111561279357601083901c92506010810190505b6000600884901c11156127ae57600883901c92506008810190505b6000600484901c11156127c957600483901c92506004810190505b6000600284901c11156127e457600283901c92506002810190505b6000600184901c11156127f8576001810190505b80915050919050565b60008183106128105781612812565b825b905092915050565b60008115159050919050565b61282f8161281a565b82525050565b600060208201905061284a6000830184612826565b92915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061288f82612864565b9050919050565b61289f81612884565b81146128aa57600080fd5b50565b6000813590506128bc81612896565b92915050565b6000602082840312156128d8576128d761285a565b5b60006128e6848285016128ad565b91505092915050565b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b61293d826128f4565b810181811067ffffffffffffffff8211171561295c5761295b612905565b5b80604052505050565b600061296f612850565b905061297b8282612934565b919050565b600067ffffffffffffffff82111561299b5761299a612905565b5b602082029050602081019050919050565b600080fd5b60006129c46129bf84612980565b612965565b905080838252602082019050602084028301858111156129e7576129e66129ac565b5b835b81811015612a1057806129fc88826128ad565b8452602084019350506020810190506129e9565b5050509392505050565b600082601f830112612a2f57612a2e6128ef565b5b8135612a3f8482602086016129b1565b91505092915050565b600060208284031215612a5e57612a5d61285a565b5b600082013567ffffffffffffffff811115612a7c57612a7b61285f565b5b612a8884828501612a1a565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612acb578082015181840152602081019050612ab0565b60008484015250505050565b6000612ae282612a91565b612aec8185612a9c565b9350612afc818560208601612aad565b612b05816128f4565b840191505092915050565b60006020820190508181036000830152612b2a8184612ad7565b905092915050565b612b3b81612884565b82525050565b60006bffffffffffffffffffffffff82169050919050565b612b6281612b41565b82525050565b6000604082019050612b7d6000830185612b32565b612b8a6020830184612b59565b9392505050565b612b9a81612b41565b8114612ba557600080fd5b50565b600081359050612bb781612b91565b92915050565b600080600060608486031215612bd657612bd561285a565b5b6000612be4868287016128ad565b9350506020612bf5868287016128ad565b9250506040612c0686828701612ba8565b9150509250925092565b612c198161281a565b8114612c2457600080fd5b50565b600081359050612c3681612c10565b92915050565b60008060408385031215612c5357612c5261285a565b5b6000612c61858286016128ad565b9250506020612c7285828601612c27565b9150509250929050565b6000602082019050612c916000830184612b32565b92915050565b6000819050919050565b612caa81612c97565b82525050565b6000602082019050612cc56000830184612ca1565b92915050565b612cd481612c97565b8114612cdf57600080fd5b50565b600081359050612cf181612ccb565b92915050565b60008060408385031215612d0e57612d0d61285a565b5b6000612d1c858286016128ad565b9250506020612d2d85828601612ce2565b9150509250929050565b60008060408385031215612d4e57612d4d61285a565b5b6000612d5c85828601612c27565b9250506020612d6d85828601612c27565b9150509250929050565b6000819050919050565b6000612d9c612d97612d9284612864565b612d77565b612864565b9050919050565b6000612dae82612d81565b9050919050565b6000612dc082612da3565b9050919050565b612dd081612db5565b82525050565b6000602082019050612deb6000830184612dc7565b92915050565b600060208284031215612e0757612e0661285a565b5b6000612e1584828501612c27565b91505092915050565b6000604082019050612e336000830185612ca1565b612e406020830184612ca1565b9392505050565b600080600060608486031215612e6057612e5f61285a565b5b6000612e6e868287016128ad565b9350506020612e7f86828701612ce2565b9250506040612e9086828701612ce2565b9150509250925092565b600080600060608486031215612eb357612eb261285a565b5b6000612ec1868287016128ad565b9350506020612ed2868287016128ad565b9250506040612ee386828701612ce2565b9150509250925092565b7f4f4e4c59204f50455241544f5200000000000000000000000000000000000000600082015250565b6000612f23600d83612a9c565b9150612f2e82612eed565b602082019050919050565b60006020820190508181036000830152612f5281612f16565b9050919050565b7f756e617574686f72697a65640000000000000000000000000000000000000000600082015250565b6000612f8f600c83612a9c565b9150612f9a82612f59565b602082019050919050565b60006020820190508181036000830152612fbe81612f82565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061302e82612c97565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036130605761305f612ff4565b5b600182019050919050565b60006020820190506130806000830184612b59565b92915050565b600060408201905061309b6000830185612b32565b6130a86020830184612826565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006130e982612c97565b91506130f483612c97565b925082613104576131036130af565b5b828204905092915050565b7f4e65656420746f207573652061646a75737465642070726963696e672077697460008201527f68203320646179206c6f77000000000000000000000000000000000000000000602082015250565b600061316b602b83612a9c565b91506131768261310f565b604082019050919050565b6000602082019050818103600083015261319a8161315e565b9050919050565b60006040820190506131b66000830185612826565b6131c36020830184612826565b9392505050565b600069ffffffffffffffffffff82169050919050565b6131e9816131ca565b81146131f457600080fd5b50565b600081519050613206816131e0565b92915050565b6000819050919050565b61321f8161320c565b811461322a57600080fd5b50565b60008151905061323c81613216565b92915050565b60008151905061325181612ccb565b92915050565b600080600080600060a086880312156132735761327261285a565b5b6000613281888289016131f7565b95505060206132928882890161322d565b94505060406132a388828901613242565b93505060606132b488828901613242565b92505060806132c5888289016131f7565b9150509295509295909350565b6000815190506132e181612c10565b92915050565b6000815190506132f681612896565b92915050565b600080600080600080600060e0888a03121561331b5761331a61285a565b5b60006133298a828b01613242565b975050602061333a8a828b01613242565b965050604061334b8a828b01613242565b955050606061335c8a828b01613242565b945050608061336d8a828b016132d2565b93505060a061337e8a828b016132e7565b92505060c061338f8a828b016132e7565b91505092959891949750929550565b7f4f6e6c7920436861696e6c696e6b20666565647320737570706f727465640000600082015250565b60006133d4601e83612a9c565b91506133df8261339e565b602082019050919050565b60006020820190508181036000830152613403816133c7565b9050919050565b600061341582612c97565b915061342083612c97565b925082820261342e81612c97565b9150828204841483151761344557613444612ff4565b5b5092915050565b7f4174206c65617374206f6e6520746f6b656e206d757374206861766520434c2060008201527f6f7261636c650000000000000000000000000000000000000000000000000000602082015250565b60006134a8602683612a9c565b91506134b38261344c565b604082019050919050565b600060208201905081810360008301526134d78161349b565b9050919050565b600060ff82169050919050565b6134f4816134de565b81146134ff57600080fd5b50565b600081519050613511816134eb565b92915050565b60006020828403121561352d5761352c61285a565b5b600061353b84828501613502565b91505092915050565b7f4d757374206265203820646563696d616c730000000000000000000000000000600082015250565b600061357a601283612a9c565b915061358582613544565b602082019050919050565b600060208201905081810360008301526135a98161356d565b9050919050565b7f496e76616c696420666565642070726963650000000000000000000000000000600082015250565b60006135e6601283612a9c565b91506135f1826135b0565b602082019050919050565b60006020820190508181036000830152613615816135d9565b9050919050565b600061362782612c97565b915061363283612c97565b925082820390508181111561364a57613649612ff4565b5b92915050565b7f5072696365206973207374616c65000000000000000000000000000000000000600082015250565b6000613686600e83612a9c565b915061369182613650565b602082019050919050565b600060208201905081810360008301526136b581613679565b9050919050565b7f4c322073657175656e63657220646f776e000000000000000000000000000000600082015250565b60006136f2601183612a9c565b91506136fd826136bc565b602082019050919050565b60006020820190508181036000830152613721816136e5565b9050919050565b7f4c6f77657220626f756e642063616e6e6f74206265206869676865722074686160008201527f6e20757070657200000000000000000000000000000000000000000000000000602082015250565b6000613784602783612a9c565b915061378f82613728565b604082019050919050565b600060208201905081810360008301526137b381613777565b9050919050565b7f4f4e4c592050454e44494e47204f50455241544f520000000000000000000000600082015250565b60006137f0601583612a9c565b91506137fb826137ba565b602082019050919050565b6000602082019050818103600083015261381f816137e3565b9050919050565b600060608201905061383b6000830186612b32565b6138486020830185612ca1565b6138556040830184612ca1565b949350505050565b6000602082840312156138735761387261285a565b5b600061388184828501613242565b91505092915050565b600060408201905061389f6000830185612b32565b6138ac6020830184612ca1565b9392505050565b60006138be82612c97565b91506138c983612c97565b92508282019050808211156138e1576138e0612ff4565b5b92915050565b7f50726963652061626f766520757070657220626f756e64000000000000000000600082015250565b600061391d601783612a9c565b9150613928826138e7565b602082019050919050565b6000602082019050818103600083015261394c81613910565b9050919050565b7f50726963652062656c6f77206c6f77657220626f756e64000000000000000000600082015250565b6000613989601783612a9c565b915061399482613953565b602082019050919050565b600060208201905081810360008301526139b88161397c565b9050919050565b7f4c7020746f6b656e206d757374206861766520313820646563696d616c730000600082015250565b60006139f5601e83612a9c565b9150613a00826139bf565b602082019050919050565b60006020820190508181036000830152613a24816139e8565b9050919050565b600060208284031215613a4157613a4061285a565b5b6000613a4f848285016132d2565b9150509291505056fea2646970667358221220893626183725da1fce3cce702d4066a1497f075ecac2b96c92a527e6948270c664736f6c63430008130033000000000000000000000000c6387e937bcef8de3334f80edc623275d42457ff