Contract Information
Explore the source code, ABI, and bytecode for the BOBA smart contract.
More Info
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"pos","type":"uint32"}],"name":"checkpoints","outputs":[{"components":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint224","name":"votes","type":"uint224"}],"internalType":"struct ERC20Votes.Checkpoint","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint224","name":"","type":"uint224"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint32","name":"pos","type":"uint32"}],"name":"checkpoints","outputs":[{"components":[{"internalType":"uint32","name":"fromBlock","type":"uint32"},{"internalType":"uint224","name":"votes","type":"uint224"}],"internalType":"struct ERC20Votes.Checkpoint","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPastVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"maxSupply","outputs":[{"internalType":"uint224","name":"","type":"uint224"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"}]
6101406040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610120523480156200003757600080fd5b506040518060400160405280600a8152602001692137b130902a37b5b2b760b11b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280600a8152602001692137b130902a37b5b2b760b11b81525060405180604001604052806004815260200163424f424160e01b8152508160039080519060200190620000ce92919062000737565b508051620000e490600490602084019062000737565b5050825160208085019190912083519184019190912060c082905260e08190524660a0529091507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620001398184846200016f565b608052610100525062000169935062000156925050620001ab9050565b6b019d971e4fe8401e74000000620001af565b620009b2565b600083838346306040516020016200018c959493929190620007d3565b6040516020818303038152906040528051906020012090509392505050565b3390565b620001c68282620001ca60201b62000acb1760201c565b5050565b620001e182826200024d60201b62000b201760201c565b620001eb62000322565b6001600160e01b0316620002046200033260201b60201c565b11156200022e5760405162461bcd60e51b81526004016200022590620007ff565b60405180910390fd5b62000247600862000bec6200033860201b17836200034d565b50505050565b6001600160a01b038216620002765760405162461bcd60e51b81526004016200022590620008dc565b620002846000838362000531565b80600260008282546200029891906200092a565b90915550506001600160a01b03821660009081526020819052604081208054839290620002c79084906200092a565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200030c90859062000913565b60405180910390a3620001c66000838362000536565b6b019d971e4fe8401e7400000090565b60025490565b60006200034682846200092a565b9392505050565b825460009081908015620003ab57856200036960018362000945565b815481106200038857634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b0316620003ae565b60005b6001600160e01b03169250620003c583858760201c565b91506000811180156200041557504386620003e260018462000945565b815481106200040157634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff16145b15620004955762000431826200054e60201b62000bf81760201c565b866200043f60018462000945565b815481106200045e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b0316021790555062000528565b856040518060400160405280620004b7436200057e60201b62000c251760201c565b63ffffffff168152602001620004d8856200054e60201b62000bf81760201c565b6001600160e01b039081169091528254600181018455600093845260209384902083519101805493909401519091166401000000000263ffffffff91821663ffffffff1990931692909217161790555b50935093915050565b505050565b62000531838383620005a760201b62000c4b1760201c565b60006001600160e01b038211156200057a5760405162461bcd60e51b815260040162000225906200084f565b5090565b600063ffffffff8211156200057a5760405162461bcd60e51b8152600401620002259062000896565b620005bf8383836200053160201b620006d91760201c565b62000531620005ce84620005e0565b620005d984620005e0565b83620005fe565b6001600160a01b039081166000908152600660205260409020541690565b816001600160a01b0316836001600160a01b031614158015620006215750600081115b1562000531576001600160a01b03831615620006a6576001600160a01b0383166000908152600760209081526040822082916200066b919062000729901b62000c7117856200034d565b91509150846001600160a01b031660008051602062002c5283398151915283836040516200069b9291906200091c565b60405180910390a250505b6001600160a01b0382161562000531576001600160a01b038216600090815260076020908152604082208291620006ea919062000338901b62000bec17856200034d565b91509150836001600160a01b031660008051602062002c5283398151915283836040516200071a9291906200091c565b60405180910390a25050505050565b600062000346828462000945565b82805462000745906200095f565b90600052602060002090601f016020900481019282620007695760008555620007b4565b82601f106200078457805160ff1916838001178555620007b4565b82800160010185558215620007b4579182015b82811115620007b457825182559160200191906001019062000797565b506200057a9291505b808211156200057a5760008155600101620007bd565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b60208082526030908201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60408201526f766572666c6f77696e6720766f74657360801b606082015260800190565b60208082526027908201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326040820152663234206269747360c81b606082015260800190565b60208082526026908201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360408201526532206269747360d01b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b918252602082015260400190565b600082198211156200094057620009406200099c565b500190565b6000828210156200095a576200095a6200099c565b500390565b6002810460018216806200097457607f821691505b602082108114156200099657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160a05160c05160e051610100516101205161225062000a02600039600061094c01526000610eaf01526000610ef101526000610ed001526000610e5d01526000610e8601526122506000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063782d6fe1116100f9578063a9059cbb11610097578063d505accf11610071578063d505accf14610392578063d5abeb01146103a5578063dd62ed3e146103ba578063f1127ed8146103cd576101a9565b8063a9059cbb14610359578063b4b5ea571461036c578063c3cda5201461037f576101a9565b80638e539e8c116100d35780638e539e8c1461031857806395d89b411461032b5780639ab24eb014610333578063a457c2d714610346576101a9565b8063782d6fe1146102d257806379cc6790146102f25780637ecebe0014610305576101a9565b80633950935111610166578063587cde1e11610140578063587cde1e1461026c5780635c19a95c1461028c5780636fcfff451461029f57806370a08231146102bf576101a9565b806339509351146102315780633a46b1a81461024457806342966c6814610257576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101ec57806323b872dd14610201578063313ce567146102145780633644e51514610229575b600080fd5b6101b66103ed565b6040516101c39190611aa6565b60405180910390f35b6101df6101da3660046118eb565b610480565b6040516101c391906119f0565b6101f461049d565b6040516101c391906119fb565b6101df61020f366004611847565b6104a3565b61021c61053c565b6040516101c39190612159565b6101f4610541565b6101df61023f3660046118eb565b610550565b6101f46102523660046118eb565b6105a4565b61026a6102653660046119a9565b6105ee565b005b61027f61027a3660046117fb565b610602565b6040516101c391906119dc565b61026a61029a3660046117fb565b610623565b6102b26102ad3660046117fb565b610634565b6040516101c39190612148565b6101f46102cd3660046117fb565b61065c565b6102e56102e03660046118eb565b610677565b6040516101c39190612167565b61026a6103003660046118eb565b61068b565b6101f46103133660046117fb565b6106de565b6101f46103263660046119a9565b6106ff565b6101b661072b565b6101f46103413660046117fb565b61073a565b6101df6103543660046118eb565b6107cf565b6101df6103673660046118eb565b610848565b6102e561037a3660046117fb565b61085c565b61026a61038d366004611914565b61086a565b61026a6103a0366004611882565b610928565b6103ad610a0a565b6040516101c39190612126565b6101f46103c8366004611815565b610a1a565b6103e06103db36600461196b565b610a45565b6040516101c39190612100565b6060600380546103fc906121cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610428906121cf565b80156104755780601f1061044a57610100808354040283529160200191610475565b820191906000526020600020905b81548152906001019060200180831161045857829003601f168201915b505050505090505b90565b600061049461048d610c7d565b8484610c81565b50600192915050565b60025490565b60006104b0848484610d35565b6001600160a01b0384166000908152600160205260408120816104d1610c7d565b6001600160a01b03166001600160a01b031681526020019081526020016000205490508281101561051d5760405162461bcd60e51b815260040161051490611e51565b60405180910390fd5b61053185610529610c7d565b858403610c81565b506001949350505050565b601290565b600061054b610e59565b905090565b600061049461055d610c7d565b84846001600061056b610c7d565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461059f9190612180565b610c81565b60004382106105c55760405162461bcd60e51b815260040161051490611bb9565b6001600160a01b03831660009081526007602052604090206105e79083610f1c565b9392505050565b6105ff6105f9610c7d565b82610ff5565b50565b6001600160a01b03808216600090815260066020526040902054165b919050565b6105ff61062e610c7d565b82610fff565b6001600160a01b03811660009081526007602052604081205461065690610c25565b92915050565b6001600160a01b031660009081526020819052604090205490565b60006105e761068684846105a4565b61107f565b6000610699836103c8610c7d565b9050818110156106bb5760405162461bcd60e51b815260040161051490611f30565b6106cf836106c7610c7d565b848403610c81565b6106d98383610ff5565b505050565b6001600160a01b0381166000908152600560205260408120610656906110ad565b60004382106107205760405162461bcd60e51b815260040161051490611bb9565b610656600883610f1c565b6060600480546103fc906121cf565b6001600160a01b03811660009081526007602052604081205480156107bc576001600160a01b038316600090815260076020526040902061077c6001836121b8565b8154811061079a57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b03166107bf565b60005b6001600160e01b03169392505050565b600080600160006107de610c7d565b6001600160a01b039081168252602080830193909352604091820160009081209188168152925290205490508281101561082a5760405162461bcd60e51b815260040161051490612084565b61083e610835610c7d565b85858403610c81565b5060019392505050565b6000610494610855610c7d565b8484610d35565b60006106566106868361073a565b8342111561088a5760405162461bcd60e51b815260040161051490611bf0565b60006108ec6108e47fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf8989896040516020016108c99493929190611a38565b604051602081830303815290604052805190602001206110b1565b8585856110c4565b90506108f7816110ec565b86146109155760405162461bcd60e51b815260040161051490611ca0565b61091f8188610fff565b50505050505050565b834211156109485760405162461bcd60e51b815260040161051490611d19565b60007f00000000000000000000000000000000000000000000000000000000000000008888886109778c6110ec565b8960405160200161098d96959493929190611a04565b60405160208183030381529060405280519060200120905060006109b0826110b1565b905060006109c0828787876110c4565b9050896001600160a01b0316816001600160a01b0316146109f35760405162461bcd60e51b815260040161051490611e1a565b6109fe8a8a8a610c81565b50505050505050505050565b6b019d971e4fe8401e7400000081565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610a4d6117bc565b6001600160a01b0383166000908152600760205260409020805463ffffffff8416908110610a8b57634e487b7160e01b600052603260045260246000fd5b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b610ad58282610b20565b610add61111e565b6001600160e01b0316610aee61049d565b1115610b0c5760405162461bcd60e51b815260040161051490611e99565b610b1a6008610bec8361112e565b50505050565b6001600160a01b038216610b465760405162461bcd60e51b8152600401610514906120c9565b610b52600083836106d9565b8060026000828254610b649190612180565b90915550506001600160a01b03821660009081526020819052604081208054839290610b91908490612180565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bd49085906119fb565b60405180910390a3610be8600083836112df565b5050565b60006105e78284612180565b60006001600160e01b03821115610c215760405162461bcd60e51b815260040161051490611ee9565b5090565b600063ffffffff821115610c215760405162461bcd60e51b815260040161051490611ffa565b610c568383836106d9565b6106d9610c6284610602565b610c6b84610602565b836112ea565b60006105e782846121b8565b3390565b6001600160a01b038316610ca75760405162461bcd60e51b815260040161051490612040565b6001600160a01b038216610ccd5760405162461bcd60e51b815260040161051490611cd7565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d289085906119fb565b60405180910390a3505050565b6001600160a01b038316610d5b5760405162461bcd60e51b815260040161051490611fb5565b6001600160a01b038216610d815760405162461bcd60e51b815260040161051490611b30565b610d8c8383836106d9565b6001600160a01b03831660009081526020819052604090205481811015610dc55760405162461bcd60e51b815260040161051490611d50565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610dfc908490612180565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e4691906119fb565b60405180910390a3610b1a8484846112df565b60007f0000000000000000000000000000000000000000000000000000000000000000461415610eaa57507f000000000000000000000000000000000000000000000000000000000000000061047d565b610f157f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611415565b905061047d565b8154600090815b81811015610f8e576000610f37828461144f565b905084868281548110610f5a57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff161115610f7a57809250610f88565b610f85816001612180565b91505b50610f23565b8115610fe05784610fa06001846121b8565b81548110610fbe57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b0316610fe3565b60005b6001600160e01b031695945050505050565b610be8828261146a565b600061100a83610602565b905060006110178461065c565b6001600160a01b0385811660008181526006602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610b1a8284836112ea565b60006bffffffffffffffffffffffff821115610c215760405162461bcd60e51b815260040161051490611b73565b5490565b60006106566110be610e59565b83611482565b60008060006110d5878787876114b5565b915091506110e281611595565b5095945050505050565b6001600160a01b038116600090815260056020526040812061110d816110ad565b9150611118816116c2565b50919050565b6b019d971e4fe8401e7400000090565b82546000908190801561118757856111476001836121b8565b8154811061116557634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b031661118a565b60005b6001600160e01b031692506111a383858763ffffffff16565b91506000811180156111ef575043866111bd6001846121b8565b815481106111db57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff16145b1561125d576111fd82610bf8565b866112096001846121b8565b8154811061122757634e487b7160e01b600052603260045260246000fd5b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b031602179055506112d6565b85604051806040016040528061127243610c25565b63ffffffff16815260200161128685610bf8565b6001600160e01b039081169091528254600181018455600093845260209384902083519101805493909401519091166401000000000263ffffffff91821663ffffffff1990931692909217161790555b50935093915050565b6106d9838383610c4b565b816001600160a01b0316836001600160a01b03161415801561130c5750600081115b156106d9576001600160a01b03831615611391576001600160a01b0383166000908152600760205260408120819061134790610c718561112e565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161138692919061213a565b60405180910390a250505b6001600160a01b038216156106d9576001600160a01b038216600090815260076020526040812081906113c790610bec8561112e565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161140692919061213a565b60405180910390a25050505050565b60008383834630604051602001611430959493929190611a5c565b6040516020818303038152906040528051906020012090509392505050565b600061145e6002848418612198565b6105e790848416612180565b61147482826116cb565b610b1a6008610c718361112e565b600082826040516020016114979291906119c1565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156114ec575060009050600361158c565b8460ff16601b1415801561150457508460ff16601c14155b15611515575060009050600461158c565b60006001878787876040516000815260200160405260405161153a9493929190611a88565b6020604051602081039080840390855afa15801561155c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166115855760006001925092505061158c565b9150600090505b94509492505050565b60008160048111156115b757634e487b7160e01b600052602160045260246000fd5b14156115c2576105ff565b60018160048111156115e457634e487b7160e01b600052602160045260246000fd5b14156116025760405162461bcd60e51b815260040161051490611af9565b600281600481111561162457634e487b7160e01b600052602160045260246000fd5b14156116425760405162461bcd60e51b815260040161051490611c69565b600381600481111561166457634e487b7160e01b600052602160045260246000fd5b14156116825760405162461bcd60e51b815260040161051490611d96565b60048160048111156116a457634e487b7160e01b600052602160045260246000fd5b14156105ff5760405162461bcd60e51b815260040161051490611dd8565b80546001019055565b6001600160a01b0382166116f15760405162461bcd60e51b815260040161051490611f74565b6116fd826000836106d9565b6001600160a01b038216600090815260208190526040902054818110156117365760405162461bcd60e51b815260040161051490611c27565b6001600160a01b03831660009081526020819052604081208383039055600280548492906117659084906121b8565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117a89086906119fb565b60405180910390a36106d9836000846112df565b604080518082019091526000808252602082015290565b80356001600160a01b038116811461061e57600080fd5b803560ff8116811461061e57600080fd5b60006020828403121561180c578081fd5b6105e7826117d3565b60008060408385031215611827578081fd5b611830836117d3565b915061183e602084016117d3565b90509250929050565b60008060006060848603121561185b578081fd5b611864846117d3565b9250611872602085016117d3565b9150604084013590509250925092565b600080600080600080600060e0888a03121561189c578283fd5b6118a5886117d3565b96506118b3602089016117d3565b955060408801359450606088013593506118cf608089016117ea565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156118fd578182fd5b611906836117d3565b946020939093013593505050565b60008060008060008060c0878903121561192c578182fd5b611935876117d3565b95506020870135945060408701359350611951606088016117ea565b92506080870135915060a087013590509295509295509295565b6000806040838503121561197d578182fd5b611986836117d3565b9150602083013563ffffffff8116811461199e578182fd5b809150509250929050565b6000602082840312156119ba578081fd5b5035919050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9384526001600160a01b039290921660208401526040830152606082015260800190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b93845260ff9290921660208401526040830152606082015260800190565b6000602080835283518082850152825b81811015611ad257858101830151858201604001528201611ab6565b81811115611ae35783604083870101525b50601f01601f1916929092016040019392505050565b60208082526018908201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604082015260600190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960408201526536206269747360d01b606082015260800190565b6020808252601f908201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400604082015260600190565b6020808252601d908201527f4552433230566f7465733a207369676e61747572652065787069726564000000604082015260600190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b6020808252601f908201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604082015260600190565b60208082526019908201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601d908201527f45524332305065726d69743a206578706972656420646561646c696e65000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604082015261756560f01b606082015260800190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604082015261756560f01b606082015260800190565b6020808252601e908201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b60208082526030908201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60408201526f766572666c6f77696e6720766f74657360801b606082015260800190565b60208082526027908201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326040820152663234206269747360c81b606082015260800190565b60208082526024908201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604082015263616e636560e01b606082015260800190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526026908201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360408201526532206269747360d01b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b815163ffffffff1681526020918201516001600160e01b03169181019190915260400190565b6001600160e01b0391909116815260200190565b918252602082015260400190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b6bffffffffffffffffffffffff91909116815260200190565b6000821982111561219357612193612204565b500190565b6000826121b357634e487b7160e01b81526012600452602481fd5b500490565b6000828210156121ca576121ca612204565b500390565b6002810460018216806121e357607f821691505b6020821081141561111857634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fdfea2646970667358221220e551f6157c64f0135d05d3bfe44f9168b2292ec8bb8a4dd6e9b6a886dcb6307364736f6c63430008000033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724
6101406040527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9610120523480156200003757600080fd5b506040518060400160405280600a8152602001692137b130902a37b5b2b760b11b81525080604051806040016040528060018152602001603160f81b8152506040518060400160405280600a8152602001692137b130902a37b5b2b760b11b81525060405180604001604052806004815260200163424f424160e01b8152508160039080519060200190620000ce92919062000737565b508051620000e490600490602084019062000737565b5050825160208085019190912083519184019190912060c082905260e08190524660a0529091507f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f620001398184846200016f565b608052610100525062000169935062000156925050620001ab9050565b6b019d971e4fe8401e74000000620001af565b620009b2565b600083838346306040516020016200018c959493929190620007d3565b6040516020818303038152906040528051906020012090509392505050565b3390565b620001c68282620001ca60201b62000acb1760201c565b5050565b620001e182826200024d60201b62000b201760201c565b620001eb62000322565b6001600160e01b0316620002046200033260201b60201c565b11156200022e5760405162461bcd60e51b81526004016200022590620007ff565b60405180910390fd5b62000247600862000bec6200033860201b17836200034d565b50505050565b6001600160a01b038216620002765760405162461bcd60e51b81526004016200022590620008dc565b620002846000838362000531565b80600260008282546200029891906200092a565b90915550506001600160a01b03821660009081526020819052604081208054839290620002c79084906200092a565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906200030c90859062000913565b60405180910390a3620001c66000838362000536565b6b019d971e4fe8401e7400000090565b60025490565b60006200034682846200092a565b9392505050565b825460009081908015620003ab57856200036960018362000945565b815481106200038857634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b0316620003ae565b60005b6001600160e01b03169250620003c583858760201c565b91506000811180156200041557504386620003e260018462000945565b815481106200040157634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff16145b15620004955762000431826200054e60201b62000bf81760201c565b866200043f60018462000945565b815481106200045e57634e487b7160e01b600052603260045260246000fd5b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b0316021790555062000528565b856040518060400160405280620004b7436200057e60201b62000c251760201c565b63ffffffff168152602001620004d8856200054e60201b62000bf81760201c565b6001600160e01b039081169091528254600181018455600093845260209384902083519101805493909401519091166401000000000263ffffffff91821663ffffffff1990931692909217161790555b50935093915050565b505050565b62000531838383620005a760201b62000c4b1760201c565b60006001600160e01b038211156200057a5760405162461bcd60e51b815260040162000225906200084f565b5090565b600063ffffffff8211156200057a5760405162461bcd60e51b8152600401620002259062000896565b620005bf8383836200053160201b620006d91760201c565b62000531620005ce84620005e0565b620005d984620005e0565b83620005fe565b6001600160a01b039081166000908152600660205260409020541690565b816001600160a01b0316836001600160a01b031614158015620006215750600081115b1562000531576001600160a01b03831615620006a6576001600160a01b0383166000908152600760209081526040822082916200066b919062000729901b62000c7117856200034d565b91509150846001600160a01b031660008051602062002c5283398151915283836040516200069b9291906200091c565b60405180910390a250505b6001600160a01b0382161562000531576001600160a01b038216600090815260076020908152604082208291620006ea919062000338901b62000bec17856200034d565b91509150836001600160a01b031660008051602062002c5283398151915283836040516200071a9291906200091c565b60405180910390a25050505050565b600062000346828462000945565b82805462000745906200095f565b90600052602060002090601f016020900481019282620007695760008555620007b4565b82601f106200078457805160ff1916838001178555620007b4565b82800160010185558215620007b4579182015b82811115620007b457825182559160200191906001019062000797565b506200057a9291505b808211156200057a5760008155600101620007bd565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b60208082526030908201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60408201526f766572666c6f77696e6720766f74657360801b606082015260800190565b60208082526027908201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326040820152663234206269747360c81b606082015260800190565b60208082526026908201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360408201526532206269747360d01b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b918252602082015260400190565b600082198211156200094057620009406200099c565b500190565b6000828210156200095a576200095a6200099c565b500390565b6002810460018216806200097457607f821691505b602082108114156200099657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60805160a05160c05160e051610100516101205161225062000a02600039600061094c01526000610eaf01526000610ef101526000610ed001526000610e5d01526000610e8601526122506000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063782d6fe1116100f9578063a9059cbb11610097578063d505accf11610071578063d505accf14610392578063d5abeb01146103a5578063dd62ed3e146103ba578063f1127ed8146103cd576101a9565b8063a9059cbb14610359578063b4b5ea571461036c578063c3cda5201461037f576101a9565b80638e539e8c116100d35780638e539e8c1461031857806395d89b411461032b5780639ab24eb014610333578063a457c2d714610346576101a9565b8063782d6fe1146102d257806379cc6790146102f25780637ecebe0014610305576101a9565b80633950935111610166578063587cde1e11610140578063587cde1e1461026c5780635c19a95c1461028c5780636fcfff451461029f57806370a08231146102bf576101a9565b806339509351146102315780633a46b1a81461024457806342966c6814610257576101a9565b806306fdde03146101ae578063095ea7b3146101cc57806318160ddd146101ec57806323b872dd14610201578063313ce567146102145780633644e51514610229575b600080fd5b6101b66103ed565b6040516101c39190611aa6565b60405180910390f35b6101df6101da3660046118eb565b610480565b6040516101c391906119f0565b6101f461049d565b6040516101c391906119fb565b6101df61020f366004611847565b6104a3565b61021c61053c565b6040516101c39190612159565b6101f4610541565b6101df61023f3660046118eb565b610550565b6101f46102523660046118eb565b6105a4565b61026a6102653660046119a9565b6105ee565b005b61027f61027a3660046117fb565b610602565b6040516101c391906119dc565b61026a61029a3660046117fb565b610623565b6102b26102ad3660046117fb565b610634565b6040516101c39190612148565b6101f46102cd3660046117fb565b61065c565b6102e56102e03660046118eb565b610677565b6040516101c39190612167565b61026a6103003660046118eb565b61068b565b6101f46103133660046117fb565b6106de565b6101f46103263660046119a9565b6106ff565b6101b661072b565b6101f46103413660046117fb565b61073a565b6101df6103543660046118eb565b6107cf565b6101df6103673660046118eb565b610848565b6102e561037a3660046117fb565b61085c565b61026a61038d366004611914565b61086a565b61026a6103a0366004611882565b610928565b6103ad610a0a565b6040516101c39190612126565b6101f46103c8366004611815565b610a1a565b6103e06103db36600461196b565b610a45565b6040516101c39190612100565b6060600380546103fc906121cf565b80601f0160208091040260200160405190810160405280929190818152602001828054610428906121cf565b80156104755780601f1061044a57610100808354040283529160200191610475565b820191906000526020600020905b81548152906001019060200180831161045857829003601f168201915b505050505090505b90565b600061049461048d610c7d565b8484610c81565b50600192915050565b60025490565b60006104b0848484610d35565b6001600160a01b0384166000908152600160205260408120816104d1610c7d565b6001600160a01b03166001600160a01b031681526020019081526020016000205490508281101561051d5760405162461bcd60e51b815260040161051490611e51565b60405180910390fd5b61053185610529610c7d565b858403610c81565b506001949350505050565b601290565b600061054b610e59565b905090565b600061049461055d610c7d565b84846001600061056b610c7d565b6001600160a01b03908116825260208083019390935260409182016000908120918b168152925290205461059f9190612180565b610c81565b60004382106105c55760405162461bcd60e51b815260040161051490611bb9565b6001600160a01b03831660009081526007602052604090206105e79083610f1c565b9392505050565b6105ff6105f9610c7d565b82610ff5565b50565b6001600160a01b03808216600090815260066020526040902054165b919050565b6105ff61062e610c7d565b82610fff565b6001600160a01b03811660009081526007602052604081205461065690610c25565b92915050565b6001600160a01b031660009081526020819052604090205490565b60006105e761068684846105a4565b61107f565b6000610699836103c8610c7d565b9050818110156106bb5760405162461bcd60e51b815260040161051490611f30565b6106cf836106c7610c7d565b848403610c81565b6106d98383610ff5565b505050565b6001600160a01b0381166000908152600560205260408120610656906110ad565b60004382106107205760405162461bcd60e51b815260040161051490611bb9565b610656600883610f1c565b6060600480546103fc906121cf565b6001600160a01b03811660009081526007602052604081205480156107bc576001600160a01b038316600090815260076020526040902061077c6001836121b8565b8154811061079a57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b03166107bf565b60005b6001600160e01b03169392505050565b600080600160006107de610c7d565b6001600160a01b039081168252602080830193909352604091820160009081209188168152925290205490508281101561082a5760405162461bcd60e51b815260040161051490612084565b61083e610835610c7d565b85858403610c81565b5060019392505050565b6000610494610855610c7d565b8484610d35565b60006106566106868361073a565b8342111561088a5760405162461bcd60e51b815260040161051490611bf0565b60006108ec6108e47fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf8989896040516020016108c99493929190611a38565b604051602081830303815290604052805190602001206110b1565b8585856110c4565b90506108f7816110ec565b86146109155760405162461bcd60e51b815260040161051490611ca0565b61091f8188610fff565b50505050505050565b834211156109485760405162461bcd60e51b815260040161051490611d19565b60007f00000000000000000000000000000000000000000000000000000000000000008888886109778c6110ec565b8960405160200161098d96959493929190611a04565b60405160208183030381529060405280519060200120905060006109b0826110b1565b905060006109c0828787876110c4565b9050896001600160a01b0316816001600160a01b0316146109f35760405162461bcd60e51b815260040161051490611e1a565b6109fe8a8a8a610c81565b50505050505050505050565b6b019d971e4fe8401e7400000081565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b610a4d6117bc565b6001600160a01b0383166000908152600760205260409020805463ffffffff8416908110610a8b57634e487b7160e01b600052603260045260246000fd5b60009182526020918290206040805180820190915291015463ffffffff8116825264010000000090046001600160e01b0316918101919091529392505050565b610ad58282610b20565b610add61111e565b6001600160e01b0316610aee61049d565b1115610b0c5760405162461bcd60e51b815260040161051490611e99565b610b1a6008610bec8361112e565b50505050565b6001600160a01b038216610b465760405162461bcd60e51b8152600401610514906120c9565b610b52600083836106d9565b8060026000828254610b649190612180565b90915550506001600160a01b03821660009081526020819052604081208054839290610b91908490612180565b90915550506040516001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bd49085906119fb565b60405180910390a3610be8600083836112df565b5050565b60006105e78284612180565b60006001600160e01b03821115610c215760405162461bcd60e51b815260040161051490611ee9565b5090565b600063ffffffff821115610c215760405162461bcd60e51b815260040161051490611ffa565b610c568383836106d9565b6106d9610c6284610602565b610c6b84610602565b836112ea565b60006105e782846121b8565b3390565b6001600160a01b038316610ca75760405162461bcd60e51b815260040161051490612040565b6001600160a01b038216610ccd5760405162461bcd60e51b815260040161051490611cd7565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610d289085906119fb565b60405180910390a3505050565b6001600160a01b038316610d5b5760405162461bcd60e51b815260040161051490611fb5565b6001600160a01b038216610d815760405162461bcd60e51b815260040161051490611b30565b610d8c8383836106d9565b6001600160a01b03831660009081526020819052604090205481811015610dc55760405162461bcd60e51b815260040161051490611d50565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610dfc908490612180565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610e4691906119fb565b60405180910390a3610b1a8484846112df565b60007f0000000000000000000000000000000000000000000000000000000000000000461415610eaa57507f000000000000000000000000000000000000000000000000000000000000000061047d565b610f157f00000000000000000000000000000000000000000000000000000000000000007f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000611415565b905061047d565b8154600090815b81811015610f8e576000610f37828461144f565b905084868281548110610f5a57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff161115610f7a57809250610f88565b610f85816001612180565b91505b50610f23565b8115610fe05784610fa06001846121b8565b81548110610fbe57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b0316610fe3565b60005b6001600160e01b031695945050505050565b610be8828261146a565b600061100a83610602565b905060006110178461065c565b6001600160a01b0385811660008181526006602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4610b1a8284836112ea565b60006bffffffffffffffffffffffff821115610c215760405162461bcd60e51b815260040161051490611b73565b5490565b60006106566110be610e59565b83611482565b60008060006110d5878787876114b5565b915091506110e281611595565b5095945050505050565b6001600160a01b038116600090815260056020526040812061110d816110ad565b9150611118816116c2565b50919050565b6b019d971e4fe8401e7400000090565b82546000908190801561118757856111476001836121b8565b8154811061116557634e487b7160e01b600052603260045260246000fd5b60009182526020909120015464010000000090046001600160e01b031661118a565b60005b6001600160e01b031692506111a383858763ffffffff16565b91506000811180156111ef575043866111bd6001846121b8565b815481106111db57634e487b7160e01b600052603260045260246000fd5b60009182526020909120015463ffffffff16145b1561125d576111fd82610bf8565b866112096001846121b8565b8154811061122757634e487b7160e01b600052603260045260246000fd5b9060005260206000200160000160046101000a8154816001600160e01b0302191690836001600160e01b031602179055506112d6565b85604051806040016040528061127243610c25565b63ffffffff16815260200161128685610bf8565b6001600160e01b039081169091528254600181018455600093845260209384902083519101805493909401519091166401000000000263ffffffff91821663ffffffff1990931692909217161790555b50935093915050565b6106d9838383610c4b565b816001600160a01b0316836001600160a01b03161415801561130c5750600081115b156106d9576001600160a01b03831615611391576001600160a01b0383166000908152600760205260408120819061134790610c718561112e565b91509150846001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161138692919061213a565b60405180910390a250505b6001600160a01b038216156106d9576001600160a01b038216600090815260076020526040812081906113c790610bec8561112e565b91509150836001600160a01b03167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724838360405161140692919061213a565b60405180910390a25050505050565b60008383834630604051602001611430959493929190611a5c565b6040516020818303038152906040528051906020012090509392505050565b600061145e6002848418612198565b6105e790848416612180565b61147482826116cb565b610b1a6008610c718361112e565b600082826040516020016114979291906119c1565b60405160208183030381529060405280519060200120905092915050565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156114ec575060009050600361158c565b8460ff16601b1415801561150457508460ff16601c14155b15611515575060009050600461158c565b60006001878787876040516000815260200160405260405161153a9493929190611a88565b6020604051602081039080840390855afa15801561155c573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166115855760006001925092505061158c565b9150600090505b94509492505050565b60008160048111156115b757634e487b7160e01b600052602160045260246000fd5b14156115c2576105ff565b60018160048111156115e457634e487b7160e01b600052602160045260246000fd5b14156116025760405162461bcd60e51b815260040161051490611af9565b600281600481111561162457634e487b7160e01b600052602160045260246000fd5b14156116425760405162461bcd60e51b815260040161051490611c69565b600381600481111561166457634e487b7160e01b600052602160045260246000fd5b14156116825760405162461bcd60e51b815260040161051490611d96565b60048160048111156116a457634e487b7160e01b600052602160045260246000fd5b14156105ff5760405162461bcd60e51b815260040161051490611dd8565b80546001019055565b6001600160a01b0382166116f15760405162461bcd60e51b815260040161051490611f74565b6116fd826000836106d9565b6001600160a01b038216600090815260208190526040902054818110156117365760405162461bcd60e51b815260040161051490611c27565b6001600160a01b03831660009081526020819052604081208383039055600280548492906117659084906121b8565b90915550506040516000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef906117a89086906119fb565b60405180910390a36106d9836000846112df565b604080518082019091526000808252602082015290565b80356001600160a01b038116811461061e57600080fd5b803560ff8116811461061e57600080fd5b60006020828403121561180c578081fd5b6105e7826117d3565b60008060408385031215611827578081fd5b611830836117d3565b915061183e602084016117d3565b90509250929050565b60008060006060848603121561185b578081fd5b611864846117d3565b9250611872602085016117d3565b9150604084013590509250925092565b600080600080600080600060e0888a03121561189c578283fd5b6118a5886117d3565b96506118b3602089016117d3565b955060408801359450606088013593506118cf608089016117ea565b925060a0880135915060c0880135905092959891949750929550565b600080604083850312156118fd578182fd5b611906836117d3565b946020939093013593505050565b60008060008060008060c0878903121561192c578182fd5b611935876117d3565b95506020870135945060408701359350611951606088016117ea565b92506080870135915060a087013590509295509295509295565b6000806040838503121561197d578182fd5b611986836117d3565b9150602083013563ffffffff8116811461199e578182fd5b809150509250929050565b6000602082840312156119ba578081fd5b5035919050565b61190160f01b81526002810192909252602282015260420190565b6001600160a01b0391909116815260200190565b901515815260200190565b90815260200190565b9586526001600160a01b0394851660208701529290931660408501526060840152608083019190915260a082015260c00190565b9384526001600160a01b039290921660208401526040830152606082015260800190565b9485526020850193909352604084019190915260608301526001600160a01b0316608082015260a00190565b93845260ff9290921660208401526040830152606082015260800190565b6000602080835283518082850152825b81811015611ad257858101830151858201604001528201611ab6565b81811115611ae35783604083870101525b50601f01601f1916929092016040019392505050565b60208082526018908201527f45434453413a20696e76616c6964207369676e61747572650000000000000000604082015260600190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526026908201527f53616665436173743a2076616c756520646f65736e27742066697420696e203960408201526536206269747360d01b606082015260800190565b6020808252601f908201527f4552433230566f7465733a20626c6f636b206e6f7420796574206d696e656400604082015260600190565b6020808252601d908201527f4552433230566f7465733a207369676e61747572652065787069726564000000604082015260600190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b6020808252601f908201527f45434453413a20696e76616c6964207369676e6174757265206c656e67746800604082015260600190565b60208082526019908201527f4552433230566f7465733a20696e76616c6964206e6f6e636500000000000000604082015260600190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601d908201527f45524332305065726d69743a206578706972656420646561646c696e65000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604082015261756560f01b606082015260800190565b60208082526022908201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604082015261756560f01b606082015260800190565b6020808252601e908201527f45524332305065726d69743a20696e76616c6964207369676e61747572650000604082015260600190565b60208082526028908201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616040820152676c6c6f77616e636560c01b606082015260800190565b60208082526030908201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60408201526f766572666c6f77696e6720766f74657360801b606082015260800190565b60208082526027908201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326040820152663234206269747360c81b606082015260800190565b60208082526024908201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604082015263616e636560e01b606082015260800190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526026908201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360408201526532206269747360d01b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b815163ffffffff1681526020918201516001600160e01b03169181019190915260400190565b6001600160e01b0391909116815260200190565b918252602082015260400190565b63ffffffff91909116815260200190565b60ff91909116815260200190565b6bffffffffffffffffffffffff91909116815260200190565b6000821982111561219357612193612204565b500190565b6000826121b357634e487b7160e01b81526012600452602481fd5b500490565b6000828210156121ca576121ca612204565b500390565b6002810460018216806121e357607f821691505b6020821081141561111857634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052601160045260246000fdfea2646970667358221220e551f6157c64f0135d05d3bfe44f9168b2292ec8bb8a4dd6e9b6a886dcb6307364736f6c63430008000033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724