0 txs
5 calls
constructor
constructor()
functions
admins
viewfunction admins(address) view returns (bool)
adminSignatures
viewfunction adminSignatures(bytes32, address) view returns (bool)
aggregationMethod
viewfunction aggregationMethod() view returns (uint8)
BUSD
viewfunction BUSD() view returns (address)
chainlinkFeedsList
viewfunction chainlinkFeedsList(address) view returns (address feedAddress, bool isActive)
defaultPriorityList
viewfunction defaultPriorityList(uint256) view returns (uint8)
dexIndexByName
viewfunction dexIndexByName(string) view returns (uint256)
dexInfoList
viewfunction dexInfoList(uint256) view returns (string name, address factory, bool isActive, uint256 weight)
get_active_dexes
viewfunction get_active_dexes() view returns (string[] _names, address[] _factories, uint256[] _weights)
get_all_dex_prices
viewfunction get_all_dex_prices(address _token) view returns (string[] _dexNames, uint256[] _prices)
get_batch_token_prices
viewfunction get_batch_token_prices(address[] _tokens) view returns (uint256[])
get_price_details
viewfunction get_price_details(address _token) view returns (uint256 _manualPrice, uint256 _chainlinkPrice, uint256 _dexPrice, uint256 _lastKnownPrice, uint256 _usedPrice, uint8 _usedSource)
get_token_price
viewfunction get_token_price(address _token) view returns (uint256)
get_usdt_equivalent
viewfunction get_usdt_equivalent(address _tokenAddr, uint256 _amount) view returns (uint256)
getOwner
viewfunction getOwner() view returns (address)
getTokenPrice
viewfunction getTokenPrice(address _token) view returns (uint256)
hasManualPrice
viewfunction hasManualPrice(address) view returns (bool)
lastKnownPricesList
viewfunction lastKnownPricesList(address) view returns (uint256)
lastPriceUpdateTime
viewfunction lastPriceUpdateTime(address) view returns (uint256)
manualPricesList
viewfunction manualPricesList(address) view returns (uint256)
minAcceptablePrice
viewfunction minAcceptablePrice() view returns (uint256)
minAdminSignatures
viewfunction minAdminSignatures() view returns (uint256)
minLiquidityThreshold
viewfunction minLiquidityThreshold() view returns (uint256)
priceDeviationLimit
viewfunction priceDeviationLimit() view returns (uint256)
priceFeeders
viewfunction priceFeeders(address) view returns (bool)
priceValidityPeriod
viewfunction priceValidityPeriod() view returns (uint256)
signatureCount
viewfunction signatureCount(bytes32) view returns (uint256)
tokenPriorityList
viewfunction tokenPriorityList(address, uint256) view returns (uint8)
USDT
viewfunction USDT() view returns (address)
WBNB
viewfunction WBNB() view returns (address)
add_admin
nonpayablefunction add_admin(address _admin)
add_chainlink_feed
nonpayablefunction add_chainlink_feed(address _token, address _feed)
add_dex
nonpayablefunction add_dex(string _name, address _factory, uint256 _weight)
add_price_feeder
nonpayablefunction add_price_feeder(address _feeder)
emergency_withdraw
nonpayablefunction emergency_withdraw(address _token, uint256 _amount)
force_update_price
nonpayablefunction force_update_price(address _token) returns (uint256)
remove_admin
nonpayablefunction remove_admin(address _admin)
remove_manual_price
nonpayablefunction remove_manual_price(address _token)
remove_price_feeder
nonpayablefunction remove_price_feeder(address _feeder)
request_manual_price_change
nonpayablefunction request_manual_price_change(address _token, uint256 _price)
set_aggregation_method
nonpayablefunction set_aggregation_method(uint8 _method)
set_config_parameters
nonpayablefunction set_config_parameters(uint256 _minLiquidity, uint256 _deviationLimit, uint256 _validityPeriod, uint256 _minAcceptablePrice)
set_default_priority
nonpayablefunction set_default_priority(uint8[] _priority)
set_manual_price
nonpayablefunction set_manual_price(address _token, uint256 _price)
set_token_priority
nonpayablefunction set_token_priority(address _token, uint8[] _priority)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
update_chainlink_feed
nonpayablefunction update_chainlink_feed(address _token, bool _isActive)
update_dex
nonpayablefunction update_dex(string _name, bool _isActive, uint256 _weight)
events
AggregationMethodChanged
event AggregationMethodChanged(uint8 method)
ChainlinkFeedAdded
event ChainlinkFeedAdded(address indexed token, address feed)
ChainlinkFeedUpdated
event ChainlinkFeedUpdated(address indexed token, address feed, bool isActive)
ConfigUpdated
event ConfigUpdated(string paramName, uint256 value)
DexAdded
event DexAdded(string name, address factory, uint256 weight)
DexUpdated
event DexUpdated(string name, address factory, bool isActive, uint256 weight)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PriceFeederAdded
event PriceFeederAdded(address indexed feeder)
PriceFeederRemoved
event PriceFeederRemoved(address indexed feeder)
PriceFetchError
event PriceFetchError(address indexed token, string source, string reason)
PriceSourcePrioritySet
event PriceSourcePrioritySet(address indexed token)
PriceUpdated
event PriceUpdated(address indexed token, uint256 price, uint8 source)
errors
No errors.
creation bytecode
0x6080604052600b805460ff1916600117905569021e19e0c9bab2400000600c556014600d5562015180600e5564e8d4a51000600f55600260125534801562000045575f80fd5b505f8054336001600160a01b0319909116811782556001808055908252601060209081526040808420805460ff191684179055600980548085018255948190527f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af8386048101805460ff601f98891661010090810a8202199092169092558354808801855586810484018054918a16830a8085021990921690911790558354808801855586810484018054918a16830a6002810290850219909216919091179055835496870190935584860490910180549590961690910a60038102910219909316929092179092558051808201909152600b81526a050616e63616b65537761760ac1b91810191909152620001729073ca143ce32fe78f1f7019d7d551a6402fc5350c73606462000237565b60408051808201909152600481526309a888ab60e31b6020820152620001af90733cd1c46068daea5ebb0d3f55f6915b10648062b8605062000237565b60408051808201909152600a815269042616b657279537761760b41b6020820152620001f2907301bf7c66c6bd861915cdaae475042d3c4bae16a7603c62000237565b60408051808201909152600681526504269537761760d41b6020820152620002319073858e3312ed3a876947ea49d572a7c42de08af7ee604662000237565b620004a9565b604080516080810182528481526001600160a01b03841660208201526001918101829052606081018390526002805492830181555f52805190916003027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace01908190620002a59082620003af565b5060208201516001820180546040808601511515600160a01b026001600160a81b03199092166001600160a01b0390941693909317179055606090920151600291820155549051600390620002fc9086906200047b565b90815260405190819003602001902055505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200033a57607f821691505b6020821081036200035957634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620003aa57805f5260205f20601f840160051c81016020851015620003865750805b601f840160051c820191505b81811015620003a7575f815560010162000392565b50505b505050565b81516001600160401b03811115620003cb57620003cb62000311565b620003e381620003dc845462000325565b846200035f565b602080601f83116001811462000419575f8415620004015750858301515b5f19600386901b1c1916600185901b17855562000473565b5f85815260208120601f198616915b82811015620004495788860151825594840194600190910190840162000428565b50858210156200046757878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f82515f5b818110156200049c576020818601810151858301520162000480565b505f920191825250919050565b614bfd80620004b75f395ff3fe60806040526004361061028e575f3560e01c80636c7e1c4b11610155578063c153ad60116100be578063dbdfe13411610078578063dbdfe134146108e7578063e4bb434914610906578063f2fde38b14610925578063f6419e0014610944578063f9fa276614610963578063fdc2679d14610982575f80fd5b8063c153ad601461082f578063c245fa981461084e578063c54e44eb14610863578063c6e8e5731461088a578063d02641a0146108a9578063d9e5f441146108c8575f80fd5b8063a86ac9141161010f578063a86ac91414610767578063ace1350914610786578063af2c1ca5146107a5578063b3cc026d146107ba578063b501435c146107e5578063bbd9a48d14610804575f80fd5b80636c7e1c4b1461069f5780637f831ac4146106c2578063893d20e8146106e15780638dd95002146106fd57806390a0995b146107245780639ef9678914610752575f80fd5b806340be5df0116101f7578063484f4ea9116101b1578063484f4ea91461058d5780634bab13a8146105cc5780634d72e5e9146105fd5780634f9961e514610628578063605388b7146106475780636113dd4314610680575f80fd5b806340be5df0146104a5578063429b62e5146104c4578063442f74d1146104f257806346f1e1fd1461051157806347817b2b1461053057806347fa053614610567575f80fd5b8063349a13c411610248578063349a13c4146103cb578063355ca9a4146103ea57806335c84b2e146103ff5780633704de4b1461041e5780633b622dd41461044a5780633e05f8f814610479575f80fd5b8063050552a0146102995780630699df58146102fd5780630fa728cc1461032057806313a070b71461034d5780631a7c031b1461036e5780631fcf67e3146103ac575f80fd5b3661029557005b5f80fd5b3480156102a4575f80fd5b506102d96102b3366004613faf565b60046020525f90815260409020546001600160a01b03811690600160a01b900460ff1682565b604080516001600160a01b0390931683529015156020830152015b60405180910390f35b348015610308575f80fd5b50610312600d5481565b6040519081526020016102f4565b34801561032b575f80fd5b5061033f61033a366004613faf565b6109ad565b6040516102f49291906140a9565b348015610358575f80fd5b5061036c610367366004613faf565b610c15565b005b348015610379575f80fd5b5061039c610388366004613faf565b60066020525f908152604090205460ff1681565b60405190151581526020016102f4565b3480156103b7575f80fd5b5061036c6103c63660046140e3565b610cc3565b3480156103d6575f80fd5b5061036c6103e5366004613faf565b610dce565b3480156103f5575f80fd5b50610312600e5481565b34801561040a575f80fd5b5061036c61041936600461411a565b610e4d565b348015610429575f80fd5b5061043d610438366004614149565b6110e5565b6040516102f4919061419b565b348015610455575f80fd5b506104696104643660046141a9565b611123565b6040516102f494939291906141c0565b348015610484575f80fd5b5061049861049336600461423e565b6111f4565b6040516102f4919061427c565b3480156104b0575f80fd5b5061036c6104bf366004613faf565b61129e565b3480156104cf575f80fd5b5061039c6104de366004613faf565b60116020525f908152604090205460ff1681565b3480156104fd575f80fd5b5061031261050c366004614149565b6112f7565b34801561051c575f80fd5b5061036c61052b366004614149565b611472565b34801561053b575f80fd5b5061031261054a3660046142a2565b805160208183018101805160038252928201919093012091525481565b348015610572575f80fd5b50600b546105809060ff1681565b6040516102f4919061434c565b348015610598575f80fd5b506105b473e9e7cea3dedca5984780bafc599bd69add087d5681565b6040516001600160a01b0390911681526020016102f4565b3480156105d7575f80fd5b506105eb6105e6366004613faf565b6115c9565b6040516102f496959493929190614366565b348015610608575f80fd5b50610312610617366004613faf565b60076020525f908152604090205481565b348015610633575f80fd5b5061036c6106423660046143dd565b611710565b348015610652575f80fd5b5061039c610661366004614435565b601360209081525f928352604080842090915290825290205460ff1681565b34801561068b575f80fd5b5061036c61069a366004614458565b6119d2565b3480156106aa575f80fd5b506106b3611b64565b6040516102f4939291906144a8565b3480156106cd575f80fd5b5061043d6106dc3660046141a9565b611e64565b3480156106ec575f80fd5b505f546001600160a01b03166105b4565b348015610708575f80fd5b506105b473bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c81565b34801561072f575f80fd5b5061039c61073e366004613faf565b60106020525f908152604090205460ff1681565b34801561075d575f80fd5b5061031260125481565b348015610772575f80fd5b5061036c610781366004613faf565b611e95565b348015610791575f80fd5b5061036c6107a0366004614519565b611f2b565b3480156107b0575f80fd5b50610312600c5481565b3480156107c5575f80fd5b506103126107d43660046141a9565b60146020525f908152604090205481565b3480156107f0575f80fd5b5061036c6107ff366004614561565b61210c565b34801561080f575f80fd5b5061031261081e366004613faf565b60056020525f908152604090205481565b34801561083a575f80fd5b50610312610849366004613faf565b6121a1565b348015610859575f80fd5b50610312600f5481565b34801561086e575f80fd5b506105b47355d398326f99059ff775485246999027b319795581565b348015610895575f80fd5b5061036c6108a4366004614149565b612495565b3480156108b4575f80fd5b506103126108c3366004613faf565b612616565b3480156108d3575f80fd5b506103126108e2366004613faf565b61267e565b3480156108f2575f80fd5b5061036c610901366004614149565b612887565b348015610911575f80fd5b5061036c61092036600461457f565b612a04565b348015610930575f80fd5b5061036c61093f366004613faf565b612b24565b34801561094f575f80fd5b5061036c61095e36600461423e565b612bfc565b34801561096e575f80fd5b5061036c61097d366004613faf565b612d4a565b34801561098d575f80fd5b5061031261099c366004613faf565b60086020525f908152604090205481565b6060805f805b600254811015610a0857600281815481106109d0576109d06145ab565b905f5260205f20906003020160010160149054906101000a900460ff1615610a0057816109fc816145d3565b9250505b6001016109b3565b50806001600160401b03811115610a2157610a2161428e565b604051908082528060200260200182016040528015610a5457816020015b6060815260200190600190039081610a3f5790505b509250806001600160401b03811115610a6f57610a6f61428e565b604051908082528060200260200182016040528015610a98578160200160208202803683370190505b5091505f805b600254811015610c0d5760028181548110610abb57610abb6145ab565b905f5260205f20906003020160010160149054906101000a900460ff1615610c055760028181548110610af057610af06145ab565b905f5260205f2090600302015f018054610b09906145eb565b80601f0160208091040260200160405190810160405280929190818152602001828054610b35906145eb565b8015610b805780601f10610b5757610100808354040283529160200191610b80565b820191905f5260205f20905b815481529060010190602001808311610b6357829003601f168201915b5050505050858381518110610b9757610b976145ab565b6020026020010181905250610bda8660028381548110610bb957610bb96145ab565b5f9182526020909120600160039092020101546001600160a01b0316612e14565b848381518110610bec57610bec6145ab565b602090810291909101015281610c01816145d3565b9250505b600101610a9e565b505050915091565b610c1d613303565b5f546001600160a01b03163314610c4f5760405162461bcd60e51b8152600401610c469061461d565b60405180910390fd5b6001600160a01b038116610c955760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b21030b236b4b760991b6044820152606401610c46565b6001600160a01b0381165f908152601160205260409020805460ff19166001179055610cc060018055565b50565b610ccb613303565b5f546001600160a01b03163314610cf45760405162461bcd60e51b8152600401610c469061461d565b6001600160a01b038281165f9081526004602052604090205416610d4b5760405162461bcd60e51b815260206004820152600e60248201526d11995959081b9bdd08199bdd5b9960921b6044820152606401610c46565b6001600160a01b038281165f81815260046020908152604091829020805460ff60a01b198116600160a01b881515908102918217909355845191871696169590951785529084015290917f449975bea2b2ee8af8437bafc88b0b4dfb78ad7400d25fb0ca229ec8507caa7491015b60405180910390a2610dca60018055565b5050565b610dd6613303565b5f546001600160a01b03163314610dff5760405162461bcd60e51b8152600401610c469061461d565b6001600160a01b0381165f81815260106020526040808220805460ff19169055517f4d4e6c140fba47f554ec7a4d922d452ab7324313b6f6d83ca679ee91ee8e7dbb9190a2610cc060018055565b610e55613303565b5f546001600160a01b03163314610e7e5760405162461bcd60e51b8152600401610c469061461d565b5f83118015610e8e575060328311155b610eda5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420646576696174696f6e206c696d69740000000000000000006044820152606401610c46565b610e108210158015610eef575062093a808211155b610f3b5760405162461bcd60e51b815260206004820152601760248201527f496e76616c69642076616c696469747920706572696f640000000000000000006044820152606401610c46565b5f8111610f985760405162461bcd60e51b815260206004820152602560248201527f4d696e2061636365707461626c65207072696365206d75737420626520706f73604482015264697469766560d81b6064820152608401610c46565b600c849055600d839055600e829055600f81905560408051818152601581830152741b5a5b931a5c5d5a591a5d1e551a1c995cda1bdb19605a1b60608201526020810186905290515f80516020614b888339815191529181900360800190a160408051818152601381830152721c1c9a58d951195d9a585d1a5bdb931a5b5a5d606a1b60608201526020810185905290515f80516020614b888339815191529181900360800190a160408051818152601381830152721c1c9a58d955985b1a591a5d1e54195c9a5bd9606a1b60608201526020810184905290515f80516020614b888339815191529181900360800190a160408051818152601291810191909152716d696e41636365707461626c65507269636560701b6060820152602081018290525f80516020614b88833981519152906080015b60405180910390a16110df60018055565b50505050565b600a602052815f5260405f2081815481106110fe575f80fd5b905f5260205f209060209182820401919006915091509054906101000a900460ff1681565b60028181548110611132575f80fd5b905f5260205f2090600302015f91509050805f018054611151906145eb565b80601f016020809104026020016040519081016040528092919081815260200182805461117d906145eb565b80156111c85780601f1061119f576101008083540402835291602001916111c8565b820191905f5260205f20905b8154815290600101906020018083116111ab57829003601f168201915b50505050600183015460029093015491926001600160a01b03811692600160a01b90910460ff16915084565b60605f826001600160401b0381111561120f5761120f61428e565b604051908082528060200260200182016040528015611238578160200160208202803683370190505b5090505f5b838110156112945761126f85858381811061125a5761125a6145ab565b90506020020160208101906108499190613faf565b828281518110611281576112816145ab565b602090810291909101015260010161123d565b5090505b92915050565b6112a6613303565b5f546001600160a01b031633146112cf5760405162461bcd60e51b8152600401610c469061461d565b6001600160a01b0381165f908152601160205260409020805460ff19169055610cc060018055565b5f7355d398326f99059ff775485246999027b3197954196001600160a01b03841601611324575080611298565b5f836001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561137f575060408051601f3d908101601f1916820190925261137c91810190614641565b60015b61138b5750601261138e565b90505b5f7355d398326f99059ff775485246999027b31979556001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156113fd575060408051601f3d908101601f191682019092526113fa91810190614641565b60015b6114095750601261140c565b90505b5f611416866121a1565b9050805f0361142a575f9350505050611298565b61146861143884600a614741565b61145c61144685600a614741565b611462670de0b6b3a764000061145c8b8861335c565b906133e1565b9061335c565b9695505050505050565b61147a613303565b335f9081526010602052604090205460ff16806114a057505f546001600160a01b031633145b6114bc5760405162461bcd60e51b8152600401610c469061474f565b6001600160a01b0382166114e25760405162461bcd60e51b8152600401610c4690614777565b6001600160a01b0382165f9081526007602052604090205415611568576001600160a01b0382165f90815260076020526040902054611521908261343b565b6115685760405162461bcd60e51b81526020600482015260186024820152770a0e4d2c6ca40c8caecd2c2e8d2dedc40e8dede40d0d2ced60431b6044820152606401610c46565b6001600160a01b0382165f90815260056020908152604080832084905560069091529020805460ff191660011790556115a182826134c9565b816001600160a01b03165f80516020614ba8833981519152825f604051610db992919061479e565b6001600160a01b0381165f908152600660205260408120548190819081908190819060ff166115f8575f611611565b6001600160a01b0387165f908152600560205260409020545b955061161c876134f9565b945061162787613685565b506001600160a01b0388165f90815260076020526040902054909450158015906116745750600e546001600160a01b0388165f9081526008602052604090205461167190426147b2565b11155b61167e575f611697565b6001600160a01b0387165f908152600760205260409020545b92506116a2876121a1565b9150815f036116b357506003611707565b85821480156116c157505f86115b156116cd57505f611707565b84821480156116db57505f85115b156116e857506001611707565b83821480156116f657505f84115b1561170357506002611707565b5060035b91939550919395565b611718613303565b5f546001600160a01b031633146117415760405162461bcd60e51b8152600401610c469061461d565b8261177b5760405162461bcd60e51b815260206004820152600a602482015269456d707479206e616d6560b01b6044820152606401610c46565b6001600160a01b0382166117c35760405162461bcd60e51b815260206004820152600f60248201526e496e76616c696420666163746f727960881b6044820152606401610c46565b5f811161180c5760405162461bcd60e51b8152602060048201526017602482015276576569676874206d75737420626520706f73697469766560481b6044820152606401610c46565b5f6003858560405161181f9291906147c5565b9081526020016040518091039020541115611952575f6001600386866040516118499291906147c5565b90815260200160405180910390205461186291906147b2565b90508260028281548110611878576118786145ab565b905f5260205f2090600302016001015f6101000a8154816001600160a01b0302191690836001600160a01b031602179055506001600282815481106118bf576118bf6145ab565b905f5260205f20906003020160010160146101000a81548160ff02191690831515021790555081600282815481106118f9576118f96145ab565b905f5260205f209060030201600201819055507f4cba74be6af59e7935e6ce4836064f9261493b98e465c6915aa5e88a393983688585856001866040516119449594939291906147fc565b60405180910390a1506119c9565b61199484848080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152508692508591506138ab9050565b7fa996cb2fb76f06529d6a56403f6ae3a1669ece05b5e092b2960759b229f520d1848484846040516110ce9493929190614835565b6110df60018055565b6119da613303565b5f546001600160a01b03163314611a035760405162461bcd60e51b8152600401610c469061461d565b6001600160a01b038316611a295760405162461bcd60e51b8152600401610c4690614777565b80611a6c5760405162461bcd60e51b8152602060048201526013602482015272115b5c1d1e481c1c9a5bdc9a5d1e481b1a5cdd606a1b6044820152606401610c46565b6001600160a01b0383165f908152600a60205260408120611a8c91613f66565b5f5b81811015611b22576001600160a01b0384165f908152600a60205260409020838383818110611abf57611abf6145ab565b9050602002016020810190611ad49190614864565b81546001810183555f92835260209283902092810490920180549192909160ff601f9092166101000a918202191690836003811115611b1557611b15614173565b0217905550600101611a8e565b506040516001600160a01b038416907f27c268b3307eede70f10baa2f1bf10143a1b378dc27cb645e6ee0752a2ad3f2a905f90a2611b5f60018055565b505050565b60608060605f805b600254811015611bc15760028181548110611b8957611b896145ab565b905f5260205f20906003020160010160149054906101000a900460ff1615611bb95781611bb5816145d3565b9250505b600101611b6c565b50806001600160401b03811115611bda57611bda61428e565b604051908082528060200260200182016040528015611c0d57816020015b6060815260200190600190039081611bf85790505b509350806001600160401b03811115611c2857611c2861428e565b604051908082528060200260200182016040528015611c51578160200160208202803683370190505b509250806001600160401b03811115611c6c57611c6c61428e565b604051908082528060200260200182016040528015611c95578160200160208202803683370190505b5091505f805b600254811015611e5c5760028181548110611cb857611cb86145ab565b905f5260205f20906003020160010160149054906101000a900460ff1615611e545760028181548110611ced57611ced6145ab565b905f5260205f2090600302015f018054611d06906145eb565b80601f0160208091040260200160405190810160405280929190818152602001828054611d32906145eb565b8015611d7d5780601f10611d5457610100808354040283529160200191611d7d565b820191905f5260205f20905b815481529060010190602001808311611d6057829003601f168201915b5050505050868381518110611d9457611d946145ab565b602002602001018190525060028181548110611db257611db26145ab565b905f5260205f2090600302016001015f9054906101000a90046001600160a01b0316858381518110611de657611de66145ab565b60200260200101906001600160a01b031690816001600160a01b03168152505060028181548110611e1957611e196145ab565b905f5260205f20906003020160020154848381518110611e3b57611e3b6145ab565b602090810291909101015281611e50816145d3565b9250505b600101611c9b565b505050909192565b60098181548110611e73575f80fd5b905f5260205f209060209182820401919006915054906101000a900460ff1681565b611e9d613303565b335f9081526010602052604090205460ff1680611ec357505f546001600160a01b031633145b611edf5760405162461bcd60e51b8152600401610c469061474f565b6001600160a01b0381165f81815260066020526040808220805460ff19169055515f80516020614ba883398151915291611f1a91819061479e565b60405180910390a2610cc060018055565b611f33613303565b5f546001600160a01b03163314611f5c5760405162461bcd60e51b8152600401610c469061461d565b5f60038585604051611f6f9291906147c5565b90815260200160405180910390205411611fbb5760405162461bcd60e51b815260206004820152600d60248201526c111156081b9bdd08199bdd5b99609a1b6044820152606401610c46565b5f81116120045760405162461bcd60e51b8152602060048201526017602482015276576569676874206d75737420626520706f73697469766560481b6044820152606401610c46565b5f6001600386866040516120199291906147c5565b90815260200160405180910390205461203291906147b2565b90508260028281548110612048576120486145ab565b905f5260205f20906003020160010160146101000a81548160ff0219169083151502179055508160028281548110612082576120826145ab565b905f5260205f209060030201600201819055507f4cba74be6af59e7935e6ce4836064f9261493b98e465c6915aa5e88a393983688585600284815481106120cb576120cb6145ab565b5f9182526020909120600160039092020101546040516120fa9392916001600160a01b031690889088906147fc565b60405180910390a1506110df60018055565b612114613303565b5f546001600160a01b0316331461213d5760405162461bcd60e51b8152600401610c469061461d565b600b805482919060ff1916600183600281111561215c5761215c614173565b02179055507f90ea4d9f18da163dec0572386933e84a103ca05721c122e838a37b9bd73e772781604051612190919061434c565b60405180910390a1610cc060018055565b5f6001600160a01b0382166121cd5761129873bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c6121a1565b6001600160a01b0382167355d398326f99059ff775485246999027b3197955148061221457506001600160a01b03821673e9e7cea3dedca5984780bafc599bd69add087d56145b156122285750670de0b6b3a7640000919050565b6001600160a01b0382165f908152600a602052604081205461224b576009612263565b6001600160a01b0383165f908152600a602052604090205b90505f5b815481101561248c575f828281548110612283576122836145ab565b905f5260205f2090602091828204019190069054906101000a900460ff1660038111156122b2576122b2614173565b1480156122d657506001600160a01b0384165f9081526006602052604090205460ff165b156122f8575050506001600160a01b03165f9081526005602052604090205490565b600182828154811061230c5761230c6145ab565b905f5260205f2090602091828204019190069054906101000a900460ff16600381111561233b5761233b614173565b03612360575f61234a856134f9565b9050801561235a57949350505050565b50612484565b6002828281548110612374576123746145ab565b905f5260205f2090602091828204019190069054906101000a900460ff1660038111156123a3576123a3614173565b036123cd575f806123b386613685565b9150915080156123c65750949350505050565b5050612484565b60038282815481106123e1576123e16145ab565b905f5260205f2090602091828204019190069054906101000a900460ff16600381111561241057612410614173565b14801561243357506001600160a01b0384165f9081526007602052604090205415155b80156124625750600e546001600160a01b0385165f9081526008602052604090205461245f90426147b2565b11155b15612484575050506001600160a01b03165f9081526007602052604090205490565b600101612267565b505f9392505050565b61249d613303565b5f546001600160a01b031633146124c65760405162461bcd60e51b8152600401610c469061461d565b6001600160a01b03821661251257336108fc4783116124e557826124e7565b475b6040518115909202915f818181858888f1935050505015801561250c573d5f803e3d5ffd5b5061260d565b6040516370a0823160e01b815230600482015282905f906001600160a01b038316906370a0823190602401602060405180830381865afa158015612558573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061257c9190614882565b9050816001600160a01b031663a9059cbb3383861161259b578561259d565b835b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303815f875af11580156125e5573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126099190614899565b5050505b610dca60018055565b60405163060a9d6b60e51b81526001600160a01b03821660048201525f90309063c153ad6090602401602060405180830381865afa15801561265a573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112989190614882565b5f612687613303565b335f9081526010602052604090205460ff16806126ad57505f546001600160a01b031633145b6126c95760405162461bcd60e51b8152600401610c469061474f565b6001600160a01b038216158015906126fe57506001600160a01b0382167355d398326f99059ff775485246999027b319795514155b801561272757506001600160a01b03821673e9e7cea3dedca5984780bafc599bd69add087d5614155b6127735760405162461bcd60e51b815260206004820152601860248201527f496e76616c696420746f6b656e20666f722075706461746500000000000000006044820152606401610c46565b5f600361277f846134f9565b9150811561278f575060016127af565b5f8061279a86613685565b9150915080156127ac57819350600292505b50505b8115612876576001600160a01b0384165f908152600760205260409020541561283b576001600160a01b0384165f908152600760205260409020546127f4908361343b565b61283b5760405162461bcd60e51b81526020600482015260186024820152770a0e4d2c6ca40c8caecd2c2e8d2dedc40e8dede40d0d2ced60431b6044820152606401610c46565b61284584836134c9565b836001600160a01b03165f80516020614ba8833981519152838360405161286d92919061479e565b60405180910390a25b50905061288260018055565b919050565b61288f613303565b335f9081526011602052604090205460ff166128d95760405162461bcd60e51b81526020600482015260096024820152682737ba1030b236b4b760b91b6044820152606401610c46565b5f828242604051602001612926939291906b50524943455f4348414e474560a01b8152606093841b6bffffffffffffffffffffffff1916600c820152602081019290925260408201520190565b60408051601f1981840301815291815281516020928301205f818152601384528281203382528452828120805460ff191660019081179091558282526014909452919091205490925061297891613981565b5f828152601460205260409020819055601254116129fa576001600160a01b0383165f90815260056020908152604080832085905560069091529020805460ff191660011790556129c983836134c9565b826001600160a01b03165f80516020614ba8833981519152835f6040516129f192919061479e565b60405180910390a25b50610dca60018055565b612a0c613303565b5f546001600160a01b03163314612a355760405162461bcd60e51b8152600401610c469061461d565b6001600160a01b038216612a5b5760405162461bcd60e51b8152600401610c4690614777565b6001600160a01b038116612aa05760405162461bcd60e51b815260206004820152600c60248201526b125b9d985b1a59081999595960a21b6044820152606401610c46565b6040805180820182526001600160a01b03838116808352600160208085019182528784165f818152600483528790209551865493511515600160a01b026001600160a81b0319909416951694909417919091179093559251928352917f4fe8b553735635c9c7eaab3168d420311ff503100b03acc262e7118772ca7d959101610db9565b5f546001600160a01b03163314612b4d5760405162461bcd60e51b8152600401610c469061461d565b6001600160a01b038116612ba35760405162461bcd60e51b815260206004820152601d60248201527f4e6577206f776e657220697320746865207a65726f20616464726573730000006044820152606401610c46565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b612c04613303565b5f546001600160a01b03163314612c2d5760405162461bcd60e51b8152600401610c469061461d565b80612c705760405162461bcd60e51b8152602060048201526013602482015272115b5c1d1e481c1c9a5bdc9a5d1e481b1a5cdd606a1b6044820152606401610c46565b612c7b60095f613f66565b5f5b81811015612cfc576009838383818110612c9957612c996145ab565b9050602002016020810190612cae9190614864565b81546001810183555f92835260209283902092810490920180549192909160ff601f9092166101000a918202191690836003811115612cef57612cef614173565b0217905550600101612c7d565b5060408051818152600f818301526e64656661756c745072696f7269747960881b60608201525f602082015290515f80516020614b888339815191529181900360800190a1610dca60018055565b612d52613303565b5f546001600160a01b03163314612d7b5760405162461bcd60e51b8152600401610c469061461d565b6001600160a01b038116612dc35760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610c46565b6001600160a01b0381165f81815260106020526040808220805460ff19166001179055517f68240862346bd0f2e60d75837b2effa789fa7f0264b6d1a1ab25f33e01616cc69190a2610cc060018055565b5f7355d398326f99059ff775485246999027b3197954196001600160a01b03841601612e495750670de0b6b3a7640000611298565b5f73bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095b196001600160a01b0385160161305a5760405163e6a4390560e01b815273bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c60048201527355d398326f99059ff775485246999027b319795560248201526001600160a01b0384169063e6a4390590604401602060405180830381865afa158015612edf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f0391906148b4565b90506001600160a01b03811615612f60575f80612f4973bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c7355d398326f99059ff775485246999027b3197955856139df565b915091508015612f5d575091506112989050565b50505b60405163e6a4390560e01b815273bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c600482015273e9e7cea3dedca5984780bafc599bd69add087d5660248201526001600160a01b0384169063e6a4390590604401602060405180830381865afa158015612fd0573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ff491906148b4565b90506001600160a01b03811615613051575f8061303a73bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c73e9e7cea3dedca5984780bafc599bd69add087d56856139df565b91509150801561304e575091506112989050565b50505b5f915050611298565b60405163e6a4390560e01b81526001600160a01b0385811660048301527355d398326f99059ff775485246999027b3197955602483015284169063e6a4390590604401602060405180830381865afa1580156130b8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130dc91906148b4565b90506001600160a01b03811615613125575f8061310e867355d398326f99059ff775485246999027b3197955856139df565b915091508015613122575091506112989050565b50505b60405163e6a4390560e01b81526001600160a01b03858116600483015273e9e7cea3dedca5984780bafc599bd69add087d56602483015284169063e6a4390590604401602060405180830381865afa158015613183573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131a791906148b4565b90506001600160a01b038116156131f0575f806131d98673e9e7cea3dedca5984780bafc599bd69add087d56856139df565b9150915080156131ed575091506112989050565b50505b60405163e6a4390560e01b81526001600160a01b03858116600483015273bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c602483015284169063e6a4390590604401602060405180830381865afa15801561324e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061327291906148b4565b90506001600160a01b0381161561248c575f806132a48673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c856139df565b9150915080156132f8575f6132cd73bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c87612e14565b905080156132f6576132eb670de0b6b3a764000061145c858461335c565b945050505050611298565b505b5050505f9392505050565b6002600154036133555760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610c46565b6002600155565b5f825f0361336b57505f611298565b5f61337683856148cf565b90508261338385836148fa565b146133da5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610c46565b9392505050565b5f8082116134315760405162461bcd60e51b815260206004820152601a60248201527f536166654d6174683a206469766973696f6e206279207a65726f0000000000006044820152606401610c46565b6133da82846148fa565b5f825f03613459578115806134525750600f548210155b9050611298565b815f0361346757505f611298565b600f548310806134785750600f5482105b1561348457505f611298565b5f838311156134a7576134a08461145c60646114628784613c9e565b90506134bd565b6134ba8461145c60646114628388613c9e565b90505b600d5410159392505050565b8015610dca576001600160a01b03919091165f908152600760209081526040808320939093556008905220429055565b6001600160a01b038082165f90815260046020526040812080549192909116158061352d57508054600160a01b900460ff16155b1561353a57505f92915050565b805460408051633fabe5a360e21b815290516001600160a01b039092169163feaf968c9160048082019260a0929091908290030181865afa92505050801561359f575060408051601f3d908101601f1916820190925261359c91810190614926565b60015b6135ab57505f92915050565b600e546135b883426147b2565b11156135cb57505f979650505050505050565b5f84136135df57505f979650505050505050565b85546040805163313ce56760e01b815290515f926001600160a01b03169163313ce5679160048083019260209291908290030181865afa925050508015613643575060408051601f3d908101601f1916820190925261364091810190614641565b60015b61364f57506008613652565b90505b61367261366082600a614741565b61145c87670de0b6b3a764000061335c565b9998505050505050505050565b50919050565b5f805f6002805490506001600160401b038111156136a5576136a561428e565b6040519080825280602002602001820160405280156136ce578160200160208202803683370190505b506002549091505f906001600160401b038111156136ee576136ee61428e565b604051908082528060200260200182016040528015613717578160200160208202803683370190505b5090505f805f5b60025481101561382c576002818154811061373b5761373b6145ab565b905f5260205f20906003020160010160149054906101000a900460ff1615613824575f6137758960028481548110610bb957610bb96145ab565b905080156138225780868581518110613790576137906145ab565b602002602001018181525050600282815481106137af576137af6145ab565b905f5260205f209060030201600201548585815181106137d1576137d16145ab565b602002602001018181525050613812600283815481106137f3576137f36145ab565b905f5260205f209060030201600201548461398190919063ffffffff16565b92508361381e816145d3565b9450505b505b60010161371e565b50815f0361384257505f96879650945050505050565b5f600b5460ff16600281111561385a5761385a614173565b03613877576138698483613cf9565b976001975095505050505050565b6001600b5460ff16600281111561389057613890614173565b036138a15761386984848484613ea1565b6138698483613f11565b604080516080810182528481526001600160a01b03841660208201526001918101829052606081018390526002805492830181555f52805190916003027f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace0190819061391790826149bd565b5060208201516001820180546040808601511515600160a01b026001600160a81b03199092166001600160a01b039094169390931717905560609092015160029182015554905160039061396c908690614a7c565b90815260405190819003602001902055505050565b5f8061398d8385614a97565b9050838110156133da5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610c46565b5f806001600160a01b0383166139f957505f905080613c96565b826001600160a01b0316630902f1ac6040518163ffffffff1660e01b8152600401606060405180830381865afa925050508015613a53575060408051601f3d908101601f19168201909252613a5091810190614ac0565b60015b613a6157505f905080613c96565b6103e8836001600160701b03161080613a8457506103e8826001600160701b0316105b15613a97575f8094509450505050613c96565b5f866001600160a01b0316630dfe16816040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ad4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613af891906148b4565b90505f808a6001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613b56575060408051601f3d908101601f19168201909252613b5391810190614641565b60015b613b635760129150613b66565b91505b896001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015613bc0575060408051601f3d908101601f19168201909252613bbd91810190614641565b60015b613bcc57506012613bcf565b90505b8a6001600160a01b0316836001600160a01b031603613c3957613c32613c09613bf983600a614741565b6001600160701b0389169061335c565b61145c613c1785600a614741565b6114626001600160701b038a16670de0b6b3a764000061335c565b9750613c86565b613c83613c5a613c4a83600a614741565b6001600160701b0388169061335c565b61145c613c6885600a614741565b6114626001600160701b038b16670de0b6b3a764000061335c565b97505b5060019550613c96945050505050565b935093915050565b5f82821115613cef5760405162461bcd60e51b815260206004820152601e60248201527f536166654d6174683a207375627472616374696f6e206f766572666c6f7700006044820152606401610c46565b6133da82846147b2565b5f60015b82811015613de7575f848281518110613d1857613d186145ab565b602002602001015190505f600183613d309190614b0c565b90505b5f8112158015613d5b575081868281518110613d5157613d516145ab565b6020026020010151115b15613db557858181518110613d7257613d726145ab565b602002602001015186826001613d889190614b32565b81518110613d9857613d986145ab565b602090810291909101015280613dad81614b59565b915050613d33565b8186613dc2836001614b32565b81518110613dd257613dd26145ab565b60209081029190910101525050600101613cfd565b50613df3600283614b74565b5f03613e76575f836001613e086002866148fa565b613e1291906147b2565b81518110613e2257613e226145ab565b602002602001015190505f84600285613e3b91906148fa565b81518110613e4b57613e4b6145ab565b60200260200101519050613e6d600261145c838561398190919063ffffffff16565b92505050611298565b82613e826002846148fa565b81518110613e9257613e926145ab565b60200260200101519050611298565b5f80805b84811015613f0657613efc613ef5878381518110613ec557613ec56145ab565b6020026020010151898481518110613edf57613edf6145ab565b602002602001015161335c90919063ffffffff16565b8390613981565b9150600101613ea5565b5061146881846133e1565b5f80805b83811015613f5357613f49858281518110613f3257613f326145ab565b60200260200101518361398190919063ffffffff16565b9150600101613f15565b50613f5e81846133e1565b949350505050565b5080545f8255601f0160209004905f5260205f2090810190610cc091905b80821115613f97575f8155600101613f84565b5090565b6001600160a01b0381168114610cc0575f80fd5b5f60208284031215613fbf575f80fd5b81356133da81613f9b565b5f5b83811015613fe4578181015183820152602001613fcc565b50505f910152565b5f8151808452614003816020860160208601613fca565b601f01601f19169290920160200192915050565b5f8282518085526020808601955060208260051b840101602086015f5b8481101561406257601f19868403018952614050838351613fec565b98840198925090830190600101614034565b5090979650505050505050565b5f815180845260208085019450602084015f5b8381101561409e57815187529582019590820190600101614082565b509495945050505050565b604081525f6140bb6040830185614017565b82810360208401526140cd818561406f565b95945050505050565b8015158114610cc0575f80fd5b5f80604083850312156140f4575f80fd5b82356140ff81613f9b565b9150602083013561410f816140d6565b809150509250929050565b5f805f806080858703121561412d575f80fd5b5050823594602084013594506040840135936060013592509050565b5f806040838503121561415a575f80fd5b823561416581613f9b565b946020939093013593505050565b634e487b7160e01b5f52602160045260245ffd5b6004811061419757614197614173565b9052565b602081016112988284614187565b5f602082840312156141b9575f80fd5b5035919050565b608081525f6141d26080830187613fec565b6001600160a01b03959095166020830152509115156040830152606090910152919050565b5f8083601f840112614207575f80fd5b5081356001600160401b0381111561421d575f80fd5b6020830191508360208260051b8501011115614237575f80fd5b9250929050565b5f806020838503121561424f575f80fd5b82356001600160401b03811115614264575f80fd5b614270858286016141f7565b90969095509350505050565b602081525f6133da602083018461406f565b634e487b7160e01b5f52604160045260245ffd5b5f602082840312156142b2575f80fd5b81356001600160401b03808211156142c8575f80fd5b818401915084601f8301126142db575f80fd5b8135818111156142ed576142ed61428e565b604051601f8201601f19908116603f011681019083821181831017156143155761431561428e565b8160405282815287602084870101111561432d575f80fd5b826020860160208301375f928101602001929092525095945050505050565b602081016003831061436057614360614173565b91905290565b5f60c08201905087825286602083015285604083015284606083015283608083015261439560a0830184614187565b979650505050505050565b5f8083601f8401126143b0575f80fd5b5081356001600160401b038111156143c6575f80fd5b602083019150836020828501011115614237575f80fd5b5f805f80606085870312156143f0575f80fd5b84356001600160401b03811115614405575f80fd5b614411878288016143a0565b909550935050602085013561442581613f9b565b9396929550929360400135925050565b5f8060408385031215614446575f80fd5b82359150602083013561410f81613f9b565b5f805f6040848603121561446a575f80fd5b833561447581613f9b565b925060208401356001600160401b0381111561448f575f80fd5b61449b868287016141f7565b9497909650939450505050565b606081525f6144ba6060830186614017565b8281036020848101919091528551808352868201928201905f5b818110156144f95784516001600160a01b0316835293830193918301916001016144d4565b5050848103604086015261450d818761406f565b98975050505050505050565b5f805f806060858703121561452c575f80fd5b84356001600160401b03811115614541575f80fd5b61454d878288016143a0565b9095509350506020850135614425816140d6565b5f60208284031215614571575f80fd5b8135600381106133da575f80fd5b5f8060408385031215614590575f80fd5b823561459b81613f9b565b9150602083013561410f81613f9b565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f600182016145e4576145e46145bf565b5060010190565b600181811c908216806145ff57607f821691505b60208210810361367f57634e487b7160e01b5f52602260045260245ffd5b6020808252600a908201526937b7363c9027bbb732b960b11b604082015260600190565b5f60208284031215614651575f80fd5b815160ff811681146133da575f80fd5b600181815b8085111561469b57815f1904821115614681576146816145bf565b8085161561468e57918102915b93841c9390800290614666565b509250929050565b5f826146b157506001611298565b816146bd57505f611298565b81600181146146d357600281146146dd576146f9565b6001915050611298565b60ff8411156146ee576146ee6145bf565b50506001821b611298565b5060208310610133831016604e8410600b841016171561471c575081810a611298565b6147268383614661565b805f1904821115614739576147396145bf565b029392505050565b5f6133da60ff8416836146a3565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b6020808252600d908201526c24b73b30b634b2103a37b5b2b760991b604082015260600190565b828152604081016133da6020830184614187565b81810381811115611298576112986145bf565b818382375f9101908152919050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b608081525f61480f6080830187896147d4565b6001600160a01b0395909516602083015250911515604083015260609091015292915050565b606081525f6148486060830186886147d4565b6001600160a01b03949094166020830152506040015292915050565b5f60208284031215614874575f80fd5b8135600481106133da575f80fd5b5f60208284031215614892575f80fd5b5051919050565b5f602082840312156148a9575f80fd5b81516133da816140d6565b5f602082840312156148c4575f80fd5b81516133da81613f9b565b8082028115828204841417611298576112986145bf565b634e487b7160e01b5f52601260045260245ffd5b5f82614908576149086148e6565b500490565b805169ffffffffffffffffffff81168114612882575f80fd5b5f805f805f60a0868803121561493a575f80fd5b6149438661490d565b94506020860151935060408601519250606086015191506149666080870161490d565b90509295509295909350565b601f821115611b5f57805f5260205f20601f840160051c810160208510156149975750805b601f840160051c820191505b818110156149b6575f81556001016149a3565b5050505050565b81516001600160401b038111156149d6576149d661428e565b6149ea816149e484546145eb565b84614972565b602080601f831160018114614a1d575f8415614a065750858301515b5f19600386901b1c1916600185901b178555614a74565b5f85815260208120601f198616915b82811015614a4b57888601518255948401946001909101908401614a2c565b5085821015614a6857878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f8251614a8d818460208701613fca565b9190910192915050565b80820180821115611298576112986145bf565b80516001600160701b0381168114612882575f80fd5b5f805f60608486031215614ad2575f80fd5b614adb84614aaa565b9250614ae960208501614aaa565b9150604084015163ffffffff81168114614b01575f80fd5b809150509250925092565b8181035f831280158383131683831282161715614b2b57614b2b6145bf565b5092915050565b8082018281125f831280158216821582161715614b5157614b516145bf565b505092915050565b5f600160ff1b8201614b6d57614b6d6145bf565b505f190190565b5f82614b8257614b826148e6565b50069056fe12c9dccd129ff783f1c8228eacdfa8e334ddecb7ec5c9a79ec662a4aed3d012a5cf0b3ec05876abbfc211c445acba869514647943783a49e986809ef59164a0ca26469706673582212209fd1e6c4427204563506328e1b592a050b2258ced1715feda5c23e3249d5747864736f6c63430008180033