[ { "inputs": [ { "internalType": "uint256", "name": "initialSupply", "type": "uint256" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "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": "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": [], "name": "EIP712DomainChanged", "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": "CLOCK_MODE", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "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": "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": "clock", "outputs": [ { "internalType": "uint48", "name": "", "type": "uint48" } ], "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": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "timepoint", "type": "uint256" } ], "name": "getPastVotes", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [ { "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": [ { "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": "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" } ]
6101608060405234620000ce57620034c580380380916200002082620000e9565b833960608183019112620000ce578151610180516001600160401b039391929190848111620000ce57826200005791830162000167565b916101a051948511620000ce576200007c9462000075920162000167565b91620001cd565b6040516123db9081620010ca823960805181611db0015260a05181611e6b015260c05181611d7a015260e05181611dff01526101005181611e25015261012051816108150152610140518161083e0152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b601f01601f1916610160908101906001600160401b038211908210176200010f57604052565b620000d3565b604081019081106001600160401b038211176200010f57604052565b60405190620001408262000115565b565b60005b838110620001565750506000910152565b818101518382015260200162000145565b81601f82011215620000ce5780516001600160401b03928382116200010f5760405193601f8301601f19908116603f01168501908111858210176200010f5760405281845260208284010111620000ce57620001ca916020808501910162000142565b90565b909291604051620001de8162000115565b600194858252602080830193603160f81b855282519760018060401b0389116200010f576200021a89620002146003546200034c565b62000389565b82601f8a11600114620002be57988080620002569493620001409b9c600093620002b2575b501b916000199060031b1c191617600355620004ed565b620002618262000c7a565b61012052620002708362000d8a565b61014052815191012060e052519020610100524660a0526200029162000f09565b6080523060c052620002ab601260ff19600c541617600c55565b3362000646565b8801519250386200023f565b600360005298601f1981167fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9060005b81811062000336575090620001409a9b836200025696959493106200031c575b5050811b01600355620004ed565b87015160001960f88460031b161c1916905538806200030e565b878d015183559b86019b918401918601620002ee565b90600182811c921680156200037e575b60208310146200036857565b634e487b7160e01b600052602260045260246000fd5b91607f16916200035c565b601f811162000396575050565b6000906003825260208220906020601f850160051c83019410620003d7575b601f0160051c01915b828110620003cb57505050565b818155600101620003be565b9092508290620003b5565b601f8111620003ef575050565b6000906004825260208220906020601f850160051c8301941062000430575b601f0160051c01915b8281106200042457505050565b81815560010162000417565b90925082906200040e565b601f811162000448575050565b6000906005825260208220906020601f850160051c8301941062000489575b601f0160051c01915b8281106200047d57505050565b81815560010162000470565b909250829062000467565b601f8111620004a1575050565b6000906006825260208220906020601f850160051c83019410620004e2575b601f0160051c01915b828110620004d657505050565b818155600101620004c9565b9092508290620004c0565b80519091906001600160401b0381116200010f576200051981620005136004546200034c565b620003e2565b602080601f83116001146200055857508192936000926200054c575b50508160011b916000199060031b1c191617600455565b01519050388062000535565b6004600052601f198316949091907f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b926000905b878210620005c7575050836001959610620005ad575b505050811b01600455565b015160001960f88460031b161c19169055388080620005a2565b806001859682949686015181550195019301906200058c565b15620005e857565b60405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608490fd5b906001600160a01b0382168015620006f057600254828101809111620006ea57620006e693620006c8926200067b8593600255565b6001600160a01b038216600090815260208181526040808320805487019055518581527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a36200074b565b600254620006e0906001600160e01b031015620005e0565b62000963565b5050565b62000735565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b634e487b7160e01b600052601160045260246000fd5b60096020527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b546001600160a01b0391821660009081526040812054831693929091169081841415806200084f575b620007a6575b50505050565b8290826200080e575b50505081620007c1575b8080620007a0565b6001600160a01b0382166000908152600a60205260409020600080516020620034a583398151915291620007f59162000c0d565b60408051928352602083019190915290a23880620007b9565b600080516020620034a58339815191529160408285620008359452600a6020522062000ae9565b60408051928352602083019190915290a2388181620007af565b508215156200079a565b604080519192919081016001600160401b038111828210176200010f57604052602081935463ffffffff81168352811c910152565b600b5490680100000000000000008210156200010f576001820180600b55821015620008fc57600b600052805160209182015190911b63ffffffff191663ffffffff91909116177f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990910155565b634e487b7160e01b600052603260045260246000fd5b908154680100000000000000008110156200010f5760018101808455811015620008fc57600092835260209283902082519284015190931b63ffffffff191663ffffffff9290921691909117910155565b600b549091811591821562000aab576200097c62000131565b60008152600060208201525b6020810151620009b590620009ad906001600160e01b03165b6001600160e01b031690565b9586620010ad565b9315908162000a84575b501562000a1c57620001409062000a05620009da8562000f75565b600b600052917f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db80190565b9063ffffffff82549181199060201b169116179055565b506200014062000a4562000a3f62000a344362000fdf565b65ffffffffffff1690565b62001047565b62000a7e62000a548562000f75565b62000a6e62000a6262000131565b63ffffffff9094168452565b6001600160e01b03166020830152565b6200088e565b5163ffffffff16905063ffffffff62000aa162000a344362000fdf565b91161438620009bf565b600b60005262000ae37f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db8820162000859565b62000859565b62000988565b90918154918215928360001462000bed5762000b0462000131565b60008152600060208201525b602081015162000b369062000b2e906001600160e01b0316620009a1565b9687620010bb565b9415908162000bc6575b501562000b6d5762000a05620001409262000b5b8662000f75565b92600019019060005260206000200190565b50620001409062000b8662000a3f62000a344362000fdf565b9062000bc062000b968662000f75565b62000bb062000ba462000131565b63ffffffff9095168552565b6001600160e01b03166020840152565b62000912565b5163ffffffff16905063ffffffff62000be362000a344362000fdf565b9116143862000b40565b62000c0762000add60001983018460005260206000200190565b62000b10565b90918154918215928360001462000c5a5762000c2862000131565b60008152600060208201525b602081015162000b369062000c52906001600160e01b0316620009a1565b9687620010ad565b62000c7462000add60001983018460005260206000200190565b62000c34565b908151602080821060001462000c9857505090620001ca9062000e9a565b6001600160401b0382116200010f5762000cbf8262000cb96005546200034c565b6200043b565b80601f831160011462000cff575081929360009262000cf3575b50508160011b916000199060031b1c19161760055560ff90565b01519050388062000cd9565b6005600052601f198316949091907f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db0926000905b87821062000d7157505083600195961062000d57575b505050811b0160055560ff90565b015160001960f88460031b161c1916905538808062000d49565b8060018596829496860151815501950193019062000d33565b908151602080821060001462000da857505090620001ca9062000e9a565b6001600160401b0382116200010f5762000dcf8262000dc96006546200034c565b62000494565b80601f831160011462000e0f575081929360009262000e03575b50508160011b916000199060031b1c19161760065560ff90565b01519050388062000de9565b6006600052601f198316949091907ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f926000905b87821062000e8157505083600195961062000e67575b505050811b0160065560ff90565b015160001960f88460031b161c1916905538808062000e59565b8060018596829496860151815501950193019062000e43565b601f81511162000ec857602081519101516020821062000eb8571790565b6000198260200360031b1b161790565b6044604051809263305a27a960e01b82526020600483015262000efb815180928160248601526020868601910162000142565b601f01601f19168101030190fd5b60e051610100516040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c0810181811060018060401b038211176200010f5760405251902090565b6001600160e01b039081811162000f8a571690565b60405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608490fd5b65ffffffffffff9081811162000ff3571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608490fd5b63ffffffff9081811162001059571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608490fd5b908101809111620006ea5790565b908103908111620006ea579056fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146101b7578063095ea7b3146101b257806318160ddd146101ad57806323b872dd146101a8578063313ce567146101a35780633644e5151461019e57806339509351146101995780633a46b1a8146101945780634bf5d7e91461018f578063587cde1e1461018a5780635c19a95c146101855780636fcfff451461018057806370a082311461017b5780637ecebe001461017657806384b0196e146101715780638e539e8c1461016c57806391ddadf41461016757806395d89b41146101625780639ab24eb01461015d578063a0712d6814610158578063a457c2d714610153578063a9059cbb1461014e578063c3cda52014610149578063d505accf14610144578063dd62ed3e1461013f5763f1127ed81461013a57600080fd5b611017565b610fbf565b610e79565b610d4e565b610d08565b610c5a565b610b80565b610b1e565b610a77565b610a4b565b6108f2565b6107fa565b6107c0565b610786565b61073e565b61071a565b6106df565b61062d565b6104dc565b610484565b610461565b610440565b610375565b610357565b610326565b610210565b919082519283825260005b8481106101e8575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016101c7565b90602061020d9281815201906101bc565b90565b346102f5576000806003193601126102f25760405190806003546102338161109e565b808552916001918083169081156102c8575060011461026d575b6102698561025d81870382611147565b604051918291826101fc565b0390f35b9250600383527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b5b8284106102b057505050810160200161025d8261026961024d565b80546020858701810191909152909301928101610295565b8695506102699693506020925061025d94915060ff191682840152151560051b820101929361024d565b80fd5b600080fd5b600435906001600160a01b03821682036102f557565b602435906001600160a01b03821682036102f557565b346102f55760403660031901126102f55761034c6103426102fa565b602435903361135b565b602060405160018152f35b346102f55760003660031901126102f5576020600254604051908152f35b346102f55760603660031901126102f55761038e6102fa565b610396610310565b6001600160a01b0382166000908152600160209081526040808320338452909152902060443591905492600184016103df575b6103d3935061124d565b60405160018152602090f35b8284106103fb576103f6836103d39503338361135b565b6103c9565b60405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606490fd5b346102f55760003660031901126102f557602060ff600c5416604051908152f35b346102f55760003660031901126102f557602061047c611d77565b604051908152f35b346102f55760403660031901126102f55761049d6102fa565b3360009081526001602090815260408083206001600160a01b038516845290915290205460243581018091116104d75761034c913361135b565b611169565b346102f55760403660031901126102f5576104f56102fa565b6024359061051465ffffffffffff61050c4361225a565b168310611534565b6001600160a01b03166000908152600a60205260408120805492909183600581116105dc575b50905b83821061058b57505081610564575050602060005b6040516001600160e01b039091168152f35b61057f61058691602093600019019060005260206000200190565b5460201c90565b610552565b9092610597818561208a565b908263ffffffff6105bc6105b2858860005260206000200190565b5463ffffffff1690565b1611156105cc5750925b9061053d565b93506105d79061117f565b6105c6565b806105ec6105f29296939661209f565b90611580565b908263ffffffff61060d6105b2858860005260206000200190565b16111561061d5750925b3861053a565b93506106289061117f565b610617565b346102f55760003660031901126102f5574365ffffffffffff61064f4361225a565b160361069a57610269604051610664816110ee565b601d81527f6d6f64653d626c6f636b6e756d6265722666726f6d3d64656661756c740000006020820152604051918291826101fc565b60405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a2062726f6b656e20636c6f636b206d6f64650000006044820152606490fd5b346102f55760203660031901126102f55760206001600160a01b03806107036102fa565b166000526009825260406000205416604051908152f35b346102f55760203660031901126102f55761073c6107366102fa565b33611656565b005b346102f55760203660031901126102f5576001600160a01b0361075f6102fa565b16600052600a60205260206107786040600020546122c1565b63ffffffff60405191168152f35b346102f55760203660031901126102f5576001600160a01b036107a76102fa565b1660005260006020526020604060002054604051908152f35b346102f55760203660031901126102f5576001600160a01b036107e16102fa565b1660005260076020526020604060002054604051908152f35b346102f5576000806003193601126102f2576108a4906108397f0000000000000000000000000000000000000000000000000000000000000000611eb7565b6108627f0000000000000000000000000000000000000000000000000000000000000000611fb0565b91604051916108708361110f565b818352604051948594600f60f81b865261089660209360e08589015260e08801906101bc565b9086820360408801526101bc565b904660608601523060808601528260a086015284820360c08601528080855193848152019401925b8281106108db57505050500390f35b8351855286955093810193928101926001016108cc565b346102f55760203660031901126102f55760043561092165ffffffffffff6109194361225a565b168210611534565b600b5490600082600581116109e4575b50905b82821061098157828061094e575060405160008152602090f35b600b600052602090610586907f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db80161057f565b909161098d818461208a565b600b600052908263ffffffff6109c47f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db985016105b2565b1611156109d45750915b90610934565b92506109df9061117f565b6109ce565b806105ec6109f49295939561209f565b600b600052908263ffffffff610a2b7f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db985016105b2565b161115610a3b5750915b38610931565b9250610a469061117f565b610a35565b346102f55760003660031901126102f5576020610a674361225a565b65ffffffffffff60405191168152f35b346102f5576000806003193601126102f2576040519080600454610a9a8161109e565b808552916001918083169081156102c85750600114610ac3576102698561025d81870382611147565b9250600483527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b828410610b0657505050810160200161025d8261026961024d565b80546020858701810191909152909301928101610aeb565b346102f55760203660031901126102f5576001600160a01b03610b3f6102fa565b16600052600a602052604060002080548015600014610b6657505060405160008152602090f35b602091610b779160001901906114e4565b5054811c610552565b346102f55760203660031901126102f5576004353315610c155780610bb2610bad61073c9360025461118d565b600255565b33600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3610bfa81336115d9565b600254610c10906001600160e01b031015612326565b6119a7565b60405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606490fd5b346102f55760403660031901126102f557610c736102fa565b60243590336000526001602052610ca08160406000209060018060a01b0316600052602052604060002090565b5491808310610cb5576103d39203903361135b565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608490fd5b346102f55760403660031901126102f55761034c610d246102fa565b602435903361124d565b6064359060ff821682036102f557565b6084359060ff821682036102f557565b346102f55760c03660031901126102f557610d676102fa565b60443590602435610d76610d2e565b92804211610e3457610e06610e2f9161073c9560405190610dee82610de06020820195898b8860609194939260808201957fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf835260018060a01b0316602083015260408201520152565b03601f198101845283611147565b610e0160a4359360843593519020611e91565b611b91565b6001600160a01b038116600090815260076020526040902080546001810190915590921461158d565b611656565b60405162461bcd60e51b815260206004820152601d60248201527f4552433230566f7465733a207369676e617475726520657870697265640000006044820152606490fd5b346102f55760e03660031901126102f557610e926102fa565b610e9a610310565b6044359060643592610eaa610d3e565b93804211610f7a57610f62610f7591610de061073c97610f4f610ee88760018060a01b03166000526007602052604060002090815491600183019055565b604080517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c9602082019081526001600160a01b03808c1693830193909352918b166060820152608081018c905260a081019290925260c082019590955292839060e0820190565b610e0160c4359360a43593519020611e91565b6001600160a01b0383811691161461148b565b61135b565b60405162461bcd60e51b815260206004820152601d60248201527f45524332305065726d69743a206578706972656420646561646c696e650000006044820152606490fd5b346102f55760403660031901126102f557602061100e610fdd6102fa565b610fe5610310565b6001600160a01b0391821660009081526001855260408082209290931681526020919091522090565b54604051908152f35b346102f55760403660031901126102f5576110306102fa565b63ffffffff60243581811681036102f55761107a6110809160409460006020875161105a816110ee565b82815201526001600160a01b03166000908152600a6020528590206114e4565b50611512565b8251815190921682526020908101516001600160e01b031690820152f35b90600182811c921680156110ce575b60208310146110b857565b634e487b7160e01b600052602260045260246000fd5b91607f16916110ad565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff82111761110a57604052565b6110d8565b6020810190811067ffffffffffffffff82111761110a57604052565b60c0810190811067ffffffffffffffff82111761110a57604052565b90601f8019910116810190811067ffffffffffffffff82111761110a57604052565b634e487b7160e01b600052601160045260246000fd5b90600182018092116104d757565b919082018092116104d757565b156111a157565b60405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608490fd5b156111f957565b60405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608490fd5b6001600160a01b039291908381168015611308576113069483169061127382151561119a565b6001600160a01b038316600090815260208190526040902085905461129a828210156111f2565b036112b78460018060a01b03166000526000602052604060002090565b556001600160a01b0384166000908152602081815260409182902080548801905590518681527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9190a3611624565b565b60405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608490fd5b6001600160a01b03808216929190831561143a5782169384156113ea57806113d47f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925946113bd6113e59560018060a01b03166000526001602052604060002090565b9060018060a01b0316600052602052604060002090565b556040519081529081906020820190565b0390a3565b60405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608490fd5b60405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b1561149257565b60405162461bcd60e51b815260206004820152601e60248201527f45524332305065726d69743a20696e76616c6964207369676e617475726500006044820152606490fd5b60405190611306826110ee565b80548210156114fc5760005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b9060405161151f816110ee565b602081935463ffffffff81168352811c910152565b1561153b57565b60405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20667574757265206c6f6f6b7570000000000000006044820152606490fd5b919082039182116104d757565b1561159457565b60405162461bcd60e51b815260206004820152601960248201527f4552433230566f7465733a20696e76616c6964206e6f6e6365000000000000006044820152606490fd5b60096020527fec8156718a8372b1db44bb411437d0870f3e3790d4a08526d024ce1b0b668f6b546001600160a01b0391821660009081526040902054611306939290811691166116ca565b6001600160a01b03908116600090815260096020526040808220549383168252902054611306939290821691166116ca565b6113069160018060a01b038092166000928184526009602052806040852054168092856020527f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60408720549660096020526040812094871694856bffffffffffffffffffffffff60a01b82541617905580a45b6001600160a01b038083169392911680841415806118dd575b6116ee575b50505050565b8061175c575b5082611701575b806116e8565b6001600160a01b03166000908152600a602052604090207fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7249161174391611ad8565b60408051928352602083019190915290a23880806116fb565b80600052600a6020527fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a72460406000208054801591826000146118ba576117a06114d7565b6000815260006020820152915b60208301516117cc906001600160e01b03165b6001600160e01b031690565b926117d7898561238b565b94159081611897575b50156118355761180861181f926117f6866121f1565b92600019019060005260206000200190565b9063ffffffff82549181199060201b169116179055565b604080519182526020820192909252a2386116f4565b50611892906118596118546118494361225a565b65ffffffffffff1690565b6122c1565b9061188d611866866121f1565b61187d6118716114d7565b63ffffffff9095168552565b6001600160e01b03166020840152565b61194d565b61181f565b5163ffffffff16905063ffffffff6118b16118494361225a565b911614386117e0565b6118d76118d260001984018360005260206000200190565b611512565b916117ad565b508215156116e3565b600b5490600160401b82101561110a576001820180600b558210156114fc57600b600052805160209182015190911b63ffffffff191663ffffffff91909116177f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990910155565b8054600160401b81101561110a5761196a916001820181556114e4565b61199157815160209283015190921b63ffffffff191663ffffffff92909216919091179055565b634e487b7160e01b600052600060045260246000fd5b600b5490918115918215611aa3576119bd6114d7565b60008152600060208201525b60208101516119eb906119e4906001600160e01b03166117c0565b9586612398565b93159081611a80575b5015611a355761130690611808611a0a856121f1565b600b600052917f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db80190565b50611306611a486118546118494361225a565b611a7b611a54856121f1565b611a6b611a5f6114d7565b63ffffffff9094168452565b6001600160e01b03166020830152565b6118e6565b5163ffffffff16905063ffffffff611a9a6118494361225a565b911614386119f4565b600b600052611ad37f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db88201611512565b6119c9565b909181549182159283600014611b7457611af06114d7565b60008152600060208201525b6020810151611b1e90611b17906001600160e01b03166117c0565b9687612398565b94159081611b51575b5015611b3d57611808611306926117f6866121f1565b50611306906118596118546118494361225a565b5163ffffffff16905063ffffffff611b6b6118494361225a565b91161438611b27565b611b8c6118d260001983018460005260206000200190565b611afc565b9161020d9391611ba093611ce8565b919091611bc8565b60051115611bb257565b634e487b7160e01b600052602160045260246000fd5b611bd181611ba8565b80611bd95750565b611be281611ba8565b60018103611c2f5760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e617475726500000000000000006044820152606490fd5b611c3881611ba8565b60028103611c855760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606490fd5b80611c91600392611ba8565b14611c9857565b60405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608490fd5b9291907f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311611d6b5791608094939160ff602094604051948552168484015260408301526060820152600093849182805260015afa15611d5e5781516001600160a01b03811615611d58579190565b50600190565b50604051903d90823e3d90fd5b50505050600090600390565b307f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03161480611e68575b15611dd2577f000000000000000000000000000000000000000000000000000000000000000090565b60405160208101907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f82527f000000000000000000000000000000000000000000000000000000000000000060408201527f000000000000000000000000000000000000000000000000000000000000000060608201524660808201523060a082015260a08152611e628161112b565b51902090565b507f00000000000000000000000000000000000000000000000000000000000000004614611da9565b604290611e9c611d77565b906040519161190160f01b8352600283015260228201522090565b60ff8114611ef55760ff811690601f8211611ee35760405191611ed9836110ee565b8252602082015290565b604051632cd44ac360e21b8152600490fd5b50604051600554816000611f088361109e565b80835292600190818116908115611f8e5750600114611f2f575b5061020d92500382611147565b6005600090815291507f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db05b848310611f73575061020d935050810160200138611f22565b81935090816020925483858901015201910190918492611f5a565b90506020925061020d94915060ff191682840152151560051b82010138611f22565b60ff8114611fd25760ff811690601f8211611ee35760405191611ed9836110ee565b50604051600654816000611fe58361109e565b80835292600190818116908115611f8e575060011461200b575061020d92500382611147565b6006600090815291507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b84831061204f575061020d935050810160200138611f22565b81935090816020925483858901015201910190918492612036565b8115612074570490565b634e487b7160e01b600052601260045260246000fd5b90808216911860011c81018091116104d75790565b80156121d9578061217261216b61216161215761214d61214361213961212f600161020d9a6000908b60801c806121cd575b508060401c806121c0575b508060201c806121b3575b508060101c806121a6575b508060081c80612199575b508060041c8061218c575b508060021c8061217f575b50821c612178575b811c1b612128818b61206a565b0160011c90565b612128818a61206a565b612128818961206a565b612128818861206a565b612128818761206a565b612128818661206a565b612128818561206a565b809261206a565b906121df565b810161211b565b6002915091019038612113565b6004915091019038612108565b60089150910190386120fd565b60109150910190386120f2565b60209150910190386120e7565b60409150910190386120dc565b915050608090386120d1565b50600090565b90808210156121ec575090565b905090565b6001600160e01b0390818111612205571690565b60405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20326044820152663234206269747360c81b6064820152608490fd5b65ffffffffffff9081811161226d571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203460448201526538206269747360d01b6064820152608490fd5b63ffffffff908181116122d2571690565b60405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b6064820152608490fd5b1561232d57565b60405162461bcd60e51b815260206004820152603060248201527f4552433230566f7465733a20746f74616c20737570706c79207269736b73206f60448201526f766572666c6f77696e6720766f74657360801b6064820152608490fd5b9081039081116104d75790565b9081018091116104d7579056fea2646970667358221220d741394460576075850e0260be5f00e5a873f83c5028d05d80d38f8e6a1c874064736f6c63430008130033dec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7240000000000000000000000000000000000000001431e0fae6d7217caa0000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000954657374205461636f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000045441434f00000000000000000000000000000000000000000000000000000000