[ { "inputs": [ { "internalType": "string", "name": "name_", "type": "string" }, { "internalType": "string", "name": "symbol_", "type": "string" }, { "internalType": "uint256", "name": "initialSupplyToSet", "type": "uint256" }, { "internalType": "uint8", "name": "decimalsToSet", "type": "uint8" }, { "internalType": "address", "name": "tokenOwner", "type": "address" }, { "components": [ { "internalType": "bool", "name": "_isMintable", "type": "bool" }, { "internalType": "bool", "name": "_isBurnable", "type": "bool" }, { "internalType": "bool", "name": "_isDocumentAllowed", "type": "bool" }, { "internalType": "bool", "name": "_isMaxAmountOfTokensSet", "type": "bool" }, { "internalType": "bool", "name": "_isTaxable", "type": "bool" }, { "internalType": "bool", "name": "_isDeflationary", "type": "bool" } ], "internalType": "struct DefiToken.ERC20ConfigProps", "name": "customConfigProps", "type": "tuple" }, { "internalType": "uint256", "name": "maxTokenAmount", "type": "uint256" }, { "internalType": "string", "name": "newDocumentUri", "type": "string" }, { "internalType": "address", "name": "_taxAddress", "type": "address" }, { "internalType": "uint256", "name": "_taxBPS", "type": "uint256" }, { "internalType": "uint256", "name": "_deflationBPS", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "BurningNotEnabled", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "addr", "type": "address" } ], "name": "DestBalanceExceedsMaxAllowed", "type": "error" }, { "inputs": [], "name": "DocumentUriNotAllowed", "type": "error" }, { "inputs": [ { "internalType": "uint8", "name": "decimals", "type": "uint8" } ], "name": "InvalidDecimals", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "bps", "type": "uint256" } ], "name": "InvalidDeflationBPS", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "maxTokenAmount", "type": "uint256" } ], "name": "InvalidMaxTokenAmount", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "bps", "type": "uint256" } ], "name": "InvalidTaxBPS", "type": "error" }, { "inputs": [], "name": "MaxTokenAmountNotAllowed", "type": "error" }, { "inputs": [], "name": "MaxTokenAmountPerAddrLtPrevious", "type": "error" }, { "inputs": [], "name": "MintingNotEnabled", "type": "error" }, { "inputs": [], "name": "TokenIsNotDeflationary", "type": "error" }, { "inputs": [], "name": "TokenIsNotTaxable", "type": "error" }, { "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": "uint256", "name": "_deflationBPS", "type": "uint256" } ], "name": "DeflationConfigSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "newDocUri", "type": "string" } ], "name": "DocumentUriSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "newMaxTokenAmount", "type": "uint256" } ], "name": "MaxTokenAmountPerSet", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "_taxAddress", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "_taxBPS", "type": "uint256" } ], "name": "TaxConfigSet", "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": "VERSION", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": [], "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": [], "name": "deflationBPS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "documentUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "initialDocumentUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initialMaxTokenAmountPerAddress", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initialSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "initialTokenOwner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isBurnable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isDeflationary", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isDocumentUriAllowed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isMaxAmountOfTokensSet", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isMintable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isTaxable", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxTokenAmountPerAddress", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_deflationBPS", "type": "uint256" } ], "name": "setDeflationConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "newDocumentUri", "type": "string" } ], "name": "setDocumentUri", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newMaxTokenAmount", "type": "uint256" } ], "name": "setMaxTokenAmountPerAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_taxAddress", "type": "address" }, { "internalType": "uint256", "name": "_taxBPS", "type": "uint256" } ], "name": "setTaxConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "taxAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "taxBPS", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6101006040523480156200001257600080fd5b5060405162002497380380620024978339810160408190526200003591620006b8565b8a8a60036200004583826200085c565b5060046200005482826200085c565b505050620000716200006b620002bf60201b60201c565b620002c3565b856060015115620000a65784600003620000a6576040516364824b8d60e01b8152600481018690526024015b60405180910390fd5b60128860ff161115620000d25760405163ca95039160e01b815260ff891660048201526024016200009d565b8560800151156200013c5761138882111562000105576040516365a0074b60e11b8152600481018390526024016200009d565b6200011b836200031560201b62000de51760201c565b600a80546001600160a01b0319166001600160a01b038516179055600b8290555b8560a001511562000175576113888111156200016f576040516305dba32960e51b8152600481018290526024016200009d565b600c8190555b6200018b876200031560201b62000de51760201c565b608089905260a08590526006620001a385826200085c565b506001600160a01b03871660c05260ff881660e052855160098054602089015160408a015160608b015160808c015160a08d015161ffff1990951696151561ff00191696909617610100931515939093029290921763ffff00001916620100009115159190910263ff0000001916176301000000911515919091021761ffff60201b19166401000000009315159390930260ff60281b191692909217650100000000009215159290920291909117905560076200026185826200085c565b506008859055881562000292576200029287620002808a600a62000a3d565b6200028c908c62000a55565b6200032f565b6001600160a01b0387163314620002ae57620002ae87620003f2565b505050505050505050505062000a85565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b8060601b6200032c5763d92e233d6000526004601cfd5b50565b6001600160a01b038216620003875760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016200009d565b80600260008282546200039b919062000a6f565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b620003fc62000417565b6200032c816200047560201b62000dfb1760201c565b505050565b6005546001600160a01b03163314620004735760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200009d565b565b6200047f62000417565b6001600160a01b038116620004e65760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016200009d565b6200032c81620002c3565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620005325762000532620004f1565b604052919050565b600082601f8301126200054c57600080fd5b81516001600160401b03811115620005685762000568620004f1565b60206200057e601f8301601f1916820162000507565b82815285828487010111156200059357600080fd5b60005b83811015620005b357858101830151828201840152820162000596565b506000928101909101919091529392505050565b805160ff81168114620005d957600080fd5b919050565b80516001600160a01b0381168114620005d957600080fd5b80518015158114620005d957600080fd5b600060c082840312156200061a57600080fd5b60405160c081016001600160401b03811182821017156200063f576200063f620004f1565b6040529050806200065083620005f6565b81526200066060208401620005f6565b60208201526200067360408401620005f6565b60408201526200068660608401620005f6565b60608201526200069960808401620005f6565b6080820152620006ac60a08401620005f6565b60a08201525092915050565b60008060008060008060008060008060006102008c8e031215620006db57600080fd5b8b516001600160401b03811115620006f257600080fd5b620007008e828f016200053a565b60208e0151909c5090506001600160401b038111156200071f57600080fd5b6200072d8e828f016200053a565b9a505060408c015198506200074560608d01620005c7565b97506200075560808d01620005de565b9650620007668d60a08e0162000607565b6101608d01516101808e015191975095506001600160401b038111156200078c57600080fd5b6200079a8e828f016200053a565b945050620007ac6101a08d01620005de565b92506101c08c015191506101e08c015190509295989b509295989b9093969950565b600181811c90821680620007e357607f821691505b6020821081036200080457634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200041257600081815260208120601f850160051c81016020861015620008335750805b601f850160051c820191505b8181101562000854578281556001016200083f565b505050505050565b81516001600160401b03811115620008785762000878620004f1565b6200089081620008898454620007ce565b846200080a565b602080601f831160018114620008c85760008415620008af5750858301515b600019600386901b1c1916600185901b17855562000854565b600085815260208120601f198616915b82811015620008f957888601518255948401946001909101908401620008d8565b5085821015620009185787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b808511156200097f57816000190482111562000963576200096362000928565b808516156200097157918102915b93841c939080029062000943565b509250929050565b600082620009985750600162000a37565b81620009a75750600062000a37565b8160018114620009c05760028114620009cb57620009eb565b600191505062000a37565b60ff841115620009df57620009df62000928565b50506001821b62000a37565b5060208310610133831016604e8410600b841016171562000a10575081810a62000a37565b62000a1c83836200093e565b806000190482111562000a335762000a3362000928565b0290505b92915050565b600062000a4e60ff84168362000987565b9392505050565b808202811582820484141762000a375762000a3762000928565b8082018082111562000a375762000a3762000928565b60805160a05160c05160e0516119d862000abf60003960006102f401526000610422015260006104650152600061032301526119d86000f3fe608060405234801561001057600080fd5b506004361061025c5760003560e01c8063883356d911610145578063a9d86685116100bd578063dd62ed3e1161008c578063f2fde38b11610071578063f2fde38b14610543578063f820f56714610556578063ffa1ad741461056757600080fd5b8063dd62ed3e146104f7578063f19c4e3b1461053057600080fd5b8063a9d86685146104c0578063b7bda68f146104c8578063d48e4127146104db578063d8f67851146104e457600080fd5b806395d89b4111610114578063a457c2d7116100f9578063a457c2d714610487578063a476df611461049a578063a9059cbb146104ad57600080fd5b806395d89b4114610458578063a32f69761461046057600080fd5b8063883356d9146103e85780638da5cb5b146103f85780638dac71911461041d5780638e8c10a21461044457600080fd5b806339509351116101d85780634ac0bc32116101a75780635a3990ce1161018c5780635a3990ce146103a557806370a08231146103b7578063715018a6146103e057600080fd5b80634ac0bc3214610389578063542e96671461039c57600080fd5b8063395093511461034557806340c10f191461035857806342966c681461036b57806346b45af71461037e57600080fd5b806318160ddd1161022f5780632fa782eb116102145780632fa782eb146102e4578063313ce567146102ed578063378dc3dc1461031e57600080fd5b806318160ddd146102bf57806323b872dd146102d157600080fd5b806302252c4d14610261578063044ab74e1461027657806306fdde0314610294578063095ea7b31461029c575b600080fd5b61027461026f3660046115ec565b6105a3565b005b61027e610665565b60405161028b9190611605565b60405180910390f35b61027e6106f3565b6102af6102aa36600461166a565b610785565b604051901515815260200161028b565b6002545b60405190815260200161028b565b6102af6102df366004611694565b61079f565b6102c3600b5481565b60405160ff7f000000000000000000000000000000000000000000000000000000000000000016815260200161028b565b6102c37f000000000000000000000000000000000000000000000000000000000000000081565b6102af61035336600461166a565b610887565b61027461036636600461166a565b6108c6565b6102746103793660046115ec565b610981565b60095460ff166102af565b600954640100000000900460ff166102af565b6102c3600c5481565b6009546301000000900460ff166102af565b6102c36103c53660046116d0565b6001600160a01b031660009081526020819052604090205490565b6102746109d7565b600954610100900460ff166102af565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161028b565b6104057f000000000000000000000000000000000000000000000000000000000000000081565b60095465010000000000900460ff166102af565b61027e6109e9565b6102c37f000000000000000000000000000000000000000000000000000000000000000081565b6102af61049536600461166a565b6109f8565b6102746104a8366004611701565b610aad565b6102af6104bb36600461166a565b610b33565b61027e610c14565b600a54610405906001600160a01b031681565b6102c360085481565b6102746104f23660046115ec565b610c21565b6102c36105053660046117b2565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b61027461053e36600461166a565b610ce0565b6102746105513660046116d0565b610dd4565b60095462010000900460ff166102af565b61027e6040518060400160405280600881526020017f646566695f765f3100000000000000000000000000000000000000000000000081525081565b6105ab610e88565b6009546301000000900460ff166105ee576040517f6273340f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6008548111610629576040517fa43d2d7600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60088190556040518181527f2905481c6fd1a037492016c4760435a52203d82a6f34dc3de40f464c1bf42d59906020015b60405180910390a150565b60078054610672906117e5565b80601f016020809104026020016040519081016040528092919081815260200182805461069e906117e5565b80156106eb5780601f106106c0576101008083540402835291602001916106eb565b820191906000526020600020905b8154815290600101906020018083116106ce57829003601f168201915b505050505081565b606060038054610702906117e5565b80601f016020809104026020016040519081016040528092919081815260200182805461072e906117e5565b801561077b5780601f106107505761010080835404028352916020019161077b565b820191906000526020600020905b81548152906001019060200180831161075e57829003601f168201915b5050505050905090565b600033610793818585610ee2565b60019150505b92915050565b6000806107ac858461103b565b905060006107b984611085565b90506000816107c88487611835565b6107d29190611835565b6009549091506301000000900460ff1615610843576008548161080a886001600160a01b031660009081526020819052604090205490565b6108149190611848565b11156108435760405163f6202a8f60e01b81526001600160a01b03871660048201526024015b60405180910390fd5b821561086157600a546108619088906001600160a01b0316856110b4565b81156108715761087187836112a3565b61087c878783611409565b979650505050505050565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919061079390829086906108c1908790611848565b610ee2565b6108ce610e88565b60095460ff1661090a576040517f3990ac6800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6009546301000000900460ff1615610973576008548161093f846001600160a01b031660009081526020819052604090205490565b6109499190611848565b11156109735760405163f6202a8f60e01b81526001600160a01b038316600482015260240161083a565b61097d8282611422565b5050565b610989610e88565b600954610100900460ff166109ca576040517f6cb5913900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6109d433826112a3565b50565b6109df610e88565b6109e76114e1565b565b606060048054610702906117e5565b3360008181526001602090815260408083206001600160a01b038716845290915281205490919083811015610a955760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760448201527f207a65726f000000000000000000000000000000000000000000000000000000606482015260840161083a565b610aa28286868403610ee2565b506001949350505050565b610ab5610e88565b60095462010000900460ff16610af7576040517f70a43fce00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6007610b0382826118a9565b507f4456a0b562609d67398ddb488f136db285cd3c92343e0a7ba684925669237ade8160405161065a9190611605565b600080610b40338461103b565b90506000610b4d84611085565b9050600081610b5c8487611835565b610b669190611835565b6009549091506301000000900460ff1615610bd25760085481610b9e886001600160a01b031660009081526020819052604090205490565b610ba89190611848565b1115610bd25760405163f6202a8f60e01b81526001600160a01b038716600482015260240161083a565b8215610bf057600a54610bf09033906001600160a01b0316856110b4565b8115610c0057610c0033836112a3565b610c0a86826114f3565b9695505050505050565b60068054610672906117e5565b610c29610e88565b60095465010000000000900460ff16610c6e576040517fcd9e529800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611388811115610cad576040517fbb7465200000000000000000000000000000000000000000000000000000000081526004810182905260240161083a565b600c81905560405181907fc1ff65ee907dc079b64ed9913d53f4bd593bd6ebd9b2a2708db2916d49e17ec390600090a250565b610ce8610e88565b600954640100000000900460ff16610d2c576040517fc8a478a500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611388811115610d6b576040517fcb400e960000000000000000000000000000000000000000000000000000000081526004810182905260240161083a565b610d7482610de5565b600a805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b038416908117909155600b8290556040518291907facc44e32fd5ca4240f6dbe6e8cf4eb49349c17c5ce5f80f1919a9c97b50d398a90600090a35050565b610ddc610e88565b6109d481610dfb565b8060601b6109d45763d92e233d6000526004601cfd5b610e03610e88565b6001600160a01b038116610e7f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f6464726573730000000000000000000000000000000000000000000000000000606482015260840161083a565b6109d481611501565b6005546001600160a01b031633146109e75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161083a565b6001600160a01b038316610f5d5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161083a565b6001600160a01b038216610fd95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f20616464726560448201527f7373000000000000000000000000000000000000000000000000000000000000606482015260840161083a565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6000600b5460001415801561105e5750600a546001600160a01b03848116911614155b1561079957612710600b54836110749190611969565b61107e9190611980565b9392505050565b6000600c546000146110af57612710600c54836110a29190611969565b6110ac9190611980565b90505b919050565b6001600160a01b0383166111305760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f20616460448201527f6472657373000000000000000000000000000000000000000000000000000000606482015260840161083a565b6001600160a01b0382166111ac5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201527f6573730000000000000000000000000000000000000000000000000000000000606482015260840161083a565b6001600160a01b0383166000908152602081905260409020548181101561123b5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e742065786365656473206260448201527f616c616e63650000000000000000000000000000000000000000000000000000606482015260840161083a565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b50505050565b6001600160a01b03821661131f5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360448201527f7300000000000000000000000000000000000000000000000000000000000000606482015260840161083a565b6001600160a01b038216600090815260208190526040902054818110156113ae5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60448201527f6365000000000000000000000000000000000000000000000000000000000000606482015260840161083a565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161102e565b505050565b600033611417858285611560565b610aa28585856110b4565b6001600160a01b0382166114785760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161083a565b806002600082825461148a9190611848565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b6114e9610e88565b6109e76000611501565b6000336107938185856110b4565b600580546001600160a01b0383811673ffffffffffffffffffffffffffffffffffffffff19831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03838116600090815260016020908152604080832093861683529290522054600019811461129d57818110156115df5760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604482015260640161083a565b61129d8484848403610ee2565b6000602082840312156115fe57600080fd5b5035919050565b600060208083528351808285015260005b8181101561163257858101830151858201604001528201611616565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146110af57600080fd5b6000806040838503121561167d57600080fd5b61168683611653565b946020939093013593505050565b6000806000606084860312156116a957600080fd5b6116b284611653565b92506116c060208501611653565b9150604084013590509250925092565b6000602082840312156116e257600080fd5b61107e82611653565b634e487b7160e01b600052604160045260246000fd5b60006020828403121561171357600080fd5b813567ffffffffffffffff8082111561172b57600080fd5b818401915084601f83011261173f57600080fd5b813581811115611751576117516116eb565b604051601f8201601f19908116603f01168101908382118183101715611779576117796116eb565b8160405282815287602084870101111561179257600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080604083850312156117c557600080fd5b6117ce83611653565b91506117dc60208401611653565b90509250929050565b600181811c908216806117f957607f821691505b60208210810361181957634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156107995761079961181f565b808201808211156107995761079961181f565b601f82111561140457600081815260208120601f850160051c810160208610156118825750805b601f850160051c820191505b818110156118a15782815560010161188e565b505050505050565b815167ffffffffffffffff8111156118c3576118c36116eb565b6118d7816118d184546117e5565b8461185b565b602080601f83116001811461190c57600084156118f45750858301515b600019600386901b1c1916600185901b1785556118a1565b600085815260208120601f198616915b8281101561193b5788860151825594840194600190910190840161191c565b50858210156119595787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176107995761079961181f565b60008261199d57634e487b7160e01b600052601260045260246000fd5b50049056fea26469706673582212204acce1e3f69ac548603093e2aec34261c26e17c8d1229abf947fe0222ac83f9964736f6c6343000811003300000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000240000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000000000000000000000000000000000000000000120000000000000000000000009b82574d09230f0a68b96972317c0d3c37c1870900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000280000000000000000000000000f3241cd5894e26a1646e491f33911eedfb823277000000000000000000000000000000000000000000000000000000000000000300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000019566974616c696b2072657761726473206176616c616e63686500000000000000000000000000000000000000000000000000000000000000000000000000000656726176617800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000