0 txs
1 call
constructor
constructor()
functions
ArbBackGoodsList
viewfunction ArbBackGoodsList(uint256) view returns (uint256 arb_id, uint256 type_id, uint256 addtime, string cms_id)
ArbDataList
viewfunction ArbDataList(uint256) view returns (uint256 order_id, address _addr, uint256 return_amount, uint256 is_back_goods, uint256 from_fee_amount, uint256 to_fee_amount, uint256 reward_amount, address fee_token_addr, string cms_id, uint256 is_end, uint256 is_support, uint256 addtime)
ArbFeePercent
viewfunction ArbFeePercent() view returns (uint256)
ArbFeePercentPre
viewfunction ArbFeePercentPre() view returns (uint256)
ArbId
viewfunction ArbId() view returns (uint256)
ArbIdForOrderId
viewfunction ArbIdForOrderId(uint256, uint256) view returns (uint256)
ArbLogDataList
viewfunction ArbLogDataList(uint256) view returns (uint256 order_id, uint256 arb_id, uint256 is_from, uint256 is_to, uint256 is_support, uint256 from_addtime, uint256 to_addtime, uint256 fee_amount, string from_cms_id, string to_cms_id, uint256 addtime)
ArbLogId
viewfunction ArbLogId() view returns (uint256)
ArbLogIdForArbId
viewfunction ArbLogIdForArbId(uint256, uint256) view returns (uint256)
ArbLogReward
viewfunction ArbLogReward(uint256) view returns (uint256)
ArbScoreAddress
viewfunction ArbScoreAddress() view returns (address)
ArbSelect
viewfunction ArbSelect() view returns (address)
BASE_THRESHOLD
viewfunction BASE_THRESHOLD() view returns (uint256)
BaseArbEndtime
viewfunction BaseArbEndtime() view returns (uint256)
BaseArbtrCount
viewfunction BaseArbtrCount() view returns (uint256)
BaseArbtrCountPre
viewfunction BaseArbtrCountPre() view returns (uint256)
BaseBackGoodsTime
viewfunction BaseBackGoodsTime() view returns (uint256)
BaseInitialResponseTime
viewfunction BaseInitialResponseTime() view returns (uint256)
BaseNewArbTime
viewfunction BaseNewArbTime() view returns (uint256)
BaseWaitVoteTime
viewfunction BaseWaitVoteTime() view returns (uint256)
BUSD_ADDRESS
viewfunction BUSD_ADDRESS() view returns (address)
cal_arb_fee
viewfunction cal_arb_fee(uint256 _order_id, uint256 _return_amount, address _token_addr) view returns (uint256, address, uint256)
calculate_dynamic_reward_percent
viewfunction calculate_dynamic_reward_percent(address _token_addr, uint256 _amount) view returns (uint256)
DefaultBnbThreshold
viewfunction DefaultBnbThreshold() view returns (uint256)
FeeAddr
viewfunction FeeAddr() view returns (address)
FeeContract
viewfunction FeeContract() view returns (address)
get_arb_times
viewfunction get_arb_times(uint256 _order_id) view returns (tuple)
get_arbtr_count
viewfunction get_arbtr_count(uint256 _order_id, uint256 _amount) view returns (uint256)
get_order_arb_status
viewfunction get_order_arb_status(uint256 _order_id) view returns (uint256, uint256, uint256, uint256)
get_token_weth
viewfunction get_token_weth(uint256 _return_amount, address _token_addr) view returns (uint256)
get_usdt_eq
viewfunction get_usdt_eq(address _token_addr, uint256 _amount) view returns (uint256)
GetArbIdsForOrderIdLength
viewfunction GetArbIdsForOrderIdLength(uint256 _order_id) view returns (uint256)
GetArbLogIdsForArbIdLength
viewfunction GetArbLogIdsForArbIdLength(uint256 _arb_id) view returns (uint256)
IsStandardToken
viewfunction IsStandardToken(address) view returns (bool)
LatestArbIdForOrderId
viewfunction LatestArbIdForOrderId(uint256) view returns (uint256)
LatestArbLogIdForArbId
viewfunction LatestArbLogIdForArbId(uint256) view returns (uint256)
MaxArbFeeBnb
viewfunction MaxArbFeeBnb() view returns (uint256)
MaxArbFeeUsdt
viewfunction MaxArbFeeUsdt() view returns (uint256)
MinArbFeeBnb
viewfunction MinArbFeeBnb() view returns (uint256)
MinArbFeeUsdt
viewfunction MinArbFeeUsdt() view returns (uint256)
OrderArbStatusList
viewfunction OrderArbStatusList(uint256) view returns (uint256 order_id, uint256 is_arb, uint256 is_wait_vote, uint256 is_support, uint256 end_time)
OrderContract
viewfunction OrderContract() view returns (address)
PriceOracle
viewfunction PriceOracle() view returns (address)
RewardAmount
viewfunction RewardAmount(address, address) view returns (uint256)
RewardTiers
viewfunction RewardTiers(uint256) view returns (uint256 threshold, uint256 rewardPercent)
ShopOrderAddr
viewfunction ShopOrderAddr() view returns (address)
STA_ADDRESS
viewfunction STA_ADDRESS() view returns (address)
TIER_2_THRESHOLD
viewfunction TIER_2_THRESHOLD() view returns (uint256)
TIER_3_THRESHOLD
viewfunction TIER_3_THRESHOLD() view returns (uint256)
TIER_4_THRESHOLD
viewfunction TIER_4_THRESHOLD() view returns (uint256)
TIER_5_THRESHOLD
viewfunction TIER_5_THRESHOLD() view returns (uint256)
TIER_6_THRESHOLD
viewfunction TIER_6_THRESHOLD() view returns (uint256)
USDC_ADDRESS
viewfunction USDC_ADDRESS() view returns (address)
USDT_ADDRESS
viewfunction USDT_ADDRESS() view returns (address)
WETH_ADDRESS
viewfunction WETH_ADDRESS() view returns (address)
_safe_tran_reward
nonpayablefunction _safe_tran_reward(uint256 _order_id, uint256 _arb_log_id)
_set_BasicParameters
nonpayablefunction _set_BasicParameters(uint256 _arb_reply_time, uint256 _new_arb_time, uint256 _wait_vote_time, uint256 _back_goods_time, uint256 _BaseArbEndtime, uint256 _Base_count)
_set_FeeParameters
nonpayablefunction _set_FeeParameters(uint256 _arb_fee_percent, uint256 _min_arb_fee_usdt, uint256 _max_arb_fee_usdt, uint256 _min_arb_fee_bnb, uint256 _max_arb_fee_bnb, uint256 _DefaultBnbThreshold)
add_arb_log
payablefunction add_arb_log(uint256 order_id, uint256 reply_type, string cms_id) payable returns (bool)
add_arbitration
payablefunction add_arbitration(uint256 _order_id, uint256 _return_amount, uint256 _is_back_goods, address from_addr, string cms_id) payable returns (bool)
ArbLogRewardAct
nonpayablefunction ArbLogRewardAct(uint256 _arb_log_id)
auto_execute_arbitration
nonpayablefunction auto_execute_arbitration(uint256 order_id) returns (bool)
deal_back_goods
nonpayablefunction deal_back_goods(uint256 order_id, uint256 arb_id, uint256 type_id, string cms_id)
receive_arbitration_result
nonpayablefunction receive_arbitration_result(uint256 arb_log_id, uint256 vote_result) returns (bool)
set_address
nonpayablefunction set_address(address _fee_addr, address _price_oracle_address, address _ShopOrderAddr, address _ArbSelectAddr, address _ArbScoreAddress, address _token_addr)
set_is_standard_token
nonpayablefunction set_is_standard_token(address _token_addr, bool _val)
transfer_ownership
nonpayablefunction transfer_ownership(address _new_owner)
update_reward_tier
nonpayablefunction update_reward_tier(uint256 _index, uint256 _threshold, uint256 _rewardPercent)
withdraw_reward
nonpayablefunction withdraw_reward(address _token)
events
ArbCreated
event ArbCreated(uint256 indexed order_id, uint256 indexed arb_id, address indexed _addr, uint256 return_amount, uint256 is_back_goods, uint256 from_fee_amount, uint256 to_fee_amount, address fee_token_addr, string cms_id, uint256 is_end)
ArbitrationStateChanged
event ArbitrationStateChanged(uint256 indexed orderId, uint256 previousState, uint256 newState, uint256 timestamp)
ArbitratorsAssigned
event ArbitratorsAssigned(uint256 indexed order_id, uint256 indexed arb_log_id, address[] arbitrators)
ArbLogCmsidUpdate
event ArbLogCmsidUpdate(uint256 indexed order_id, uint256 indexed arb_id, uint256 indexed arb_log_id, string type_id, string cms_id)
ArbLogCreated
event ArbLogCreated(uint256 indexed order_id, uint256 indexed arb_id, uint256 indexed arb_log_id, uint256 is_from, uint256 is_to, uint256 is_support, string from_cms_id, string to_cms_id)
ArbLogNumUpdate
event ArbLogNumUpdate(uint256 indexed order_id, uint256 indexed arb_id, uint256 indexed arb_log_id, string type_id, uint256 amount)
ArbNumUpdate
event ArbNumUpdate(uint256 indexed order_id, uint256 indexed arb_id, string type_id, uint256 amount)
FundsTransferred
event FundsTransferred(uint256 indexed order_id, uint256 indexed arb_id, address token, address from, address to, uint256 amount, uint256 type_id)
OrderArbStatusUpdated
event OrderArbStatusUpdated(uint256 indexed order_id, uint256 indexed arb_id, string type_id, uint256 amount)
OrderStatusAdd
event OrderStatusAdd(uint256 indexed orderId, uint256 indexed arb_id, uint256 is_wait_vote, uint256 is_support)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RewardAmountLog
event RewardAmountLog(uint256 indexed _order_id, uint256 indexed _arb_log_id, address indexed _arb, uint256 amount)
errors
ArbitratorAssignmentFailed
error ArbitratorAssignmentFailed()
InsufficientFee
error InsufficientFee()
InvalidState
error InvalidState()
NoArbitration
error NoArbitration()
NoRewards
error NoRewards()
OnlyBuyerSeller
error OnlyBuyerSeller()
RewardLocked
error RewardLocked()
Unauthorized
error Unauthorized()
ZeroAddress
error ZeroAddress()
creation bytecode
0x6080604052600a80546001600160a01b03191681556202a300600e819055600f8190556010819055620d2f0060115560125566038d7ea4c680006013819055600360148181556015919091556016839055601755601855678ac7230489e80000601955670de0b6b3a7640000601a5569021e19e0c9bab2400000601b55601d81905560215534801561008f575f80fd5b505f80546001600160a01b031916331781556001808055600b60209081527fcabe8c499700ad8cee79ff90676589471f4ba6ebff90e06199ab96fc0a2894b6805460ff1990811684179091557f7a573719a585fc6dfa58e42011c2911a152212757b256e4bc03698fb21d2f1ba80548216841790557f88d98a122cd6a4d88180c7c2990c664d6367997bd674ccf20b26523227f1032b80548216841790557f2a7a803d59424942e0da09e4997378ee11cab67955f4181a83b974b45f484a6880549091168317905560408051808201825268056bc75e2d631000008152605a818401908152601c80548087018255818852925160029384027f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2118181019290925592517f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2129384015584518086018652683635c9adc5dea00000815260558188019081528354808a018555848b5291519186028084019290925551908401558451808601865269021e19e0c9bab2400000815260508188019081528354808a018555848b529151918602808401929092555190840155845180860190955269152d02c7e14af68000008552604b958501958652815496870182559652915193029384019290925551910155615fc380620002865f395ff3fe6080604052600436106103ea575f3560e01c80635d6dbc8f1161020a578063b97c54451161011e578063d0c239b7116100a8578063ee6eb83d11610078578063ee6eb83d14610cf1578063efd4620714610d1c578063f0350c0414610d31578063f396170114610d50578063f9eb2c7514610d6f575f80fd5b8063d0c239b714610c73578063db18a7a514610c9e578063dd7a59ee14610cbd578063e935e4b014610cdc575f80fd5b8063c2ec4595116100ee578063c2ec459514610bf1578063c6d957ea14610c10578063cb9ea33714610c23578063cfba0fac14610c3f578063d048940f14610c5e575f80fd5b8063b97c544514610b18578063bb09d9b714610b7c578063c189205814610ba3578063c1b19a7814610bca575f80fd5b80639dd447981161019f578063a607e2f01161016f578063a607e2f014610a9b578063a910c62314610aba578063ab50fa8014610ad9578063ab75bf0e14610aee578063b79dca0614610b03575f80fd5b80639dd4479814610a29578063a025d76a14610a3e578063a345131d14610a5d578063a3f485f714610a7c575f80fd5b80638d0171ac116101da5780638d0171ac146109af578063946c9645146109ce57806398573a28146109ed5780639be8eb3914610a0a575f80fd5b80635d6dbc8f1461090a578063660fdf9214610929578063687229b01461093e5780637adc52f71461095d575f80fd5b806321f0edd5116103015780633cd45a63116102965780634acb9ef8116102665780634acb9ef8146108455780634ce39c261461087b578063554cb0f01461089a57806357eb05f3146108b9578063598b5886146108d6575f80fd5b80633cd45a63146107c6578063431271eb146107fc578063464d6c421461081157806346c5473114610830575f80fd5b80632d3f41be116102d15780632d3f41be146107525780632e91d5581461076757806330a84f511461077c57806333a0659014610798575f80fd5b806321f0edd51461067a57806322d2c3e6146106a45780632356121e146107145780632cf91ab014610733575f80fd5b80630c6a3df21161038257806314b17f311161035257806314b17f31146105ba57806317dd3a02146105e55780631b5eaae8146106045780631ccdf0ac14610646578063207ccfea1461065b575f80fd5b80630c6a3df2146105345780630cd52d0c14610553578063126e9b741461058257806313a82a0b14610597575f80fd5b8063078ff88e116103bd578063078ff88e146104ca578063084bdb85146104df57806309f04dff1461050057806309f0f47814610515575f80fd5b806251971f146103f5578062aaf88014610435578062bb6e921461046e578063040141e51461048b575f80fd5b366103f157005b5f80fd5b348015610400575f80fd5b5061041461040f36600461536a565b610d8c565b60405161042c9c9b9a999897969594939291906153ce565b60405180910390f35b348015610440575f80fd5b5061046061044f36600461536a565b5f9081526023602052604090205490565b60405190815260200161042c565b348015610479575f80fd5b5061046069010f0cf064dd5920000081565b348015610496575f80fd5b506104b273bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c81565b6040516001600160a01b03909116815260200161042c565b3480156104d5575f80fd5b5061046060195481565b3480156104ea575f80fd5b506104fe6104f9366004615446565b610e7c565b005b34801561050b575f80fd5b5061046060145481565b348015610520575f80fd5b506104fe61052f366004615499565b610ec2565b34801561053f575f80fd5b506009546104b2906001600160a01b031681565b34801561055e575f80fd5b5061057261056d36600461536a565b610f73565b60405161042c9493929190615517565b34801561058d575f80fd5b50610460601d5481565b6105aa6105a536600461557f565b611023565b604051901515815260200161042c565b3480156105c5575f80fd5b506104606105d436600461536a565b600d6020525f908152604090205481565b3480156105f0575f80fd5b50600a546104b2906001600160a01b031681565b34801561060f575f80fd5b5061062361061e3660046155ec565b611347565b604080519384526001600160a01b0390921660208401529082015260600161042c565b348015610651575f80fd5b5061046060215481565b348015610666575f80fd5b506006546104b2906001600160a01b031681565b348015610685575f80fd5b5061046061069436600461536a565b602080525f908152604090205481565b3480156106af575f80fd5b506106ec6106be36600461536a565b60256020525f9081526040902080546001820154600283015460038401546004909401549293919290919085565b604080519586526020860194909452928401919091526060830152608082015260a00161042c565b34801561071f575f80fd5b5061046061072e366004615622565b61142b565b34801561073e575f80fd5b5061046061074d366004615650565b611548565b34801561075d575f80fd5b5061046060185481565b348015610772575f80fd5b5061046060105481565b348015610787575f80fd5b5061046068056bc75e2d6310000081565b3480156107a3575f80fd5b506105aa6107b2366004615670565b600b6020525f908152604090205460ff1681565b3480156107d1575f80fd5b506107e56107e036600461536a565b611573565b60405161042c9b9a9998979695949392919061568b565b348015610807575f80fd5b50610460600f5481565b34801561081c575f80fd5b506104fe61082b366004615446565b6116d5565b34801561083b575f80fd5b5061046060155481565b348015610850575f80fd5b5061046061085f3660046156fe565b602660209081525f928352604080842090915290825290205481565b348015610886575f80fd5b506104fe610895366004615650565b61171b565b3480156108a5575f80fd5b506005546104b2906001600160a01b031681565b3480156108c4575f80fd5b5061046069021e19e0c9bab240000081565b3480156108e1575f80fd5b506108f56108f036600461536a565b6119a5565b6040805192835260208301919091520161042c565b348015610915575f80fd5b5061046061092436600461572a565b6119d1565b348015610934575f80fd5b5061046060135481565b348015610949575f80fd5b506105aa61095836600461536a565b611a90565b348015610968575f80fd5b5061097c61097736600461536a565b611c01565b60405161042c91908151815260208083015190820152604080830151908201526060918201519181019190915260800190565b3480156109ba575f80fd5b506104fe6109c9366004615754565b611cba565b3480156109d9575f80fd5b506104606109e8366004615650565b611d2e565b3480156109f8575f80fd5b5061046069152d02c7e14af680000081565b348015610a15575f80fd5b50610460610a2436600461572a565b611e3d565b348015610a34575f80fd5b5061046060125481565b348015610a49575f80fd5b506105aa610a58366004615650565b611f80565b348015610a68575f80fd5b506104fe610a77366004615670565b612120565b348015610a87575f80fd5b506104fe610a9636600461536a565b6121ae565b348015610aa6575f80fd5b506004546104b2906001600160a01b031681565b348015610ac5575f80fd5b50610460610ad4366004615650565b612455565b348015610ae4575f80fd5b50610460601a5481565b348015610af9575f80fd5b5061046060115481565b348015610b0e575f80fd5b50610460600e5481565b348015610b23575f80fd5b50610b5c610b3236600461536a565b5f908152602560205260409020600181015460028201546003830154600490930154919390929190565b60408051948552602085019390935291830152606082015260800161042c565b348015610b87575f80fd5b506104b2738965349fb649a33a30cbfda057d8ec2c48abe2a281565b348015610bae575f80fd5b506104b27355d398326f99059ff775485246999027b319795581565b348015610bd5575f80fd5b506104b273e9e7cea3dedca5984780bafc599bd69add087d5681565b348015610bfc575f80fd5b506104fe610c0b36600461578a565b61246e565b6105aa610c1e3660046157b6565b6124c1565b348015610c2e575f80fd5b50610460683635c9adc5dea0000081565b348015610c4a575f80fd5b506003546104b2906001600160a01b031681565b348015610c69575f80fd5b50610460601b5481565b348015610c7e575f80fd5b50610460610c8d36600461536a565b60246020525f908152604090205481565b348015610ca9575f80fd5b506104fe610cb8366004615804565b612659565b348015610cc8575f80fd5b506008546104b2906001600160a01b031681565b348015610ce7575f80fd5b5061046060175481565b348015610cfc575f80fd5b50610460610d0b36600461536a565b5f908152601f602052604090205490565b348015610d27575f80fd5b5061046060165481565b348015610d3c575f80fd5b506104fe610d4b366004615670565b612923565b348015610d5b575f80fd5b506007546104b2906001600160a01b031681565b348015610d7a575f80fd5b50610460690a968163f0a57b40000081565b601e6020525f908152604090208054600182015460028301546003840154600485015460058601546006870154600788015460088901805498996001600160a01b03988916999798969795969495939490921692610de99061585f565b80601f0160208091040260200160405190810160405280929190818152602001828054610e159061585f565b8015610e605780601f10610e3757610100808354040283529160200191610e60565b820191905f5260205f20905b815481529060010190602001808311610e4357829003601f168201915b50505050509080600901549080600a01549080600b015490508c565b5f546001600160a01b03163314610ea5576040516282b42960e81b815260040160405180910390fd5b600e95909555600f93909355601091909155601155601255601455565b5f546001600160a01b03163314610eeb576040516282b42960e81b815260040160405180910390fd5b600680546001600160a01b039788166001600160a01b031991821681179092556005805497891697821697909717909655600380549588169587168617905560098054871690951790945560048054938716938616939093179092556008805485169093179092556007805492851692841692909217909155600a8054919093169116179055565b600260208190525f918252604090912080546001820154928201546003830180549294939192610fa29061585f565b80601f0160208091040260200160405190810160405280929190818152602001828054610fce9061585f565b80156110195780601f10610ff057610100808354040283529160200191611019565b820191905f5260205f20905b815481529060010190602001808311610ffc57829003601f168201915b5050505050905084565b5f61102c6129cc565b6009546001600160a01b031633146110835760405162461bcd60e51b8152602060048201526015602482015274155b985d5d1a1bdc9a5e99590818dbdb9d1c9858dd605a1b60448201526064015b60405180910390fd5b5f6040518060e00160405280898152602001888152602001878152602001866001600160a01b0316815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920182905250938552505050602080830182905260409283018290528b825280805282822054808352601e90915291902060090154919250901580159061112157505f81115b61113d5760405162461bcd60e51b815260040161107a90615891565b5f898152602560205260409020600190810154900361118f5760405162461bcd60e51b815260206004820152600e60248201526d2fb9ba30ba3ab99734b9afb0b93160911b604482015260640161107a565b815160208301516111a4919061061e82612a25565b506001600160a01b031660c084015260a08301525f6111c283612a3b565b90506111df8a828560c0015186606001518760a00151600b612b9f565b6040518060a00160405280845f01518152602001600181526020015f81526020015f81526020014281525060255f855f015181526020019081526020015f205f820151815f015560208201518160010155604082015181600201556060820151816003015560808201518160040155905050611289835f01518260015f425f8960a001518a60800151604051806040016040528060028152602001614e4f60f01b81525042612c66565b50336001600160a01b031681845f01517f42a3087a68504acb841f03f556ffdc48d5c01eedb0b1aa76d3ca16c20c9887cb866020015187604001518860a001515f8a60c001518b608001515f6040516112e897969594939291906158b1565b60405180910390a48251604080515f80825260208201528392917fedb2c4c714906201867d5502416d90e7ea504b6c627e2f1fbac5f45d0532068b910160405180910390a36001935050505061133d60018055565b9695505050505050565b5f805f8061135487612e12565b9150505f611384606461137e84611378601754601654612ebc90919063ffffffff16565b90612ebc565b90612f22565b6016546113919190615911565b6001600160a01b0387165f908152600b602052604081205491925090879060ff16156113d45760646113c3848b615924565b6113cd919061593b565b9150611410565b6113de898961142b565b915060646113ec8484615924565b6113f6919061593b565b915073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c90505b61141a8282612f63565b9a9099509297509195505050505050565b600554604051630681320d60e51b81526001600160a01b0383811660048301525f92839291169063d02641a090602401602060405180830381865afa925050508015611494575060408051601f3d908101601f191682019092526114919181019061595a565b60015b6114a1575060135461153f565b600554604051630681320d60e51b81525f60048201819052916001600160a01b03169063d02641a090602401602060405180830381865afa1580156114e8573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061150c919061595a565b90505f8111801561151c57505f82115b156115365761152f8161137e8885612ebc565b925061153c565b60135492505b50505b90505b92915050565b601f602052815f5260405f208181548110611561575f80fd5b905f5260205f20015f91509150505481565b6022602052805f5260405f205f91509050805f0154908060010154908060020154908060030154908060040154908060050154908060060154908060070154908060080180546115c29061585f565b80601f01602080910402602001604051908101604052809291908181526020018280546115ee9061585f565b80156116395780601f1061161057610100808354040283529160200191611639565b820191905f5260205f20905b81548152906001019060200180831161161c57829003601f168201915b50505050509080600901805461164e9061585f565b80601f016020809104026020016040519081016040528092919081815260200182805461167a9061585f565b80156116c55780601f1061169c576101008083540402835291602001916116c5565b820191905f5260205f20905b8154815290600101906020018083116116a857829003601f168201915b50505050509080600a015490508b565b5f546001600160a01b031633146116fe576040516282b42960e81b815260040160405180910390fd5b601695909555601891909155601955601a91909155601b55601355565b33301461175f5760405162461bcd60e51b815260206004820152601260248201527113db9b1e481cd95b198818d85b8818d85b1b60721b604482015260640161107a565b5f60225f8381526020019081526020015f20604051806101600160405290815f8201548152602001600182015481526020016002820154815260200160038201548152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820180546117dc9061585f565b80601f01602080910402602001604051908101604052809291908181526020018280546118089061585f565b80156118535780601f1061182a57610100808354040283529160200191611853565b820191905f5260205f20905b81548152906001019060200180831161183657829003601f168201915b5050505050815260200160098201805461186c9061585f565b80601f01602080910402602001604051908101604052809291908181526020018280546118989061585f565b80156118e35780601f106118ba576101008083540402835291602001916118e3565b820191905f5260205f20905b8154815290600101906020018083116118c657829003601f168201915b5050509183525050600a91909101546020909101526003546040516371dba4dd60e11b8152600481018690529192505f916001600160a01b039091169063e3b749ba9060240160c060405180830381865afa158015611944573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119689190615971565b50505060e085015192935050505f819003611984575050505050565b606061198f85612fe1565b905061199d868487846133ed565b505050505050565b601c81815481106119b4575f80fd5b5f9182526020909120600290910201805460019091015490915082565b5f806119dd8484611e3d565b601c549091505f036119f357605a915050611542565b601c545b8015611a635780611a07816159d6565b915050601c8181548110611a1d57611a1d6159eb565b905f5260205f2090600202015f01548210611a5e57601c8181548110611a4557611a456159eb565b905f5260205f2090600202016001015492505050611542565b6119f7565b601c5f81548110611a7657611a766159eb565b905f5260205f209060020201600101549250505092915050565b5f611a996129cc565b5f82815260256020908152604080832082805281842054808552601e90935292206009015415611adb5760405162461bcd60e51b815260040161107a90615891565b8160010154600114611b275760405162461bcd60e51b81526020600482015260156024820152744e6f206172626974726174696f6e2065786973747360581b604482015260640161107a565b60028201541580611b3c575081600201546002145b611b885760405162461bcd60e51b815260206004820181905260248201527f496e76616c696420737461746520666f72206175746f20657865637574696f6e604482015260640161107a565b611b9384828461363d565b5f611b9e8584613874565b90505f8111611be05760405162461bcd60e51b815260206004820152600e60248201526d1cdd5c1c1bdc9d17dc995cdd5b1d60921b604482015260640161107a565b611bec8583835f61391b565b60019350505050611bfc60018055565b919050565b611c2860405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f80611c3384612e12565b915091505f6040518060800160405280600e548152602001600f54815260200160105481526020016011548152509050611c6e818484613c3c565b5f8681526020808052604080832054808452601e9092529091206003015491925090600103611cb15781606001518260200151611cab9190615911565b60208301525b50949350505050565b5f546001600160a01b03163314611ce3576040516282b42960e81b815260040160405180910390fd5b604051806040016040528083815260200182815250601c8481548110611d0b57611d0b6159eb565b5f9182526020918290208351600290920201908155910151600190910155505050565b5f8281526020808052604080832054808452602390925282205482611d5460028361593b565b611d5f906002615924565b90505f8515611e04575f611d7288613d68565b90505f611d83826020015189611e3d565b905069152d02c7e14af68000008110611d9f5760089250611e01565b690a968163f0a57b4000008110611db95760069250611e01565b69021e19e0c9bab24000008110611dd35760049250611e01565b69010f0cf064dd592000008110611ded5760029250611e01565b683635c9adc5dea000008110611e01575f92505b50505b5f8183601454611e149190615911565b611e1e9190615911565b9050600f8111611e2e5780611e31565b600f5b98975050505050505050565b5f6001600160a01b0383167355d398326f99059ff775485246999027b31979551480611e8557506001600160a01b03831673e9e7cea3dedca5984780bafc599bd69add087d56145b80611eac57506001600160a01b038316738965349fb649a33a30cbfda057d8ec2c48abe2a2145b80611ec45750600a546001600160a01b038481169116145b15611ed0575080611542565b600554604051630681320d60e51b81526001600160a01b0385811660048301529091169063d02641a090602401602060405180830381865afa925050508015611f36575060408051601f3d908101601f19168201909252611f339181019061595a565b60015b611f4a5750683635c9adc5dea00000611542565b8015611f6e57611f66670de0b6b3a764000061137e8584612ebc565b915050611542565b5050683635c9adc5dea0000092915050565b5f611f896129cc565b6004546001600160a01b03163314611fe35760405162461bcd60e51b815260206004820152601760248201527f4f6e6c792041726253656c6563742063616e2063616c6c000000000000000000604482015260640161107a565b8160011480611ff25750816002145b6120345760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081d9bdd19481c995cdd5b1d606a1b604482015260640161107a565b5f8381526022602090815260409182902080546001820154600490920186905583518085019094526002845261053560f41b92840192909252909161207e90839087908790613e55565b6120a582866002604051806040016040528060028152602001612bab60f11b815250613e55565b6120cb82864260405180604001604052806002815260200161115560f21b815250613e55565b8481835f80516020615f6e833981519152876040516121099190604080825260029082015261053560f41b6060820152602081019190915260800190565b60405180910390a460019250505061154260018055565b6121286129cc565b335f9081526026602090815260408083206001600160a01b03851684529091528120549081900361216c57604051630fec21fd60e21b815260040160405180910390fd5b335f8181526026602090815260408083206001600160a01b038716845290915281208190556121a19181908590856001613fff565b506121ab60018055565b50565b6121b66129cc565b60048054604051636abf12f160e11b81529182018390525f916001600160a01b039091169063d57e25e290602401602060405180830381865afa1580156121ff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612223919061595a565b90505f811161225f5760405162461bcd60e51b815260206004820152600860248201526717d8d85cd957da5960c21b604482015260640161107a565b5f8281526022602052604080822060010154600480549251630102d65560e01b8152908101829052602481018490526064604482018190529193926001600160a01b031691630102d65591015f60405180830381865afa1580156122c5573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526122ec9190810190615afa565b50509050805f1461232e5760405162461bcd60e51b815260206004820152600c60248201526b6e6f5f636865636b5f6e756d60a01b604482015260640161107a565b6004805460405163141c761160e21b81529182018590525f916001600160a01b0390911690635071d8449060240161012060405180830381865afa158015612378573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061239c9190615b61565b9050428160e00151106123dd5760405162461bcd60e51b8152602060048201526009602482015268766f74655f74696d6560b81b604482015260640161107a565b5f858152600d6020526040902054156124215760405162461bcd60e51b81526020600482015260066024820152651254c811539160d21b604482015260640161107a565b5f858152600d602090815260408083206001905560229091529020546124478187614264565b50505050506121ab60018055565b6023602052815f5260405f208181548110611561575f80fd5b5f546001600160a01b03163314612497576040516282b42960e81b815260040160405180910390fd5b6001600160a01b03919091165f908152600b60205260409020805460ff1916911515919091179055565b5f6124ca6129cc565b5f6040518060e0016040528087815260200186815260200185858080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201829052509385525050506020808301829052604083018290526060830182905260809092015281015190915060011480159061255057508060200151600214155b1561256e5760405163baf3f0f760e01b815260040160405180910390fd5b5f61257b825f0151613d68565b60408101519091506001600160a01b031633148015906125a8575060608101516001600160a01b03163314155b156125c657604051630d5fc4d160e31b815260040160405180910390fd5b81515f9081526020805260408120546080840181905290036125fb57604051632c396f7560e11b815260040160405180910390fd5b60808201515f90815260246020526040908190205460a08401528101516001600160a01b0316331461262e576002612631565b60015b60ff16606083015261264282614316565b60019250505061265160018055565b949350505050565b6126616129cc565b6003546040516371dba4dd60e11b8152600481018790525f916001600160a01b03169063e3b749ba9060240160c060405180830381865afa1580156126a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906126cc9190615971565b50509350505050336001600160a01b0316816001600160a01b03161461271e5760405162461bcd60e51b81526020600482015260076024820152663a37afb0b2323960c91b604482015260640161107a565b5f8581526002602081905260409091200154156127715760405162461bcd60e51b8152602060048201526011602482015270159bdd19509858dad1dbdbd91cd31a5cdd607a1b604482015260640161107a565b83600114806127805750836002145b6127b65760405162461bcd60e51b81526020600482015260076024820152661d1e5c1957da5960ca1b604482015260640161107a565b5f868152602560205260408120906127cd88611c01565b90506127ea816060015183600401546144b890919063ffffffff16565b4211156128095760405162461bcd60e51b815260040161107a90615bda565b604051806080016040528088815260200187815260200142815260200186868080601f0160208091040260200160405190810160405280939291908181526020018383808284375f92018290525093909452505089815260026020818152604092839020855181559085015160018201559184015190820155606083015190915060038201906128999082615c53565b50905050856002036129105760405163636cabf560e11b8152309063c6d957ea906128ce908b908a908a908a90600401615d0e565b6020604051808303815f875af11580156128ea573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061290e9190615d4a565b505b50505061291c60018055565b5050505050565b5f546001600160a01b0316331461294c576040516282b42960e81b815260040160405180910390fd5b6001600160a01b0381166129735760405163d92e233d60e01b815260040160405180910390fd5b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b600260015403612a1e5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00604482015260640161107a565b6002600155565b5f80612a3083613d68565b602001519392505050565b601d80545f91819083612a4d83615d65565b909155505060408051610180810182528451815233602080830191825280870151838501908152878501516060850190815260a0808a015160808088019182525f92880183815260c0808a01858152908e01516001600160a01b0390811660e08c01908152938f01516101008c019081526101208c018790526101408c01879052426101608d01528d8752601e9099529a909420895181559751600189018054918c166001600160a01b031992831617905595516002890155935160038801559051600487015591516005860155516006850155516007840180549190961691161790935591519091906008820190612b469082615c53565b506101208201516009820155610140820151600a82015561016090910151600b9091015582515f908152601f60209081526040808320805460018101825590845282842001849055945182528052929092208290555090565b73bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095b196001600160a01b03851601612be95781341015612be45760405162976f7560e21b815260040160405180910390fd5b612bfe565b612bfe6001600160a01b03851684308561450c565b604080516001600160a01b0380871682528516602082015230918101919091526060810183905260808101829052859087907f2c300e9f420ae0fd11959124b2ab07b85661dedbeae57ad22decb3f6113e89899060a0015b60405180910390a3505050505050565b602180545f9182612c7683615d65565b91905055505f6001602154612c8b9190615d7d565b90506040518061016001604052808d81526020018c81526020018b81526020018a81526020015f81526020018981526020018881526020018781526020018681526020018581526020018481525060225f8381526020019081526020015f205f820151815f01556020820151816001015560408201518160020155606082015181600301556080820151816004015560a0820151816005015560c0820151816006015560e08201518160070155610100820151816008019081612d4e9190615c53565b506101208201516009820190612d649082615c53565b5061014082015181600a015590505060235f8c81526020019081526020015f2081908060018154018082558091505060019003905f5260205f20015f90919091909150558060245f8d81526020019081526020015f2081905550808b8d7fc57fdc167f15c1e2125cf6b6eaac5d7ed9b2dc60d59a5845f20ffc840fa733818d8d5f8b8b604051612df8959493929190615d90565b60405180910390a45060019b9a5050505050505050505050565b6003546040516371dba4dd60e11b8152600481018390525f918291829182916001600160a01b039091169063e3b749ba9060240160c060405180830381865afa158015612e61573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612e859190615971565b50505050915091505f612e988284611e3d565b5f968752602080805260408089205489526023909152909620549596945050505050565b5f811580612edf57508282612ed18183615924565b9250612edd908361593b565b145b6115425760405162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6d756c2d6f766572666c6f7760601b604482015260640161107a565b5f61153f83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250614577565b5f73bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095b196001600160a01b03831601612fb457601854831015612f9c5750601854611542565b601954831115612faf5750601954611542565b612fda565b601a54831015612fc75750601a54611542565b601b54831115612fda5750601b54611542565b5090919050565b60048054604051636abf12f160e11b81529182018390526060915f916001600160a01b03169063d57e25e290602401602060405180830381865afa15801561302b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061304f919061595a565b600480546040516363a5ad1560e11b81529182018390529192505f916001600160a01b03169063c74b5a2a90602401602060405180830381865afa158015613099573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906130bd919061595a565b90505f816001600160401b038111156130d8576130d86159ff565b604051908082528060200260200182016040528015613101578160200160208202803683370190505b5090505f826001600160401b0381111561311d5761311d6159ff565b604051908082528060200260200182016040528015613146578160200160208202803683370190505b5090505f805b848110156132f35760048054604051638ade600960e01b8152918201889052602482018390526001600160a01b031690638ade600990604401602060405180830381865afa1580156131a0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131c49190615dc6565b8482815181106131d6576131d66159eb565b60200260200101906001600160a01b031690816001600160a01b0316815250505f838281518110613209576132096159eb565b602090810291909101015260075484516001600160a01b039091169063d373c77590889087908590811061323f5761323f6159eb565b60200260200101516040518363ffffffff1660e01b81526004016132769291909182526001600160a01b0316602082015260400190565b602060405180830381865afa158015613291573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906132b59190615d4a565b15156001036132eb5760018382815181106132d2576132d26159eb565b6020908102919091010152816132e781615d65565b9250505b60010161314c565b505f816001600160401b0381111561330d5761330d6159ff565b604051908082528060200260200182016040528015613336578160200160208202803683370190505b5090505f805b868110156133df57848181518110613356576133566159eb565b60200260200101516001036133d7576001858281518110613379576133796159eb565b602002602001018181525050858181518110613397576133976159eb565b60200260200101518383815181106133b1576133b16159eb565b6001600160a01b0390921660209283029190910190910152816133d381615d65565b9250505b60010161333c565b509098975050505050505050565b5f6133f785612a25565b90505f61340482866119d1565b5f85815260226020526040902060070154909150613428605a61137e836064612ebc565b90505f60646134378484615924565b613441919061593b565b90505f61344e8284615d7d565b5f88815260226020908152604080832060010154808452601e909252822060070154895193945090926001600160a01b03909116910361348c578492505b8751156135a3575f8851856134a1919061593b565b90505f805b8a51811015613593578260265f8d84815181106134c5576134c56159eb565b60200260200101516001600160a01b03166001600160a01b031681526020019081526020015f205f866001600160a01b03166001600160a01b031681526020019081526020015f205f82825461351b9190615911565b9091555061352b90508383615911565b91508a818151811061353f5761353f6159eb565b60200260200101516001600160a01b03168c8f7fa576a0ceb65775bebd99c13fdf9bc9fc20b636b9f83a925d6cdb2c84c9819a058660405161358391815260200190565b60405180910390a46001016134a6565b5061359e8188615d7d565b945050505b8215613630576008546135c7908c908b9084906001600160a01b0316876005613fff565b60065460405163cd6bc28560e01b8152600481018490526001600160a01b038381166024830152604482018690529091169063cd6bc285906064015f604051808303815f87803b158015613619575f80fd5b505af115801561362b573d5f803e3d5ffd5b505050505b5050505050505050505050565b5f61364784611c01565b5f848152601e60205260409020600301549091506001036136cf575f8381526002602081905260409091200154158061369057505f838152600260205260409020600190810154145b6136cf5760405162461bcd60e51b815260206004820152601060248201526f105c98909858dad1dbdbd91cd31a5cdd60821b604482015260640161107a565b81600201545f036137cb575f838152601e60205260409020600301546001036137705760208101516004830154613705916144b8565b4210158061372357505f838152600260205260409020600190810154145b61376b5760405162461bcd60e51b815260206004820152601960248201527814995cdc1bdb9cd9481d1a5b59481b9bdd08195e1c1a5c9959603a1b604482015260640161107a565b61386e565b80516004830154613780916144b8565b42101561376b5760405162461bcd60e51b815260206004820152601960248201527814995cdc1bdb9cd9481d1a5b59481b9bdd08195e1c1a5c9959603a1b604482015260640161107a565b816002015460020361386e575f838152601e602052604090206003015460010361383c5760208101516004830154613802916144b8565b4210158061382057505f838152600260205260409020600190810154145b61376b5760405162461bcd60e51b815260040161107a90615bda565b6020810151600483015461384f916144b8565b42101561386e5760405162461bcd60e51b815260040161107a90615bda565b50505050565b5f828152602080805260408083205480845260248352818420548085526022909352908320600285015491929184036138ba576138b0816145ac565b9350505050611542565b5f81600401541161390d5760405162461bcd60e51b815260206004820152601f60248201527f4e6f206172626974726174696f6e20726573756c7420617661696c61626c6500604482015260640161107a565b600401549250611542915050565b5f838152601e602090815260408083206024928390528184205460035492516371dba4dd60e11b8152600481018a905291949093909283926001600160a01b039091169163e3b749ba910160c060405180830381865afa158015613981573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139a59190615971565b50509350935050505f85156139ce575f888152601e6020526040902060016009909101556139e4565b5f888152601e6020526040902060026009909101555b5f888152601e60209081526040808320600a018a9055868352602282529182902060040189905581518083019092526002825261053560f41b90820152613a30908a908a908a90613e55565b613a5689894260405180604001604052806002815260200161115560f21b815250613e55565b613a7e898960026040518060400160405280600381526020016220a92160e91b815250613e55565b86600103613a895750815b86600203613a945750805b613aa289898786868c6145fb565b60028086015490889003613ab357505f5b5f613abd8b611c01565b600354815160405163fa102bc960e01b8152600481018f9052602481018e90526044810186905260648101919091529192506001600160a01b03169063fa102bc9906084016020604051808303815f875af1158015613b1e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613b429190615d4a565b505f8a8152601e602090815260409182902060090154825183815260028185015261115160f21b60608201529182015290518b918d917f99e51ffb6b4ccfc956215ad1ba0cd696468c6484091995d9d2d29ef066706bc99181900360800190a3858a8c5f80516020615f6e8339815191528c604051613be09190604080825260029082015261053560f41b6060820152602081019190915260800190565b60405180910390a4858a8c5f80516020615f6e8339815191526003604051613c279190604080825260029082015261159560f21b6060820152602081019190915260800190565b60405180910390a45050505050505050505050565b613c6360405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f613c6d84614687565b90508015613cf857613c828162015180615924565b85518690613c91908390615911565b905250613ca18162015180615924565b85602001818151613cb29190615911565b905250613cc28162015180615924565b85604001818151613cd39190615911565b905250613ce38162015180615924565b85606001818151613cf49190615911565b9052505b8215613d5c57613d0e855f015184601554614723565b85526020850151601554613d2491908590614723565b60208601526040850151601554613d3d91908590614723565b60408601526060850151601554613d5691908590614723565b60608601525b849150505b9392505050565b6040805160c0810182525f80825260208201819052818301819052606082018190526080820181905260a0820181905260035492516371dba4dd60e11b81526004810185905291929091829182918291829182916001600160a01b03169063e3b749ba9060240160c060405180830381865afa158015613dea573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e0e9190615971565b6040805160c0810182529687526001600160a01b0395861660208801529385169386019390935292166060840152608083019190915260a082015298975050505050505050565b604080518082019091526002815261115560f21b6020918201528151908201207fe49bf335d2aa28b1f0be09627ce12496c8ba8f62225f6f1a0ce424307b2ddee001613eaf575f8481526025602052604090206004018290555b6040805180820190915260028152612bab60f11b6020918201528151908201207f4471fd31aa18b6f1d603c837ba6ab3328b276e459dace4629ce013b8c7e9bd3701613f09575f8481526025602052604090206002018290555b604080518082019091526002815261053560f41b6020918201528151908201207f410c42ee17d4bfab244405e6e521db5f080a97c841fc155027827c22798c129a01613f63575f8481526025602052604090206003018290555b60408051808201909152600381526220a92160e91b6020918201528151908201207f3f8adb485b1133d87b03853e800d8cf07880c3085d314b1dc8a05bf5efceea3001613fbe575f8481526025602052604090206001018290555b82847fcf10efbbd0021b51bf32fc650e28b5edd9479cc100fc2e33d778dc33527be0ea8385604051613ff1929190615de1565b60405180910390a350505050565b811561199d576001600160a01b038416158061403757506001600160a01b03841673bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c145b1561413e578147101561408c5760405162461bcd60e51b815260206004820152601d60248201527f496e73756666696369656e7420636f6e74726163742062616c616e6365000000604482015260640161107a565b5f836001600160a01b0316836040515f6040518083038185875af1925050503d805f81146140d5576040519150601f19603f3d011682016040523d82523d5f602084013e6140da565b606091505b505090508060405160200161410a9074022aa24103a3930b739b332b9103330b4b632b21d1605d1b815260150190565b604051602081830303815290604052906141375760405162461bcd60e51b815260040161107a9190615e02565b5050614208565b6040516370a0823160e01b815230600482015282906001600160a01b038616906370a0823190602401602060405180830381865afa158015614182573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141a6919061595a565b10156141f45760405162461bcd60e51b815260206004820152601a60248201527f496e73756666696369656e7420746f6b656e2062616c616e6365000000000000604482015260640161107a565b6142086001600160a01b03851684846147a0565b604080516001600160a01b0380871682523060208301528516918101919091526060810183905260808101829052859087907f2c300e9f420ae0fd11959124b2ab07b85661dedbeae57ad22decb3f6113e89899060a001612c56565b5f818152600c602052604090205460ff16156142935760405163253dc39d60e21b815260040160405180910390fd5b5f818152600c602052604090819020805460ff1916600117905551632671ce1360e11b815260048101839052602481018290523090634ce39c26906044015f604051808303815f87803b1580156142e8575f80fd5b505af11580156142fa573d5f803e3d5ffd5b5050505f91825250600c60205260409020805460ff1916905550565b60808101515f908152601e6020526040812082516002820154600783015492939261434b9291906001600160a01b0316611347565b505060c0840181905283515f908152602560205260409020600984015491925090156143895760405162461bcd60e51b815260040161107a90615891565b6002810154158061439e575080600201546002145b6143ea5760405162461bcd60e51b815260206004820152601960248201527f696e76616c6964206172626974726174696f6e20737461746500000000000000604482015260640161107a565b806002015460020361440a5761440084826147d5565b60a0850152614428565b60a08401515f90815260226020526040902061442685826148de565b505b8360200151600103614469578351608085015160a0860151600786015460608801516144649493929188916001600160a01b0390911690614c44565b61448b565b836020015160020361448b5761448b845f015185608001518660600151614e99565b61386e845f015185608001514260405180604001604052806002815260200161115560f21b815250613e55565b5f826144c48382615911565b91508110156115425760405162461bcd60e51b815260206004820152601460248201527364732d6d6174682d6164642d6f766572666c6f7760601b604482015260640161107a565b6040516001600160a01b038085166024830152831660448201526064810182905261386e9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614ebe565b5f81836145975760405162461bcd60e51b815260040161107a9190615e02565b505f6145a3848661593b565b95945050505050565b5f816002015460011480156145c357506003820154155b156145d057506001919050565b60028201541580156145e6575081600301546001145b156145f357506002919050565b506001919050565b60078401546001600160a01b0316600182900361464a5760058501545f9061462490600a612f22565b86600401546146339190615911565b905061464488888488856002613fff565b5061467e565b60048501545f9061465c90600a612f22565b866005015461466b9190615911565b905061467c88888487856003613fff565b505b50505050505050565b5f69152d02c7e14af680000082106146a157506007919050565b690a968163f0a57b40000082106146ba57506005919050565b69021e19e0c9bab240000082106146d357506004919050565b69010f0cf064dd5920000082106146ec57506003919050565b683635c9adc5dea00000821061470457506002919050565b68056bc75e2d63100000821061471c57506001919050565b505f919050565b5f825f03614732575082613d61565b5f61473e846032615924565b614749906064615911565b90508284111561478a5761475d8385615d7d565b6147678486615d7d565b614772906032615924565b61477c9190615924565b614787906064615911565b90505b60646147968287615924565b6145a3919061593b565b6040516001600160a01b0383166024820152604481018290526147d090849063a9059cbb60e01b90606401614540565b505050565b5f806147e3845f0151611c01565b90506147fc816020015142614f8f90919063ffffffff16565b83600401541161484e5760405162461bcd60e51b815260206004820152601860248201527f726573746172742074696d65206e6f7420657870697265640000000000000000604482015260640161107a565b5f61485885614fe4565b905061488e855f01518660800151835f01518460200151856040015186606001518b60c0015188608001518960a0015142612c66565b506080850180515f9081526024602090815260408083205460a08a015288519351815180830190925260028252612bab60f11b928201929092526148d3939290613e55565b5050505060a0015190565b5f6148eb835f0151611c01565b90508260600151600103614aa55760028201541561494b5760405162461bcd60e51b815260206004820152601760248201527f627579657220616c726561647920726573706f6e646564000000000000000000604482015260640161107a565b6006820154156149ad57805160068301546149669190615911565b4211156149ad5760405162461bcd60e51b81526020600482015260156024820152741c995cdc1bdb9cd9481d1a5b5948195e1c1a5c9959605a1b604482015260640161107a565b60208084015160a0850180515f908152602290935260408084206002019290925581860151905183529120600801906149e69082615c53565b504260225f8560a0015181526020019081526020015f20600501819055508260a001518360800151845f01515f80516020615f6e8339815191528660200151604051614a519190604080825260029082015261232960f11b6060820152602081019190915260800190565b60405180910390a460a08301516080840151845160408087015190517f01205dbee68d42f394fa018a3b24a0f26f77f16f7b79108a50531c19317666d291614a9891615e14565b60405180910390a4505050565b600382015415614af75760405162461bcd60e51b815260206004820152601860248201527f73656c6c657220616c726561647920726573706f6e6465640000000000000000604482015260640161107a565b600582015415614b595780516005830154614b129190615911565b421115614b595760405162461bcd60e51b81526020600482015260156024820152741c995cdc1bdb9cd9481d1a5b5948195e1c1a5c9959605a1b604482015260640161107a565b60208084015160a0850180515f90815260229093526040808420600301929092558186015190518352912060090190614b929082615c53565b504260225f8560a0015181526020019081526020015f20600601819055508260a001518360800151845f01515f80516020615f6e8339815191528660200151604051614bfd91906040808252600290820152612a2960f11b6060820152602081019190915260800190565b60405180910390a460a08301516080840151845160408087015190517f01205dbee68d42f394fa018a3b24a0f26f77f16f7b79108a50531c19317666d291614a9891615e3f565b5f614c5487856002015485611347565b505060078501549091506001600160a01b03166001839003614cfc575f878152601e6020526040902060040154614c8b90836144b8565b5f888152601e6020526040908190206004018290555188918a917f99e51ffb6b4ccfc956215ad1ba0cd696468c6484091995d9d2d29ef066706bc991614cef91604080825260029082015261232360f11b6060820152602081019190915260800190565b60405180910390a3614d84565b5f878152601e6020526040902060050154614d1790836144b8565b5f888152601e6020526040908190206005018290555188918a917f99e51ffb6b4ccfc956215ad1ba0cd696468c6484091995d9d2d29ef066706bc991614d7b916040808252600290820152612a2360f11b6060820152602081019190915260800190565b60405180910390a35b73bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095b196001600160a01b03821601614df457348214614def5760405162461bcd60e51b81526020600482015260146024820152731a5b98dbdc9c9958dd0811551208185b5bdd5b9d60621b604482015260640161107a565b614e09565b614e096001600160a01b03821633308561450c565b5f868152602260205260409020600381015415801590614e2c57505f8160020154115b15614e8e57614e5889886001604051806040016040528060028152602001612bab60f11b815250613e55565b614e7e89884260405180604001604052806002815260200161115560f21b815250613e55565b614e8e89898989600201546150f8565b505050505050505050565b5f81600114614ea9576001614eac565b60025b60ff16905061386e848483600161391b565b5f614f12826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661527e9092919063ffffffff16565b8051909150156147d05780806020019051810190614f309190615d4a565b6147d05760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840161107a565b5f82614f9b8382615d7d565b91508111156115425760405162461bcd60e51b815260206004820152601560248201527464732d6d6174682d7375622d756e646572666c6f7760581b604482015260640161107a565b6150196040518060c001604052805f81526020015f81526020015f81526020015f815260200160608152602001606081525090565b5f615026835f0151613d68565b90506040518060c001604052805f81526020015f81526020015f81526020015f8152602001604051806040016040528060028152602001614e4f60f01b8152508152602001604051806040016040528060028152602001614e4f60f01b8152508152509150336001600160a01b031681604001516001600160a01b0316036150bd5760018252604080840151608084015242908301525b336001600160a01b031681606001516001600160a01b0316036150f25760016020830152604083015160a08301524260608301525b50919050565b5f6151038583611d2e565b90505f61510f86612a25565b90505f61511c8285611e3d565b90505f61512888611c01565b905060605f806151378b613d68565b905060045f9054906101000a90046001600160a01b03166001600160a01b0316638ce997828c8c8c8989604001518d886040015189606001516040518963ffffffff1660e01b81526004016151d0989796959493929190978852602088019690965260408701949094526060860192909252608085015260a08401526001600160a01b0390811660c08401521660e08201526101000190565b5f604051808303815f875af11580156151eb573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526152129190810190615e6a565b815191945092505f0361523857604051630d852ca360e41b815260040160405180910390fd5b888b7f60b461c7775ceaa53a16286bd8c1f9e8c8bc1578ab53b3035ad58e5def5a4287856040516152699190615f06565b60405180910390a35050505050505050505050565b6060833b6152ce5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640161107a565b5f80856001600160a01b0316856040516152e89190615f52565b5f604051808303815f865af19150503d805f8114615321576040519150601f19603f3d011682016040523d82523d5f602084013e615326565b606091505b509150915061133d82828660608315615340575081613d61565b8251156153505782518084602001fd5b8160405162461bcd60e51b815260040161107a9190615e02565b5f6020828403121561537a575f80fd5b5035919050565b5f5b8381101561539b578181015183820152602001615383565b50505f910152565b5f81518084526153ba816020860160208601615381565b601f01601f19169290920160200192915050565b5f6101808e835260018060a01b03808f1660208501528d60408501528c60608501528b60808501528a60a08501528960c085015280891660e0850152508061010084015261541e818401886153a3565b6101208401969096525050610140810192909252610160909101529998505050505050505050565b5f805f805f8060c0878903121561545b575f80fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b6001600160a01b03811681146121ab575f80fd5b5f805f805f8060c087890312156154ae575f80fd5b86356154b981615485565b955060208701356154c981615485565b945060408701356154d981615485565b935060608701356154e981615485565b925060808701356154f981615485565b915060a087013561550981615485565b809150509295509295509295565b848152836020820152826040820152608060608201525f61133d60808301846153a3565b5f8083601f84011261554b575f80fd5b5081356001600160401b03811115615561575f80fd5b602083019150836020828501011115615578575f80fd5b9250929050565b5f805f805f8060a08789031215615594575f80fd5b86359550602087013594506040870135935060608701356155b481615485565b925060808701356001600160401b038111156155ce575f80fd5b6155da89828a0161553b565b979a9699509497509295939492505050565b5f805f606084860312156155fe575f80fd5b8335925060208401359150604084013561561781615485565b809150509250925092565b5f8060408385031215615633575f80fd5b82359150602083013561564581615485565b809150509250929050565b5f8060408385031215615661575f80fd5b50508035926020909101359150565b5f60208284031215615680575f80fd5b813561153f81615485565b5f6101608d83528c60208401528b60408401528a60608401528960808401528860a08401528760c08401528660e0840152806101008401526156cf818401876153a3565b90508281036101208401526156e481866153a3565b915050826101408301529c9b505050505050505050505050565b5f806040838503121561570f575f80fd5b823561571a81615485565b9150602083013561564581615485565b5f806040838503121561573b575f80fd5b823561574681615485565b946020939093013593505050565b5f805f60608486031215615766575f80fd5b505081359360208301359350604090920135919050565b80151581146121ab575f80fd5b5f806040838503121561579b575f80fd5b82356157a681615485565b915060208301356156458161577d565b5f805f80606085870312156157c9575f80fd5b843593506020850135925060408501356001600160401b038111156157ec575f80fd5b6157f88782880161553b565b95989497509550505050565b5f805f805f60808688031215615818575f80fd5b85359450602086013593506040860135925060608601356001600160401b03811115615842575f80fd5b61584e8882890161553b565b969995985093965092949392505050565b600181811c9082168061587357607f821691505b6020821081036150f257634e487b7160e01b5f52602260045260245ffd5b6020808252600690820152651a5cd7d95b9960d21b604082015260600190565b87815286602082015285604082015284606082015260018060a01b038416608082015260e060a08201525f6158e960e08301856153a3565b90508260c083015298975050505050505050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115611542576115426158fd565b8082028115828204841417611542576115426158fd565b5f8261595557634e487b7160e01b5f52601260045260245ffd5b500490565b5f6020828403121561596a575f80fd5b5051919050565b5f805f805f8060c08789031215615986575f80fd5b86519550602087015161599881615485565b60408801519095506159a981615485565b60608801519094506159ba81615485565b809350506080870151915060a087015190509295509295509295565b5f816159e4576159e46158fd565b505f190190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52604160045260245ffd5b60405161012081016001600160401b0381118282101715615a3657615a366159ff565b60405290565b604051601f8201601f191681016001600160401b0381118282101715615a6457615a646159ff565b604052919050565b5f6001600160401b03821115615a8457615a846159ff565b5060051b60200190565b5f82601f830112615a9d575f80fd5b81516020615ab2615aad83615a6c565b615a3c565b8083825260208201915060208460051b870101935086841115615ad3575f80fd5b602086015b84811015615aef5780518352918301918301615ad8565b509695505050505050565b5f805f60608486031215615b0c575f80fd5b8351925060208401516001600160401b0380821115615b29575f80fd5b615b3587838801615a8e565b93506040860151915080821115615b4a575f80fd5b50615b5786828701615a8e565b9150509250925092565b5f6101208284031215615b72575f80fd5b615b7a615a13565b825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c082015260e083015160e08201526101008084015181830152508091505092915050565b6020808252818101527f4e6577206172626974726174696f6e2074696d65206e6f742065787069726564604082015260600190565b601f8211156147d057805f5260205f20601f840160051c81016020851015615c345750805b601f840160051c820191505b8181101561291c575f8155600101615c40565b81516001600160401b03811115615c6c57615c6c6159ff565b615c8081615c7a845461585f565b84615c0f565b602080601f831160018114615cb3575f8415615c9c5750858301515b5f19600386901b1c1916600185901b17855561199d565b5f85815260208120601f198616915b82811015615ce157888601518255948401946001909101908401615cc2565b5085821015615cfe57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b84815283602082015260606040820152816060820152818360808301375f818301608090810191909152601f909201601f191601019392505050565b5f60208284031215615d5a575f80fd5b815161153f8161577d565b5f60018201615d7657615d766158fd565b5060010190565b81810381811115611542576115426158fd565b85815284602082015283604082015260a060608201525f615db460a08301856153a3565b8281036080840152611e3181856153a3565b5f60208284031215615dd6575f80fd5b815161153f81615485565b604081525f615df360408301856153a3565b90508260208301529392505050565b602081525f61153f60208301846153a3565b604081526002604082015261464360f01b6060820152608060208201525f61153f60808301846153a3565b604081526002604082015261544360f01b6060820152608060208201525f61153f60808301846153a3565b5f8060408385031215615e7b575f80fd5b82516001600160401b03811115615e90575f80fd5b8301601f81018513615ea0575f80fd5b80516020615eb0615aad83615a6c565b82815260059290921b83018101918181019088841115615ece575f80fd5b938201935b83851015615ef5578451615ee681615485565b82529382019390820190615ed3565b969091015195979596505050505050565b602080825282518282018190525f9190848201906040850190845b81811015615f465783516001600160a01b031683529284019291840191600101615f21565b50909695505050505050565b5f8251615f63818460208701615381565b919091019291505056fed18e6d74268a153529e7161be743e82bada418a9f80051989c5a198ea0461d13a2646970667358221220f5d2369eeb7749304877850979130f0adac20dd967ea21690a75286f7532db6a64736f6c63430008180033