0 txs
0 calls
constructor
constructor(address _usdtAddress, address _usdcAddress, address _busdAddress, address _dotcAddress)
functions
appealFee
viewfunction appealFee() view returns (uint256)
appealFeeFinal
viewfunction appealFeeFinal() view returns (uint256)
availableTotal
viewfunction availableTotal(address, string) view returns (uint256)
canWithdrawToTime
viewfunction canWithdrawToTime() view returns (uint256)
congressNeedCount
viewfunction congressNeedCount() view returns (uint256)
feeAddrSet
viewfunction feeAddrSet(string) view returns (address)
feeAmountSet
viewfunction feeAmountSet(string) view returns (uint256)
frozenTotal
viewfunction frozenTotal(address, string) view returns (uint256)
getAppealFee
viewfunction getAppealFee() view returns (uint256)
getAppealFeeFinal
viewfunction getAppealFeeFinal() view returns (uint256)
getAvailableTotal
viewfunction getAvailableTotal(address _addr, string _coinType) view returns (uint256)
getCanWithdrawToTime
viewfunction getCanWithdrawToTime() view returns (uint256)
getCoinTypeMapping
viewfunction getCoinTypeMapping(string _coinType) view returns (address)
getCongressFlag
viewfunction getCongressFlag(address _addr) view returns (uint256)
getCongressNeedCount
viewfunction getCongressNeedCount() view returns (uint256)
getERC20Address
viewfunction getERC20Address(string _coinType) view returns (address)
getErcBalance
viewfunction getErcBalance(string _coinType, address _addr) view returns (uint256)
getFrozenTotal
viewfunction getFrozenTotal(address _addr, string _coinType) view returns (uint256)
getLPAddress
viewfunction getLPAddress() view returns (address)
getMerchantNeedCount
viewfunction getMerchantNeedCount() view returns (uint256)
getObserverHandleCredit
viewfunction getObserverHandleCredit() view returns (uint256)
getObserverHandleReward
viewfunction getObserverHandleReward() view returns (uint256)
getOpenTrade
viewfunction getOpenTrade() view returns (bool)
getPriceOfLP
viewfunction getPriceOfLP() view returns (uint256 price)
getSubTCredit
viewfunction getSubTCredit() view returns (uint256)
getSubWitCredit
viewfunction getSubWitCredit() view returns (uint256)
getSubWitFee
viewfunction getSubWitFee() view returns (uint256)
getTradeCredit
viewfunction getTradeCredit() view returns (uint256)
getUnfrozenTotal
viewfunction getUnfrozenTotal(address _addr, string _coinType) view returns (uint256)
getWithdrawingTotal
viewfunction getWithdrawingTotal(address _addr, string _coinType) view returns (uint256)
getWitnessFlag
viewfunction getWitnessFlag(address _addr) view returns (uint256)
getWitnessHandleCredit
viewfunction getWitnessHandleCredit() view returns (uint256)
getWitnessHandleReward
viewfunction getWitnessHandleReward() view returns (uint256)
getWitnessNeedCount
viewfunction getWitnessNeedCount() view returns (uint256)
lpAddress
viewfunction lpAddress() view returns (address)
merchantNeedCount
viewfunction merchantNeedCount() view returns (uint256)
observerHandleCredit
viewfunction observerHandleCredit() view returns (uint256)
observerHandleReward
viewfunction observerHandleReward() view returns (uint256)
openTrade
viewfunction openTrade() view returns (bool)
owner
viewfunction owner() view returns (address)
recordIndex
viewfunction recordIndex(uint256) view returns (uint256)
recordList
viewfunction recordList(uint256) view returns (uint256 recordNo, address userAddr, string tradeHash, string coinType, uint256 hostCount, uint256 hostStatus, uint256 hostType, uint256 hostDirection, uint256 hostTime, uint256 updateTime)
records
viewfunction records(uint256) view returns (uint256 recordNo, address userAddr, string tradeHash, string coinType, uint256 hostCount, uint256 hostStatus, uint256 hostType, uint256 hostDirection, uint256 hostTime, uint256 updateTime)
searchRecord
viewfunction searchRecord(uint256 _recordNo) view returns (tuple record)
searchRecordList
viewfunction searchRecordList() view returns (tuple[])
subTCredit
viewfunction subTCredit() view returns (uint256)
subWitCredit
viewfunction subWitCredit() view returns (uint256)
subWitFee
viewfunction subWitFee() view returns (uint256)
tradeCredit
viewfunction tradeCredit() view returns (uint256)
unfrozenTotal
viewfunction unfrozenTotal(address, string) view returns (uint256)
unfrozenTotalSearch
viewfunction unfrozenTotalSearch(address _addr, string _coinType) view returns (uint256)
withdrawingTotal
viewfunction withdrawingTotal(address, string) view returns (uint256)
witnessHandleCredit
viewfunction witnessHandleCredit() view returns (uint256)
witnessHandleReward
viewfunction witnessHandleReward() view returns (uint256)
witnessNeedCount
viewfunction witnessNeedCount() view returns (uint256)
addAvailableTotal
nonpayablefunction addAvailableTotal(address _addr, string _coinType, uint256 _amt)
addRecord
nonpayablefunction addRecord(address _addr, string _tradeHash, string _coinType, uint256 _hostCount, uint256 _hostStatus, uint256 _hostType, uint256 _hostDirection)
applyUnfrozen
payablefunction applyUnfrozen(uint256 _amt) payable returns (uint256)
applyWithdraw
payablefunction applyWithdraw(uint256 _recordNo) payable
authFromContract
nonpayablefunction authFromContract(address _fromUser, address _fromRest, address _fromOrder, address _fromAppeal)
punishPerson
nonpayablefunction punishPerson(address _from, address _to, uint256 _count)
renounceOwnership
nonpayablefunction renounceOwnership()
setAppealFee
nonpayablefunction setAppealFee(uint256 _count)
setAppealFeeFinal
nonpayablefunction setAppealFeeFinal(uint256 _count)
setCanWithdrawToTime
nonpayablefunction setCanWithdrawToTime(uint256 _days)
setCoinTypeMapping
nonpayablefunction setCoinTypeMapping(string _coinType, address _coinTypeAddr)
setCongressFlag
nonpayablefunction setCongressFlag(address _addr, uint256 _flag)
setCongressNeedCount
nonpayablefunction setCongressNeedCount(uint256 _count)
setFee
nonpayablefunction setFee(string _method, address _addr, uint256 _amount)
setLPAddress
nonpayablefunction setLPAddress(address _lpAddress)
setMerchantNeedCount
nonpayablefunction setMerchantNeedCount(uint256 _count)
setObserverHandleCredit
nonpayablefunction setObserverHandleCredit(uint256 _c)
setObserverHandleReward
nonpayablefunction setObserverHandleReward(uint256 _c)
setOpenTrade
nonpayablefunction setOpenTrade(bool _c)
setSubTCredit
nonpayablefunction setSubTCredit(uint256 _c)
setSubWitCredit
nonpayablefunction setSubWitCredit(uint256 _c)
setSubWitFee
nonpayablefunction setSubWitFee(uint256 _c)
setTradeCredit
nonpayablefunction setTradeCredit(uint256 _c)
setWitnessFlag
nonpayablefunction setWitnessFlag(address _addr, uint256 _flag)
setWitnessHandleCredit
nonpayablefunction setWitnessHandleCredit(uint256 _c)
setWitnessHandleReward
nonpayablefunction setWitnessHandleReward(uint256 _c)
setWitnessNeedCount
nonpayablefunction setWitnessNeedCount(uint256 _count)
subAvaAppeal
nonpayablefunction subAvaAppeal(address _from, address _to, tuple _al, uint256 _amt, uint256 _t, uint256 _self)
subFrozenTotal
nonpayablefunction subFrozenTotal(uint256 _orderNo, address _addr)
subWitnessAvailable
nonpayablefunction subWitnessAvailable(address _addr)
tokenEscrow
payablefunction tokenEscrow(string _coinType, uint256 _amt) payable
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unApplyUnfrozen
nonpayablefunction unApplyUnfrozen(address _addr)
updateInfo
nonpayablefunction updateInfo(address _addr, uint256 _recordNo, string _hash, uint256 _hostStatus) returns (bool)
withdrawContract
nonpayablefunction withdrawContract(address account, uint256 amount, string coinType)
events
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
RecordAdd
event RecordAdd(uint256 _recordNo, address _addr, string _tradeHash, string _coinType, uint256 _hostCount, uint256 _hostStatus, uint256 _hostType, uint256 _hostDirection)
RecordApplyUnfrozen
event RecordApplyUnfrozen(address _addr, uint256 _amt)
RecordUpdate
event RecordUpdate(address _addr, uint256 _recordNo, string _hash, uint256 _hostStatus)
UnfrozenTotalTransfer
event UnfrozenTotalTransfer(address _addr, string _coinType, uint256 _lastAmount)
errors
No errors.
creation bytecode
0x608060405269d3c21bcecceda100000060038190556a084595161401484a0000006004556a295be96e6406697200000060055569152d02c7e14af6800000600681905560078290556000600855692a5a058fc295ed000000600955600a808055600b91909155600c919091556001600d819055600e819055600f805460ff191690556010556011553480156200009457600080fd5b50604051620062b1380380620062b1833981016040819052620000b79162000238565b620000c2336200019c565b6001805560408051631554d11560e21b8152600260048083018290528351928390036024908101842080546001600160a01b038b81166001600160a01b031992831617909255635553444360e01b86528584018590528651958690038301862080548b841690831617905563109554d160e21b86528584018590528651958690038301862080548a841690831617905563444f544360e01b8652928501939093529351928390039093019091208054909216908316179055620001926019620001ec602090811b6200411f17901c565b50505050620002bd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b8054600003620001fc5761271081555b600181600001600082825462000213919062000295565b909155505050565b80516001600160a01b03811681146200023357600080fd5b919050565b600080600080608085870312156200024f57600080fd5b6200025a856200021b565b93506200026a602086016200021b565b92506200027a604086016200021b565b91506200028a606086016200021b565b905092959194509250565b80820180821115620002b757634e487b7160e01b600052601160045260246000fd5b92915050565b615fe480620002cd6000396000f3fe6080604052600436106104e15760003560e01c8063724bcbb311610281578063bfabb4161161015a578063e84cc314116100cc578063f38aea0111610085578063f38aea0114610f89578063f86af85f14610fa9578063f99cbd1c14610fbc578063fa47c7fa14610fcf578063fb201b1d14610fef578063fb9bb65f1461100957600080fd5b8063e84cc31414610ee9578063e8a843ac14610f09578063eb004fba14610f1f578063ed786add14610f34578063ed8aca8314610f54578063f2fde38b14610f6957600080fd5b8063c941455c1161011e578063c941455c14610e26578063cabeaa0014610e3b578063cfa8363f14610e5b578063d0fe287114610e7b578063e723b28014610e91578063e7df13c714610eb157600080fd5b8063bfabb41614610d79578063c1ab245a14610d99578063c1db216414610dcf578063c51ecdb314610df1578063c605373e14610e0657600080fd5b80638e26035a116101f35780639b4dc8cc116101b75780639b4dc8cc14610ccd5780639e8bbbec14610ced578063a29c47ad14610d0d578063a5e6daa114610d2d578063b03e4aa714610d43578063b91b083814610d5957600080fd5b80638e26035a14610c2357806393719f2114610c395780639634ff6a14610c5957806396f084b814610c79578063996e96f014610caf57600080fd5b806379110a471161024557806379110a4714610b795780637984e6b514610b995780637a351a1d14610baf57806381b95e1b14610bcf5780638da5cb5b14610be55780638e0a3a8914610c0357600080fd5b8063724bcbb314610aa45780637301492a14610ab95780637318be6614610acf578063747bced614610aef57806376ae8abb14610b3057600080fd5b8063436b2ab4116103be578063592d86ae1161033057806366cf90df116102e957806366cf90df14610a0557806367c9258914610a185780636951babe14610a385780636a8b6b6514610a655780636dc0ee5514610a7a578063715018a614610a8f57600080fd5b8063592d86ae146109835780635bb76910146109985780635c1b9f29146109ad5780635c7cee63146109c35780635ff2efad146109d85780636537598e146109f057600080fd5b80634e248928116103825780634e248928146108cb57806351727c06146108eb57806353fc05851461091857806354ff758a14610938578063558431621461094e57806358e5ed9b1461096e57600080fd5b8063436b2ab41461080c5780634542567f1461085557806346289cac1461087557806347b71fae1461088b5780634e23ea97146108ab57600080fd5b806327c34aed116104575780632eefdb3d1161041b5780632eefdb3d1461072e57806332f02e1d146107775780633446106714610797578063349f2286146107b7578063364ad7a4146107d7578063391df2ae146107f757600080fd5b806327c34aed146106995780632ad8d015146106ae5780632d921769146106ce5780632df59adb146106ee5780632ecf32bc1461070e57600080fd5b8063139cf2ff116104a9578063139cf2ff146105c757806313cc706a146105e757806319da83a8146105fd5780631b72577014610633578063276cd3a514610653578063276d7d0c1461068357600080fd5b806302147ac9146104e6578063082dbeea146105085780630989fc37146105315780630a45ffae1461057a5780630bc67f9b1461058f575b600080fd5b3480156104f257600080fd5b50610506610501366004614e7c565b611029565b005b34801561051457600080fd5b5061051e60095481565b6040519081526020015b60405180910390f35b34801561053d57600080fd5b5061051e61054c366004615020565b601f602090815260009283526040909220815180830184018051928152908401929093019190912091525481565b34801561058657600080fd5b5060035461051e565b34801561059b57600080fd5b506105af6105aa36600461506f565b611188565b6040516001600160a01b039091168152602001610528565b3480156105d357600080fd5b5061051e6105e2366004615020565b6111fb565b3480156105f357600080fd5b5061051e60045481565b34801561060957600080fd5b5061061d6106183660046150a3565b611238565b6040516105289a9998979695949392919061510c565b34801561063f57600080fd5b5061050661064e366004615182565b6113b3565b34801561065f57600080fd5b5061067361066e3660046151b2565b6116f8565b6040519015158152602001610528565b34801561068f57600080fd5b5061051e60055481565b3480156106a557600080fd5b50600e5461051e565b3480156106ba57600080fd5b506105066106c9366004615325565b61170f565b3480156106da57600080fd5b506105066106e93660046150a3565b611be5565b3480156106fa57600080fd5b5061051e610709366004615020565b611c05565b34801561071a57600080fd5b50610506610729366004615464565b611c2b565b34801561073a57600080fd5b5061051e610749366004615020565b601e602090815260009283526040909220815180830184018051928152908401929093019190912091525481565b34801561078357600080fd5b50610506610792366004615486565b611c46565b3480156107a357600080fd5b5061061d6107b23660046150a3565b611f92565b3480156107c357600080fd5b5061051e6107d2366004615020565b611fc4565b3480156107e357600080fd5b506105066107f23660046154de565b611fea565b34801561080357600080fd5b5061051e612372565b34801561081857600080fd5b5061051e610827366004615020565b6022602090815260009283526040909220815180830184018051928152908401929093019190912091525481565b34801561086157600080fd5b506105066108703660046150a3565b6124f6565b34801561088157600080fd5b5061051e600a5481565b34801561089757600080fd5b5061051e6108a636600461551f565b612503565b3480156108b757600080fd5b506105066108c6366004615565565b612585565b3480156108d757600080fd5b506105066108e63660046150a3565b6126f5565b3480156108f757600080fd5b5061051e6109063660046150a3565b601b6020526000908152604090205481565b34801561092457600080fd5b506105066109333660046150a3565b612715565b34801561094457600080fd5b5061051e600c5481565b34801561095a57600080fd5b506105066109693660046155ff565b612735565b34801561097a57600080fd5b5060065461051e565b34801561098f57600080fd5b5060075461051e565b3480156109a457600080fd5b5060045461051e565b3480156109b957600080fd5b5061051e60115481565b3480156109cf57600080fd5b5060105461051e565b3480156109e457600080fd5b50600f5460ff16610673565b3480156109fc57600080fd5b5060055461051e565b61051e610a133660046150a3565b6127a7565b348015610a2457600080fd5b50610506610a333660046150a3565b612a3b565b348015610a4457600080fd5b50610a58610a533660046150a3565b612a5b565b60405161052891906156f9565b348015610a7157600080fd5b50600b5461051e565b348015610a8657600080fd5b5060095461051e565b348015610a9b57600080fd5b50610506612c5c565b348015610ab057600080fd5b5060085461051e565b348015610ac557600080fd5b5061051e600b5481565b348015610adb57600080fd5b50610506610aea36600461570c565b612c70565b348015610afb57600080fd5b506105af610b0a36600461506f565b80516020818301810180516015825292820191909301209152546001600160a01b031681565b348015610b3c57600080fd5b5061051e610b4b366004615020565b601d602090815260009283526040909220815180830184018051928152908401929093019190912091525481565b348015610b8557600080fd5b50610506610b943660046150a3565b612ce2565b348015610ba557600080fd5b5061051e60065481565b348015610bbb57600080fd5b50610506610bca366004615768565b612d02565b348015610bdb57600080fd5b5061051e60085481565b348015610bf157600080fd5b506000546001600160a01b03166105af565b348015610c0f57600080fd5b50610506610c1e36600461551f565b612d2c565b348015610c2f57600080fd5b5061051e60105481565b348015610c4557600080fd5b50610506610c543660046150a3565b612d78565b348015610c6557600080fd5b50610506610c743660046150a3565b612d98565b348015610c8557600080fd5b5061051e610c94366004615768565b6001600160a01b031660009081526012602052604090205490565b348015610cbb57600080fd5b506014546001600160a01b03166105af565b348015610cd957600080fd5b506014546105af906001600160a01b031681565b348015610cf957600080fd5b50610506610d083660046150a3565b612db8565b348015610d1957600080fd5b50610506610d28366004615768565b612dd8565b348015610d3957600080fd5b5061051e600e5481565b348015610d4f57600080fd5b5061051e60035481565b348015610d6557600080fd5b50610506610d743660046150a3565b612f2e565b348015610d8557600080fd5b50610506610d94366004615785565b612f3b565b348015610da557600080fd5b5061051e610db4366004615768565b6001600160a01b031660009081526013602052604090205490565b348015610ddb57600080fd5b50610de4612fb1565b604051610528919061580d565b348015610dfd57600080fd5b50600c5461051e565b348015610e1257600080fd5b50610506610e21366004615768565b613191565b348015610e3257600080fd5b5060115461051e565b348015610e4757600080fd5b50610506610e56366004614e7c565b6135ef565b348015610e6757600080fd5b50610506610e763660046150a3565b6136a5565b348015610e8757600080fd5b5061051e600d5481565b348015610e9d57600080fd5b50610506610eac3660046150a3565b6136b2565b348015610ebd57600080fd5b5061051e610ecc36600461506f565b805160208183018101805160168252928201919093012091525481565b348015610ef557600080fd5b50610506610f043660046150a3565b6136bf565b348015610f1557600080fd5b5061051e60075481565b348015610f2b57600080fd5b50600a5461051e565b348015610f4057600080fd5b506105af610f4f36600461506f565b6136cc565b348015610f6057600080fd5b50600d5461051e565b348015610f7557600080fd5b50610506610f84366004615768565b6136fd565b348015610f9557600080fd5b5061051e610fa4366004615020565b613776565b610506610fb73660046150a3565b6137ec565b610506610fca36600461586f565b613db4565b348015610fdb57600080fd5b5061051e610fea366004615020565b6140ec565b348015610ffb57600080fd5b50600f546106739060ff1681565b34801561101557600080fd5b506105066110243660046150a3565b614112565b61103161414b565b6001600160a01b0382166000908152601260205260409020819055600181900361111f576001600160a01b0382166000908152601d60205260408082209051611079906158b3565b90815260200160405180910390205490506004548110156110b55760405162461bcd60e51b81526004016110ac906158c3565b60405180910390fd5b60175460405163d691fba560e01b81526001600160a01b039091169063d691fba5906110e89086906001906004016158de565b600060405180830381600087803b15801561110257600080fd5b505af1158015611116573d6000803e3d6000fd5b50505050505050565b60175460405163d691fba560e01b81526001600160a01b039091169063d691fba5906111529085906000906004016158de565b600060405180830381600087803b15801561116c57600080fd5b505af1158015611180573d6000803e3d6000fd5b505050505050565b600081516000036111ab5760405162461bcd60e51b81526004016110ac906158c3565b60006002836040516111bd91906158f7565b908152604051908190036020019020546001600160a01b03169050806111f55760405162461bcd60e51b81526004016110ac90615913565b92915050565b6001600160a01b0382166000908152601f602052604080822090516112219084906158f7565b908152602001604051809103902054905092915050565b601c818154811061124857600080fd5b60009182526020909120600a90910201805460018201546002830180549294506001600160a01b03909116929161127e9061592e565b80601f01602080910402602001604051908101604052809291908181526020018280546112aa9061592e565b80156112f75780601f106112cc576101008083540402835291602001916112f7565b820191906000526020600020905b8154815290600101906020018083116112da57829003601f168201915b50505050509080600301805461130c9061592e565b80601f01602080910402602001604051908101604052809291908181526020018280546113389061592e565b80156113855780601f1061135a57610100808354040283529160200191611385565b820191906000526020600020905b81548152906001019060200180831161136857829003601f168201915b505050505090806004015490806005015490806006015490806007015490806008015490806009015490508a565b6024546001600160a01b03166113db5760405162461bcd60e51b81526004016110ac906158c3565b6025546001600160a01b03166114035760405162461bcd60e51b81526004016110ac90615913565b6026546001600160a01b031661142b5760405162461bcd60e51b81526004016110ac90615968565b6027546001600160a01b03166114535760405162461bcd60e51b81526004016110ac90615983565b6026546001600160a01b031633148061147657506027546001600160a01b031633145b6114925760405162461bcd60e51b81526004016110ac906158c3565b6018546040516362bb335f60e11b8152600481018490526000916001600160a01b03169063c57666be906024016000604051808303816000875af11580156114de573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115069190810190615aa7565b602081015190915061152a5760405162461bcd60e51b81526004016110ac90615913565b6101208101516020808201516040928301516001600160a01b0382166000908152602384528481208882529093529290912054909190801561157e5760405162461bcd60e51b81526004016110ac90615968565b6001600160a01b0383166000908152601e602052604080822090516115a49085906158f7565b908152604051908190036020019020546060860151909150808210156115dc5760405162461bcd60e51b81526004016110ac90615983565b816115e783836141a5565b11156116195760405162461bcd60e51b81526020600482015260016024820152603560f81b60448201526064016110ac565b61162382826141a5565b6001600160a01b0386166000908152601e602052604090819020905161164a9087906158f7565b9081526040805160209281900383019020929092556001600160a01b0387166000908152602382528281208b825290915290812082905561168a85611188565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb906116bb908b9086906004016158de565b600060405180830381600087803b1580156116d557600080fd5b505af11580156116e9573d6000803e3d6000fd5b50505050505050505050505050565b6000611706858585856141b1565b95945050505050565b6024546001600160a01b03166117375760405162461bcd60e51b81526004016110ac906158c3565b6025546001600160a01b031661175f5760405162461bcd60e51b81526004016110ac90615913565b6026546001600160a01b03166117875760405162461bcd60e51b81526004016110ac90615968565b6027546001600160a01b03166117af5760405162461bcd60e51b81526004016110ac90615983565b6027546001600160a01b031633146117d95760405162461bcd60e51b81526004016110ac906158c3565b60006118018760405180604001604052806004815260200163444f544360e01b8152506140ec565b90506000808460011461181d5786610160015160e00151611823565b86606001515b905085831061183457859150611838565b8291505b846001148015611846575083155b8061187757508460021480156118775750886001600160a01b0316876101600151600001516001600160a01b031614155b156119d8576001600160a01b0389166000908152601d60205260409081902090516118bb91906118a6906158b3565b908152602001604051809103902054836141a5565b6001600160a01b038a166000908152601d60205260409081902090516118e0906158b3565b9081526040805160209281900383018120939093556001600160a01b038b166000908152601d909252902061192d91611918906158b3565b908152602001604051809103902054836145d3565b6001600160a01b0389166000908152601d6020526040908190209051611952906158b3565b9081526020016040518091039020819055506119ad89601d60008c6001600160a01b03166001600160a01b03168152602001908152602001600020604051611999906158b3565b9081526020016040518091039020546145df565b6001600160a01b0388166000908152601d60205260409081902090516119d8918a91611999906158b3565b6001600160a01b0381166000908152601d6020526040908190209051611a179190611a02906158b3565b908152602001604051809103902054876145d3565b6001600160a01b0382166000908152601d6020526040908190209051611a3c906158b3565b908152602001604051809103902081905550611a8381601d6000846001600160a01b03166001600160a01b03168152602001908152602001600020604051611999906158b3565b611a8c896146d5565b611a95886146d5565b611a9e816146d5565b601754604051639bd7417f60e01b81526001600160a01b0383811660048301526000921690639bd7417f90602401600060405180830381865afa158015611ae9573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611b119190810190615c66565b905085600103611b3757600d548160a00151611b2d9190615d6c565b60a0820152611b57565b85600203611b5757600e548160a00151611b519190615d6c565b60a08201525b60e081015160175460a08301516040516316a1e96960e31b81526001600160a01b0386811660048301528451602483015260208501516044830152606482019290925291169063b50f4b4890608401600060405180830381600087803b158015611bc057600080fd5b505af1158015611bd4573d6000803e3d6000fd5b505050505050505050505050505050565b611bed61414b565b611bff81670de0b6b3a7640000615d7f565b600b5550565b6001600160a01b03821660009081526022602052604080822090516112219084906158f7565b611c3361414b565b600f805460ff1916911515919091179055565b6024546001600160a01b0316611c6e5760405162461bcd60e51b81526004016110ac906158c3565b6025546001600160a01b0316611c965760405162461bcd60e51b81526004016110ac90615913565b6026546001600160a01b0316611cbe5760405162461bcd60e51b81526004016110ac90615968565b6027546001600160a01b0316611ce65760405162461bcd60e51b81526004016110ac90615983565b6025546001600160a01b0316331480611d0957506026546001600160a01b031633145b611d255760405162461bcd60e51b81526004016110ac906158c3565b60008111611d755760405162461bcd60e51b815260206004820152601760248201527f496e76616c6964207472616e7366657220616d6f756e7400000000000000000060448201526064016110ac565b6000611d818330612503565b905081811015611da35760405162461bcd60e51b81526004016110ac906158c3565b6001600160a01b0384166000908152601e6020526040908190209051839190611dcd9086906158f7565b9081526020016040518091039020541015611e1b5760405162461bcd60e51b815260206004820152600e60248201526d125b9d985b1a5908185b5bdd5b9d60921b60448201526064016110ac565b6001600160a01b0384166000908152601e6020526040908190209051611e429085906158f7565b908152602001604051809103902054611e9c601e6000876001600160a01b03166001600160a01b0316815260200190815260200160002085604051611e8791906158f7565b908152602001604051809103902054846141a5565b1115611eba5760405162461bcd60e51b81526004016110ac90615913565b6001600160a01b0384166000908152601e6020526040908190209051611ee691906118a69086906158f7565b6001600160a01b0385166000908152601e6020526040908190209051611f0d9086906158f7565b908152604051908190036020019020556000611f2884611188565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb90611f5990889087906004016158de565b600060405180830381600087803b158015611f7357600080fd5b505af1158015611f87573d6000803e3d6000fd5b505050505050505050565b601a6020526000908152604090208054600182015460028301805492936001600160a01b039092169261127e9061592e565b6001600160a01b0382166000908152601e602052604080822090516112219084906158f7565b611ff261414b565b6001600160a01b0383166120185760405162461bcd60e51b81526004016110ac906158c3565b6001600160a01b03821661203e5760405162461bcd60e51b81526004016110ac90615913565b601754604051639bd7417f60e01b81526001600160a01b0385811660048301526000921690639bd7417f90602401600060405180830381865afa158015612089573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526120b19190810190615c66565b90508060800151600114806120ca575080608001516002145b6120e65760405162461bcd60e51b81526004016110ac90615968565b6001600160a01b0384166000908152601d6020526040808220905161210a906158b3565b9081526040805160209281900383018120546001600160a01b0388166000908152601d90945291832091935061213f906158b3565b90815260200160405180910390205490508382106121da5761216182856141a5565b6001600160a01b0387166000908152601d6020526040908190209051612186906158b3565b908152604051908190036020019020556121a081856145d3565b6001600160a01b0386166000908152601d60205260409081902090516121c5906158b3565b90815260405190819003602001902055612360565b6001600160a01b0386166000908152601d602052604080822090516121fe906158b3565b908152604080519182900360209081018320939093556001600160a01b03891660009081526022909352822090612234906158b3565b90815260200160405180910390205490508461225084836145d3565b106122e1576122688161226387866141a5565b6141a5565b6001600160a01b03881660009081526022602052604090819020905161228d906158b3565b908152604051908190036020019020556122a782866145d3565b6001600160a01b0387166000908152601d60205260409081902090516122cc906158b3565b9081526040519081900360200190205561235e565b6001600160a01b0387166000908152602260205260408082209051612305906158b3565b908152604051908190036020019020556123288261232385846145d3565b6145d3565b6001600160a01b0387166000908152601d602052604090819020905161234d906158b3565b908152604051908190036020019020555b505b612369866146d5565b611180856146d5565b6000806123876014546001600160a01b031690565b90506001600160a01b03811661239f57600091505090565b600060026040516123ba90631554d11560e21b815260040190565b908152604051908190036020018120546370a0823160e01b82526001600160a01b03848116600484015216906370a0823190602401602060405180830381865afa15801561240c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124309190615d96565b905060006002604051612442906158b3565b908152604051908190036020018120546370a0823160e01b82526001600160a01b03858116600484015216906370a0823190602401602060405180830381865afa158015612494573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124b89190615d96565b90508115806124c5575080155b156124d4576000935050505090565b806124e48364e8d4a51000615d7f565b6124ee9190615daf565b935050505090565b6124fe61414b565b601055565b60008061250f84611188565b6040516370a0823160e01b81526001600160a01b038581166004830152919250908216906370a0823190602401602060405180830381865afa158015612559573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061257d9190615d96565b949350505050565b6024546001600160a01b03166125ad5760405162461bcd60e51b81526004016110ac906158c3565b6025546001600160a01b03166125d55760405162461bcd60e51b81526004016110ac90615913565b6026546001600160a01b03166125fd5760405162461bcd60e51b81526004016110ac90615968565b6027546001600160a01b03166126255760405162461bcd60e51b81526004016110ac90615983565b6025546001600160a01b031633148061264857506026546001600160a01b031633145b6126645760405162461bcd60e51b81526004016110ac906158c3565b6001600160a01b0387166000908152601e60205260409081902090516126a591906126909088906158f7565b908152602001604051809103902054856145d3565b6001600160a01b0388166000908152601e60205260409081902090516126cc9088906158f7565b908152604051908190036020019020556126eb87878787878787614961565b5050505050505050565b6126fd61414b565b61270f81670de0b6b3a7640000615d7f565b600c5550565b61271d61414b565b61272f81670de0b6b3a7640000615d7f565b60095550565b61273d61414b565b600061274882611188565b60405163a9059cbb60e01b81529091506001600160a01b0382169063a9059cbb9061277990879087906004016158de565b600060405180830381600087803b15801561279357600080fd5b505af11580156126eb573d6000803e3d6000fd5b60006127d76040518060400160405280600d81526020016c30b838363caab7333937bd32b760991b815250614d2f565b604080518082019091526004815263444f544360e01b60208201528261280f5760405162461bcd60e51b81526004016110ac906158c3565b336000908152601d60205260409081902090518491906128309084906158f7565b908152602001604051809103902054101561285d5760405162461bcd60e51b81526004016110ac906158c3565b336000908152601d602052604090819020905161287b9083906158f7565b9081526020016040518091039020546128d5601d6000336001600160a01b03166001600160a01b03168152602001908152602001600020836040516128c091906158f7565b908152602001604051809103902054856141a5565b106128f25760405162461bcd60e51b81526004016110ac90615913565b336000818152602080805260408083204290819055602183528184209084528252808320879055928252601d905281902090516129359190611e879084906158f7565b336000908152601d60205260409081902090516129539084906158f7565b90815260408051602092819003830181209390935533600090815260229092529020612999916129849084906158f7565b908152602001604051809103902054846145d3565b336000908152602260205260409081902090516129b79084906158f7565b908152604051908190036020019020556129d0336146d5565b6129f0336040518060200160405280600081525083866003806002614961565b507f072538e3c57d574904a160b874c45b7e7fd3c8ed28ab3f872a942edfd852e6d73384604051612a229291906158de565b60405180910390a1612a3433826140ec565b9392505050565b612a4361414b565b612a5581670de0b6b3a7640000615d7f565b60035550565b612aba6040518061014001604052806000815260200160006001600160a01b0316815260200160608152602001606081526020016000815260200160008152602001600081526020016000815260200160008152602001600081525090565b6000828152601a60209081526040918290208251610140810184528154815260018201546001600160a01b0316928101929092526002810180549293919291840191612b059061592e565b80601f0160208091040260200160405190810160405280929190818152602001828054612b319061592e565b8015612b7e5780601f10612b5357610100808354040283529160200191612b7e565b820191906000526020600020905b815481529060010190602001808311612b6157829003601f168201915b50505050508152602001600382018054612b979061592e565b80601f0160208091040260200160405190810160405280929190818152602001828054612bc39061592e565b8015612c105780601f10612be557610100808354040283529160200191612c10565b820191906000526020600020905b815481529060010190602001808311612bf357829003601f168201915b5050505050815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481526020016009820154815250509050919050565b612c6461414b565b612c6e6000614e07565b565b612c7861414b565b602480546001600160a01b03199081166001600160a01b039687169081179092556025805482169587169590951790945560268054851693861693841790556027805485169290951691909117909355601780548316909317909255601880549091169091179055565b612cea61414b565b612cfc81670de0b6b3a7640000615d7f565b60065550565b612d0a61414b565b601480546001600160a01b0319166001600160a01b0392909216919091179055565b612d3461414b565b80600283604051612d4591906158f7565b90815260405190819003602001902080546001600160a01b03929092166001600160a01b03199092169190911790555050565b612d8061414b565b612d9281670de0b6b3a7640000615d7f565b60045550565b612da061414b565b612db281670de0b6b3a7640000615d7f565b60075550565b612dc061414b565b612dd281670de0b6b3a7640000615d7f565b60055550565b612de061414b565b6040805180820182526004815263444f544360e01b6020808301919091526001600160a01b03841660009081526022909152828120925191929091612e269084906158f7565b908152602001604051809103902054905060008111612e745760405162461bcd60e51b815260206004820152600a6024820152691cdd59999a58da595b9d60b21b60448201526064016110ac565b6001600160a01b0383166000908152602260205260408082209051612e9a9085906158f7565b9081526040805160209281900383018120939093556001600160a01b0386166000908152601d9092529020612ee991612ed49085906158f7565b908152602001604051809103902054826145d3565b6001600160a01b0384166000908152601d6020526040908190209051612f109085906158f7565b90815260405190819003602001902055612f29836146d5565b505050565b612f3661414b565b601155565b612f4361414b565b8160158585604051612f56929190615dd1565b908152602001604051809103902060006101000a8154816001600160a01b0302191690836001600160a01b031602179055508060168585604051612f9b929190615dd1565b9081526040519081900360200190205550505050565b6060601c805480602002602001604051908101604052809291908181526020016000905b828210156131885760008481526020908190206040805161014081018252600a86029092018054835260018101546001600160a01b031693830193909352600283018054929392918401916130299061592e565b80601f01602080910402602001604051908101604052809291908181526020018280546130559061592e565b80156130a25780601f10613077576101008083540402835291602001916130a2565b820191906000526020600020905b81548152906001019060200180831161308557829003601f168201915b505050505081526020016003820180546130bb9061592e565b80601f01602080910402602001604051908101604052809291908181526020018280546130e79061592e565b80156131345780601f1061310957610100808354040283529160200191613134565b820191906000526020600020905b81548152906001019060200180831161311757829003601f168201915b50505050508152602001600482015481526020016005820154815260200160068201548152602001600782015481526020016008820154815260200160098201548152505081526020019060010190612fd5565b50505050905090565b6024546001600160a01b03166131b95760405162461bcd60e51b81526004016110ac906158c3565b6025546001600160a01b03166131e15760405162461bcd60e51b81526004016110ac90615913565b6026546001600160a01b03166132095760405162461bcd60e51b81526004016110ac90615968565b6027546001600160a01b03166132315760405162461bcd60e51b81526004016110ac90615983565b6027546001600160a01b0316331461325b5760405162461bcd60e51b81526004016110ac906158c3565b6001600160a01b0381166132815760405162461bcd60e51b81526004016110ac90615913565b6001600160a01b0381166000908152601d602052604080822090516132a5906158b3565b9081526020016040518091039020549050600080600954831061330b5760095491506132d183836141a5565b6001600160a01b0385166000908152601d60205260409081902090516132f6906158b3565b90815260405190819003602001902055613423565b6001600160a01b0384166000908152601d6020526040808220905161332f906158b3565b908152604080519182900360209081018320939093556001600160a01b03871660009081526022909352822090613365906158b3565b908152602001604051809103902054905060095461338385836145d3565b106133dd57600954925061339783856141a5565b91506133a381836141a5565b6001600160a01b0386166000908152602260205260409081902090516133c8906158b3565b90815260405190819003602001902055613421565b6133e781856145d3565b6001600160a01b03861660009081526022602052604080822090519295509091613410906158b3565b908152604051908190036020019020555b505b61342c846146d5565b601754604051639bd7417f60e01b81526001600160a01b0386811660048301526000921690639bd7417f90602401600060405180830381865afa158015613477573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261349f9190810190615c66565b9050600a548160a0015110156134b65760006134c8565b600a548160a001516134c89190615de1565b60a0820181905260e08201516017546040516316a1e96960e31b81526001600160a01b038981166004830152835160248301526020840151604483015260648201949094529192169063b50f4b4890608401600060405180830381600087803b15801561353457600080fd5b505af1158015613548573d6000803e3d6000fd5b50505050600061357360405180604001604052806004815260200163444f544360e01b815250611188565b9050806001600160a01b031663a9059cbb6135966000546001600160a01b031690565b876040518363ffffffff1660e01b81526004016135b49291906158de565b600060405180830381600087803b1580156135ce57600080fd5b505af11580156135e2573d6000803e3d6000fd5b5050505050505050505050565b6135f761414b565b6001600160a01b0382166000908152601360205260409020819055600181900361111f576001600160a01b0382166000908152601d6020526040808220905161363f906158b3565b90815260200160405180910390205490506005548110156136725760405162461bcd60e51b81526004016110ac906158c3565b60175460405163d691fba560e01b81526001600160a01b039091169063d691fba5906110e89086906002906004016158de565b6136ad61414b565b600a55565b6136ba61414b565b600855565b6136c761414b565b600e55565b60006002826040516136de91906158f7565b908152604051908190036020019020546001600160a01b031692915050565b61370561414b565b6001600160a01b03811661376a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016110ac565b61377381614e07565b50565b60006001600160a01b0383166137c55760405162461bcd60e51b81526020600482015260146024820152731d5cd95c881859191c995cdcc81a5cc81b9d5b1b60621b60448201526064016110ac565b6001600160a01b0383166000908152601f60205260409081902090516112219084906158f7565b61381a6040518060400160405280600d81526020016c6170706c79576974686472617760981b815250614d2f565b6000818152601a602090815260408083208151610140810183528154815260018201546001600160a01b03169381019390935260028101805491928401916138619061592e565b80601f016020809104026020016040519081016040528092919081815260200182805461388d9061592e565b80156138da5780601f106138af576101008083540402835291602001916138da565b820191906000526020600020905b8154815290600101906020018083116138bd57829003601f168201915b505050505081526020016003820180546138f39061592e565b80601f016020809104026020016040519081016040528092919081815260200182805461391f9061592e565b801561396c5780601f106139415761010080835404028352916020019161396c565b820191906000526020600020905b81548152906001019060200180831161394f57829003601f168201915b505050918352505060048201546020820152600582015460408201526006820154606082015260078201546080820152600882015460a082015260099091015460c09091015280519091506139d35760405162461bcd60e51b81526004016110ac906158c3565b60208101516001600160a01b031633146139ff5760405162461bcd60e51b81526004016110ac90615913565b8060a00151600314613a235760405162461bcd60e51b81526004016110ac90615968565b608081015133600090815260226020526040908190209051613a44906158b3565b9081526020016040518091039020541015613a8e5760405162461bcd60e51b815260206004820152600a6024820152691cdd59999a58da595b9d60b21b60448201526064016110ac565b600854613a9e9062015180615d7f565b816101000151613aae9190615d6c565b421015613acd5760405162461bcd60e51b81526004016110ac90615983565b33600090815260226020526040908190209051613b079190613aee906158b3565b90815260200160405180910390205482608001516141a5565b33600090815260226020526040908190209051613b23906158b3565b908152604080516020928190038301812093909355336000908152601f9092529020613b6b91613b52906158b3565b90815260200160405180910390205482608001516145d3565b336000908152601f6020526040908190209051613b87906158b3565b908152604080516020928190038301902092909255600460a0840152426101208401526000848152601a825282902083518155908301516001820180546001600160a01b0319166001600160a01b03909216919091179055908201518291906002820190613bf59082615e3a565b5060608201516003820190613c0a9082615e3a565b506080820151600482015560a0820151600582015560c0820151600682015560e082015160078201556101008201516008820155610120909101516009909101556000828152601b6020526040902054601c80548392908110613c6f57613c6f615ef9565b60009182526020918290208351600a9290920201908155908201516001820180546001600160a01b0319166001600160a01b0390921691909117905560408201516002820190613cbf9082615e3a565b5060608201516003820190613cd49082615e3a565b506080820151816004015560a0820151816005015560c0820151816006015560e08201518160070155610100820151816008015561012082015181600901559050507f184981d19cd827a29527d9fef87fd7973eb4f43f9833af36578f456bed5fa19a338383604001516004604051613d509493929190615f0f565b60405180910390a16000613d7f60405180604001604052806004815260200163444f544360e01b815250611188565b608083015160405163a9059cbb60e01b81529192506001600160a01b0383169163a9059cbb916110e8913391906004016158de565b613de06040518060400160405280600b81526020016a746f6b656e457363726f7760a81b815250614d2f565b60008111613e005760405162461bcd60e51b81526004016110ac906158c3565b336000908152601d6020526040908190209051613e1e9084906158f7565b90815260200160405180910390205481601d6000336001600160a01b03166001600160a01b0316815260200190815260200160002084604051613e6191906158f7565b908152602001604051809103902054613e7a9190615d6c565b11613e975760405162461bcd60e51b81526004016110ac90615913565b336000908152601d6020526040908190209051613eba9190612ed49085906158f7565b336000908152601d6020526040908190209051613ed89085906158f7565b9081526040516020918190038201812092909255600191613ef991016158b3565b6040516020818303038152906040528051906020012083604051602001613f2091906158f7565b60405160208183030381529060405280519060200120036140845750601754604051639bd7417f60e01b81523360048201526002916000916001600160a01b0390911690639bd7417f90602401600060405180830381865afa158015613f8a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052613fb29190810190615c66565b336000818152601d6020526040908190209051929350613fd7926119999088906158f7565b60808101511580156140175750600354336000908152601d60205260409081902090516140059087906158f7565b90815260200160405180910390205410155b156140825760175460405163d691fba560e01b81526001600160a01b039091169063d691fba59061404f9033906003906004016158de565b600060405180830381600087803b15801561406957600080fd5b505af115801561407d573d6000803e3d6000fd5b505050505b505b6140a4336040518060200160405280600081525085856002866001614961565b5060006140b084611188565b6040516323b872dd60e01b8152336004820152306024820152604481018590529091506001600160a01b038216906323b872dd90606401612779565b6001600160a01b0382166000908152601d602052604080822090516112219084906158f7565b61411a61414b565b600d55565b805460000361412e5761271081555b60018160000160008282546141439190615d6c565b909155505050565b6000546001600160a01b03163314612c6e5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016110ac565b6000612a348284615de1565b6000838152601a602090815260408083208151610140810183528154815260018201546001600160a01b031693810193909352600281018054859493840191906141fa9061592e565b80601f01602080910402602001604051908101604052809291908181526020018280546142269061592e565b80156142735780601f1061424857610100808354040283529160200191614273565b820191906000526020600020905b81548152906001019060200180831161425657829003601f168201915b5050505050815260200160038201805461428c9061592e565b80601f01602080910402602001604051908101604052809291908181526020018280546142b89061592e565b80156143055780601f106142da57610100808354040283529160200191614305565b820191906000526020600020905b8154815290600101906020018083116142e857829003601f168201915b5050505050815260200160048201548152602001600582015481526020016006820154815260200160078201548152602001600882015481526020016009820154815250509050856001600160a01b031681602001516001600160a01b0316146143a45760405162461bcd60e51b815260206004820152601060248201526f1c9958dbdc99081b9bdd08195e1a5cdd60821b60448201526064016110ac565b82600114806143b35750826002145b6143f45760405162461bcd60e51b8152602060048201526012602482015271696e76616c696420686f737453746174757360701b60448201526064016110ac565b82156144025760a081018390525b83511561441157604081018490525b426101208201526000858152601a602090815260409182902083518155908301516001820180546001600160a01b0319166001600160a01b039092169190911790559082015182919060028201906144699082615e3a565b506060820151600382019061447e9082615e3a565b506080820151600482015560a0820151600582015560c0820151600682015560e082015160078201556101008201516008820155610120909101516009909101556000858152601b6020526040902054601c805483929081106144e3576144e3615ef9565b60009182526020918290208351600a9290920201908155908201516001820180546001600160a01b0319166001600160a01b03909216919091179055604082015160028201906145339082615e3a565b50606082015160038201906145489082615e3a565b506080820151816004015560a0820151816005015560c0820151816006015560e08201518160070155610100820151816008015561012082015181600901559050507f184981d19cd827a29527d9fef87fd7973eb4f43f9833af36578f456bed5fa19a868686866040516145bf9493929190615f0f565b60405180910390a150600195945050505050565b6000612a348284615d6c565b601754604051639bd7417f60e01b81526001600160a01b0384811660048301526000921690639bd7417f90602401600060405180830381865afa15801561462a573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526146529190810190615c66565b61010081015183815260175460408051630ee685c760e41b81526001600160a01b038881166004830152845160248301526020850151604483015291840151606482015260608401516084820152608084015160a482015260a084015160c482015260c084015160e4820152939450919291169063ee685c709061010401612779565b6001600160a01b0381166000908152601d602052604080822090516146f9906158b3565b90815260405190819003602001812054601754639bd7417f60e01b83526001600160a01b038581166004850152919350600092911690639bd7417f90602401600060405180830381865afa158015614755573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261477d9190810190615c66565b905061478983836145df565b8060800151600214801561479e575060055482105b80156147ac57506003548210155b156148175760175460405163d691fba560e01b81526001600160a01b039091169063d691fba5906147e49086906003906004016158de565b600060405180830381600087803b1580156147fe57600080fd5b505af1158015614812573d6000803e3d6000fd5b505050505b8060800151600114801561482c575060045482105b801561483a57506003548210155b156148a55760175460405163d691fba560e01b81526001600160a01b039091169063d691fba5906148729086906003906004016158de565b600060405180830381600087803b15801561488c57600080fd5b505af11580156148a0573d6000803e3d6000fd5b505050505b60808101511580156148b957506003548210155b156149245760175460405163d691fba560e01b81526001600160a01b039091169063d691fba5906148f19086906003906004016158de565b600060405180830381600087803b15801561490b57600080fd5b505af115801561491f573d6000803e3d6000fd5b505050505b600354821015612f295760175460405163d691fba560e01b81526001600160a01b039091169063d691fba5906110e89086906000906004016158de565b60006002600154036149a65760405162461bcd60e51b815260206004820152600e60248201526d1c99595b9d1c985b9d0818d85b1b60921b60448201526064016110ac565b60026001556001600160a01b0388166149d15760405162461bcd60e51b81526004016110ac906158c3565b85516000036149f25760405162461bcd60e51b81526004016110ac90615913565b84614a0f5760405162461bcd60e51b81526004016110ac90615968565b82614a2c5760405162461bcd60e51b81526004016110ac90615983565b81614a5d5760405162461bcd60e51b81526020600482015260016024820152603560f81b60448201526064016110ac565b6000614a6860195490565b6000818152601a602052604090205490915015614ab55760405162461bcd60e51b815260206004820152600b60248201526a1bdc99195c88195e1a5cdd60aa1b60448201526064016110ac565b60408051610140810182528281526001600160a01b038b811660208084019182528385018d8152606085018d9052608085018c905260a085018b905260c085018a905260e085018990524261010086015260006101208601819052878152601a9092529490208351815590516001820180546001600160a01b03191691909316179091559151909182916002820190614b4e9082615e3a565b5060608201516003820190614b639082615e3a565b506080820151600482015560a0820151600582015560c0820151600682015560e08201516007820155610100820151600882015561012090910151600990910155601c805460018101825560009190915281517f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211600a90920291820190815560208301517f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a212830180546001600160a01b0319166001600160a01b03909216919091179055604083015183927f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a2130190614c5b9082615e3a565b5060608201516003820190614c709082615e3a565b506080820151600482015560a0820151600582015560c0820151600682015560e08201516007820155610100820151600882015561012090910151600990910155601c54614cc090600190615de1565b6000838152601b6020526040902055614cd9601961411f565b7f400817122268a69f3472a92a1ec2769f27f068026b377eaeb64f6cbe0bca7a51828b8b8b8b8b8b8b604051614d16989796959493929190615f47565b60405180910390a1506001805598975050505050505050565b6000601682604051614d4191906158f7565b90815260200160405180910390205490506000601583604051614d6491906158f7565b908152604051908190036020019020546001600160a01b031690508115612f29576001600160a01b038116614dab5760405162461bcd60e51b81526004016110ac906158c3565b81341015614dcb5760405162461bcd60e51b81526004016110ac90615913565b6040516001600160a01b0382169083156108fc029084906000818181858888f19350505050158015614e01573d6000803e3d6000fd5b50505050565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b038116811461377357600080fd5b8035614e7781614e57565b919050565b60008060408385031215614e8f57600080fd5b8235614e9a81614e57565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b60405161020081016001600160401b0381118282101715614ee157614ee1614ea8565b60405290565b60405161018081016001600160401b0381118282101715614ee157614ee1614ea8565b60405161010081016001600160401b0381118282101715614ee157614ee1614ea8565b60405161014081016001600160401b0381118282101715614ee157614ee1614ea8565b60405161012081016001600160401b0381118282101715614ee157614ee1614ea8565b604051601f8201601f191681016001600160401b0381118282101715614f9b57614f9b614ea8565b604052919050565b60006001600160401b03821115614fbc57614fbc614ea8565b50601f01601f191660200190565b600082601f830112614fdb57600080fd5b8135614fee614fe982614fa3565b614f73565b81815284602083860101111561500357600080fd5b816020850160208301376000918101602001919091529392505050565b6000806040838503121561503357600080fd5b823561503e81614e57565b915060208301356001600160401b0381111561505957600080fd5b61506585828601614fca565b9150509250929050565b60006020828403121561508157600080fd5b81356001600160401b0381111561509757600080fd5b61257d84828501614fca565b6000602082840312156150b557600080fd5b5035919050565b60005b838110156150d75781810151838201526020016150bf565b50506000910152565b600081518084526150f88160208601602086016150bc565b601f01601f19169290920160200192915050565b8a81526001600160a01b038a166020820152610140604082018190526000906151378382018c6150e0565b9050828103606084015261514b818b6150e0565b6080840199909952505060a081019590955260c085019390935260e084019190915261010083015261012090910152949350505050565b6000806040838503121561519557600080fd5b8235915060208301356151a781614e57565b809150509250929050565b600080600080608085870312156151c857600080fd5b84356151d381614e57565b93506020850135925060408501356001600160401b038111156151f557600080fd5b61520187828801614fca565b949793965093946060013593505050565b6000610200828403121561522557600080fd5b61522d614ebe565b905061523882614e6c565b81526020820135602082015260408201356001600160401b038082111561525e57600080fd5b61526a85838601614fca565b604084015260608401356060840152608084013591508082111561528d57600080fd5b5061529a84828501614fca565b60808301525060a082013560a082015260c082013560c08201526152c060e08301614e6c565b60e0820152610100828101359082015261012080830135908201526101408083013590820152610160808301359082015261018080830135908201526101a080830135908201526101c080830135908201526101e09182013591810191909152919050565b60008060008060008060c0878903121561533e57600080fd5b863561534981614e57565b9550602087013561535981614e57565b945060408701356001600160401b038082111561537557600080fd5b90880190610180828b03121561538a57600080fd5b615392614ee7565b61539b83614e6c565b815260208301356020820152604083013560408201526153bd60608401614e6c565b60608201526153ce60808401614e6c565b60808201526153df60a08401614e6c565b60a082015260c0838101359082015260e08084013590820152610100808401359082015261012080840135908201526101408084013590820152610160808401358381111561542d57600080fd5b6154398d828701615212565b828401525050809650505050606087013592506080870135915060a087013590509295509295509295565b60006020828403121561547657600080fd5b81358015158114612a3457600080fd5b60008060006060848603121561549b57600080fd5b83356154a681614e57565b925060208401356001600160401b038111156154c157600080fd5b6154cd86828701614fca565b925050604084013590509250925092565b6000806000606084860312156154f357600080fd5b83356154fe81614e57565b9250602084013561550e81614e57565b929592945050506040919091013590565b6000806040838503121561553257600080fd5b82356001600160401b0381111561554857600080fd5b61555485828601614fca565b92505060208301356151a781614e57565b600080600080600080600060e0888a03121561558057600080fd5b873561558b81614e57565b965060208801356001600160401b03808211156155a757600080fd5b6155b38b838c01614fca565b975060408a01359150808211156155c957600080fd5b506155d68a828b01614fca565b979a96995096976060810135975060808101359660a0820135965060c090910135945092505050565b60008060006060848603121561561457600080fd5b833561561f81614e57565b92506020840135915060408401356001600160401b0381111561564157600080fd5b61564d86828701614fca565b9150509250925092565b600061014082518452602083015161567a60208601826001600160a01b03169052565b506040830151816040860152615692828601826150e0565b915050606083015184820360608601526156ac82826150e0565b9150506080830151608085015260a083015160a085015260c083015160c085015260e083015160e08501526101008084015181860152506101208084015181860152508091505092915050565b602081526000612a346020830184615657565b6000806000806080858703121561572257600080fd5b843561572d81614e57565b9350602085013561573d81614e57565b9250604085013561574d81614e57565b9150606085013561575d81614e57565b939692955090935050565b60006020828403121561577a57600080fd5b8135612a3481614e57565b6000806000806060858703121561579b57600080fd5b84356001600160401b03808211156157b257600080fd5b818701915087601f8301126157c657600080fd5b8135818111156157d557600080fd5b8860208285010111156157e757600080fd5b602092830196509450508501356157fd81614e57565b9396929550929360400135925050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b8281101561586257603f19888603018452615850858351615657565b94509285019290850190600101615834565b5092979650505050505050565b6000806040838503121561588257600080fd5b82356001600160401b0381111561589857600080fd5b6158a485828601614fca565b95602094909401359450505050565b63444f544360e01b815260040190565b6020808252600190820152603160f81b604082015260600190565b6001600160a01b03929092168252602082015260400190565b600082516159098184602087016150bc565b9190910192915050565b6020808252600190820152601960f91b604082015260600190565b600181811c9082168061594257607f821691505b60208210810361596257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252600190820152603360f81b604082015260600190565b6020808252600190820152600d60fa1b604082015260600190565b8051614e7781614e57565b600082601f8301126159ba57600080fd5b81516159c8614fe982614fa3565b8181528460208386010111156159dd57600080fd5b61257d8260208301602087016150bc565b60006101008284031215615a0157600080fd5b615a09614f0a565b9050615a148261599e565b8152615a226020830161599e565b602082015260408201516001600160401b0380821115615a4157600080fd5b615a4d858386016159a9565b6040840152606084015160608401526080840151608084015260a084015160a084015260c0840151915080821115615a8457600080fd5b50615a91848285016159a9565b60c08301525060e082015160e082015292915050565b600060208284031215615ab957600080fd5b81516001600160401b0380821115615ad057600080fd5b908301906101408286031215615ae557600080fd5b615aed614f2d565b615af68361599e565b81526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015182811115615b3c57600080fd5b615b48878286016159a9565b60c08301525060e083015160e08201526101008084015181830152506101208084015183811115615b7857600080fd5b615b84888287016159ee565b918301919091525095945050505050565b600060408284031215615ba757600080fd5b604051604081018181106001600160401b0382111715615bc957615bc9614ea8565b604052825181526020928301519281019290925250919050565b600060e08284031215615bf557600080fd5b60405160e081018181106001600160401b0382111715615c1757615c17614ea8565b8060405250809150825181526020830151602082015260408301516040820152606083015160608201526080830151608082015260a083015160a082015260c083015160c08201525092915050565b600060208284031215615c7857600080fd5b81516001600160401b0380821115615c8f57600080fd5b908301906102008286031215615ca457600080fd5b615cac614f50565b615cb58361599e565b8152602083015182811115615cc957600080fd5b615cd5878286016159a9565b602083015250604083015182811115615ced57600080fd5b615cf9878286016159a9565b604083015250606083015160608201526080830151608082015260a083015160a082015260c083015160c0820152615d348660e08501615b95565b60e0820152615d47866101208501615be3565b61010082015295945050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156111f5576111f5615d56565b80820281158282048414176111f5576111f5615d56565b600060208284031215615da857600080fd5b5051919050565b600082615dcc57634e487b7160e01b600052601260045260246000fd5b500490565b8183823760009101908152919050565b818103818111156111f5576111f5615d56565b601f821115612f2957600081815260208120601f850160051c81016020861015615e1b5750805b601f850160051c820191505b8181101561118057828155600101615e27565b81516001600160401b03811115615e5357615e53614ea8565b615e6781615e61845461592e565b84615df4565b602080601f831160018114615e9c5760008415615e845750858301515b600019600386901b1c1916600185901b178555611180565b600085815260208120601f198616915b82811015615ecb57888601518255948401946001909101908401615eac565b5085821015615ee95787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b60018060a01b0385168152836020820152608060408201526000615f3660808301856150e0565b905082606083015295945050505050565b8881526001600160a01b038816602082015261010060408201819052600090615f728382018a6150e0565b90508281036060840152615f8681896150e0565b9150508560808301528460a08301528360c08301528260e0830152999850505050505050505056fea2646970667358221220f567b30df173588ad7a1c40371fb662ad5d5d39cde685aefc5f4dcc27e339fa464736f6c6343000811003300000000000000000000000055d398326f99059ff775485246999027b31979550000000000000000000000008ac76a51cc950d9822d68b83fe1ad97b32cd580d000000000000000000000000e9e7cea3dedca5984780bafc599bd69add087d56000000000000000000000000e56d5478250251f84760e769e911fa5f0dca196f