0 txs
448 calls
constructor
No constructor.
functions
abovePeg
viewfunction abovePeg() view returns (bool)
cumulativeCurrentDeltaB
viewfunction cumulativeCurrentDeltaB(address[] pools) view returns (int256 deltaB)
getAbsBeanToMaxLpRatioChangeFromCaseId
viewfunction getAbsBeanToMaxLpRatioChangeFromCaseId(uint256 caseId) view returns (uint80 ml)
getAbsTemperatureChangeFromCaseId
viewfunction getAbsTemperatureChangeFromCaseId(uint256 caseId) view returns (int32 t)
getCaseData
viewfunction getCaseData(uint256 caseId) view returns (bytes32 casesData)
getCases
viewfunction getCases() view returns (bytes32[144] cases)
getChangeFromCaseId
viewfunction getChangeFromCaseId(uint256 caseId) view returns (uint32, int32, uint80, int80)
getDeltaPodDemandLowerBound
viewfunction getDeltaPodDemandLowerBound() view returns (uint256)
getDeltaPodDemandUpperBound
viewfunction getDeltaPodDemandUpperBound() view returns (uint256)
getEvaluationParameters
viewfunction getEvaluationParameters() view returns (tuple)
getExcessivePriceThreshold
viewfunction getExcessivePriceThreshold() view returns (uint256)
getExtEvaluationParameters
viewfunction getExtEvaluationParameters() view returns (tuple)
getLargestLiqWell
viewfunction getLargestLiqWell() view returns (address)
getLpToSupplyRatioLowerBound
viewfunction getLpToSupplyRatioLowerBound() view returns (uint256)
getLpToSupplyRatioOptimal
viewfunction getLpToSupplyRatioOptimal() view returns (uint256)
getLpToSupplyRatioUpperBound
viewfunction getLpToSupplyRatioUpperBound() view returns (uint256)
getMaxBeanMaxLpGpPerBdvRatio
viewfunction getMaxBeanMaxLpGpPerBdvRatio() view returns (uint256)
getMinBeanMaxLpGpPerBdvRatio
viewfunction getMinBeanMaxLpGpPerBdvRatio() view returns (uint256)
getOrderLockedBeans
viewfunction getOrderLockedBeans() view returns (uint256)
getPodRateLowerBound
viewfunction getPodRateLowerBound() view returns (uint256)
getPodRateOptimal
viewfunction getPodRateOptimal() view returns (uint256)
getPodRateUpperBound
viewfunction getPodRateUpperBound() view returns (uint256)
getRelBeanToMaxLpRatioChangeFromCaseId
viewfunction getRelBeanToMaxLpRatioChangeFromCaseId(uint256 caseId) view returns (int80 l)
getRelTemperatureChangeFromCaseId
viewfunction getRelTemperatureChangeFromCaseId(uint256 caseId) view returns (uint32 mt)
getSeasonStruct
viewfunction getSeasonStruct() view returns (tuple)
getSeasonTimestamp
viewfunction getSeasonTimestamp() view returns (uint256)
getTargetSeasonsToCatchUp
viewfunction getTargetSeasonsToCatchUp() view returns (uint256)
getTotalUsdLiquidity
viewfunction getTotalUsdLiquidity() view returns (uint256 totalLiquidity)
getTotalWeightedUsdLiquidity
viewfunction getTotalWeightedUsdLiquidity() view returns (uint256 totalWeightedLiquidity)
getTwaLiquidityForWell
viewfunction getTwaLiquidityForWell(address well) view returns (uint256)
getWeightedTwaLiquidityForWell
viewfunction getWeightedTwaLiquidityForWell(address well) view returns (uint256)
getWellsByDeltaB
viewfunction getWellsByDeltaB() view returns (tuple[] wellDeltaBs, uint256 totalPositiveDeltaB, uint256 totalNegativeDeltaB, uint256 positiveDeltaBCount)
paused
viewfunction paused() view returns (bool)
plentyPerRoot
viewfunction plentyPerRoot(uint32 _season, address well) view returns (uint256)
poolCurrentDeltaB
viewfunction poolCurrentDeltaB(address pool) view returns (int256 deltaB)
poolDeltaB
viewfunction poolDeltaB(address pool) view returns (int256)
poolDeltaBNoCap
viewfunction poolDeltaBNoCap(address pool) view returns (int256)
rain
viewfunction rain() view returns (tuple)
season
viewfunction season() view returns (uint32)
sunriseBlock
viewfunction sunriseBlock() view returns (uint64)
time
viewfunction time() view returns (tuple)
totalDeltaB
viewfunction totalDeltaB() view returns (int256 deltaB)
totalDeltaBNoCap
viewfunction totalDeltaBNoCap() view returns (int256 deltaB)
totalInstantaneousDeltaB
viewfunction totalInstantaneousDeltaB() view returns (int256)
weather
viewfunction weather() view returns (tuple)
wellOracleSnapshot
viewfunction wellOracleSnapshot(address well) view returns (bytes snapshot)
events
No events.
errors
SafeCastOverflowedIntDowncast
error SafeCastOverflowedIntDowncast(uint8 bits, int256 value)
T
error T()
creation bytecode
0x6080604052348015600f57600080fd5b50615a0a8061001f6000396000f3fe608060405234801561001057600080fd5b506004361061028a5760003560e01c8063618009511161015c578063bbf459a7116100ce578063da61af6211610087578063da61af6214610597578063dd9330d2146105ac578063e53b479e146105b4578063f07f0760146105df578063f788b47c146105e7578063fd6d1483146105ef57600080fd5b8063bbf459a714610539578063bf17053314610541578063c1cf248f14610559578063c50b0fb01461056c578063cb6774111461057a578063d1943f7f1461058257600080fd5b80638223eac8116101205780638223eac8146104dd57806389a218d2146104f057806393c9e53114610503578063a13a374214610516578063ab843b3414610529578063b3c39ce51461053157600080fd5b806361800951146104a5578063686b6159146104ad57806370fd1b06146104c2578063738ad142146102db5780638097f0ca146104ca57600080fd5b80633b2ecb7011610200578063471bcdbe116101b9578063471bcdbe146104285780634a2c357e1461043b5780634d65f7621461044357806357801d871461046b578063597490c0146104735780635c975abb1461049357600080fd5b80633b2ecb70146103595780633cee5dea146103845780633fccd20c146103aa57806343def26e146103bd57806343e0156a146103d257806344fb7cc31461042057600080fd5b806316ada5471161025257806316ada547146102db5780631eedbfbb146102f05780631f48a553146102f85780632507644c146103005780632a27c4991461031557806335870a7a1461033357600080fd5b8063065cb5941461028f57806306c499d8146102ad57806308fa96d3146102c35780630e3c557a146102cb57806311a8d895146102d3575b600080fd5b6102976105f7565b6040516102a49190614927565b60405180910390f35b6102b5610633565b6040519081526020016102a4565b60f7546102b5565b6102b5610720565b60fa546102b5565b6102e361077e565b6040516102a49190614979565b60fc546102b5565b60fb546102b5565b610308610865565b6040516102a49190614a59565b60d454600160c81b900460ff165b60405190151581526020016102a4565b610346610341366004614acc565b6108ea565b60405160099190910b81526020016102a4565b60d454600160881b90046001600160401b03166040516001600160401b0390911681526020016102a4565b610397610392366004614acc565b6108fe565b60405160039190910b81526020016102a4565b6102b56103b8366004614afd565b610913565b6103c5610945565b6040516102a49190614b62565b6103e56103e0366004614acc565b6109b5565b6040805163ffffffff909516855260039390930b60208501526001600160501b039091169183019190915260090b60608201526080016102a4565b60fd546102b5565b6102b5610436366004614b9a565b6109e8565b6102b5610abd565b610456610451366004614acc565b610acc565b60405163ffffffff90911681526020016102a4565b60f8546102b5565b610486610481366004614b9a565b610ae1565b6040516102a49190614c07565b600154600160a01b900460ff16610323565b6009546102b5565b6104b5610b8d565b6040516102a49190614c1a565b60f9546102b5565b6102b56104d8366004614acc565b610c40565b6102b56104eb366004614b9a565b610c4b565b6102b56104fe366004614c90565b610c69565b6102b5610511366004614b9a565b610cba565b6102b5610524366004614b9a565b610ce9565b60f2546102b5565b60f3546102b5565b6102b5610d97565b610549610de6565b6040516102a49493929190614d04565b6102b5610567366004614b9a565b610e03565b60d45463ffffffff16610456565b60f4546102b5565b61058a610e1c565b6040516102a49190614d71565b61059f610ea5565b6040516102a49190614d85565b60f6546102b5565b6105c76105c2366004614acc565b610ff1565b6040516001600160501b0390911681526020016102a4565b60d7546102b5565b6102b5610ffc565b60f5546102b5565b6105ff614795565b604080516112008101918290529060349060909082845b815481526020019060010190808311610616575050505050905090565b60008061063e611044565b9050805160000361065157600091505090565b60005b8151811015610702576106f8737cbd0b120a1ee1cdac1ed245ee23a80b37c7a6f963c23697a884848151811061068c5761068c614e54565b60200260200101516040518263ffffffff1660e01b81526004016106b09190614d71565b602060405180830381865af41580156106cd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106f19190614e6a565b8490611149565b9250600101610654565b5061071a64ba43b74000668e1bc9bf0400008461115c565b91505090565b60008061072b611044565b9050805160000361073e57600091505090565b60005b81518110156107795761076f6106f183838151811061076257610762614e54565b6020026020010151611244565b9250600101610741565b505090565b6107866147b4565b604080516101808101825260d4805463ffffffff8082168452640100000000820481166020850152600160401b8204811684860152600160601b820416606084015260ff600160801b82048116151560808501526001600160401b03600160881b83041660a0850152600160c81b90910416151560c083015260d55460e083015260d6546101008084019190915260d75461012084015260d8546101408401528351908101909352909161016083019060d960088282826020028201915b81548152602001906001019080831161084457505050505081525050905090565b61086d61481f565b6040805160e0810182526101048054825261010554602083015261010654828401526101075460608301526101085460808301526101095460a083015282516107a08101909352909160c083019061010a603d82828260200282019181548152602001906001019080831161084457505050505081525050905090565b60006108f5826109b5565b95945050505050565b6000610909826109b5565b5090949350505050565b63ffffffff82166000908152610103602090815260408083206001600160a01b03851684529091529020545b92915050565b61094d61485c565b6040805160808101825260ec8054825260ed54602083015260ee546001600160801b03168284015282516060818101909452919290919083019060ef600382828260200282019181548152602001906001019080831161084457505050505081525050905090565b60008060008060006109c68661130b565b8051602082015160408301516060909301519199909850919650945092505050565b60006109f382611367565b15610a7057604051631846d2f560e31b8152737cbd0b120a1ee1cdac1ed245ee23a80b37c7a6f99063c23697a890610a2f908590600401614d71565b602060405180830381865af4158015610a4c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061093f9190614e6a565b60405162461bcd60e51b815260206004820152601a60248201527f4f7261636c653a20506f6f6c206e6f7420737570706f7274656400000000000060448201526064015b60405180910390fd5b6000610ac7611398565b905090565b6000610ad7826109b5565b5091949350505050565b6001600160a01b0381166000908152601d60205260409020805460609190610b0890614e83565b80601f0160208091040260200160405190810160405280929190818152602001828054610b3490614e83565b8015610b815780601f10610b5657610100808354040283529160200191610b81565b820191906000526020600020905b815481529060010190602001808311610b6457829003601f168201915b50505050509050919050565b610b9561488d565b6040805160e08101825260e180546001600160801b038082168452600160801b80830463ffffffff908116602080880191909152600160a01b850490911686880152600160c01b9093046001600160401b031660608087019190915260e2549283166080870152910461ffff1660a085015284519081019485905260e3805482529394929360c08601939192909160039160e490850180831161084457505050505081525050905090565b600061093f826113ec565b6000610c5682611367565b15610a705761093f8261140b565b919050565b6000805b82811015610cb357610c9f848483818110610c8a57610c8a614e54565b90506020020160208101906104eb9190614b9a565b610ca99083614ecd565b9150600101610c6d565b5092915050565b600061093f670de0b6b3a7640000610ce3610cd485610ce9565b610cdd8661152c565b90611710565b9061171c565b600080610cf583611728565b5090506000610d0c84610d078461184e565b61185b565b90506000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015610d4e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d729190614eed565b60ff1690506108f5610d8582600a614fec565b610ce384670de0b6b3a7640000611710565b600080610da2611a03565b905060005b815181101561077957610ddc610dd5838381518110610dc857610dc8614e54565b6020026020010151610ce9565b8490611afe565b9250600101610da7565b60606000806000610df5611b0a565b935093509350935090919293565b6000610e0e82611367565b15610a705761093f82611244565b600154604080516318160ddd60e01b8152905160009283926001600160a01b03909116916318160ddd916004808201926020929091908290030181865afa158015610e6b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e8f9190614e6a565b90506000610e9c82611cbf565b50949350505050565b610f3e60405180610220016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160008152602001600081526020016000815260200160006001600160801b0316815260200160006001600160801b031681525090565b50604080516102208101825260f254815260f354602082015260f4549181019190915260f554606082015260f654608082015260f75460a082015260f85460c082015260f95460e082015260fa546101008083019190915260fb5461012083015260fc5461014083015260fd5461016083015260fe5461018083015260ff546101a0830152546101c0820152610101546001600160801b038082166101e0840152600160801b9091041661020082015290565b6000610e9c826109b5565b600080611007611a03565b905060005b81518110156107795761103a610dd583838151811061102d5761102d614e54565b6020026020010151610cba565b925060010161100c565b60c95460609060009081816001600160401b0381111561106657611066614ff8565b60405190808252806020026020018201604052801561108f578160200160208202803683370190505b50935060005b8281101561113f5760c984018054829081106110b3576110b3614e54565b600091825260209091200154600160a81b900460ff16156111375760c984018054829081106110e4576110e4614e54565b6000918252602090912001546001600160a01b031685836111048161500e565b94508151811061111657611116614e54565b60200260200101906001600160a01b031690816001600160a01b0316815250505b600101611095565b5080845250505090565b60006111558284614ecd565b9392505050565b60008060006111ed670de0b6b3a7640000610ce3878560010160000160009054906101000a90046001600160a01b03166001600160a01b03166318160ddd6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156111c9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cdd9190614e6a565b9050808613156111fa5750845b600084121561122b5761120c81615027565b84136112205761121b81615027565b611222565b835b92505050611155565b808412611238578061123a565b835b9695505050505050565b6001600160a01b0381166000908152601d60205260408120805482919061126a90614e83565b80601f016020809104026020016040519081016040528092919081815260200182805461129690614e83565b80156112e35780601f106112b8576101008083540402835291602001916112e3565b820191906000526020600020905b8154815290600101906020018083116112c657829003601f168201915b50505050509050600081511115611305576112fe8382611e90565b5091935050505b50919050565b604080516080810182526000808252602082018190529181018290526060810182905290611338836113ec565b60c081901c63ffffffff1660030b6020848101919091521c6001600160501b031660090b606083015250919050565b6001600160a01b0316600090815260c8602052604090205460e01b6001600160e01b03191663c84c772760e01b1490565b6000806113a3611a03565b905060005b81518110156107795760006113d58383815181106113c8576113c8614e54565b602002602001015161201e565b90506113e18185614ecd565b9350506001016113a8565b6000806034836090811061140257611402614e54565b01549392505050565b6000816001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401600060405180830381865afa92505050801561146c57506040513d6000823e601f3d908101601f191682016040526114699190810190615105565b60015b61147857506000919050565b60006114e8846001600160a01b0316639d63848a6040518163ffffffff1660e01b8152600401600060405180830381865afa1580156114bb573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114e39190810190615139565b61217d565b90506298968082828151811061150057611500614e54565b60200260200101511015611518575060009392505050565b611524848360006121e7565b949350505050565b6001600160a01b03818116600090815260c86020908152604080832081516080810183526004820180549687168252600160a01b870460e01b6001600160e01b03191694820194909452600160c01b90950460f81b6001600160f81b031916918501919091526005018054929384938493919260608401916115ad90614e83565b80601f01602080910402602001604051908101604052809291908181526020018280546115d990614e83565b80156116265780601f106115fb57610100808354040283529160200191611626565b820191906000526020600020905b81548152906001019060200180831161160957829003601f168201915b5050509190925250508151919250506001600160a01b0381166116465750305b600080826001600160a01b03168460200151856060015160405160240161166d9190614c07565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925290516116ab91906151c7565b600060405180830381855afa9150503d80600081146116e6576040519150601f19603f3d011682016040523d82523d6000602084013e6116eb565b606091505b509150915081611702575060009695505050505050565b602001519695505050505050565b600061115582846151e3565b60006111558284615210565b600080806000846001600160a01b0316639d63848a6040518163ffffffff1660e01b8152600401600060405180830381865afa15801561176c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117949190810190615139565b905060005b815181101561180c57600183015482516001600160a01b03909116908390839081106117c7576117c7614e54565b60200260200101516001600160a01b031614611804578181815181106117ef576117ef614e54565b60200260200101518194509450505050915091565b600101611799565b5060405162461bcd60e51b81526020600482015260166024820152752634b12bb2b6361d1034b73b30b634b2103bb2b6361d60511b6044820152606401610ab4565b600061093f82600061245b565b600080600061186985611728565b9150506000856001600160a01b031663a1d89d966040518163ffffffff1660e01b8152600401600060405180830381865afa1580156118ac573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118d49190810190615300565b9050806000815181106118e9576118e9614e54565b6020026020010151600001516001600160a01b031663d393b27a8785600101601c0160008a6001600160a01b03166001600160a01b031681526020019081526020016000208660010160d301600301548560008151811061194c5761194c614e54565b6020026020010151602001516040518563ffffffff1660e01b815260040161197794939291906153b0565b600060405180830381865afa9250505080156119b557506040513d6000823e601f3d908101601f191682016040526119b29190810190615498565b60015b6119c257600093506119fa565b6119f5620f4240610ce38487815181106119de576119de614e54565b60200260200101518a61171090919063ffffffff16565b955050505b50505092915050565b60c95460609060009081816001600160401b03811115611a2557611a25614ff8565b604051908082528060200260200182016040528015611a4e578160200160208202803683370190505b50935060005b8281101561113f5760c98401805482908110611a7257611a72614e54565b600091825260209091200154600160b01b900460ff1615611af65760c98401805482908110611aa357611aa3614e54565b6000918252602090912001546001600160a01b03168583611ac38161500e565b945081518110611ad557611ad5614e54565b60200260200101906001600160a01b031690816001600160a01b0316815250505b600101611a54565b600061115582846154fb565b6060600080600080611b1a612469565b905080516001600160401b03811115611b3557611b35614ff8565b604051908082528060200260200182016040528015611b7a57816020015b6040805180820190915260008082526020820152815260200190600190039081611b535790505b50945060005b8151811015611c9d576040518060400160405280838381518110611ba657611ba6614e54565b60200260200101516001600160a01b03168152602001611bde848481518110611bd157611bd1614e54565b602002602001015161140b565b815250868281518110611bf357611bf3614e54565b60200260200101819052506000868281518110611c1257611c12614e54565b6020026020010151602001511315611c6157858181518110611c3657611c36614e54565b60200260200101516020015185611c4d91906154fb565b945082611c598161500e565b935050611c95565b858181518110611c7357611c73614e54565b602002602001015160200151611c8890615027565b611c9290856154fb565b93505b600101611b80565b50611cb785600060018851611cb2919061550e565b612598565b505090919293565b60408051602081019091526000815260008083600003611d01575050604080516020808201835260009182905282519081019092528082529091506001611e89565b6000611d0b611044565b905060606000806000805b8551811015611e3157611d41868281518110611d3457611d34614e54565b602002602001015161290e565b945084600081518110611d5657611d56614e54565b60200260200101516000148015611d87575084600181518110611d7b57611d7b614e54565b60200260200101516000145b611e29576000611db0878381518110611da257611da2614e54565b602002602001015187612946565b905080600003611dbf57600197505b611df1670de0b6b3a7640000610ce383610cdd8b8781518110611de457611de4614e54565b602002602001015161152c565b925083831115611e1b57829350868281518110611e1057611e10614e54565b602002602001015198505b611e258584611afe565b9450505b600101611d16565b5082600003611e6957604080516020808201835260009182905282519081019092528152600060019750975097505050505050611e89565b611e81611e7b8464e8d4a5100061171c565b8a612a7c565b975050505050505b9193909250565b600060608080836000876001600160a01b031663a1d89d966040518163ffffffff1660e01b8152600401600060405180830381865afa158015611ed7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611eff9190810190615300565b905080600081518110611f1457611f14614e54565b6020026020010151600001516001600160a01b031663d393b27a89898560010160d3016003015485600081518110611f4e57611f4e614e54565b6020026020010151602001516040518563ffffffff1660e01b8152600401611f799493929190615521565b600060405180830381865afa925050508015611fb757506040513d6000823e601f3d908101601f19168201604052611fb49190810190615498565b60015b611fe9575050604080516000808252602082018181528284018281526060840190945290965090945092509050612015565b60d7840154612008908b9084908490612003904290612ab2565b612abe565b9750975097509750505050505b92959194509250565b600080826001600160a01b031663a1d89d966040518163ffffffff1660e01b8152600401600060405180830381865afa15801561205f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120879190810190615300565b90508060008151811061209c5761209c614e54565b6020026020010151600001516001600160a01b0316636de13cba84836000815181106120ca576120ca614e54565b6020026020010151602001516040518363ffffffff1660e01b81526004016120f3929190615564565b600060405180830381865afa92505050801561213157506040513d6000823e601f3d908101601f1916820160405261212e9190810190615105565b60015b61213e5750600092915050565b8051600003612151575060009392505050565b6040805160008082526020820190925261217090869084906000612abe565b5091979650505050505050565b6000805b82518210156121cf5782828151811061219c5761219c614e54565b602090810291909101015160018201546001600160a01b039182169116036121c45750919050565b816001019150612181565b60405162461bcd60e51b8152600401610ab490615588565b600080846001600160a01b0316639d63848a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612228573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122509190810190615139565b90506000856001600160a01b03166310dd08306040518163ffffffff1660e01b8152600401600060405180830381865afa158015612292573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122ba91908101906155b3565b905060008060006122cb8588612bde565b925092509250629896808883815181106122e7576122e7614e54565b602002602001015110156123515760405162461bcd60e51b815260206004820152602b60248201527f57656c6c3a204265616e2072657365727665206973206c657373207468616e2060448201526a746865206d696e696d756d60a81b6064820152608401610ab4565b8061239e5760405162461bcd60e51b815260206004820152601c60248201527f57656c6c3a20555344204f7261636c652063616c6c206661696c6564000000006044820152606401610ab4565b83516020850151604051631017d19360e31b81526001600160a01b03909216916380be8c98916123d7918c918791899190600401615623565b602060405180830381865afa925050508015612410575060408051601f3d908101601f1916820190925261240d91810190614e6a565b60015b61242257600095505050505050611155565b61244e89848151811061243757612437614e54565b602002602001015182612bfe90919063ffffffff16565b9650505050505050611155565b600061115583600084612c0a565b60c95460609060009081816001600160401b0381111561248b5761248b614ff8565b6040519080825280602002602001820160405280156124b4578160200160208202803683370190505b50935060005b8281101561113f5760c984018054829081106124d8576124d8614e54565b600091825260209091200154600160b01b900460ff168015612522575060c9840180548290811061250b5761250b614e54565b600091825260209091200154600160b81b900460ff165b156125905760c9840180548290811061253d5761253d614e54565b6000918252602090912001546001600160a01b0316858361255d8161500e565b94508151811061256f5761256f614e54565b60200260200101906001600160a01b031690816001600160a01b0316815250505b6001016124ba565b60608183126125a8575082611155565b600060026125b6858561550e565b6125c09190615210565b6125ca90856154fb565b90506125e6604080518082019091526000808252602082015290565b8582815181106125f8576125f8614e54565b60200260200101516020015186868151811061261657612616614e54565b60200260200101516020015113156126f15785848151811061263a5761263a614e54565b60200260200101516020015186868151811061265857612658614e54565b602002602001015160200151121561268b5785858151811061267c5761267c614e54565b602002602001015190506127b6565b85828151811061269d5761269d614e54565b6020026020010151602001518685815181106126bb576126bb614e54565b60200260200101516020015113156126df5785848151811061267c5761267c614e54565b85828151811061267c5761267c614e54565b85848151811061270357612703614e54565b60200260200101516020015186838151811061272157612721614e54565b60200260200101516020015112156127455785828151811061267c5761267c614e54565b85858151811061275757612757614e54565b60200260200101516020015186858151811061277557612775614e54565b60200260200101516020015113156127995785848151811061267c5761267c614e54565b8585815181106127ab576127ab614e54565b602002602001015190505b84845b8082136128ce575b82602001518883815181106127d8576127d8614e54565b60200260200101516020015113156127fc57816127f481615662565b9250506127c1565b87818151811061280e5761280e614e54565b60200260200101516020015183602001511315612837578061282f8161567a565b9150506127fc565b8082136128c95787818151811061285057612850614e54565b602002602001015188838151811061286a5761286a614e54565b602002602001015189848151811061288457612884614e54565b602002602001018a848151811061289d5761289d614e54565b60200260200101829052829052505081806128b790615662565b92505080806128c59061567a565b9150505b6127b9565b808712156128e4576128e1888883612598565b97505b85821215612902576128f7888388612598565b945050505050611155565b50959695505050505050565b606061291982612c19565b90508060008151811061292e5761292e614e54565b6020026020010151600103610c645761093f82612cd7565b6001600160a01b0382166000908152601f602052604081205460008061296b86611728565b9150915060018311156129ba576129b083610ce3670de0b6b3a764000088858151811061299a5761299a614e54565b602002602001015161171090919063ffffffff16565b935050505061093f565b826000036129ce576000935050505061093f565b6000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a0e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a329190614eed565b9050612a71612a4282600a615697565b610ce364e8d4a51000610cdd8a8781518110612a6057612a60614e54565b6020026020010151610cdd8961184e565b979650505050505050565b6040805160208101909152600081526040518060200160405280612aa985670de0b6b3a764000086612e4d565b90529392505050565b6000611155828461550e565b600060608060606000886001600160a01b0316639d63848a6040518163ffffffff1660e01b8152600401600060405180830381865afa158015612b05573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612b2d9190810190615139565b90506000806000612b3e848a612bde565b925092509250629896808b8381518110612b5a57612b5a614e54565b60200260200101511015612b8b5750506040805160008082526020820190925290965088955093509150612bd39050565b80612bb557604080516000808252602082019092528b908d90975097509750975050505050612bd3565b6000612bc38d8d8686612e5d565b98508a97508b9650929450505050505b945094509450949050565b6060600080612bf18585620f4240612f67565b9250925092509250925092565b600061115582846156a6565b60006115248484846000613263565b604080516002808252606082810184529260009291906020830190803683375050506001600160a01b0384166000908152601e8301602052604081205482519294506001600160801b031691849190612c7457612c74614e54565b6020908102919091018101919091526001600160a01b0384166000908152601e830190915260409020548251600160801b9091046001600160801b03169083906001908110612cc557612cc5614e54565b60200260200101818152505050919050565b6060600080836001600160a01b031663a1d89d966040518163ffffffff1660e01b8152600401600060405180830381865afa158015612d1a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612d429190810190615300565b905080600081518110612d5757612d57614e54565b6020026020010151600001516001600160a01b031663d393b27a8584600101601c016000886001600160a01b03166001600160a01b031681526020019081526020016000208560010160d3016003015485600081518110612dba57612dba614e54565b6020026020010151602001516040518563ffffffff1660e01b8152600401612de594939291906153b0565b600060405180830381865afa925050508015612e2357506040513d6000823e601f3d908101601f19168201604052612e209190810190615498565b60015b610e9c57604080516002808252606082018352909160208301908036833701905050949350505050565b600061152482610ce38686611710565b600080856001600160a01b03166310dd08306040518163ffffffff1660e01b8152600401600060405180830381865afa158015612e9e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052612ec691908101906155b3565b80516020820151604051631017d19360e31b81529293506001600160a01b03909116916380be8c9891612f0291899188918a9190600401615623565b602060405180830381865afa925050508015612f3b575060408051601f3d908101601f19168201909252612f3891810190614e6a565b60015b612f49576000915050611524565b612f5e86858151811061243757612437614e54565b92505050611524565b6060600080806001915086516001600160401b03811115612f8a57612f8a614ff8565b604051908082528060200260200182016040528015612fb3578160200160208202803683370190505b50600182015490945060001993506000906001600160a01b0316815b89518110156130a457816001600160a01b03168a8281518110612ff457612ff4614e54565b60200260200101516001600160a01b0316036130125780955061309c565b60088a828151811061302657613026614e54565b60200260200101516001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561306b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308f9190614eed565b60ff161161309c57600192505b600101612fcf565b5060005b89518110156131e457816001600160a01b03168a82815181106130cd576130cd614e54565b60200260200101516001600160a01b0316036131285782156131125764e8d4a5100087828151811061310157613101614e54565b6020026020010181815250506131dc565b620f424087828151811061310157613101614e54565b8215613174576131518a828151811061314357613143614e54565b60200260200101518a61389c565b87828151811061316357613163614e54565b6020026020010181815250506131b6565b6131978a828151811061318957613189614e54565b60200260200101518a61390f565b8782815181106131a9576131a9614e54565b6020026020010181815250505b8681815181106131c8576131c8614e54565b60200260200101516000036131dc57600094505b6001016130a8565b5060001985036132065760405162461bcd60e51b8152600401610ab490615588565b86620f424087878151811061321d5761321d614e54565b602002602001015161322f91906151e3565b6132399190615210565b86868151811061324b5761324b614e54565b60200260200101818152505050505093509350939050565b6001600160a01b038481166000908152602260209081526040808320815160808101835281549586168152600160a01b860460e01b6001600160e01b03191693810193909352600160c01b90940460f81b6001600160f81b031916908201526001830180549293849384939260608401916132dd90614e83565b80601f016020809104026020016040519081016040528092919081815260200182805461330990614e83565b80156133565780601f1061332b57610100808354040283529160200191613356565b820191906000526020600020905b81548152906001019060200180831161333957829003601f168201915b5050509190925250505060408101519091506001600160f81b0319908116016133a157612f5e816000015182606001518060200190518101906133999190614e6a565b888888613980565b60408101516001600160f81b031916607f60f91b0161377c57600081600001516001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa1580156133fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061342291906156c6565b9050876001600160a01b0316816001600160a01b0316036134a65781600001516001600160a01b031663d21220a76040518163ffffffff1660e01b8152600401602060405180830381865afa15801561347f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906134a391906156c6565b90505b61354086156134b557866134b9565b6103845b83518a848b156134d3576134ce8c600a614fec565b6139a7565b8c6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613511573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135359190614eed565b6134ce90600a615697565b6001600160a01b0382811660009081526022860160209081526040808320815160808101835281549586168152600160a01b860460e01b6001600160e01b03191693810193909352600160c01b90940460f81b6001600160f81b03191690820152600183018054949850919390929160608401916135bd90614e83565b80601f01602080910402602001604051908101604052809291908181526020018280546135e990614e83565b80156136365780601f1061360b57610100808354040283529160200191613636565b820191906000526020600020905b81548152906001019060200180831161361957829003601f168201915b50505050508152505090506000826001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613681573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136a59190614eed565b60ff16905060006136e2836000015184606001518060200190518101906136cc9190614e6a565b8c156136d857846136da565b8c5b8c6000613980565b9050891561376e57871561371c57866136fc8b600a614fec565b61370b9064e8d4a510006151e3565b6137159190615210565b9650613742565b866137288b600a614fec565b61373590620f42406151e3565b61373f9190615210565b96505b61374d82600a614fec565b61375782896151e3565b6137619190615210565b9650505050505050611524565b620f424061375782896151e3565b80516001600160a01b031661379657600092505050611524565b606081015184156137ca578160600151856040516020016137b89291906156e3565b60405160208183030381529060405290505b60008083600001516001600160a01b031684602001518a8a866040516024016137f59392919061570b565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b031990941693909317909252905161383391906151c7565b600060405180830381855afa9150503d806000811461386e576040519150601f19603f3d011682016040523d82523d6000602084013e613873565b606091505b50915091508161388b57600095505050505050611524565b602001519998505050505050505050565b600061115583846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138e0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139049190614eed565b60ff16846001613263565b600061115583846001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613953573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139779190614eed565b60ff1684612c0a565b600080831161399a5761399586868685613b65565b61123a565b61123a8686868686613ced565b60008060006139b68789613fed565b91509150816139ca576000925050506108f5565b6139d6818588886141bb565b92506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a18573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a3c9190614eed565b60ff1690506000866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015613a81573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aa59190614eed565b60ff1690506000613ab682846156a6565b905080600003613aee57613acb83600a614fec565b613ad8620f4240886151e3565b613ae29190615210565b955050505050506108f5565b6000811315613b1357613b0281600a614fec565b613b0c90876151e3565b9550613b34565b613b1c81615027565b613b2790600a614fec565b613b319087615210565b95505b613b3f83600a614fec565b613b4c620f4240886151e3565b613b569190615210565b9b9a5050505050505050505050565b6000808590506000816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613bc7575060408051601f3d908101601f19168201909252613bc491810190614eed565b60015b613bd657600092505050611524565b9050816001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa925050508015613c32575060408051601f3d908101601f19168201909252613c2f91810190615741565b60015b613c4157600092505050611524565b846001600160501b0316600003613c62576000975050505050505050611524565b613c6e8285428e6142b7565b15613c83576000975050505050505050611524565b8915613cc0578815613c9d57613c9a8a60066154fb565b99505b613cb984613cae60ff89168d6154fb565b610ce390600a614fec565b9750613cde565b613cdb613cce87600a615697565b610ce386620f4240611710565b97505b50505050505050949350505050565b600080866001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613d4a575060408051601f3d908101601f19168201909252613d4791810190614eed565b60015b613d585760009150506108f5565b9050866001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa925050508015613db4575060408051601f3d908101601f19168201909252613db191810190615741565b60015b613dc25760009150506108f5565b846001600160501b0316600003613de257600096505050505050506108f5565b613dee8285428e6142b7565b15613e0257600096505050505050506108f5565b613e2660405180606001604052806000815260200160008152602001600081525090565b613e30428b612ab2565b60208201528815613e4957613e468b60066154fb565b9a505b80602001518311613e94578a15613e7957613e6b85613cae60ff8a168e6154fb565b9750505050505050506108f5565b613e6b613e8788600a615697565b610ce387620f4240611710565b4260408201525b8060200151831115613f51578a15613ed35784613ebb60ff89168d6154fb565b613ec690600a614fec565b613ed09190615210565b94505b613eff613ef7613ef0858460400151612ab290919063ffffffff16565b8790611710565b825190611afe565b8152613f0c600187615791565b604082018490529550613f1f8d87614306565b8094508196505050613f37838683604001518f6142b7565b15613f4c5760009750505050505050506108f5565b613e9b565b8a15613f7d5784613f6560ff89168d6154fb565b613f7090600a614fec565b613f7a9190615210565b94505b613f9e613ef7613ef083602001518460400151612ab290919063ffffffff16565b81528a15613fb9578051613fb2908b61171c565b9750613fdd565b613fda8a610ce3613fcb8a600a615697565b8451610ce390620f4240611710565b97505b5050505050505095945050505050565b6000808263ffffffff1660000361402b5760405162461bcd60e51b8152602060048201526002602482015261042560f41b6044820152606401610ab4565b604080516002808252606082018352600092602083019080368337019050509050838160008151811061406057614060614e54565b602002602001019063ffffffff16908163ffffffff168152505060008160018151811061408f5761408f614e54565b63ffffffff9092166020928302919091019091015260405163883bdbfd60e01b81526001600160a01b0386169063883bdbfd906140d09084906004016157b1565b600060405180830381865afa92505050801561410e57506040513d6000823e601f3d908101601f1916820160405261410b9190810190615863565b60015b156141b35760008260008151811061412857614128614e54565b60200260200101518360018151811061414357614143614e54565b60200260200101516141559190615924565b905061417261416a63ffffffff891683615951565b60060b61439b565b945060008160060b128015614198575061419263ffffffff88168261598f565b60060b15155b156141ab57846141a7816159b1565b9550505b600195505050505b509250929050565b6000806141c7866143ca565b90506001600160801b036001600160a01b0382161161424d5760006141f56001600160a01b038316806151e3565b9050836001600160a01b0316856001600160a01b03161061422d57614228600160c01b876001600160801b0316836146e3565b614245565b61424581876001600160801b0316600160c01b6146e3565b925050610e9c565b60006142676001600160a01b03831680600160401b6146e3565b9050836001600160a01b0316856001600160a01b03161061429f5761429a600160801b876001600160801b0316836146e3565b612a71565b612a7181876001600160801b0316600160801b6146e3565b60008415806142c557508285115b156142d257506001611524565b816142dd8487612ab2565b11156142eb57506001611524565b600084136142fb57506001611524565b506000949350505050565b604051639a6fc8f560e01b81526001600160501b038216600482015260009081906001600160a01b03851690639a6fc8f59060240160a060405180830381865afa925050508015614374575060408051601f3d908101601f1916820190925261437191810190615741565b60015b614385575060001990506000614394565b50919450909250614394915050565b9250929050565b80600281900b8114610c645760405163327269a760e01b81526018600482015260248101839052604401610ab4565b60008060008360020b126143e1578260020b6143e9565b8260020b6000035b9050620d89e881111561440f576040516315e4079d60e11b815260040160405180910390fd5b60008160011660000361442657600160801b614438565b6ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b031690506002821615614462576ffff97272373d413259a46990580e213a0260801c5b6004821615614481576ffff2e50f5f656932ef12357cf3c7fdcc0260801c5b60088216156144a0576fffe5caca7e10e4e61c3624eaa0941cd00260801c5b60108216156144bf576fffcb9843d60f6159c9db58835c9266440260801c5b60208216156144de576fff973b41fa98c081472e6896dfb254c00260801c5b60408216156144fd576fff2ea16466c96a3843ec78b326b528610260801c5b608082161561451c576ffe5dee046a99a2a811c461f1969c30530260801c5b61010082161561453c576ffcbe86c7900a88aedcffc83b479aa3a40260801c5b61020082161561455c576ff987a7253ac413176f2b074cf7815e540260801c5b61040082161561457c576ff3392b0822b70005940c7a398e4b70f30260801c5b61080082161561459c576fe7159475a2c29b7443b29c7fa6e889d90260801c5b6110008216156145bc576fd097f3bdfd2022b8845ad8f792aa58250260801c5b6120008216156145dc576fa9f746462d870fdf8a65dc1f90e061e50260801c5b6140008216156145fc576f70d869a156d2a1b890bb3df62baf32f70260801c5b61800082161561461c576f31be135f97d08fd981231505542fcfa60260801c5b6201000082161561463d576f09aa508b5b7a84e1c677de54f3e99bc90260801c5b6202000082161561465d576e5d6af8dedb81196699c329225ee6040260801c5b6204000082161561467c576d2216e584f5fa1ea926041bedfe980260801c5b62080000821615614699576b048a170391f7dc42444e8fa20260801c5b60008460020b13156146ba5780600019816146b6576146b66151fa565b0490505b6401000000008106156146ce5760016146d1565b60005b60ff16602082901c0192505050919050565b600080806000198587098587029250828110838203039150508060000361471c576000841161471157600080fd5b508290049050611155565b80841161472857600080fd5b6000848688096000868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b6040518061120001604052806090906020820280368337509192915050565b6040805161018081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e0810182905261010081018290526101208101829052610140810191909152610160810161481a6148cb565b905290565b6040518060e0016040528060008152602001600081526020016000815260200160008152602001600081526020016000815260200161481a6148ea565b6040518060800160405280600081526020016000815260200160006001600160801b0316815260200161481a614909565b6040805160e081018252600080825260208201819052918101829052606081018290526080810182905260a081019190915260c0810161481a614909565b6040518061010001604052806008906020820280368337509192915050565b604051806107a00160405280603d906020820280368337509192915050565b60405180606001604052806003906020820280368337509192915050565b6112008101818360005b60908110156119fa578151835260209283019290910190600101614931565b8060005b6008811015614973578151845260209384019390910190600101614954565b50505050565b815163ffffffff1681526102608101602083015161499f602084018263ffffffff169052565b5060408301516149b7604084018263ffffffff169052565b5060608301516149cf606084018263ffffffff169052565b5060808301516149e3608084018215159052565b5060a08301516149fe60a08401826001600160401b03169052565b5060c0830151614a1260c084018215159052565b5060e0838101519083015261010080840151908301526101208084015190830152610140808401519083015261016080840151614a5182850182614950565b505092915050565b60006108608201905082518252602080840151602084015260408401516040840152606084015160608401526080840151608084015260a084015160a084015260c084015160c0840160005b603d811015614ac257825182529183019190830190600101614aa5565b5050505092915050565b600060208284031215614ade57600080fd5b5035919050565b6001600160a01b0381168114614afa57600080fd5b50565b60008060408385031215614b1057600080fd5b823563ffffffff81168114614b2457600080fd5b91506020830135614b3481614ae5565b809150509250929050565b8060005b6003811015614973578151845260209384019390910190600101614b43565b81518152602080830151908201526040808301516001600160801b03169082015260608083015160c0830191610cb390840182614b3f565b600060208284031215614bac57600080fd5b813561115581614ae5565b60005b83811015614bd2578181015183820152602001614bba565b50506000910152565b60008151808452614bf3816020860160208601614bb7565b601f01601f19169290920160200192915050565b6020815260006111556020830184614bdb565b60006101208201905060018060801b03808451168352602084015163ffffffff808216602086015280604087015116604086015250506001600160401b0360608501511660608401528060808501511660808401525061ffff60a08401511660a083015260c0830151610cb360c0840182614b3f565b60008060208385031215614ca357600080fd5b82356001600160401b0380821115614cba57600080fd5b818501915085601f830112614cce57600080fd5b813581811115614cdd57600080fd5b8660208260051b8501011115614cf257600080fd5b60209290920196919550909350505050565b6080808252855190820181905260009060209060a0840190828901845b82811015614d5157815180516001600160a01b031685528501518585015260409093019290840190600101614d21565b505050602084019690965250506040810192909252606090910152919050565b6001600160a01b0391909116815260200190565b815181526020808301519082015260408083015190820152606080830151908201526080808301519082015260a0808301519082015260c0808301519082015260e08083015190820152610100808301519082015261012080830151908201526101408083015190820152610160808301519082015261018080830151908201526101a080830151908201526101c080830151908201526101e0808301516001600160801b03811682840152610220830191905050610200838101516001600160801b03811684830152614a51565b634e487b7160e01b600052603260045260246000fd5b600060208284031215614e7c57600080fd5b5051919050565b600181811c90821680614e9757607f821691505b60208210810361130557634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b8082018281126000831280158216821582161715614a5157614a51614eb7565b600060208284031215614eff57600080fd5b815160ff8116811461115557600080fd5b600181815b808511156141b3578160001904821115614f3157614f31614eb7565b80851615614f3e57918102915b93841c9390800290614f15565b600082614f5a5750600161093f565b81614f675750600061093f565b8160018114614f7d5760028114614f8757614fa3565b600191505061093f565b60ff841115614f9857614f98614eb7565b50506001821b61093f565b5060208310610133831016604e8410600b8410161715614fc6575081810a61093f565b614fd08383614f10565b8060001904821115614fe457614fe4614eb7565b029392505050565b60006111558383614f4b565b634e487b7160e01b600052604160045260246000fd5b60006001820161502057615020614eb7565b5060010190565b6000600160ff1b820161503c5761503c614eb7565b5060000390565b604051601f8201601f191681016001600160401b038111828210171561506b5761506b614ff8565b604052919050565b60006001600160401b0382111561508c5761508c614ff8565b5060051b60200190565b600082601f8301126150a757600080fd5b815160206150bc6150b783615073565b615043565b8083825260208201915060208460051b8701019350868411156150de57600080fd5b602086015b848110156150fa57805183529183019183016150e3565b509695505050505050565b60006020828403121561511757600080fd5b81516001600160401b0381111561512d57600080fd5b61152484828501615096565b6000602080838503121561514c57600080fd5b82516001600160401b0381111561516257600080fd5b8301601f8101851361517357600080fd5b80516151816150b782615073565b81815260059190911b820183019083810190878311156151a057600080fd5b928401925b82841015612a715783516151b881614ae5565b825292840192908401906151a5565b600082516151d9818460208701614bb7565b9190910192915050565b808202811582820484141761093f5761093f614eb7565b634e487b7160e01b600052601260045260246000fd5b60008261521f5761521f6151fa565b500490565b600082601f83011261523557600080fd5b81516001600160401b0381111561524e5761524e614ff8565b615261601f8201601f1916602001615043565b81815284602083860101111561527657600080fd5b611524826020830160208701614bb7565b60006040828403121561529957600080fd5b604051604081016001600160401b0382821081831117156152bc576152bc614ff8565b81604052829350845191506152d082614ae5565b908252602084015190808211156152e657600080fd5b506152f385828601615224565b6020830152505092915050565b6000602080838503121561531357600080fd5b82516001600160401b038082111561532a57600080fd5b818501915085601f83011261533e57600080fd5b815161534c6150b782615073565b81815260059190911b8301840190848101908883111561536b57600080fd5b8585015b838110156153a3578051858111156153875760008081fd5b6153958b89838a0101615287565b84525091860191860161536f565b5098975050505050505050565b60018060a01b03851681526000602060806020840152600086548160018260011c915060018316806153e357607f831692505b60208310810361540157634e487b7160e01b85526022600452602485fd5b6080880183905260a08801818015615420576001811461543657615461565b60ff198616825284151560051b82019650615461565b60008d81526020902060005b8681101561545b57815484820152908501908901615442565b83019750505b50505050505061547a604085018764ffffffffff169052565b838103606085015261548c8186614bdb565b98975050505050505050565b600080604083850312156154ab57600080fd5b82516001600160401b03808211156154c257600080fd5b6154ce86838701615096565b935060208501519150808211156154e457600080fd5b506154f185828601615224565b9150509250929050565b8082018082111561093f5761093f614eb7565b8181038181111561093f5761093f614eb7565b6001600160a01b038516815260806020820181905260009061554590830186614bdb565b64ffffffffff851660408401528281036060840152612a718185614bdb565b6001600160a01b038316815260406020820181905260009061152490830184614bdb565b6020808252601190820152702132b0b7103737ba1034b7102bb2b6361760791b604082015260600190565b6000602082840312156155c557600080fd5b81516001600160401b038111156155db57600080fd5b61152484828501615287565b60008151808452602080850194506020840160005b83811015615618578151875295820195908201906001016155fc565b509495945050505050565b60808152600061563660808301876155e7565b856020840152828103604084015261564e81866155e7565b90508281036060840152612a718185614bdb565b60006001600160ff1b01820161502057615020614eb7565b6000600160ff1b820161568f5761568f614eb7565b506000190190565b600061115560ff841683614f4b565b8181036000831280158383131683831282161715610cb357610cb3614eb7565b6000602082840312156156d857600080fd5b815161115581614ae5565b600083516156f5818460208801614bb7565b92151560f81b9190920190815260010192915050565b8381528260208201526060604082015260006108f56060830184614bdb565b80516001600160501b0381168114610c6457600080fd5b600080600080600060a0868803121561575957600080fd5b6157628661572a565b94506020860151935060408601519250606086015191506157856080870161572a565b90509295509295909350565b6001600160501b03828116828216039080821115610cb357610cb3614eb7565b6020808252825182820181905260009190848201906040850190845b818110156157ef57835163ffffffff16835292840192918401916001016157cd565b50909695505050505050565b600082601f83011261580c57600080fd5b8151602061581c6150b783615073565b8083825260208201915060208460051b87010193508684111561583e57600080fd5b602086015b848110156150fa57805161585681614ae5565b8352918301918301615843565b6000806040838503121561587657600080fd5b82516001600160401b038082111561588d57600080fd5b818501915085601f8301126158a157600080fd5b815160206158b16150b783615073565b82815260059290921b840181019181810190898411156158d057600080fd5b948201945b838610156158fe5785518060060b81146158ef5760008081fd5b825294820194908201906158d5565b9188015191965090935050508082111561591757600080fd5b506154f1858286016157fb565b600682810b9082900b03667fffffffffffff198112667fffffffffffff8213171561093f5761093f614eb7565b60008160060b8360060b80615968576159686151fa565b667fffffffffffff1982146000198214161561598657615986614eb7565b90059392505050565b60008260060b806159a2576159a26151fa565b808360060b0791505092915050565b60008160020b627fffff1981036159ca576159ca614eb7565b600019019291505056fea2646970667358221220f6444f18eec489849c10dc53f48fd18d85fae7b9b75fb5fba45b579c6ba310a064736f6c63430008190033