2 txs
36 calls
constructor
constructor()
functions
arbitrator_addr
viewfunction arbitrator_addr() view returns (address)
arbitrator_amount_by_token
viewfunction arbitrator_amount_by_token(address) view returns (uint256)
arbitrator_ratio
viewfunction arbitrator_ratio() view returns (uint256)
BUSD_ADDRESS
viewfunction BUSD_ADDRESS() view returns (address)
fee_data_id
viewfunction fee_data_id() view returns (uint256)
fee_data_lists
viewfunction fee_data_lists(uint256) view returns (uint256 order_id, address token_addr, uint256 total_amount, uint256 fund_amount, uint256 arbitrator_amount, uint256 add_time, uint256 is_distributed)
fund_addr
viewfunction fund_addr() view returns (address)
fund_amount_by_token
viewfunction fund_amount_by_token(address) view returns (uint256)
fund_ratio
viewfunction fund_ratio() view returns (uint256)
get_contract_balance
viewfunction get_contract_balance(address _token) view returns (uint256)
get_failed_distributions
viewfunction get_failed_distributions() view returns (uint256[] failed_fee_data_ids)
get_fee_data_by_order_id
viewfunction get_fee_data_by_order_id(uint256 _order_id) view returns (uint256 fee_data_id_result, address token_addr, uint256 total_amount, uint256 fund_amount, uint256 arbitrator_amount, uint256 add_time, uint256 is_distributed, bool found)
get_fee_data_id
viewfunction get_fee_data_id() view returns (uint256)
get_fee_data
viewfunction get_fee_data(uint256 _fee_data_id) view returns (uint256 order_id, address token_addr, uint256 total_amount, uint256 fund_amount, uint256 arbitrator_amount, uint256 add_time, uint256 is_distributed)
get_supported_tokens
viewfunction get_supported_tokens() view returns (address[])
get_token_statistics
viewfunction get_token_statistics(address _token_addr) view returns (uint256 total_fees, uint256 fund_amount, uint256 arbitrator_amount)
order_processed
viewfunction order_processed(uint256) view returns (bool)
shop_order_addr
viewfunction shop_order_addr() view returns (address)
supported_tokens
viewfunction supported_tokens(address) view returns (bool)
token_lists
viewfunction token_lists(uint256) view returns (address)
total_fee_by_token
viewfunction total_fee_by_token(address) view returns (uint256)
USDT_ADDRESS
viewfunction USDT_ADDRESS() view returns (address)
WETH_ADDRESS
viewfunction WETH_ADDRESS() view returns (address)
add_supported_token
nonpayablefunction add_supported_token(address _token_addr)
batch_redistribute_failed_fees
nonpayablefunction batch_redistribute_failed_fees(uint256[] _fee_data_ids)
divide_order
nonpayablefunction divide_order(uint256 _order_id, address _token_addr, uint256 _amount, address share_addr, address admin_addr)
divide
nonpayablefunction divide(uint256 _order_id, address _token_addr, uint256 _amount)
emergency_withdraw
nonpayablefunction emergency_withdraw(address _token, uint256 _amount)
redistribute_failed_fee
nonpayablefunction redistribute_failed_fee(uint256 _fee_data_id)
remove_supported_token
nonpayablefunction remove_supported_token(address _token_addr)
set_arbitrator_addr
nonpayablefunction set_arbitrator_addr(address _arbitrator_addr)
set_distribution_ratio
nonpayablefunction set_distribution_ratio(uint256 _fund_ratio, uint256 _arbitrator_ratio)
set_fund_addr
nonpayablefunction set_fund_addr(address _fund_addr)
set_parameters
nonpayablefunction set_parameters(uint256 _fund_ratio, uint256 _arbitrator_ratio, address _fund_addr, address _arbitrator_addr)
set_shop_order_addr
nonpayablefunction set_shop_order_addr(address _shop_order_addr)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
_contract_updated
event _contract_updated(string contract_type, address old_addr, address new_addr)
_fee_distributed
event _fee_distributed(uint256 indexed fee_data_id, address indexed token_addr, uint256 fund_amount, uint256 arbitrator_amount, uint256 status)
_fee_received
event _fee_received(uint256 indexed fee_data_id, uint256 indexed order_id, address indexed token_addr, uint256 total_amount, uint256 fund_amount, uint256 arbitrator_amount, uint256 add_time)
_ratio_updated
event _ratio_updated(uint256 old_fund_ratio, uint256 new_fund_ratio, uint256 old_arbitrator_ratio, uint256 new_arbitrator_ratio)
_token_added
event _token_added(address indexed token_addr)
_token_removed
event _token_removed(address indexed token_addr)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
errors
No errors.
creation bytecode
0x60806040526113886005556113886006555f60075534801562000020575f80fd5b50335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600180819055506200008c73bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c620000dc60201b60201c565b620000b17355d398326f99059ff775485246999027b3197955620000dc60201b60201c565b620000d673e9e7cea3dedca5984780bafc599bd69add087d56620000dc60201b60201c565b62000227565b600d5f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1662000224576001600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600e81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fa4938373e31e04b45ca3b7d653668a7395f6374aeb5b458a90859a3ada23851b60405160405180910390a25b50565b6148e780620002355f395ff3fe608060405260043610610212575f3560e01c8063ad3173cf11610117578063daa8a52b1161009f578063e121ce201161006e578063e121ce20146107fa578063ed200e3014610824578063ede927de1461084c578063f2fde38b14610874578063fc85963e1461089c57610219565b8063daa8a52b14610756578063dd7e4a4814610780578063df1b751d146107aa578063e0036cda146107d257610219565b8063bdb76430116100e6578063bdb7643014610686578063be65f2a9146106b0578063c1892058146106da578063c1b19a7814610704578063c6e8e5731461072e57610219565b8063ad3173cf146105d2578063ae51b070146105fa578063b70d9b7d14610636578063b75ddef71461065e57610219565b806375a762341161019a5780638bfbdd34116101695780638bfbdd34146104b25780638e386ece146104ee57806395dcd05f1461052a5780639e8e582614610554578063a54269651461059057610219565b806375a76234146103e65780637741fd4d14610424578063844281f814610460578063867bffa11461048857610219565b80632cb226cc116101e15780632cb226cc146102e757806345370896146103115780634cdeb32214610339578063695174391461037b57806373f714cc146103be57610219565b806303d749df1461021d578063040141e5146102595780631e49b094146102835780632280d0f1146102ab57610219565b3661021957005b5f80fd5b348015610228575f80fd5b50610243600480360381019061023e9190613469565b6108c6565b60405161025091906134ac565b60405180910390f35b348015610264575f80fd5b5061026d6108db565b60405161027a91906134d4565b60405180910390f35b34801561028e575f80fd5b506102a960048036038101906102a49190613517565b6108f3565b005b3480156102b6575f80fd5b506102d160048036038101906102cc9190613469565b610e8c565b6040516102de91906134ac565b60405180910390f35b3480156102f2575f80fd5b506102fb610ea1565b60405161030891906134ac565b60405180910390f35b34801561031c575f80fd5b5061033760048036038101906103329190613469565b610ea7565b005b348015610344575f80fd5b5061035f600480360381019061035a9190613567565b6111d1565b6040516103729796959493929190613592565b60405180910390f35b348015610386575f80fd5b506103a1600480360381019061039c9190613567565b61122e565b6040516103b5989796959493929190613619565b60405180910390f35b3480156103c9575f80fd5b506103e460048036038101906103df9190613695565b6112f9565b005b3480156103f1575f80fd5b5061040c60048036038101906104079190613469565b611470565b60405161041b939291906136f9565b60405180910390f35b34801561042f575f80fd5b5061044a60048036038101906104459190613469565b61153a565b604051610457919061372e565b60405180910390f35b34801561046b575f80fd5b50610486600480360381019061048191906137a8565b611557565b005b348015610493575f80fd5b5061049c611698565b6040516104a991906134d4565b60405180910390f35b3480156104bd575f80fd5b506104d860048036038101906104d39190613469565b6116bd565b6040516104e591906134ac565b60405180910390f35b3480156104f9575f80fd5b50610514600480360381019061050f9190613567565b6117c4565b604051610521919061372e565b60405180910390f35b348015610535575f80fd5b5061053e6117e1565b60405161054b91906134ac565b60405180910390f35b34801561055f575f80fd5b5061057a60048036038101906105759190613567565b6117ea565b60405161058791906134d4565b60405180910390f35b34801561059b575f80fd5b506105b660048036038101906105b19190613567565b611825565b6040516105c99796959493929190613592565b60405180910390f35b3480156105dd575f80fd5b506105f860048036038101906105f391906137f3565b6118df565b005b348015610605575f80fd5b50610620600480360381019061061b9190613469565b611985565b60405161062d91906134ac565b60405180910390f35b348015610641575f80fd5b5061065c60048036038101906106579190613469565b61199a565b005b348015610669575f80fd5b50610684600480360381019061067f9190613469565b611aa1565b005b348015610691575f80fd5b5061069a611c3e565b6040516106a79190613921565b60405180910390f35b3480156106bb575f80fd5b506106c4611d4c565b6040516106d191906134d4565b60405180910390f35b3480156106e5575f80fd5b506106ee611d71565b6040516106fb91906134d4565b60405180910390f35b34801561070f575f80fd5b50610718611d89565b60405161072591906134d4565b60405180910390f35b348015610739575f80fd5b50610754600480360381019061074f9190613941565b611da1565b005b348015610761575f80fd5b5061076a61205c565b60405161077791906134ac565b60405180910390f35b34801561078b575f80fd5b50610794612062565b6040516107a191906134d4565b60405180910390f35b3480156107b5575f80fd5b506107d060048036038101906107cb919061397f565b612087565b005b3480156107dd575f80fd5b506107f860048036038101906107f39190613469565b6121c7565b005b348015610805575f80fd5b5061080e612364565b60405161081b91906134ac565b60405180910390f35b34801561082f575f80fd5b5061084a60048036038101906108459190613567565b61236a565b005b348015610857575f80fd5b50610872600480360381019061086d9190613469565b6124e1565b005b34801561087f575f80fd5b5061089a60048036038101906108959190613469565b61267e565b005b3480156108a7575f80fd5b506108b0612834565b6040516108bd9190613a74565b60405180910390f35b600b602052805f5260405f205f915090505481565b73bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c81565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610982576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097990613aee565b60405180910390fd5b61098a6128bf565b5f81116109cc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109c390613b56565b60405180910390fd5b600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610a55576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a4c90613bbe565b60405180910390fd5b600c5f8481526020019081526020015f205f9054906101000a900460ff1615610ab3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610aaa90613c26565b60405180910390fd5b6001600c5f8581526020019081526020015f205f6101000a81548160ff0219169083151502179055505f610b06612710610af86005548561290e90919063ffffffff16565b61297a90919063ffffffff16565b90505f610b32612710610b246006548661290e90919063ffffffff16565b61297a90919063ffffffff16565b90505f610b4882846129c390919063ffffffff16565b905083811115610b6857610b658385612a1b90919063ffffffff16565b91505b6040518060e001604052808781526020018673ffffffffffffffffffffffffffffffffffffffff1681526020018581526020018481526020018381526020014281526020015f81525060085f60075481526020019081526020015f205f820151815f01556020820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160020155606082015181600301556080820151816004015560a0820151816005015560c08201518160060155905050610c978460095f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129c390919063ffffffff16565b60095f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610d2883600a5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129c390919063ffffffff16565b600a5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550610db982600b5f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20546129c390919063ffffffff16565b600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508473ffffffffffffffffffffffffffffffffffffffff16866007547f3f316951f8cf7a87ffcedc583c7e7a62034514b3470eb970bda5b691f27a6d5487878742604051610e4a9493929190613c44565b60405180910390a4610e60600754868585612a73565b610e7660016007546129c390919063ffffffff16565b600781905550505050610e87613253565b505050565b6009602052805f5260405f205f915090505481565b60055481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610f34576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2b90613cd1565b60405180910390fd5b600d5f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16610fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fb490613bbe565b60405180910390fd5b5f600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055505f5b600e8054905081101561118a578173ffffffffffffffffffffffffffffffffffffffff16600e828154811061104b5761104a613cef565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361117d57600e6001600e805490506110a29190613d49565b815481106110b3576110b2613cef565b5b905f5260205f20015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600e82815481106110ef576110ee613cef565b5b905f5260205f20015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e80548061114657611145613d7c565b5b600190038181905f5260205f20015f6101000a81549073ffffffffffffffffffffffffffffffffffffffff0219169055905561118a565b8080600101915050611013565b508073ffffffffffffffffffffffffffffffffffffffff167fe9823122c6ecd01c59862afad4cf36bd1bd0232b09297d03f68a730d5eb5831e60405160405180910390a250565b6008602052805f5260405f205f91509050805f015490806001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060020154908060030154908060040154908060050154908060060154905087565b5f805f805f805f805f5b6007548110156112d4578960085f8381526020019081526020015f205f0154036112c7575f60085f8381526020019081526020015f20905081816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff168260020154836003015484600401548560050154866006015460019950995099509950995099509950995050506112ee565b8080600101915050611238565b505f805f805f805f80975097509750975097509750975097505b919395975091939597565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611386576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161137d90613cd1565b60405180910390fd5b61271061139c84866129c390919063ffffffff16565b146113dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d390613df3565b60405180910390fd5b83600581905550826006819055508160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508060035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b5f805f60095f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600a5f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054600b5f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549250925092509193909250565b600d602052805f5260405f205f915054906101000a900460ff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115db90613cd1565b60405180910390fd5b5f5b82829050811015611693575f83838381811061160557611604613cef565b5b905060200201359050600754811080156116335750600260085f8381526020019081526020015f2060060154145b15611685575f60085f8381526020019081526020015f20905061168382826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600301548460040154612a73565b505b5080806001019150506115e6565b505050565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611737575073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611744574790506117bf565b8173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161177d91906134d4565b602060405180830381865afa158015611798573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117bc9190613e25565b90505b919050565b600c602052805f5260405f205f915054906101000a900460ff1681565b5f600754905090565b600e81815481106117f9575f80fd5b905f5260205f20015f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f805f805f805f6007548810611870576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186790613e9a565b60405180910390fd5b5f60085f8a81526020019081526020015f209050805f0154816001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682600201548360030154846004015485600501548660060154975097509750975097509750975050919395979092949650565b60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461196e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161196590613aee565b60405180910390fd5b6119766128bf565b61197e613253565b5050505050565b600a602052805f5260405f205f915090505481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611a27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a1e90613cd1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8c90613f02565b60405180910390fd5b611a9e8161325c565b50565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b2590613cd1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611b9c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b9390613f6a565b60405180910390fd5b5f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160035f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff6980766d8027caf0f603141217f46470e052cd7261c60423500e5f388fefa4e8183604051611c32929190613fd2565b60405180910390a15050565b60605f805b600754811015611c8d57600260085f8381526020019081526020015f206006015403611c8057611c7d6001836129c390919063ffffffff16565b91505b8080600101915050611c43565b508067ffffffffffffffff811115611ca857611ca761400c565b5b604051908082528060200260200182016040528015611cd65781602001602082028036833780820191505090505b5091505f805b600754811015611d4657600260085f8381526020019081526020015f206006015403611d395780848381518110611d1657611d15613cef565b5b602002602001018181525050611d366001836129c390919063ffffffff16565b91505b8080600101915050611cdc565b50505090565b60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7355d398326f99059ff775485246999027b319795581565b73e9e7cea3dedca5984780bafc599bd69add087d5681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e2590613cd1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161480611ea7575073bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b15611f9d5780471015611eef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ee690614083565b60405180910390fd5b5f3373ffffffffffffffffffffffffffffffffffffffff1682604051611f14906140ce565b5f6040518083038185875af1925050503d805f8114611f4e576040519150601f19603f3d011682016040523d82523d5f602084013e611f53565b606091505b5050905080611f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8e9061412c565b60405180910390fd5b50612058565b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401611fd892919061414a565b6020604051808303815f875af1158015611ff4573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612018919061419b565b612057576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161204e90614210565b60405180910390fd5b5b5050565b60075481565b60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612114576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210b90613cd1565b60405180910390fd5b61271061212a82846129c390919063ffffffff16565b1461216a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161216190613df3565b60405180910390fd5b5f60055490505f600654905083600581905550826006819055507f36262e90003722d6d9f7e253b4c4131622dae591444a7b05d14d059ad6184c24828583866040516121b99493929190613c44565b60405180910390a150505050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612254576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224b90613cd1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036122c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016122b990614278565b60405180910390fd5b5f60045f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160045f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff6980766d8027caf0f603141217f46470e052cd7261c60423500e5f388fefa4e81836040516123589291906142e0565b60405180910390a15050565b60065481565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146123f7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ee90613cd1565b60405180910390fd5b6123ff6128bf565b6007548110612443576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243a90613e9a565b60405180910390fd5b5f60085f8381526020019081526020015f209050600281600601541461249e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161249590614364565b60405180910390fd5b6124d582826001015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1683600301548460040154612a73565b506124de613253565b50565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461256e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161256590613cd1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036125dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d3906143cc565b60405180910390fd5b5f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160025f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507ff6980766d8027caf0f603141217f46470e052cd7261c60423500e5f388fefa4e8183604051612672929190614434565b60405180910390a15050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461270b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161270290613cd1565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612779576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612770906144b8565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3805f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6060600e8054806020026020016040519081016040528092919081815260200182805480156128b557602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001906001019080831161286c575b5050505050905090565b600260015403612904576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128fb90614520565b60405180910390fd5b6002600181905550565b5f80821480612935575082828385612926919061453e565b92508261293391906145ac565b145b612974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296b90614626565b60405180910390fd5b92915050565b5f6129bb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506133a6565b905092915050565b5f8282846129d19190614644565b9150811015612a15576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a0c906146c1565b60405180910390fd5b92915050565b5f828284612a299190613d49565b9150811115612a6d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6490614729565b60405180910390fd5b92915050565b5f73ffffffffffffffffffffffffffffffffffffffff1660025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612b02576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612af990614791565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1603612b91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b88906147f9565b60405180910390fd5b5f80831115612e645773bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603612d17575f60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1684604051612c27906140ce565b5f6040518083038185875af1925050503d805f8114612c61576040519150601f19603f3d011682016040523d82523d5f602084013e612c66565b606091505b505090508015612d115760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303b8115486866040518363ffffffff1660e01b8152600401612ccc92919061414a565b5f604051808303815f87803b158015612ce3575f80fd5b505af1925050508015612cf4575060015b15612d1057612d0d6001836129c390919063ffffffff16565b91505b5b50612e5f565b5f8473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16866040518363ffffffff1660e01b8152600401612d7492919061414a565b6020604051808303815f875af1158015612d90573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612db4919061419b565b90508015612e5d5760025f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166303b8115486866040518363ffffffff1660e01b8152600401612e1892919061414a565b5f604051808303815f87803b158015612e2f575f80fd5b505af1925050508015612e40575060015b15612e5c57612e596001836129c390919063ffffffff16565b91505b5b505b612e7b565b612e786001826129c390919063ffffffff16565b90505b5f82111561314d5773bb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603613000575f60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1683604051612f10906140ce565b5f6040518083038185875af1925050503d805f8114612f4a576040519150601f19603f3d011682016040523d82523d5f602084013e612f4f565b606091505b505090508015612ffa5760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b7936ff486856040518363ffffffff1660e01b8152600401612fb592919061414a565b5f604051808303815f87803b158015612fcc575f80fd5b505af1925050508015612fdd575060015b15612ff957612ff66001836129c390919063ffffffff16565b91505b5b50613148565b5f8473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb60035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16856040518363ffffffff1660e01b815260040161305d92919061414a565b6020604051808303815f875af1158015613079573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061309d919061419b565b905080156131465760035f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663b7936ff486856040518363ffffffff1660e01b815260040161310192919061414a565b5f604051808303815f87803b158015613118575f80fd5b505af1925050508015613129575060015b15613145576131426001836129c390919063ffffffff16565b91505b5b505b613164565b6131616001826129c390919063ffffffff16565b90505b5f80841115613184576131816001826129c390919063ffffffff16565b90505b5f8311156131a3576131a06001826129c390919063ffffffff16565b90505b8082106131c957600160085f8881526020019081526020015f20600601819055506131e4565b600260085f8881526020019081526020015f20600601819055505b8473ffffffffffffffffffffffffffffffffffffffff16867fa314c58da6ca85f887af76310c949b4e9aeb9e0848422cdd305674c8003e42c1868660085f8c81526020019081526020015f2060060154604051613243939291906136f9565b60405180910390a3505050505050565b60018081905550565b600d5f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff166133a3576001600d5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600e81908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff167fa4938373e31e04b45ca3b7d653668a7395f6374aeb5b458a90859a3ada23851b60405160405180910390a25b50565b5f80831182906133ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016133e39190614891565b60405180910390fd5b505f83856133fa91906145ac565b9050809150509392505050565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6134388261340f565b9050919050565b6134488161342e565b8114613452575f80fd5b50565b5f813590506134638161343f565b92915050565b5f6020828403121561347e5761347d613407565b5b5f61348b84828501613455565b91505092915050565b5f819050919050565b6134a681613494565b82525050565b5f6020820190506134bf5f83018461349d565b92915050565b6134ce8161342e565b82525050565b5f6020820190506134e75f8301846134c5565b92915050565b6134f681613494565b8114613500575f80fd5b50565b5f81359050613511816134ed565b92915050565b5f805f6060848603121561352e5761352d613407565b5b5f61353b86828701613503565b935050602061354c86828701613455565b925050604061355d86828701613503565b9150509250925092565b5f6020828403121561357c5761357b613407565b5b5f61358984828501613503565b91505092915050565b5f60e0820190506135a55f83018a61349d565b6135b260208301896134c5565b6135bf604083018861349d565b6135cc606083018761349d565b6135d9608083018661349d565b6135e660a083018561349d565b6135f360c083018461349d565b98975050505050505050565b5f8115159050919050565b613613816135ff565b82525050565b5f6101008201905061362d5f83018b61349d565b61363a602083018a6134c5565b613647604083018961349d565b613654606083018861349d565b613661608083018761349d565b61366e60a083018661349d565b61367b60c083018561349d565b61368860e083018461360a565b9998505050505050505050565b5f805f80608085870312156136ad576136ac613407565b5b5f6136ba87828801613503565b94505060206136cb87828801613503565b93505060406136dc87828801613455565b92505060606136ed87828801613455565b91505092959194509250565b5f60608201905061370c5f83018661349d565b613719602083018561349d565b613726604083018461349d565b949350505050565b5f6020820190506137415f83018461360a565b92915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261376857613767613747565b5b8235905067ffffffffffffffff8111156137855761378461374b565b5b6020830191508360208202830111156137a1576137a061374f565b5b9250929050565b5f80602083850312156137be576137bd613407565b5b5f83013567ffffffffffffffff8111156137db576137da61340b565b5b6137e785828601613753565b92509250509250929050565b5f805f805f60a0868803121561380c5761380b613407565b5b5f61381988828901613503565b955050602061382a88828901613455565b945050604061383b88828901613503565b935050606061384c88828901613455565b925050608061385d88828901613455565b9150509295509295909350565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b61389c81613494565b82525050565b5f6138ad8383613893565b60208301905092915050565b5f602082019050919050565b5f6138cf8261386a565b6138d98185613874565b93506138e483613884565b805f5b838110156139145781516138fb88826138a2565b9750613906836138b9565b9250506001810190506138e7565b5085935050505092915050565b5f6020820190508181035f83015261393981846138c5565b905092915050565b5f806040838503121561395757613956613407565b5b5f61396485828601613455565b925050602061397585828601613503565b9150509250929050565b5f806040838503121561399557613994613407565b5b5f6139a285828601613503565b92505060206139b385828601613503565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6139ef8161342e565b82525050565b5f613a0083836139e6565b60208301905092915050565b5f602082019050919050565b5f613a22826139bd565b613a2c81856139c7565b9350613a37836139d7565b805f5b83811015613a67578151613a4e88826139f5565b9750613a5983613a0c565b925050600181019050613a3a565b5085935050505092915050565b5f6020820190508181035f830152613a8c8184613a18565b905092915050565b5f82825260208201905092915050565b7f6f6e6c792073686f70206f7264657200000000000000000000000000000000005f82015250565b5f613ad8600f83613a94565b9150613ae382613aa4565b602082019050919050565b5f6020820190508181035f830152613b0581613acc565b9050919050565b7f616d6f756e743e300000000000000000000000000000000000000000000000005f82015250565b5f613b40600883613a94565b9150613b4b82613b0c565b602082019050919050565b5f6020820190508181035f830152613b6d81613b34565b9050919050565b7f746f6b656e206e6f7420737570706f72746564000000000000000000000000005f82015250565b5f613ba8601383613a94565b9150613bb382613b74565b602082019050919050565b5f6020820190508181035f830152613bd581613b9c565b9050919050565b7f6f726465722070726f63657373656400000000000000000000000000000000005f82015250565b5f613c10600f83613a94565b9150613c1b82613bdc565b602082019050919050565b5f6020820190508181035f830152613c3d81613c04565b9050919050565b5f608082019050613c575f83018761349d565b613c64602083018661349d565b613c71604083018561349d565b613c7e606083018461349d565b95945050505050565b7f6f6e6c79204f776e6572000000000000000000000000000000000000000000005f82015250565b5f613cbb600a83613a94565b9150613cc682613c87565b602082019050919050565b5f6020820190508181035f830152613ce881613caf565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613d5382613494565b9150613d5e83613494565b9250828203905081811115613d7657613d75613d1c565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603160045260245ffd5b7f726174696f213d313030303000000000000000000000000000000000000000005f82015250565b5f613ddd600c83613a94565b9150613de882613da9565b602082019050919050565b5f6020820190508181035f830152613e0a81613dd1565b9050919050565b5f81519050613e1f816134ed565b92915050565b5f60208284031215613e3a57613e39613407565b5b5f613e4784828501613e11565b91505092915050565b7f216665655f646174615f696400000000000000000000000000000000000000005f82015250565b5f613e84600c83613a94565b9150613e8f82613e50565b602082019050919050565b5f6020820190508181035f830152613eb181613e78565b9050919050565b7f21746f6b656e5f616464720000000000000000000000000000000000000000005f82015250565b5f613eec600b83613a94565b9150613ef782613eb8565b602082019050919050565b5f6020820190508181035f830152613f1981613ee0565b9050919050565b7f2161726269747261746f725f61646472000000000000000000000000000000005f82015250565b5f613f54601083613a94565b9150613f5f82613f20565b602082019050919050565b5f6020820190508181035f830152613f8181613f48565b9050919050565b7f41726269747261746f72000000000000000000000000000000000000000000005f82015250565b5f613fbc600a83613a94565b9150613fc782613f88565b602082019050919050565b5f6060820190508181035f830152613fe981613fb0565b9050613ff860208301856134c5565b61400560408301846134c5565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f2162616c616e63650000000000000000000000000000000000000000000000005f82015250565b5f61406d600883613a94565b915061407882614039565b602082019050919050565b5f6020820190508181035f83015261409a81614061565b9050919050565b5f81905092915050565b50565b5f6140b95f836140a1565b91506140c4826140ab565b5f82019050919050565b5f6140d8826140ae565b9150819050919050565b7f455448207472616e73666572206661696c6564000000000000000000000000005f82015250565b5f614116601383613a94565b9150614121826140e2565b602082019050919050565b5f6020820190508181035f8301526141438161410a565b9050919050565b5f60408201905061415d5f8301856134c5565b61416a602083018461349d565b9392505050565b61417a816135ff565b8114614184575f80fd5b50565b5f8151905061419581614171565b92915050565b5f602082840312156141b0576141af613407565b5b5f6141bd84828501614187565b91505092915050565b7f546f6b656e207472616e73666572206661696c656400000000000000000000005f82015250565b5f6141fa601583613a94565b9150614205826141c6565b602082019050919050565b5f6020820190508181035f830152614227816141ee565b9050919050565b7f2173686f705f6f726465725f61646472000000000000000000000000000000005f82015250565b5f614262601083613a94565b915061426d8261422e565b602082019050919050565b5f6020820190508181035f83015261428f81614256565b9050919050565b7f53686f704f7264657200000000000000000000000000000000000000000000005f82015250565b5f6142ca600983613a94565b91506142d582614296565b602082019050919050565b5f6060820190508181035f8301526142f7816142be565b905061430660208301856134c5565b61431360408301846134c5565b9392505050565b7f6e6f74206661696c6564000000000000000000000000000000000000000000005f82015250565b5f61434e600a83613a94565b91506143598261431a565b602082019050919050565b5f6020820190508181035f83015261437b81614342565b9050919050565b7f2166756e645f61646472000000000000000000000000000000000000000000005f82015250565b5f6143b6600a83613a94565b91506143c182614382565b602082019050919050565b5f6020820190508181035f8301526143e3816143aa565b9050919050565b7f46756e64000000000000000000000000000000000000000000000000000000005f82015250565b5f61441e600483613a94565b9150614429826143ea565b602082019050919050565b5f6060820190508181035f83015261444b81614412565b905061445a60208301856134c5565b61446760408301846134c5565b9392505050565b7f4e6577206f776e657220697320746865207a65726f20616464726573730000005f82015250565b5f6144a2601d83613a94565b91506144ad8261446e565b602082019050919050565b5f6020820190508181035f8301526144cf81614496565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c005f82015250565b5f61450a601f83613a94565b9150614515826144d6565b602082019050919050565b5f6020820190508181035f830152614537816144fe565b9050919050565b5f61454882613494565b915061455383613494565b925082820261456181613494565b9150828204841483151761457857614577613d1c565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f6145b682613494565b91506145c183613494565b9250826145d1576145d061457f565b5b828204905092915050565b7f64732d6d6174682d6d756c2d6f766572666c6f770000000000000000000000005f82015250565b5f614610601483613a94565b915061461b826145dc565b602082019050919050565b5f6020820190508181035f83015261463d81614604565b9050919050565b5f61464e82613494565b915061465983613494565b925082820190508082111561467157614670613d1c565b5b92915050565b7f64732d6d6174682d6164642d6f766572666c6f770000000000000000000000005f82015250565b5f6146ab601483613a94565b91506146b682614677565b602082019050919050565b5f6020820190508181035f8301526146d88161469f565b9050919050565b7f64732d6d6174682d7375622d756e646572666c6f7700000000000000000000005f82015250565b5f614713601583613a94565b915061471e826146df565b602082019050919050565b5f6020820190508181035f83015261474081614707565b9050919050565b7f66756e645f61646472206e6f74207365740000000000000000000000000000005f82015250565b5f61477b601183613a94565b915061478682614747565b602082019050919050565b5f6020820190508181035f8301526147a88161476f565b9050919050565b7f61726269747261746f725f61646472206e6f74207365740000000000000000005f82015250565b5f6147e3601783613a94565b91506147ee826147af565b602082019050919050565b5f6020820190508181035f830152614810816147d7565b9050919050565b5f81519050919050565b5f5b8381101561483e578082015181840152602081019050614823565b5f8484015250505050565b5f601f19601f8301169050919050565b5f61486382614817565b61486d8185613a94565b935061487d818560208601614821565b61488681614849565b840191505092915050565b5f6020820190508181035f8301526148a98184614859565b90509291505056fea2646970667358221220dc1f51d55c88a43a554bb6eecca8617baf0387129c3a537f4d7ccaa8f168d17a64736f6c63430008180033