45 txs
62 calls
constructor
constructor(address _WETH)
functions
customFeeBP
viewfunction customFeeBP(address) view returns (uint8)
defaultFeeBP
viewfunction defaultFeeBP() view returns (uint8)
discountToken
viewfunction discountToken() view returns (address)
feeTiers
viewfunction feeTiers(uint256) view returns (uint256 amount, uint8 discount)
getActualSwapAmount
viewfunction getActualSwapAmount(address token, uint256 amount) view returns (uint256 actualSwapAmount, uint256 feeAmount)
getFeeLadder
viewfunction getFeeLadder() view returns (tuple[])
getFeeLadderDiscount
viewfunction getFeeLadderDiscount(address account) view returns (uint256)
getInviteesOf
viewfunction getInviteesOf(uint256 page, uint256 pageSize) view returns (address[] items, uint256 total)
getSwapFee
viewfunction getSwapFee(address account, address token) view returns (uint256 effectiveFeeBP, tuple[] ladder)
inviteesOf
viewfunction inviteesOf(address, uint256) view returns (address)
inviterOf
viewfunction inviterOf(address) view returns (address)
isFeeExemptToken
viewfunction isFeeExemptToken(address) view returns (bool)
owner
viewfunction owner() view returns (address)
swapAddress
viewfunction swapAddress() view returns (address)
walletAddress
viewfunction walletAddress() view returns (address)
WETH
viewfunction WETH() view returns (address)
inviterSwap
payablefunction inviterSwap(tuple desc, uint256 deadline, address inviter) payable returns (uint256 amountOut, uint256 gasUsed)
ownerWithdraw
nonpayablefunction ownerWithdraw(address token, uint256 amount)
renounceOwnership
nonpayablefunction renounceOwnership()
setCustomFeeToken
nonpayablefunction setCustomFeeToken(address token, uint8 fee)
setDefaultSwapFee
nonpayablefunction setDefaultSwapFee(uint8 fee)
setFeeLadder
nonpayablefunction setFeeLadder(tuple[] fees)
setFreeSwapToken
nonpayablefunction setFreeSwapToken(address token, bool isFree)
setSwapAddress
nonpayablefunction setSwapAddress(address _address)
setSwaptorXToken
nonpayablefunction setSwaptorXToken(address token)
setWalletAddress
nonpayablefunction setWalletAddress(address _address)
swap
payablefunction swap(tuple desc, uint256 deadline) payable returns (uint256 amountOut, uint256 gasUsed)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
DefaultFeeChanged
event DefaultFeeChanged(address indexed owner, uint8 fee)
FeeTokenChanged
event FeeTokenChanged(address indexed owner, address indexed token, uint8 fee)
FreeTokenChanged
event FreeTokenChanged(address indexed owner, address indexed token, bool free)
InviterBound
event InviterBound(address indexed user, address indexed inviter)
InviterFeeFailed
event InviterFeeFailed(address indexed user, address indexed inviter, address indexed token, uint256 amount)
InviterFeePaid
event InviterFeePaid(address indexed user, address indexed inviter, address indexed token, uint256 amount)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
SwapAddressSet
event SwapAddressSet(address indexed owner, address indexed previousAddress, address indexed newAddress)
Swapped
event Swapped(address indexed sender, address tokenIn, address tokenOut, uint256 amountIn, uint256 amountOut, address indexed recipient)
WalletAddressSet
event WalletAddressSet(address indexed owner, address indexed previousWallet, address indexed newWallet)
Withdraw
event Withdraw(address indexed sender, address indexed token, address indexed to, uint256 amount)
errors
No errors.
creation bytecode
0x60c06040525f60055f6101000a81548160ff021916908360ff1602179055506e22d473030f116ddee9f6b43ac78ba373ffffffffffffffffffffffffffffffffffffffff1660a09073ffffffffffffffffffffffffffffffffffffffff1681525034801561006b575f80fd5b50604051615473380380615473833981810160405281019061008d91906101d2565b335f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361013a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161013190610257565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505050610275565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6101a182610178565b9050919050565b6101b181610197565b81146101bb575f80fd5b50565b5f815190506101cc816101a8565b92915050565b5f602082840312156101e7576101e6610174565b5b5f6101f4848285016101be565b91505092915050565b5f82825260208201905092915050565b7f53776170746f72583a20574554482063616e6e6f74206265207a65726f0000005f82015250565b5f610241601d836101fd565b915061024c8261020d565b602082019050919050565b5f6020820190508181035f83015261026e81610235565b9050919050565b60805160a0516151c16102b25f395f612ba401525f818161178b015281816128fd0152818161297d01528181612dad0152612dec01526151c15ff3fe6080604052600436106101ba575f3560e01c80639b9c592f116100eb578063b7a8554511610089578063dce9d9a311610063578063dce9d9a314610649578063df73245a14610671578063ea61226c14610699578063f2fde38b146106c3576101c1565b8063b7a85545146105a9578063c8ced355146105e5578063d9c88e1414610621576101c1565b8063aaca6ac4116100c5578063aaca6ac4146104ea578063aad355ec1461051b578063ac1a386a14610557578063ad5c46481461057f576101c1565b80639b9c592f146104555780639cd7b149146104915780639f73a360146104b9576101c1565b80636ad5b3ea1161015857806380f6d7821161013257806380f6d7821461038857806381df36d4146103b25780638b2f6c18146103ee5780638da5cb5b1461042b576101c1565b80636ad5b3ea14610320578063715018a61461034a5780637dc4b9cc14610360576101c1565b80632de192dc116101945780632de192dc146102675780634413229f146102a457806354a43209146102ce57806364487525146102f8576101c1565b8063040f6a28146101c557806316ce96fc146101ed578063230ed44a1461022a576101c1565b366101c157005b5f80fd5b3480156101d0575f80fd5b506101eb60048036038101906101e69190613615565b6106eb565b005b3480156101f8575f80fd5b50610213600480360381019061020e91906136cd565b61082a565b60405161022192919061371a565b60405180910390f35b348015610235575f80fd5b50610250600480360381019061024b9190613741565b61086b565b60405161025e92919061377b565b60405180910390f35b348015610272575f80fd5b5061028d600480360381019061028891906137a2565b6108a6565b60405161029b9291906138d3565b60405180910390f35b3480156102af575f80fd5b506102b8610b15565b6040516102c59190613901565b60405180910390f35b3480156102d9575f80fd5b506102e2610b27565b6040516102ef919061391a565b60405180910390f35b348015610303575f80fd5b5061031e6004803603810190610319919061399b565b610ba8565b005b34801561032b575f80fd5b50610334610cae565b60405161034191906139f5565b60405180910390f35b348015610355575f80fd5b5061035e610cd4565b005b34801561036b575f80fd5b5061038660048036038101906103819190613a0e565b610d6c565b005b348015610393575f80fd5b5061039c610f41565b6040516103a991906139f5565b60405180910390f35b3480156103bd575f80fd5b506103d860048036038101906103d39190613a0e565b610f66565b6040516103e59190613a53565b60405180910390f35b3480156103f9575f80fd5b50610414600480360381019061040f9190613a6c565b610f83565b604051610422929190613b61565b60405180910390f35b348015610436575f80fd5b5061043f6111c1565b60405161044c91906139f5565b60405180910390f35b348015610460575f80fd5b5061047b600480360381019061047691906136cd565b6111e4565b60405161048891906139f5565b60405180910390f35b34801561049c575f80fd5b506104b760048036038101906104b29190613bb9565b61122c565b005b6104d360048036038101906104ce9190613c19565b611376565b6040516104e192919061371a565b60405180910390f35b61050460048036038101906104ff9190613c73565b6113d9565b60405161051292919061371a565b60405180910390f35b348015610526575f80fd5b50610541600480360381019061053c9190613a0e565b611446565b60405161054e9190613cdf565b60405180910390f35b348015610562575f80fd5b5061057d60048036038101906105789190613a0e565b6115b2565b005b34801561058a575f80fd5b50610593611789565b6040516105a091906139f5565b60405180910390f35b3480156105b4575f80fd5b506105cf60048036038101906105ca9190613a0e565b6117ad565b6040516105dc9190613901565b60405180910390f35b3480156105f0575f80fd5b5061060b60048036038101906106069190613a0e565b6117ca565b60405161061891906139f5565b60405180910390f35b34801561062c575f80fd5b50610647600480360381019061064291906136cd565b6117fa565b005b348015610654575f80fd5b5061066f600480360381019061066a9190613cf8565b611a1b565b005b34801561067c575f80fd5b5061069760048036038101906106929190613a0e565b611bad565b005b3480156106a4575f80fd5b506106ad611c7d565b6040516106ba91906139f5565b60405180910390f35b3480156106ce575f80fd5b506106e960048036038101906106e49190613a0e565b611ca2565b005b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610778576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161076f90613d90565b60405180910390fd5b8060ff16606410156107bf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107b690613df8565b60405180910390fd5b8060055f6101000a81548160ff021916908360ff1602179055503373ffffffffffffffffffffffffffffffffffffffff167f0392bea7ef37e4d641c8494ac5df247e23621bf044dfaf806939681ba4d6716b8260405161081f9190613901565b60405180910390a250565b5f805f61083733866108a6565b50905061271081856108499190613e43565b6108539190613eb1565b915081846108619190613ee1565b9250509250929050565b6002818154811061087a575f80fd5b905f5260205f2090600202015f91509050805f015490806001015f9054906101000a900460ff16905082565b5f60605f60035f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1615610901575f90506109bf565b5f60045f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660ff1611156109a95760045f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1660ff1690506109be565b60055f9054906101000a900460ff1660ff1690505b5b5f8103610a4e575f600280805480602002602001604051908101604052809291908181526020015f905b82821015610a3e578382905f5260205f2090600202016040518060400160405290815f8201548152602001600182015f9054906101000a900460ff1660ff1660ff1681525050815260200190600101906109e9565b5050505090509250925050610b0e565b5f610a5886611446565b90505f811115610a89576064816064610a719190613ee1565b83610a7c9190613e43565b610a869190613eb1565b91505b81600280805480602002602001604051908101604052809291908181526020015f905b82821015610b01578382905f5260205f2090600202016040518060400160405290815f8201548152602001600182015f9054906101000a900460ff1660ff1660ff168152505081526020019060010190610aac565b5050505090509350935050505b9250929050565b60055f9054906101000a900460ff1681565b60606002805480602002602001604051908101604052809291908181526020015f905b82821015610b9f578382905f5260205f2090600202016040518060400160405290815f8201548152602001600182015f9054906101000a900460ff1660ff1660ff168152505081526020019060010190610b4a565b50505050905090565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c2c90613d90565b60405180910390fd5b60025f610c42919061357d565b5f5b82829050811015610ca9576002838383818110610c6457610c63613f14565b5b905060400201908060018154018082558091505060019003905f5260205f2090600202015f909190919091508181610c9c91906140c0565b5050806001019050610c44565b505050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610d61576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5890613d90565b60405180910390fd5b610d6a5f611da9565b565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610df9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df090613d90565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e5e9061413e565b60405180910390fd5b5f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fe56ffd1dcc40a4c88a9b03492a3d6f93418f6416851ca05115822708049359ea60405160405180910390a45050565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6003602052805f5260405f205f915054906101000a900460ff1681565b60605f808385610f939190613e43565b90505f60085f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2080548060200260200160405190810160405280929190818152602001828054801561105057602002820191905f5260205f20905b815f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019060010190808311611007575b5050505050905080519250805182106110b5575f67ffffffffffffffff81111561107d5761107c61415c565b5b6040519080825280602002602001820160405280156110ab5781602001602082028036833780820191505090505b50935050506111ba565b5f85836110c29190614189565b905081518111156110d257815190505b5f83826110df9190613ee1565b90508067ffffffffffffffff8111156110fb576110fa61415c565b5b6040519080825280602002602001820160405280156111295781602001602082028036833780820191505090505b5095505f5b818110156111b4578381866111439190614189565b8151811061115457611153613f14565b5b602002602001015187828151811061116f5761116e613f14565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505080600101905061112e565b50505050505b9250929050565b5f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6008602052815f5260405f2081815481106111fd575f80fd5b905f5260205f20015f915091509054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146112b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112b090613d90565b60405180910390fd5b8060035f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f5aa4741595783fbabd32f180df08362734a0830e60dafbd28d3446a31203dfd28360405161136a9190613a53565b60405180910390a35050565b5f8082428110156113bc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b390614206565b60405180910390fd5b5f5a90506113c986611e6a565b93505a8103925050509250929050565b5f80834281101561141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141690614206565b60405180910390fd5b5f5a905061142c85612316565b61143587611e6a565b93505a810392505050935093915050565b5f8073ffffffffffffffffffffffffffffffffffffffff1660015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806114a657505f600280549050145b156114b3575f90506115ad565b5f6114df60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846125b5565b90505f81036114f1575f9150506115ad565b5f805b6002805490508110156115a6576002818154811061151557611514613f14565b5b905f5260205f2090600202015f0154831061159b57816002828154811061153f5761153e613f14565b5b905f5260205f2090600202016001015f9054906101000a900460ff1660ff16111561159a576002818154811061157857611577613f14565b5b905f5260205f2090600202016001015f9054906101000a900460ff1660ff1691505b5b8060010190506114f4565b5080925050505b919050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461163f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163690613d90565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116a490614294565b60405180910390fd5b5f600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f6972f6774c8c58489b0d6ddf22bb06502764dce4feb3d825b3bc78771b3aba3b60405160405180910390a45050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6004602052805f5260405f205f915054906101000a900460ff1681565b6007602052805f5260405f205f915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60095f9054906101000a900460ff1615611849576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611840906142fc565b60405180910390fd5b600160095f6101000a81548160ff0219169083151502179055505f73ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036118f3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ea90614364565b60405180910390fd5b6118fc826126b1565b156119325761192d600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16826126fc565b611960565b61195f82600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836127a9565b5b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f3115d1449a7b732c986cba18244e897a450f61e1bb8d589cd2e69e6c8924f9f7846040516119f69190613cdf565b60405180910390a45f60095f6101000a81548160ff0219169083151502179055505050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611aa8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9f90613d90565b60405180910390fd5b8060ff1660641015611aef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae6906143cc565b60405180910390fd5b8060045f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908360ff1602179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f180bb0038fa9138b235773bd62aee0a35fcfcb252dadf015cccdf70192a63f9083604051611ba19190613901565b60405180910390a35050565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611c3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3190613d90565b60405180910390fd5b8060015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b3373ffffffffffffffffffffffffffffffffffffffff165f8054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2690613d90565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611d9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d949061445a565b60405180910390fd5b611da681611da9565b50565b5f805f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050815f806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f60095f9054906101000a900460ff1615611eba576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb1906142fc565b60405180910390fd5b600160095f6101000a81548160ff0219169083151502179055503073ffffffffffffffffffffffffffffffffffffffff16825f016020810190611efd9190613a0e565b73ffffffffffffffffffffffffffffffffffffffff1603611f53576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4a906144c2565b60405180910390fd5b816020016020810190611f669190613a0e565b73ffffffffffffffffffffffffffffffffffffffff16825f016020810190611f8e9190613a0e565b73ffffffffffffffffffffffffffffffffffffffff1603611fe4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fdb90614550565b60405180910390fd5b5f82606001351161202a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612021906145de565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168260a00160208101906120549190613a0e565b73ffffffffffffffffffffffffffffffffffffffff16036120aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a19061466c565b60405180910390fd5b5f6120c5835f0160208101906120c09190613a0e565b6126b1565b15612166575f341161210c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612103906146fa565b60405180910390fd5b82604001353414612152576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214990614788565b60405180910390fd5b34905061215f83826128d9565b9150612257565b5f34146121a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219f90614816565b60405180910390fd5b5f838060c001906121b99190614840565b9050036121e6576121df835f0160208101906121d59190613a0e565b8460400135612a02565b9050612218565b612215835f0160208101906121fb9190613a0e565b8460400135858060c001906122109190614840565b612a8c565b90505b61223383602001602081019061222e9190613a0e565b6126b1565b15612249576122428382612d47565b9150612256565b6122538382612f30565b91505b5b8260a001602081019061226a9190613a0e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f1eeaa4acf3c225a4033105c2647625dbb298dec93b14e16253c4231e26c02b1d855f0160208101906122ca9190613a0e565b8660200160208101906122dd9190613a0e565b85876040516122ef94939291906148a2565b60405180910390a3505f60095f6101000a81548160ff021916908315150217905550919050565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603156125b2573373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603156125b2573073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603156125b2575f73ffffffffffffffffffffffffffffffffffffffff1660075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036125b2578060075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060085f8273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2033908060018154018082558091505060019003905f5260205f20015f9091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fad19acbfe329ed02112851f095801de1e5474be0e6fcb5810aaf795fb120249f60405160405180910390a35b50565b5f805f8473ffffffffffffffffffffffffffffffffffffffff166370a08231856040516024016125e591906139f5565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516126339190614937565b5f60405180830381855afa9150503d805f811461266b576040519150601f19603f3d011682016040523d82523d5f602084013e612670565b606091505b5091509150811580612683575060208151105b15612692575f925050506126ab565b808060200190518101906126a69190614961565b925050505b92915050565b5f73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16149050919050565b5f8273ffffffffffffffffffffffffffffffffffffffff1682604051612721906149af565b5f6040518083038185875af1925050503d805f811461275b576040519150601f19603f3d011682016040523d82523d5f602084013e612760565b606091505b50509050806127a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161279b90614a0d565b60405180910390fd5b505050565b5f808473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb85856040516024016127da929190614a2b565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516128289190614937565b5f604051808303815f865af19150503d805f8114612861576040519150601f19603f3d011682016040523d82523d5f602084013e612866565b606091505b509150915081801561289357505f815114806128925750808060200190518101906128919190614a66565b5b5b6128d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128c990614adb565b60405180910390fd5b5050505050565b5f805f6128f7855f0160208101906128f19190613a0e565b8561082a565b915091507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0836040518263ffffffff1660e01b81526004015f604051808303818588803b158015612961575f80fd5b505af1158015612973573d5f803e3d5ffd5b50505050506129dd7f00000000000000000000000000000000000000000000000000000000000000008660200160208101906129af9190613a0e565b8488606001358980608001906129c59190614840565b8b60a00160208101906129d89190613a0e565b612fcd565b92506129fa855f0160208101906129f49190613a0e565b8261310c565b505092915050565b5f80612a0e84306125b5565b9050612a1c8433308661344a565b5f612a2785306125b5565b90505f8282612a369190613ee1565b11612a76576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a6d90614b69565b60405180910390fd5b8181612a829190613ee1565b9250505092915050565b5f805f8484810190612a9e9190614c92565b9150915060018103612b8c575f8773ffffffffffffffffffffffffffffffffffffffff1663d505accf60e01b84604051602001612adc929190614d37565b604051602081830303815290604052604051612af89190614937565b5f604051808303815f865af19150503d805f8114612b31576040519150601f19603f3d011682016040523d82523d5f602084013e612b36565b606091505b5050905080612b7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7190614da8565b60405180910390fd5b612b848888612a02565b935050612d3d565b60028103612d01575f612b9f88306125b5565b90505f7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff166330f28b7a60e01b85604051602001612bf3929190614d37565b604051602081830303815290604052604051612c0f9190614937565b5f604051808303815f865af19150503d805f8114612c48576040519150601f19603f3d011682016040523d82523d5f602084013e612c4d565b606091505b5050905080612c91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c8890614e10565b60405180910390fd5b5f612c9c8a306125b5565b90505f8382612cab9190613ee1565b11612ceb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce290614e9e565b60405180910390fd5b8281612cf79190613ee1565b9550505050612d3c565b6040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612d3390614f2c565b60405180910390fd5b5b5050949350505050565b5f805f612d65855f016020810190612d5f9190613a0e565b8561082a565b915091505f8560a0016020810190612d7d9190613a0e565b73ffffffffffffffffffffffffffffffffffffffff16319050612de8865f016020810190612dab9190613a0e565b7f00000000000000000000000000000000000000000000000000000000000000008589606001358a8060800190612de29190614840565b30612fcd565b93507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16632e1a7d4d856040518263ffffffff1660e01b8152600401612e439190613cdf565b5f604051808303815f87803b158015612e5a575f80fd5b505af1158015612e6c573d5f803e3d5ffd5b50505050612e8c8660a0016020810190612e869190613a0e565b856126fc565b5f8660a0016020810190612ea09190613a0e565b73ffffffffffffffffffffffffffffffffffffffff16319050866060013582612ec99190614189565b811015612f0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612f0290614fba565b60405180910390fd5b612f26875f016020810190612f209190613a0e565b8461310c565b5050505092915050565b5f805f612f4e855f016020810190612f489190613a0e565b8561082a565b91509150612fa8855f016020810190612f679190613a0e565b866020016020810190612f7a9190613a0e565b848860600135898060800190612f909190614840565b8b60a0016020810190612fa39190613a0e565b612fcd565b9250612fc5855f016020810190612fbf9190613a0e565b8261310c565b505092915050565b5f612ffa8860065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16886127a9565b5f61300588846125b5565b905060065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16635f942a8a8a888888886040518663ffffffff1660e01b8152600401613069959493929190615014565b5f604051808303815f87803b158015613080575f80fd5b505af1158015613092573d5f803e3d5ffd5b505050505f6130a189856125b5565b905086826130af9190614189565b8110156130f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016130e8906150d0565b60405180910390fd5b81816130fd9190613ee1565b92505050979650505050505050565b6003811115613446575f60075f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614613444575f6064601e846131b89190613e43565b6131c29190613eb1565b90505f6131ce856126b1565b15613246578273ffffffffffffffffffffffffffffffffffffffff1682617530906040516131fb906149af565b5f60405180830381858888f193505050503d805f8114613236576040519150601f19603f3d011682016040523d82523d5f602084013e61323b565b606091505b50508091505061333d565b5f808673ffffffffffffffffffffffffffffffffffffffff1663a9059cbb8686604051602401613277929190614a2b565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516132c59190614937565b5f604051808303815f865af19150503d805f81146132fe576040519150601f19603f3d011682016040523d82523d5f602084013e613303565b606091505b509150915081801561333057505f8151148061332f57508080602001905181019061332e9190614a66565b5b5b1561333a57600192505b50505b80156133c4578473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f2f53f4bc51eacf2a763977cdcd71796df85a447da196668cb3b2d34dbe1090f1856040516133b79190613cdf565b60405180910390a4613441565b8473ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fb9c939330099311c6ddc823739cb6c67865d871f77ebba134c841e39c7dce72a856040516134389190613cdf565b60405180910390a45b50505b505b5050565b5f808573ffffffffffffffffffffffffffffffffffffffff166323b872dd86868660405160240161347d939291906150ee565b6040516020818303038152906040529060e01b6020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff83818316178352505050506040516134cb9190614937565b5f604051808303815f865af19150503d805f8114613504576040519150601f19603f3d011682016040523d82523d5f602084013e613509565b606091505b509150915081801561353657505f815114806135355750808060200190518101906135349190614a66565b5b5b613575576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161356c9061516d565b60405180910390fd5b505050505050565b5080545f8255600202905f5260205f209081019061359b919061359e565b50565b5b808211156135ca575f8082015f9055600182015f6101000a81549060ff02191690555060020161359f565b5090565b5f604051905090565b5f80fd5b5f80fd5b5f60ff82169050919050565b6135f4816135df565b81146135fe575f80fd5b50565b5f8135905061360f816135eb565b92915050565b5f6020828403121561362a576136296135d7565b5b5f61363784828501613601565b91505092915050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f61366982613640565b9050919050565b6136798161365f565b8114613683575f80fd5b50565b5f8135905061369481613670565b92915050565b5f819050919050565b6136ac8161369a565b81146136b6575f80fd5b50565b5f813590506136c7816136a3565b92915050565b5f80604083850312156136e3576136e26135d7565b5b5f6136f085828601613686565b9250506020613701858286016136b9565b9150509250929050565b6137148161369a565b82525050565b5f60408201905061372d5f83018561370b565b61373a602083018461370b565b9392505050565b5f60208284031215613756576137556135d7565b5b5f613763848285016136b9565b91505092915050565b613775816135df565b82525050565b5f60408201905061378e5f83018561370b565b61379b602083018461376c565b9392505050565b5f80604083850312156137b8576137b76135d7565b5b5f6137c585828601613686565b92505060206137d685828601613686565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b6138128161369a565b82525050565b613821816135df565b82525050565b604082015f82015161383b5f850182613809565b50602082015161384e6020850182613818565b50505050565b5f61385f8383613827565b60408301905092915050565b5f602082019050919050565b5f613881826137e0565b61388b81856137ea565b9350613896836137fa565b805f5b838110156138c65781516138ad8882613854565b97506138b88361386b565b925050600181019050613899565b5085935050505092915050565b5f6040820190506138e65f83018561370b565b81810360208301526138f88184613877565b90509392505050565b5f6020820190506139145f83018461376c565b92915050565b5f6020820190508181035f8301526139328184613877565b905092915050565b5f80fd5b5f80fd5b5f80fd5b5f8083601f84011261395b5761395a61393a565b5b8235905067ffffffffffffffff8111156139785761397761393e565b5b60208301915083604082028301111561399457613993613942565b5b9250929050565b5f80602083850312156139b1576139b06135d7565b5b5f83013567ffffffffffffffff8111156139ce576139cd6135db565b5b6139da85828601613946565b92509250509250929050565b6139ef8161365f565b82525050565b5f602082019050613a085f8301846139e6565b92915050565b5f60208284031215613a2357613a226135d7565b5b5f613a3084828501613686565b91505092915050565b5f8115159050919050565b613a4d81613a39565b82525050565b5f602082019050613a665f830184613a44565b92915050565b5f8060408385031215613a8257613a816135d7565b5b5f613a8f858286016136b9565b9250506020613aa0858286016136b9565b9150509250929050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613adc8161365f565b82525050565b5f613aed8383613ad3565b60208301905092915050565b5f602082019050919050565b5f613b0f82613aaa565b613b198185613ab4565b9350613b2483613ac4565b805f5b83811015613b54578151613b3b8882613ae2565b9750613b4683613af9565b925050600181019050613b27565b5085935050505092915050565b5f6040820190508181035f830152613b798185613b05565b9050613b88602083018461370b565b9392505050565b613b9881613a39565b8114613ba2575f80fd5b50565b5f81359050613bb381613b8f565b92915050565b5f8060408385031215613bcf57613bce6135d7565b5b5f613bdc85828601613686565b9250506020613bed85828601613ba5565b9150509250929050565b5f80fd5b5f60e08284031215613c1057613c0f613bf7565b5b81905092915050565b5f8060408385031215613c2f57613c2e6135d7565b5b5f83013567ffffffffffffffff811115613c4c57613c4b6135db565b5b613c5885828601613bfb565b9250506020613c69858286016136b9565b9150509250929050565b5f805f60608486031215613c8a57613c896135d7565b5b5f84013567ffffffffffffffff811115613ca757613ca66135db565b5b613cb386828701613bfb565b9350506020613cc4868287016136b9565b9250506040613cd586828701613686565b9150509250925092565b5f602082019050613cf25f83018461370b565b92915050565b5f8060408385031215613d0e57613d0d6135d7565b5b5f613d1b85828601613686565b9250506020613d2c85828601613601565b9150509250929050565b5f82825260208201905092915050565b7f53776170746f72583a2063616c6c6572206973206e6f74206f776e65720000005f82015250565b5f613d7a601d83613d36565b9150613d8582613d46565b602082019050919050565b5f6020820190508181035f830152613da781613d6e565b9050919050565b7f53776170746f72583a20696e76616c69642064656661756c74206665650000005f82015250565b5f613de2601d83613d36565b9150613ded82613dae565b602082019050919050565b5f6020820190508181035f830152613e0f81613dd6565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f613e4d8261369a565b9150613e588361369a565b9250828202613e668161369a565b91508282048414831517613e7d57613e7c613e16565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f613ebb8261369a565b9150613ec68361369a565b925082613ed657613ed5613e84565b5b828204905092915050565b5f613eeb8261369a565b9150613ef68361369a565b9250828203905081811115613f0e57613f0d613e16565b5b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f8135613f4d816136a3565b80915050919050565b5f815f1b9050919050565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613f8c84613f56565b9350801983169250808416831791505092915050565b5f819050919050565b5f613fc5613fc0613fbb8461369a565b613fa2565b61369a565b9050919050565b5f819050919050565b613fde82613fab565b613ff1613fea82613fcc565b8354613f61565b8255505050565b5f8135614004816135eb565b80915050919050565b5f60ff61401984613f56565b9350801983169250808416831791505092915050565b5f61404961404461403f846135df565b613fa2565b6135df565b9050919050565b5f819050919050565b6140628261402f565b61407561406e82614050565b835461400d565b8255505050565b5f81015f83018061408c81613f41565b90506140988184613fd5565b5050506001810160208301806140ad81613ff8565b90506140b98184614059565b5050505050565b6140ca828261407c565b5050565b7f53776170746f72583a207377617020616464726573732063616e6e6f742062655f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f614128602583613d36565b9150614133826140ce565b604082019050919050565b5f6020820190508181035f8301526141558161411c565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b5f6141938261369a565b915061419e8361369a565b92508282019050808211156141b6576141b5613e16565b5b92915050565b7f53776170746f72583a20646561646c696e6520657870697265640000000000005f82015250565b5f6141f0601a83613d36565b91506141fb826141bc565b602082019050919050565b5f6020820190508181035f83015261421d816141e4565b9050919050565b7f53776170746f72583a2077616c6c657420616464726573732063616e6e6f74205f8201527f6265207a65726f00000000000000000000000000000000000000000000000000602082015250565b5f61427e602783613d36565b915061428982614224565b604082019050919050565b5f6020820190508181035f8301526142ab81614272565b9050919050565b7f53776170746f72583a207265656e7472616e63790000000000000000000000005f82015250565b5f6142e6601483613d36565b91506142f1826142b2565b602082019050919050565b5f6020820190508181035f830152614313816142da565b9050919050565b7f53776170746f72583a2077616c6c6574206e6f7420636f6e66696775726564005f82015250565b5f61434e601f83613d36565b91506143598261431a565b602082019050919050565b5f6020820190508181035f83015261437b81614342565b9050919050565b7f53776170746f72583a20696e76616c6964206665652076616c756500000000005f82015250565b5f6143b6601b83613d36565b91506143c182614382565b602082019050919050565b5f6020820190508181035f8301526143e3816143aa565b9050919050565b7f53776170746f72583a206e6577206f776e65722063616e6e6f74206265207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f614444602283613d36565b915061444f826143ea565b604082019050919050565b5f6020820190508181035f83015261447181614438565b9050919050565b7f53776170746f72583a20696e76616c696420746f6b656e496e000000000000005f82015250565b5f6144ac601983613d36565b91506144b782614478565b602082019050919050565b5f6020820190508181035f8301526144d9816144a0565b9050919050565b7f53776170746f72583a20746f6b656e496e20657175616c7320746f6b656e4f755f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f61453a602183613d36565b9150614545826144e0565b604082019050919050565b5f6020820190508181035f8301526145678161452e565b9050919050565b7f53776170746f72583a20616d6f756e744d696e4f7574206d757374206265203e5f8201527f2030000000000000000000000000000000000000000000000000000000000000602082015250565b5f6145c8602283613d36565b91506145d38261456e565b604082019050919050565b5f6020820190508181035f8301526145f5816145bc565b9050919050565b7f53776170746f72583a20726563697069656e742063616e6e6f74206265207a655f8201527f726f000000000000000000000000000000000000000000000000000000000000602082015250565b5f614656602283613d36565b9150614661826145fc565b604082019050919050565b5f6020820190508181035f8301526146838161464a565b9050919050565b7f53776170746f72583a206d73672e76616c7565206d757374206265203e2030205f8201527f666f722045544820696e70757400000000000000000000000000000000000000602082015250565b5f6146e4602d83613d36565b91506146ef8261468a565b604082019050919050565b5f6020820190508181035f830152614711816146d8565b9050919050565b7f53776170746f72583a206d73672e76616c7565206d69736d61746368207769745f8201527f6820616d6f756e74496e00000000000000000000000000000000000000000000602082015250565b5f614772602a83613d36565b915061477d82614718565b604082019050919050565b5f6020820190508181035f83015261479f81614766565b9050919050565b7f53776170746f72583a206e6f2045544820616c6c6f77656420666f72204552435f8201527f323020696e707574000000000000000000000000000000000000000000000000602082015250565b5f614800602883613d36565b915061480b826147a6565b604082019050919050565b5f6020820190508181035f83015261482d816147f4565b9050919050565b5f80fd5b5f80fd5b5f80fd5b5f808335600160200384360303811261485c5761485b614834565b5b80840192508235915067ffffffffffffffff82111561487e5761487d614838565b5b60208301925060018202360383131561489a5761489961483c565b5b509250929050565b5f6080820190506148b55f8301876139e6565b6148c260208301866139e6565b6148cf604083018561370b565b6148dc606083018461370b565b95945050505050565b5f81519050919050565b5f81905092915050565b8281835e5f83830152505050565b5f614911826148e5565b61491b81856148ef565b935061492b8185602086016148f9565b80840191505092915050565b5f6149428284614907565b915081905092915050565b5f8151905061495b816136a3565b92915050565b5f60208284031215614976576149756135d7565b5b5f6149838482850161494d565b91505092915050565b50565b5f61499a5f836148ef565b91506149a58261498c565b5f82019050919050565b5f6149b98261498f565b9150819050919050565b7f53776170746f72583a20455448207472616e73666572206661696c65640000005f82015250565b5f6149f7601d83613d36565b9150614a02826149c3565b602082019050919050565b5f6020820190508181035f830152614a24816149eb565b9050919050565b5f604082019050614a3e5f8301856139e6565b614a4b602083018461370b565b9392505050565b5f81519050614a6081613b8f565b92915050565b5f60208284031215614a7b57614a7a6135d7565b5b5f614a8884828501614a52565b91505092915050565b7f53776170746f72583a53540000000000000000000000000000000000000000005f82015250565b5f614ac5600b83613d36565b9150614ad082614a91565b602082019050919050565b5f6020820190508181035f830152614af281614ab9565b9050919050565b7f53776170746f72583a20696e76616c6964207472616e7366657220616d6f756e5f8201527f7400000000000000000000000000000000000000000000000000000000000000602082015250565b5f614b53602183613d36565b9150614b5e82614af9565b604082019050919050565b5f6020820190508181035f830152614b8081614b47565b9050919050565b5f80fd5b5f601f19601f8301169050919050565b614ba482614b8b565b810181811067ffffffffffffffff82111715614bc357614bc261415c565b5b80604052505050565b5f614bd56135ce565b9050614be18282614b9b565b919050565b5f67ffffffffffffffff821115614c0057614bff61415c565b5b614c0982614b8b565b9050602081019050919050565b828183375f83830152505050565b5f614c36614c3184614be6565b614bcc565b905082815260208101848484011115614c5257614c51614b87565b5b614c5d848285614c16565b509392505050565b5f82601f830112614c7957614c7861393a565b5b8135614c89848260208601614c24565b91505092915050565b5f8060408385031215614ca857614ca76135d7565b5b5f83013567ffffffffffffffff811115614cc557614cc46135db565b5b614cd185828601614c65565b9250506020614ce2858286016136b9565b9150509250929050565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b5f819050919050565b614d31614d2c82614cec565b614d17565b82525050565b5f614d428285614d20565b600482019150614d528284614907565b91508190509392505050565b7f53776170746f72583a207065726d6974206661696c65640000000000000000005f82015250565b5f614d92601783613d36565b9150614d9d82614d5e565b602082019050919050565b5f6020820190508181035f830152614dbf81614d86565b9050919050565b7f53776170746f72583a207065726d6974322063616c6c206661696c65640000005f82015250565b5f614dfa601d83613d36565b9150614e0582614dc6565b602082019050919050565b5f6020820190508181035f830152614e2781614dee565b9050919050565b7f53776170746f72583a207065726d69743220646964206e6f7420696e637265615f8201527f73652062616c616e636500000000000000000000000000000000000000000000602082015250565b5f614e88602a83613d36565b9150614e9382614e2e565b604082019050919050565b5f6020820190508181035f830152614eb581614e7c565b9050919050565b7f53776170746f72583a20756e737570706f72746564207065726d6974207665725f8201527f73696f6e00000000000000000000000000000000000000000000000000000000602082015250565b5f614f16602483613d36565b9150614f2182614ebc565b604082019050919050565b5f6020820190508181035f830152614f4381614f0a565b9050919050565b7f53776170746f72583a20696e73756666696369656e7420455448206f757470755f8201527f7420726563656976656400000000000000000000000000000000000000000000602082015250565b5f614fa4602a83613d36565b9150614faf82614f4a565b604082019050919050565b5f6020820190508181035f830152614fd181614f98565b9050919050565b5f82825260208201905092915050565b5f614ff38385614fd8565b9350615000838584614c16565b61500983614b8b565b840190509392505050565b5f6080820190506150275f8301886139e6565b615034602083018761370b565b8181036040830152615047818587614fe8565b905061505660608301846139e6565b9695505050505050565b7f53776170746f72583a20696e73756666696369656e74206f75747075742072655f8201527f6365697665640000000000000000000000000000000000000000000000000000602082015250565b5f6150ba602683613d36565b91506150c582615060565b604082019050919050565b5f6020820190508181035f8301526150e7816150ae565b9050919050565b5f6060820190506151015f8301866139e6565b61510e60208301856139e6565b61511b604083018461370b565b949350505050565b7f53776170746f72583a53544600000000000000000000000000000000000000005f82015250565b5f615157600c83613d36565b915061516282615123565b602082019050919050565b5f6020820190508181035f8301526151848161514b565b905091905056fea26469706673582212204120f3de341aa8dbe07fd0387f0742eb5cf009a43fe29eaf57b2a7de67b079ff64736f6c634300081a00330000000000000000000000004200000000000000000000000000000000000006