[ { "inputs": [ { "internalType": "contract IPool", "name": "pool", "type": "address" } ], "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": "fromUser", "type": "address" }, { "indexed": true, "internalType": "address", "name": "toUser", "type": "address" }, { "indexed": true, "internalType": "address", "name": "asset", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "BorrowAllowanceDelegated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "currentBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "balanceIncrease", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "avgStableRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newTotalSupply", "type": "uint256" } ], "name": "Burn", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "underlyingAsset", "type": "address" }, { "indexed": true, "internalType": "address", "name": "pool", "type": "address" }, { "indexed": false, "internalType": "address", "name": "incentivesController", "type": "address" }, { "indexed": false, "internalType": "uint8", "name": "debtTokenDecimals", "type": "uint8" }, { "indexed": false, "internalType": "string", "name": "debtTokenName", "type": "string" }, { "indexed": false, "internalType": "string", "name": "debtTokenSymbol", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "params", "type": "bytes" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "type": "address" }, { "indexed": true, "internalType": "address", "name": "onBehalfOf", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "currentBalance", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "balanceIncrease", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "avgStableRate", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "newTotalSupply", "type": "uint256" } ], "name": "Mint", "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": "DEBT_TOKEN_REVISION", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DELEGATION_WITH_SIG_TYPEHASH", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "EIP712_REVISION", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "POOL", "outputs": [ { "internalType": "contract IPool", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "UNDERLYING_ASSET_ADDRESS", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegatee", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approveDelegation", "outputs": [], "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": "fromUser", "type": "address" }, { "internalType": "address", "name": "toUser", "type": "address" } ], "name": "borrowAllowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "burn", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "delegator", "type": "address" }, { "internalType": "address", "name": "delegatee", "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": "delegationWithSig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getAverageStableRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getIncentivesController", "outputs": [ { "internalType": "contract IAaveIncentivesController", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getSupplyData", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint40", "name": "", "type": "uint40" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalSupplyAndAvgRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getTotalSupplyLastUpdated", "outputs": [ { "internalType": "uint40", "name": "", "type": "uint40" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getUserLastUpdated", "outputs": [ { "internalType": "uint40", "name": "", "type": "uint40" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" } ], "name": "getUserStableRate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "contract IPool", "name": "initializingPool", "type": "address" }, { "internalType": "address", "name": "underlyingAsset", "type": "address" }, { "internalType": "contract IAaveIncentivesController", "name": "incentivesController", "type": "address" }, { "internalType": "uint8", "name": "debtTokenDecimals", "type": "uint8" }, { "internalType": "string", "name": "debtTokenName", "type": "string" }, { "internalType": "string", "name": "debtTokenSymbol", "type": "string" }, { "internalType": "bytes", "name": "params", "type": "bytes" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "user", "type": "address" }, { "internalType": "address", "name": "onBehalfOf", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "uint256", "name": "rate", "type": "uint256" } ], "name": "mint", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "user", "type": "address" } ], "name": "principalBalanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract IAaveIncentivesController", "name": "controller", "type": "address" } ], "name": "setIncentivesController", "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": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" } ]
60e08060405234620003cf5780620025fd8038038091620000218285620003d4565b8339602092839181010312620003cf5751906001600160a01b0380831690818403620003cf57620000516200040e565b9060046200005e6200040e565b91856000958680554660805260405193848092630150a5d760e21b82525afa918215620003c45785926200037d575b505060a05281516001600160401b03939091908483116200028457603b54926001948585811c9516801562000372575b888610146200035e578190601f958681116200030a575b508890868311600114620002a457849262000298575b5050600019600383901b1c191690851b17603b555b81519485116200028457603c548481811c9116801562000279575b8782101462000265578381116200021c575b5085928511600114620001b3579394508492919083620001a7575b50501b916000199060031b1c191617603c555b60ff19603d5416603d5560c0526040516121a4908162000459823960805181611617015260a0518161123b015260c0518181816106150152818161092b01528181610d46015261185a0152f35b01519250388062000147565b603c815285812093958591601f198316915b88838310620002015750505010620001e7575b505050811b01603c556200015a565b015160001960f88460031b161c19169055388080620001d8565b858701518855909601959485019487935090810190620001c5565b603c82528682208480880160051c8201928989106200025b575b0160051c019085905b8281106200024f5750506200012c565b8381550185906200023f565b9250819262000236565b634e487b7160e01b82526022600452602482fd5b90607f16906200011a565b634e487b7160e01b81526041600452602490fd5b015190503880620000ea565b603b85528985208894509190601f198416865b8c828210620002f35750508411620002d9575b505050811b01603b55620000ff565b015160001960f88460031b161c19169055388080620002ca565b8385015186558b97909501949384019301620002b7565b909150603b84528884208680850160051c8201928b861062000354575b918991869594930160051c01915b82811062000345575050620000d4565b86815585945089910162000335565b9250819262000327565b634e487b7160e01b83526022600452602483fd5b94607f1694620000bd565b9091508581813d8311620003bc575b620003988183620003d4565b81010312620003b857519081168103620003b45738806200008d565b8380fd5b8480fd5b503d6200038c565b6040513d87823e3d90fd5b600080fd5b601f909101601f19168101906001600160401b03821190821017620003f857604052565b634e487b7160e01b600052604160045260246000fd5b60408051919082016001600160401b03811183821017620003f857604052601682527f535441424c455f444542545f544f4b454e5f494d504c00000000000000000000602083015256fe6080604052600436101561001257600080fd5b60003560e01c806306fdde0314610218578063095ea7b3146101c35780630b52d5581461021357806318160ddd1461020e57806323b872dd14610209578063313ce567146102045780633644e515146101ff57806339509351146101c35780636bd76d24146101fa57806370a08231146101f55780637535d246146101f057806375d26413146101eb57806378160376146101e657806379774338146101e157806379ce6b8c146101dc5780637ecebe00146101d757806390f6fcf2146101d257806395d89b41146101cd5780639dc29fac146101c8578063a457c2d7146101c3578063a9059cbb146101c3578063b16a19de146101be578063b3f1c93d146101b9578063b9a7b622146101b4578063c04a8a10146101af578063c222ec8a146101aa578063c634dfaa146101a5578063dd62ed3e146101a0578063e655dbd81461019b578063e748489014610196578063e78c9b3b14610191578063f3bfc7381461018c5763f731e9be1461018757600080fd5b6113d6565b61139b565b61135b565b611333565b611200565b6111eb565b6111a5565b61110b565b61104b565b61102f565b610cfd565b610cd4565b6102c6565b6108f2565b61080d565b6107e6565b6107a9565b610765565b610717565b6106fb565b610644565b6105ff565b6105d8565b610593565b610553565b610532565b61050b565b6104dc565b610307565b610281565b600091031261022857565b600080fd5b919082519283825260005b848110610259575050826000602080949584010152601f8019910116010190565b602081830181015184830182015201610238565b90602061027e92818152019061022d565b90565b34610228576000366003190112610228576102b161029d611447565b60405191829160208352602083019061022d565b0390f35b6001600160a01b0381160361022857565b34610228576040366003190112610228576102e26004356102b5565b61150b565b6084359060ff8216820361022857565b6064359060ff8216820361022857565b346102285760e036600319011261022857600435610324816102b5565b602435610330816102b5565b6044356064359161033f6102e7565b936001600160a01b03811661035d61035561154d565b82151561156b565b610371610368611597565b8642111561156b565b60206104746103928460018060a01b03166000526034602052604060002090565b549661043b61044789888a6103fe6103a8611615565b966040519485938b850195869094939260809260a08301967f323db0410fecc107e39e2af5908671f4c8d106123b35a51501bb805c5fa36aa0845260018060a01b03166020840152604083015260608201520152565b0391610412601f19938481018352826106bc565b5190206040519384918883019687909160429261190160f01b8352600283015260228201520190565b039081018352826106bc565b5190206040805191825260ff909916602082015260a4359881019890985260c43560608901526080880190565b876000988992838052039060015afa156104d75785516104d4956104b69290916104b191906001600160a01b0316146104ab6115c1565b9061156b565b6115f5565b6001600160a01b038216600090815260346020526040902055611a91565b80f35b6115b5565b346102285760003660031901126102285760206105036001600160801b03603f5416611af3565b604051908152f35b34610228576060366003190112610228576105276004356102b5565b6102e26024356102b5565b3461022857600036600319011261022857602060ff603d5416604051908152f35b34610228576000366003190112610228576020610503611615565b604090600319011261022857600435610586816102b5565b9060243561027e816102b5565b346102285760206105cf6105a63661056e565b6001600160a01b0391821660009081526036855260408082209290931681526020919091522090565b54604051908152f35b346102285760203660031901126102285760206105036004356105fa816102b5565b61164a565b34610228576000366003190112610228576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461022857600036600319011261022857603d5460405160089190911c6001600160a01b03168152602090f35b634e487b7160e01b600052604160045260246000fd5b67ffffffffffffffff811161069b57604052565b610671565b6040810190811067ffffffffffffffff82111761069b57604052565b90601f8019910116810190811067ffffffffffffffff82111761069b57604052565b604051906106eb826106a0565b60018252603160f81b6020830152565b34610228576000366003190112610228576102b161029d6106de565b34610228576000366003190112610228576080603f5464ffffffffff6001600160801b03821691603a549261074b81611af3565b60405194855260208501526040840152831c166060820152f35b3461022857602036600319011261022857600435610782816102b5565b60018060a01b0316600052603e602052602064ffffffffff60406000205416604051908152f35b34610228576020366003190112610228576004356107c6816102b5565b60018060a01b031660005260346020526020604060002054604051908152f35b346102285760003660031901126102285760206001600160801b03603f5416604051908152f35b34610228576000806003193601126108ef576040519080603c54906108318261140d565b808552916020916001918281169081156108c2575060011461086a575b6102b18661085e818803826106bc565b6040519182918261026d565b9350603c84527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e5b8385106108af5750505050810160200161085e826102b13861084e565b8054868601840152938201938101610892565b90508695506102b19693506020925061085e94915060ff191682840152151560051b82010192933861084e565b80fd5b346102285760408060031936011261022857600435610910816102b5565b6001600160a01b03916024359061095261092861169c565b857f000000000000000000000000000000000000000000000000000000000000000016331461156b565b61095b83611bd7565b93915093610988610983610977603f546001600160801b031690565b6001600160801b031690565b611af3565b9360009586956109b76109776109b08660018060a01b03166000526038602052604060002090565b5460801c90565b93858211610bf357968881999a6102b1996109dd6001600160801b0319603f5416603f55565b6109e76000603a55565b888603610bc1576001600160a01b038116600090815260386020908152604080832080546001600160801b03169055603e9091529020805464ffffffffff191690555b603f805464ffffffffff60801b19164260801b64ffffffffff60801b1617905588871115610b165790610afc939291610a91610a89899a9b7fc16f4e4ca34d790de4c656c72fd015c667d688f20be64eea360618545c4c530f9a6116ba565b968783611dda565b169788978860007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8d5180610acb8b829190602083019252565b0390a38a51968796879260a094919796959260c0850198855260208501526040840152606083015260808201520152565b0390a35b5191825260208201929092529081906040820190565b7f44bd20a79e993bdcc7cbedf54a3b4d19fb78490124b6b90d04fe3242eea579e89750610b54610b4c88610bb99798999b6116ba565b968783611cca565b16966000887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8b5180610b8c8a829190602083019252565b0390a38851958695869192608093969594919660a084019784526020840152604083015260608201520152565b0390a2610b00565b6001600160a01b0381166000908152603e60205260409020805464ffffffffff191664ffffffffff4216179055610a2a565b97506102b19650610c0485826116ba565b610c0d81603a55565b80988991610c38610c29610977603f546001600160801b031690565b610c3286611c27565b90611b9b565b610c4a610c448a611c27565b89611b9b565b90808210610c7e57505050610c6a6001600160801b0319603f5416603f55565b610c746000603a55565b60009a8b916109e7565b6001600160801b0392610ca0610c9a610cab94610ca6946116ba565b91611c27565b90611c3b565b611c61565b610ccb816001600160801b03166001600160801b0319603f541617603f55565b169a8b916109e7565b34610228576000366003190112610228576037546040516001600160a01b039091168152602090f35b3461022857608036600319011261022857600435610d1a816102b5565b60243590610d27826102b5565b60643590604435906001600160a01b0390610d6d610d4361169c565b837f000000000000000000000000000000000000000000000000000000000000000016331461156b565b610d756116c7565b93828616928216918484840361101e575b5050610d9186611bd7565b928197919250603f54610daa906001600160801b031690565b6001600160801b031698610dbd8a611af3565b8084528860a085019b8c52610dd191611608565b97610ddb89603a55565b6020840198895285610dec82611c27565b60408681019182526001600160a01b03851660009081526038602052205460801c60608701819052610e1d88611c27565b610e2691611b9b565b85825190610e3391611b9b565b610e3c91611608565b610e468489611608565b610e4f90611c27565b610e5891611c3b565b946080870195808752610e6a90611c61565b6001600160a01b038616600090815260386020908152604080832080546001600160801b031660809590951b6fffffffffffffffffffffffffffffffff191694909417909355603e905220805464ffffffffff421664ffffffffff199091168117909155603f805464ffffffffff60801b191660809290921b64ffffffffff60801b169190911790558d518751610f0090611c27565b610f0991611b9b565b9151610f1491611b9b565b610f1d91611608565b8a51610f2890611c27565b610f3191611c3b565b610f3a90611c61565b610f5a816001600160801b03166001600160801b0319603f541617603f55565b6001600160801b03168c52610f6e91611608565b80935190610f7b92611dda565b60405182815286906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90602090a35188518751604080519485526020850195909552938301949094526060820152608081019290925260a08201527fc16f4e4ca34d790de4c656c72fd015c667d688f20be64eea360618545c4c530f9060c090a35191516040805192158352602083019390935291810191909152606090f35b6110289188611e39565b3884610d86565b3461022857600036600319011261022857602060405160018152f35b346102285760403660031901126102285761107560043561106b816102b5565b6024359033611a91565b005b60443590611084826102b5565b565b81601f820112156102285780359067ffffffffffffffff821161069b57604051926110bb601f8401601f1916602001856106bc565b8284526020838301011161022857816000926020809301838601378301015290565b9181601f840112156102285782359167ffffffffffffffff8311610228576020838186019501011161022857565b346102285760e036600319011261022857600435611128816102b5565b602435611134816102b5565b61113c611077565b916111456102f7565b67ffffffffffffffff939060843585811161022857611168903690600401611086565b9060a43586811161022857611181903690600401611086565b9260c4359687116102285761119d6110759736906004016110dd565b96909561170a565b34610228576020366003190112610228576004356111c2816102b5565b60018060a01b0316600052603860205260206001600160801b0360406000205416604051908152f35b34610228576111f93661056e565b505061150b565b34610228576020806003193601126102285760043561121e816102b5565b60405163383e6b8b60e11b8152916001600160a01b0381846004817f000000000000000000000000000000000000000000000000000000000000000085165afa9384156104d757600094611302575b50604051637be53ca160e01b815233600482015293829185916024918391165afa80156104d757611075936112ae926000926112d5575b50506104ab6106de565b603d8054610100600160a81b03191660089290921b610100600160a81b0316919091179055565b6112f49250803d106112fb575b6112ec81836106bc565b810190611a79565b38806112a4565b503d6112e2565b8291945061132590823d841161132c575b61131d81836106bc565b810190611a64565b939061126d565b503d611313565b3461022857600036600319011261022857602064ffffffffff603f5460801c16604051908152f35b3461022857602036600319011261022857600435611378816102b5565b60018060a01b03166000526038602052602060406000205460801c604051908152f35b346102285760003660031901126102285760206040517f323db0410fecc107e39e2af5908671f4c8d106123b35a51501bb805c5fa36aa08152f35b34610228576000366003190112610228576001600160801b03603f54166113fc81611af3565b604080519182526020820192909252f35b90600182811c9216801561143d575b602083101461142757565b634e487b7160e01b600052602260045260246000fd5b91607f169161141c565b60405190600082603b549161145b8361140d565b808352926020906001908181169081156114e75750600114611486575b5050611084925003836106bc565b915092603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d936000925b8284106114cf57506110849450505081016020013880611478565b855488850183015294850194879450928101926114b4565b9150506020925061108494915060ff191682840152151560051b8201013880611478565b61154960405161151a816106a0565b6002815261038360f41b602082015260405191829162461bcd60e51b835260206004840152602483019061022d565b0390fd5b6040519061155a826106a0565b6002825261373760f01b6020830152565b156115735750565b60405162461bcd60e51b81526020600482015290819061154990602483019061022d565b604051906115a4826106a0565b600282526106e760f31b6020830152565b6040513d6000823e3d90fd5b604051906115ce826106a0565b6002825261373960f01b6020830152565b634e487b7160e01b600052601160045260246000fd5b906001820180921161160357565b6115df565b9190820180921161160357565b7f000000000000000000000000000000000000000000000000000000000000000046146116445761027e611b17565b60355490565b6001600160a01b03166000908152603860205260409020546001600160801b038116801561169557610c3261027e92603e60205264ffffffffff60406000205416429160801c6120a2565b5050600090565b604051906116a9826106a0565b6002825261323360f01b6020830152565b9190820391821161160357565b6040519060c0820182811067ffffffffffffffff82111761069b576040528160a06000918281528260208201528260408201528260608201528260808201520152565b959391969492909660ff6001541697881598896117d9575b80156117cd575b156117715761173c978961175157611847565b61174257565b61108460ff1960015416600155565b611762600160ff1981541617600155565b61176c6001600055565b611847565b60405162461bcd60e51b815260206004820152602e60248201527f436f6e747261637420696e7374616e63652068617320616c726561647920626560448201526d195b881a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50600054600111611729565b50303b15611722565b94919361181587959460ff602099966118239560018060a01b03168a52168989015260a0604089015260a088019061022d565b90868203606088015261022d565b936080818603910152818452848401376000828201840152601f01601f1916010190565b969294909395919560018060a01b0395867f000000000000000000000000000000000000000000000000000000000000000016986118a560405161188a816106a0565b600281528b8a60209461383760f01b6020850152161461156b565b82519067ffffffffffffffff821161069b576118cb826118c6603b5461140d565b611eba565b602090601f83116001146119b4575091611927826119a49795937f40251fbfb6656cfa65a00d7879029fec1fad21d28fdcff2f4f68f52795b74f2c9b9a9997956000916119a9575b508160011b916000199060031b1c19161790565b603b555b61193483611f9e565b6119488160ff1660ff19603d541617603d55565b603780546001600160a01b0319166001600160a01b038916179055603d8054610100600160a81b03191660088c901b610100600160a81b031617905561199461198f611b17565b603555565b87604051988998169a16876117e2565b0390a3565b905084015138611913565b603b60005290601f1983167fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d926000905b828210611a4c575050927f40251fbfb6656cfa65a00d7879029fec1fad21d28fdcff2f4f68f52795b74f2c9a9998969492600192826119a49a989610611a33575b5050811b01603b5561192b565b85015160001960f88460031b161c191690553880611a26565b80600185968294968b015181550195019301906119e5565b90816020910312610228575161027e816102b5565b90816020910312610228575180151581036102285790565b6001600160a01b0390811660008181526036602090815260408083208587168452825290912093949391927fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e19285905b558060375416956040519586521693a4565b603a54801561169557610c3261027e9264ffffffffff603f5460801c1642916120a2565b611b1f611447565b60208151910120611b2e6106de565b602081519101206040519060208201927f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8452604083015260608201524660808201523060a082015260a0815260c0810181811067ffffffffffffffff82111761069b5760405251902090565b816b019d971e4fe8401e74000000190481111582151715610228576b033b2e3c9fd0803ce800000091026b019d971e4fe8401e74000000010490565b6001600160a01b0381166000908152603860205260409020546001600160801b0316908115611c1a57611c099061164a565b918183039183831161160357929190565b5050600090600090600090565b90633b9aca00918281029283040361022857565b8160011c906b033b2e3c9fd0803ce8000000908183190481118415176102285702010490565b6001600160801b0390818111611c75571690565b60405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e20316044820152663238206269747360c81b6064820152608490fd5b90611cd490611c61565b6001600160801b038080611cfa8560018060a01b03166000526038602052604060002090565b541692168203908111611603576001600160a01b0383166000908152603860205260409020611d4091905b906001600160801b03166001600160801b0319825416179055565b603d5460081c6001600160a01b03166001600160a01b038116611d64575b50505050565b803b15610228576040516318c39f1760e11b81526001600160a01b0393909316600484015260248301939093526001600160801b03166044820152906000908290606490829084905af180156104d757611dc1575b808080611d5e565b80611dce611dd492610687565b8061021d565b38611db9565b90611de490611c61565b6001600160801b038080611e0a8560018060a01b03166000526038602052604060002090565b541692168201908111611603576001600160a01b0383166000908152603860205260409020611d409190611d25565b6001600160a01b0390811660008181526036602090815260408083208686168452909152902054929383039290919083116116035760008281526036602090815260408083206001600160a01b038816845282529091207fda919360433220e13b51e8c211e490d148e61a3bd53de8c097194e458b97f3e192908590611ae1565b601f8111611ec6575050565b600090603b6000527fbbe3212124853f8b0084a66a2d057c2966e251e132af3691db153ab65f0d1a4d906020601f850160051c83019410611f22575b601f0160051c01915b828110611f1757505050565b818155600101611f0b565b9092508290611f02565b601f8111611f38575050565b600090603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e906020601f850160051c83019410611f94575b601f0160051c01915b828110611f8957505050565b818155600101611f7d565b9092508290611f74565b90815167ffffffffffffffff811161069b57611fc481611fbf603c5461140d565b611f2c565b602080601f831160011461200757508190611ff79394600092611ffc575b50508160011b916000199060031b1c19161790565b603c55565b015190503880611fe2565b90601f1983169461203a603c6000527fc6bb06cb7f92603de181bf256cd16846b93b752a170ff24824098b31aa008a7e90565b926000905b87821061207757505083600195961061205e575b505050811b01603c55565b015160001960f88460031b161c19169055388080612053565b8060018596829496860151815501950193019061203f565b8181029291811591840414171561160357565b9064ffffffffff1680830392808411611603571461215c576000198201916002811115612151576121276001198201915b600661212066038882915c40006120ea8780611b9b565b046121116301e1338096612111612116896121058c87611b9b565b04946121118d8a61208f565b61208f565b60011c9a8761208f565b049361208f565b046b033b2e3c9fd0803ce80000009081018091116116035761027e9261214c91611608565b611608565b6121276000916120d3565b50506b033b2e3c9fd0803ce80000009056fea2646970667358221220e605751fda25e3e6261f8417f1c5d43e9aa85a8d654c5c79b6711296bf7b129764736f6c6343000818003300000000000000000000000035736c15a5d26b2efd38beee0f16bd09d541efd7