[ { "inputs": [ { "internalType": "address", "name": "_asset", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "address[]", "name": "_assetSpenders", "type": "address[]" }, { "internalType": "bool", "name": "_depositAllowed", "type": "bool" }, { "internalType": "bool", "name": "_variableRepaymentEnabled", "type": "bool" }, { "internalType": "address", "name": "_owner", "type": "address" }, { "internalType": "address[]", "name": "_managers", "type": "address[]" }, { "internalType": "bool", "name": "_addOwnerToManagers", "type": "bool" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "BurnAccessError", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "caller", "type": "address" } ], "name": "CallerGuardError", "type": "error" }, { "inputs": [], "name": "ListSizeLimitError", "type": "error" }, { "inputs": [], "name": "MintAccessError", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "NonContractAddressError", "type": "error" }, { "inputs": [], "name": "OnlyAssetSpenderError", "type": "error" }, { "inputs": [], "name": "OnlyManagerError", "type": "error" }, { "inputs": [], "name": "ReservedTokenError", "type": "error" }, { "inputs": [], "name": "SafeTransferError", "type": "error" }, { "inputs": [], "name": "SafeTransferFromError", "type": "error" }, { "inputs": [], "name": "SafeTransferNativeError", "type": "error" }, { "inputs": [], "name": "TokenBurnError", "type": "error" }, { "inputs": [], "name": "TokenDecimalsError", "type": "error" }, { "inputs": [], "name": "TotalSupplyLimitError", "type": "error" }, { "inputs": [], "name": "VariableRepaymentNotEnabledError", "type": "error" }, { "inputs": [], "name": "VariableTokenAlreadySetError", "type": "error" }, { "inputs": [], "name": "VariableTokenNotSetError", "type": "error" }, { "inputs": [], "name": "ZeroAmountError", "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": "amount", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assetAmount", "type": "uint256" } ], "name": "Deposit", "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "RedeemVariableToken", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "RenounceManagerRole", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetAssetSpender", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "enum CallerGuard.CallerGuardMode", "name": "callerGuardMode", "type": "uint8" } ], "name": "SetCallerGuardMode", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "contractAddress", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "isListed", "type": "bool" } ], "name": "SetListedCallerGuardContract", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetManager", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "bool", "name": "value", "type": "bool" } ], "name": "SetMultichainRouter", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "limit", "type": "uint256" } ], "name": "SetTotalSupplyLimit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bool", "name": "variableRepaymentEnabled", "type": "bool" } ], "name": "SetVariableRepaymentEnabled", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "variableToken", "type": "address" } ], "name": "SetVariableToken", "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": "amount", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "caller", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assetAmount", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SYSTEM_VERSION_ID", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "spender", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "asset", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "assetSpenderCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "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": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "callerGuardMode", "outputs": [ { "internalType": "enum CallerGuard.CallerGuardMode", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "checkVariableTokenState", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenAddress", "type": "address" }, { "internalType": "uint256", "name": "_tokenAmount", "type": "uint256" } ], "name": "cleanup", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_assetAmount", "type": "uint256" } ], "name": "deposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "fullAssetSpenderList", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "fullListedCallerGuardContractList", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "fullManagerList", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "fullMultichainRouterList", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isAssetSpender", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isListedCallerGuardContract", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isManager", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isMultichainRouter", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenAddress", "type": "address" } ], "name": "isReservedToken", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "listedCallerGuardContractCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "listedCallerGuardContractIndexMap", "outputs": [ { "internalType": "bool", "name": "isSet", "type": "bool" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "listedCallerGuardContractList", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "managerCount", "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": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "multichainRouterCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "redeemVariableToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceManagerRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "bool", "name": "_forVariableBalance", "type": "bool" } ], "name": "requestAsset", "outputs": [ { "internalType": "address", "name": "assetAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "setAssetSpender", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "enum CallerGuard.CallerGuardMode", "name": "_callerGuardMode", "type": "uint8" } ], "name": "setCallerGuardMode", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bool", "name": "flag", "type": "bool" } ], "internalType": "struct AccountToFlag[]", "name": "_items", "type": "tuple[]" } ], "name": "setListedCallerGuardContracts", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "setManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" }, { "internalType": "bool", "name": "_value", "type": "bool" } ], "name": "setMultichainRouter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_limit", "type": "uint256" } ], "name": "setTotalSupplyLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "_variableRepaymentEnabled", "type": "bool" } ], "name": "setVariableRepaymentEnabled", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_variableToken", "type": "address" } ], "name": "setVariableToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_tokenAddress", "type": "address" } ], "name": "tokenBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupplyLimit", "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" }, { "inputs": [], "name": "underlying", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "variableRepaymentEnabled", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "variableToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_assetAmount", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
610140604052600a805460ff191690553480156200001c57600080fd5b5060405162003a7a38038062003a7a8339810160408190526200003f91620009c7565b888888878282856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000084573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620000aa919062000adf565b6000805460ff19168155838383620000c233620001b4565b6003620000d0848262000b9a565b506004620000df838262000b9a565b5060ff81166080524660a052620000f56200020d565b60c0525050600060e0525015156101005250506001600955506001600160a01b0384166101205262000137816200012e576000620002a9565b600019620002a9565b5050505060005b86518110156200018c576200017787828151811062000161576200016162000c66565b60200260200101516001620002e460201b60201c565b80620001838162000c92565b9150506200013e565b5062000198846200034d565b620001a583838362000396565b50505050505050505062000d58565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600360405162000241919062000cae565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b600d8190556040518181527f95e8c9f3b9477918d3e5407ba96fac8e2084722c9562942bac414734bdf8f8049060200160405180910390a150565b620003117fab6730ecea49587e6c50637868078921bc389a6c228c95e1c7259ae5a61c2174838362000450565b604051811515906001600160a01b038416907fc6b049f4dc9561b397b0cef913ea5f18165b682b193be62c0bbbf9ca8763aeba90600090a35050565b600e805460ff60a01b1916600160a01b831515908102919091179091556040517fdf888ec24e9081be857eb58887c4c9e546edf94ee7dbc643c07f69dd32c0d13590600090a250565b60006001600160a01b03841615620003af5783620003b1565b335b905060005b83518110156200040457620003ef848281518110620003d957620003d962000c66565b602002602001015160016200047960201b60201c565b80620003fb8162000c92565b915050620003b6565b508180156200041b57506200041981620004ec565b155b156200042e576200042e81600162000479565b6001600160a01b03811633146200044a576200044a816200052e565b50505050565b600083815260016020908152604080832060029092529091206200044a919084846064620005b1565b62000483620005e4565b620004b07f6d439300980e333f0256d64be2c9f67e86f4493ce25f82498d6db7f4be3d9e6f838362000450565b604051811515906001600160a01b038416907fbe9474bb3e78da7e315cdffa5cfa30b767fcc95bbf44a6197da60228eea1028690600090a35050565b6001600160a01b03811660009081527f260b29b219d450563ddb0e5ca806bdadb1e125f7e8c506de0443797dd7122728602052604081205460ff165b92915050565b62000538620005e4565b6001600160a01b038116620005a35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b620005ae81620001b4565b50565b600082620005cc57620005c686868662000648565b620005da565b620005da868686856200077d565b9695505050505050565b6000546001600160a01b03610100909104163314620006465760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016200059a565b565b6001600160a01b0381166000908152602083905260409020805460ff1690811562000775576001808201548654909160009162000686919062000d2c565b90508082146200071a576000878281548110620006a757620006a762000c66565b9060005260206000200160009054906101000a90046001600160a01b0316905080888481548110620006dd57620006dd62000c66565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815290879052604090206001018290555b868054806200072d576200072d62000d42565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b038716825287905260408120805460ff191681556001015550505b509392505050565b6001600160a01b03821660009081526020849052604090205460ff161580156200082a5784548211620007c35760405163b1655e3360e01b815260040160405180910390fd5b6040805180820182526001808252875460208084019182526001600160a01b03881660008181528a83529586209451855460ff1916901515178555915193830193909355885491820189558884529190922090910180546001600160a01b03191690911790555b949350505050565b80516001600160a01b03811681146200084a57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156200089057620008906200084f565b604052919050565b600082601f830112620008aa57600080fd5b81516001600160401b03811115620008c657620008c66200084f565b6020620008dc601f8301601f1916820162000865565b8281528582848701011115620008f157600080fd5b60005b8381101562000911578581018301518282018401528201620008f4565b506000928101909101919091529392505050565b600082601f8301126200093757600080fd5b815160206001600160401b038211156200095557620009556200084f565b8160051b6200096682820162000865565b92835284810182019282810190878511156200098157600080fd5b83870192505b84831015620009ab576200099b8362000832565b8252918301919083019062000987565b979650505050505050565b805180151581146200084a57600080fd5b60008060008060008060008060006101208a8c031215620009e757600080fd5b620009f28a62000832565b60208b01519099506001600160401b038082111562000a1057600080fd5b62000a1e8d838e0162000898565b995060408c015191508082111562000a3557600080fd5b62000a438d838e0162000898565b985060608c015191508082111562000a5a57600080fd5b62000a688d838e0162000925565b975062000a7860808d01620009b6565b965062000a8860a08d01620009b6565b955062000a9860c08d0162000832565b945060e08c015191508082111562000aaf57600080fd5b5062000abe8c828d0162000925565b92505062000ad06101008b01620009b6565b90509295985092959850929598565b60006020828403121562000af257600080fd5b815160ff8116811462000b0457600080fd5b9392505050565b600181811c9082168062000b2057607f821691505b60208210810362000b4157634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000b9557600081815260208120601f850160051c8101602086101562000b705750805b601f850160051c820191505b8181101562000b915782815560010162000b7c565b5050505b505050565b81516001600160401b0381111562000bb65762000bb66200084f565b62000bce8162000bc7845462000b0b565b8462000b47565b602080601f83116001811462000c06576000841562000bed5750858301515b600019600386901b1c1916600185901b17855562000b91565b600085815260208120601f198616915b8281101562000c375788860151825594840194600190910190840162000c16565b508582101562000c565787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006001820162000ca75762000ca762000c7c565b5060010190565b600080835462000cbe8162000b0b565b6001828116801562000cd9576001811462000cef5762000d20565b60ff198416875282151583028701945062000d20565b8760005260208060002060005b8581101562000d175781548a82015290840190820162000cfc565b50505082870194505b50929695505050505050565b8181038181111562000528576200052862000c7c565b634e487b7160e01b600052603160045260246000fd5b60805160a05160c05160e0516101005161012051612c9362000de7600039600081816105cf0152818161062f01528181610cf601528181610d5601528181610f97015281816110e40152818161110d015261160801526000818161101d015261137d015260006106dd01526000610e0a01526000610dda01526000818161054a015261122e0152612c936000f3fe608060405234801561001057600080fd5b506004361061038e5760003560e01c80636f307dc3116101de578063b6b55f251161010f578063e3725b15116100ad578063f3ae24151161007c578063f3ae2415146108db578063f977350c146108ee578063fe14e8c314610901578063fe8fc8d41461091457600080fd5b8063e3725b151461089a578063eedc966a146108a2578063f00ecca3146108b5578063f2fde38b146108c857600080fd5b8063c2c518e1116100e9578063c2c518e114610841578063d505accf14610849578063d883d8b11461085c578063dd62ed3e1461086f57600080fd5b8063b6b55f2514610812578063bac21a2214610825578063c116a3cb1461082e57600080fd5b80638da5cb5b1161017c5780639dc29fac116101565780639dc29fac146107d1578063a5e90eee146107e4578063a8c9a27a146107f7578063a9059cbb146107ff57600080fd5b80638da5cb5b1461077557806395d89b411461078b5780639c90dfa11461079357600080fd5b80637b25b4d4116101b85780637b25b4d4146107275780637c3d6de11461073a5780637ecebe001461074d5780638456cb591461076d57600080fd5b80636f307dc3146106d857806370a08231146106ff578063715018a61461071f57600080fd5b8063313ce567116102c3578063440d7248116102615780635c56ca35116102305780635c56ca35146106985780635c975abb146106ab578063607ab5e5146106b65780636b56a691146106d057600080fd5b8063440d72481461061f5780634b15b2a91461065f5780634ba3bf7e146106725780635c05468b1461068557600080fd5b806338d52e0f1161029d57806338d52e0f146105ca5780633ef43212146105f15780633f4ba83a1461060457806340c10f191461060c57600080fd5b8063313ce56714610545578063341328c51461057e5780633644e515146105c257600080fd5b806318160ddd116103305780632a3ffb8a1161030a5780632a3ffb8a146104c15780632c966a34146104ff5780632e1a7d4d1461051f57806330eb12781461053257600080fd5b806318160ddd146104905780631b5c1d0e1461049957806323b872dd146104ae57600080fd5b8063095ea7b31161036c578063095ea7b3146103fb5780630f9374101461041e578063103b73971461042657806317daf0b41461046457600080fd5b806304e535e21461039357806306fdde03146103b1578063093f0e27146103c6575b600080fd5b61039b610928565b6040516103a89190612693565b60405180910390f35b6103b961098a565b6040516103a89190612704565b6103ed7fa74bc904f33e105aa5f958ea12e72e701f001115e076cbcbdbc1ac309cf1874881565b6040519081526020016103a8565b61040e61040936600461274e565b610a18565b60405190151581526020016103a8565b61039b610a85565b600080516020612bfe83398151915260005260016020527f3c2285c553468ca8f30447b24bb463c127f1b840e23a0cafa23caa79d906669a546103ed565b61040e610472366004612778565b6001600160a01b03166000908152600c602052604090205460ff1690565b6103ed60055481565b6104ac6104a736600461279a565b610aa3565b005b61040e6104bc3660046127b3565b610ad5565b600080516020612c3e83398151915260005260016020527f5a35d0a0fb7e3bcb482aad5b9886840a8073f28d39a0181c254a9e207a441094546103ed565b610507610bb5565b6040516001600160a01b0390911681526020016103a8565b6104ac61052d36600461279a565b610c1b565b6104ac61054036600461274e565b610d26565b61056c7f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff90911681526020016103a8565b6105ab61058c366004612778565b600c602052600090815260409020805460019091015460ff9091169082565b6040805192151583526020830191909152016103a8565b6103ed610dd6565b6105077f000000000000000000000000000000000000000000000000000000000000000081565b6104ac6105ff36600461279a565b610e2c565b6104ac610fc8565b61040e61061a36600461274e565b611000565b61040e61062d366004612778565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0390811691161490565b61050761066d3660046127fd565b61107a565b6104ac61068036600461283d565b611133565b61040e610693366004612778565b611163565b61040e6106a6366004612778565b61117d565b60005460ff1661040e565b600a546106c39060ff1681565b6040516103a8919061288a565b600b546103ed565b6105077f000000000000000000000000000000000000000000000000000000000000000081565b6103ed61070d366004612778565b60066020526000908152604090205481565b6104ac611197565b61050761073536600461279a565b6111a9565b6104ac610748366004612778565b6111d3565b6103ed61075b366004612778565b60086020526000908152604090205481565b6104ac61131d565b60005461010090046001600160a01b0316610507565b6103b9611353565b600080516020612bde83398151915260005260016020527fb6368b31e79ffb73a14a00fbd9c0dbbe43a3a26df7f98e18d14334693e18dfce546103ed565b61040e6107df36600461274e565b611360565b6104ac6107f236600461283d565b611444565b61039b6114a1565b61040e61080d36600461274e565b6114ba565b6104ac61082036600461279a565b611520565b6103ed600d5481565b6104ac61083c36600461283d565b611678565b6104ac6116a8565b6104ac6108573660046128c1565b611715565b6104ac61086a36600461292e565b611959565b6103ed61087d36600461294b565b600760209081526000928352604080842090915290825290205481565b61039b611988565b6103ed6108b0366004612778565b6119a1565b600e54610507906001600160a01b031681565b6104ac6108d6366004612778565b611a3c565b61040e6108e9366004612778565b611ab2565b6104ac6108fc36600461297e565b611acc565b6104ac61090f36600461299f565b611b54565b600e5461040e90600160a01b900460ff1681565b6060600b80548060200260200160405190810160405280929190818152602001828054801561098057602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610962575b5050505050905090565b6003805461099790612a14565b80601f01602080910402602001604051908101604052809291908181526020018280546109c390612a14565b8015610a105780601f106109e557610100808354040283529160200191610a10565b820191906000526020600020905b8154815290600101906020018083116109f357829003601f168201915b505050505081565b3360008181526007602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590610a739086815260200190565b60405180910390a35060015b92915050565b6060610a9e600080516020612bde833981519152611c65565b905090565b610aac33611ab2565b610ac957604051637c3ea23f60e01b815260040160405180910390fd5b610ad281611cd1565b50565b6001600160a01b03831660009081526007602090815260408083203384529091528120546000198114610b3157610b0c8382612a64565b6001600160a01b03861660009081526007602090815260408083203384529091529020555b6001600160a01b03851660009081526006602052604081208054859290610b59908490612a64565b90915550506001600160a01b0380851660008181526006602052604090819020805487019055519091871690600080516020612c1e83398151915290610ba29087815260200190565b60405180910390a3506001949350505050565b600e54600090600160a01b900460ff16610be257604051634dd32fa760e11b815260040160405180910390fd5b600e546001600160a01b0316610c0b57604051630d51877360e21b815260040160405180910390fd5b50600e546001600160a01b031690565b610c23611d0c565b610c2b611d52565b333214610cb25760006002600a5460ff166002811115610c4d57610c4d612874565b1480610c8957506001600a5460ff166002811115610c6d57610c6d612874565b148015610c895750336000908152600c602052604090205460ff165b905080610cb057604051630fa0970d60e11b81523360048201526024015b60405180910390fd5b505b610cbc3382611dab565b60405181815233907f884edad9ce6fa2440d8a54cc123490eb96d2768479d49ff9c7366125a94243649060200160405180910390a2610d1c7f00000000000000000000000000000000000000000000000000000000000000003383611e15565b610ad26001600955565b610d2f33611ab2565b610d4c57604051637c3ea23f60e01b815260040160405180910390fd5b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811690831603610d9857604051634477699960e11b815260040160405180910390fd5b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03831601610dcb57610dc73382611f07565b5050565b610dc7823383611e15565b60007f00000000000000000000000000000000000000000000000000000000000000004614610e0757610a9e611f95565b507f000000000000000000000000000000000000000000000000000000000000000090565b610e34611d0c565b610e3c611d52565b333214610ebe5760006002600a5460ff166002811115610e5e57610e5e612874565b1480610e9a57506001600a5460ff166002811115610e7e57610e7e612874565b148015610e9a5750336000908152600c602052604090205460ff165b905080610ebc57604051630fa0970d60e11b8152336004820152602401610ca7565b505b610ec6610bb5565b50600e54604051632770a7eb60e21b8152336004820152602481018390526000916001600160a01b031690639dc29fac906044016020604051808303816000875af1158015610f19573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f3d9190612a77565b905080610f5d5760405163a294042360e01b815260040160405180910390fd5b60405182815233907f16aab25bf023c1724fe661e47886a1083e99fb9533f0947445acb8974a6778c89060200160405180910390a2610fbd7f00000000000000000000000000000000000000000000000000000000000000003384611e15565b50610ad26001600955565b610fd133611ab2565b610fee57604051637c3ea23f60e01b815260040160405180910390fd5b610ff661202f565b610ffe612078565b565b600061100a611d0c565b600061101533611163565b8061104657507f00000000000000000000000000000000000000000000000000000000000000008015611046575060005b905080611066576040516371d2156960e01b815260040160405180910390fd5b61107084846120ca565b5060019392505050565b6000611084611d0c565b61108d3361117d565b6110aa5760405163085c44cb60e31b815260040160405180910390fd5b8180156110c15750600e54600160a01b900460ff16155b156110df57604051634dd32fa760e11b815260040160405180910390fd5b61110a7f00000000000000000000000000000000000000000000000000000000000000008486611e15565b507f00000000000000000000000000000000000000000000000000000000000000009392505050565b61113c33611ab2565b61115957604051637c3ea23f60e01b815260040160405180910390fd5b610dc7828261211c565b6000610a7f600080516020612c3e83398151915283612171565b6000610a7f600080516020612bde83398151915283612171565b61119f61219c565b610ffe60006121fc565b600b81815481106111b957600080fd5b6000918252602090912001546001600160a01b0316905081565b6111dc33611ab2565b6111f957604051637c3ea23f60e01b815260040160405180910390fd5b600e546001600160a01b0316156112235760405163b347c0ad60e01b815260040160405180910390fd5b61122c81612255565b7f000000000000000000000000000000000000000000000000000000000000000060ff16816001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b29190612a94565b60ff16146112d357604051637265cffd60e11b815260040160405180910390fd5b600e80546001600160a01b0319166001600160a01b0383169081179091556040517fb366d6f570d256c768970b0082f8d0cea95a76afa28b518f9e6eb033d84e656a90600090a250565b61132633611ab2565b61134357604051637c3ea23f60e01b815260040160405180910390fd5b61134b611d0c565b610ffe612288565b6004805461099790612a14565b600061136a611d0c565b600061137533611163565b806113a657507f000000000000000000000000000000000000000000000000000000000000000080156113a6575060005b9050806113c6576040516305fb1f3f60e51b815260040160405180910390fd5b6001600160a01b0384166000908152600760209081526040808320338452909152902054600019811461142f578381101561140657600092505050610a7f565b6001600160a01b0385166000908152600760209081526040808320338452909152902084820390555b6114398585611dab565b506001949350505050565b61144c61219c565b611465600080516020612bfe83398151915283836122c5565b604051811515906001600160a01b038416907fbe9474bb3e78da7e315cdffa5cfa30b767fcc95bbf44a6197da60228eea1028690600090a35050565b6060610a9e600080516020612c3e833981519152611c65565b336000908152600660205260408120805483919083906114db908490612a64565b90915550506001600160a01b03831660008181526006602052604090819020805485019055513390600080516020612c1e83398151915290610a739086815260200190565b611528611d0c565b611530611d52565b3332146115b25760006002600a5460ff16600281111561155257611552612874565b148061158e57506001600a5460ff16600281111561157257611572612874565b14801561158e5750336000908152600c602052604090205460ff165b9050806115b057604051630fa0970d60e11b8152336004820152602401610ca7565b505b806000036115d357604051636e0ccc0760e01b815260040160405180910390fd5b600d54816005546115e49190612ab1565b111561160357604051637872c6e360e01b815260040160405180910390fd5b61162f7f00000000000000000000000000000000000000000000000000000000000000003330846122f2565b61163933826120ca565b60405181815233907fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c9060200160405180910390a2610ad26001600955565b61168133611ab2565b61169e57604051637c3ea23f60e01b815260040160405180910390fd5b610dc782826123ed565b6116b133611ab2565b6116ce57604051637c3ea23f60e01b815260040160405180910390fd5b6116e8600080516020612bfe8339815191523360006122c5565b60405133907f6cc2c67081f55c2fffb7c008fa995fbbf890f48c7c16fba93d8220f00dc84cc590600090a2565b428410156117655760405162461bcd60e51b815260206004820152601760248201527f5045524d49545f444541444c494e455f455850495245440000000000000000006044820152606401610ca7565b60006001611771610dd6565b6001600160a01b038a811660008181526008602090815260409182902080546001810190915582517f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98184015280840194909452938d166060840152608083018c905260a083019390935260c08083018b90528151808403909101815260e08301909152805192019190912061190160f01b6101008301526101028201929092526101228101919091526101420160408051601f198184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561187d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b038116158015906118b35750876001600160a01b0316816001600160a01b0316145b6118f05760405162461bcd60e51b815260206004820152600e60248201526d24a72b20a624a22fa9a4a3a722a960911b6044820152606401610ca7565b6001600160a01b0390811660009081526007602090815260408083208a8516808552908352928190208990555188815291928a16917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a350505050505050565b61196233611ab2565b61197f57604051637c3ea23f60e01b815260040160405180910390fd5b610ad281612442565b6060610a9e600080516020612bfe833981519152611c65565b600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b038316016119cf575047919050565b6040516370a0823160e01b81523060048201526001600160a01b038316906370a0823190602401602060405180830381865afa158015611a13573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a7f9190612ac4565b919050565b611a4461219c565b6001600160a01b038116611aa95760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610ca7565b610ad2816121fc565b6000610a7f600080516020612bfe83398151915283612171565b611ad533611ab2565b611af257604051637c3ea23f60e01b815260040160405180910390fd5b600a805482919060ff19166001836002811115611b1157611b11612874565b0217905550806002811115611b2857611b28612874565b6040517f332a9f1d3bd9b0f7abbd95838fed6b417589632d0eb33f2d8ae6e2aa17178efd90600090a250565b611b5d33611ab2565b611b7a57604051637c3ea23f60e01b815260040160405180910390fd5b60005b81811015611c605736838383818110611b9857611b98612add565b9050604002019050806020016020810190611bb3919061292e565b15611bcd57611bcd611bc86020830183612778565b612255565b611bf8600b600c611be16020850185612778565b611bf1604086016020870161292e565b606461248b565b50611c09604082016020830161292e565b1515611c186020830183612778565b6001600160a01b03167f1470aed653fa8a8ce4c7b2f41287634199f7ec3c4f5fd0ace97d82cf006beec360405160405180910390a35080611c5881612af3565b915050611b7d565b505050565b600081815260016020908152604091829020805483518184028101840190945280845260609392830182828015611cc557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611ca7575b50505050509050919050565b600d8190556040518181527f95e8c9f3b9477918d3e5407ba96fac8e2084722c9562942bac414734bdf8f8049060200160405180910390a150565b60005460ff1615610ffe5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610ca7565b600260095403611da45760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610ca7565b6002600955565b6001600160a01b03821660009081526006602052604081208054839290611dd3908490612a64565b90915550506005805482900390556040518181526000906001600160a01b03841690600080516020612c1e833981519152906020015b60405180910390a35050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b1790529151600092839290871691611e719190612b0c565b6000604051808303816000865af19150503d8060008114611eae576040519150601f19603f3d011682016040523d82523d6000602084013e611eb3565b606091505b50915091506000828015611edf575081511580611edf575081806020019051810190611edf9190612a77565b905080611eff57604051632fdb1b7f60e11b815260040160405180910390fd5b505050505050565b604080516000808252602082019092526001600160a01b038416908390604051611f319190612b0c565b60006040518083038185875af1925050503d8060008114611f6e576040519150601f19603f3d011682016040523d82523d6000602084013e611f73565b606091505b5050905080611c6057604051632e05b05360e21b815260040160405180910390fd5b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6003604051611fc79190612b28565b6040805191829003822060208301939093528101919091527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b60005460ff16610ffe5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610ca7565b61208061202f565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b80600560008282546120dc9190612ab1565b90915550506001600160a01b038216600081815260066020908152604080832080548601905551848152600080516020612c1e8339815191529101611e09565b612135600080516020612c3e83398151915283836122c5565b604051811515906001600160a01b038416907f2b535dea3b8ec7fb244a57e39a42aee5f6f4871306457173aa18f49a96e8c78090600090a35050565b60009182526002602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6000546001600160a01b03610100909104163314610ffe5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610ca7565b600080546001600160a01b03838116610100818102610100600160a81b0319851617855560405193049190911692909183917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35050565b6001600160a01b0381163b610ad257604051638c50d7cd60e01b81526001600160a01b0382166004820152602401610ca7565b612290611d0c565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586120ad3390565b600083815260016020908152604080832060029092529091206122ec91908484606461248b565b50505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17905291516000928392908816916123569190612b0c565b6000604051808303816000865af19150503d8060008114612393576040519150601f19603f3d011682016040523d82523d6000602084013e612398565b606091505b509150915060008280156123c45750815115806123c45750818060200190518101906123c49190612a77565b9050806123e457604051632d9d5b4160e01b815260040160405180910390fd5b50505050505050565b612406600080516020612bde83398151915283836122c5565b604051811515906001600160a01b038416907fc6b049f4dc9561b397b0cef913ea5f18165b682b193be62c0bbbf9ca8763aeba90600090a35050565b600e805460ff60a01b1916600160a01b831515908102919091179091556040517fdf888ec24e9081be857eb58887c4c9e546edf94ee7dbc643c07f69dd32c0d13590600090a250565b6000826124a25761249d8686866124b8565b6124ae565b6124ae868686856125e0565b9695505050505050565b6001600160a01b0381166000908152602083905260409020805460ff169081156125d857600180820154865490916000916124f39190612a64565b905080821461258057600087828154811061251057612510612add565b9060005260206000200160009054906101000a90046001600160a01b031690508088848154811061254357612543612add565b600091825260208083209190910180546001600160a01b0319166001600160a01b0394851617905592909116815290879052604090206001018290555b8680548061259057612590612bc7565b60008281526020808220830160001990810180546001600160a01b03191690559092019092556001600160a01b038716825287905260408120805460ff191681556001015550505b509392505050565b6001600160a01b03821660009081526020849052604090205460ff1615801561268b57845482116126245760405163b1655e3360e01b815260040160405180910390fd5b6040805180820182526001808252875460208084019182526001600160a01b03881660008181528a83529586209451855460ff1916901515178555915193830193909355885491820189558884529190922090910180546001600160a01b03191690911790555b949350505050565b6020808252825182820181905260009190848201906040850190845b818110156126d45783516001600160a01b0316835292840192918401916001016126af565b50909695505050505050565b60005b838110156126fb5781810151838201526020016126e3565b50506000910152565b60208152600082518060208401526127238160408501602087016126e0565b601f01601f19169190910160400192915050565b80356001600160a01b0381168114611a3757600080fd5b6000806040838503121561276157600080fd5b61276a83612737565b946020939093013593505050565b60006020828403121561278a57600080fd5b61279382612737565b9392505050565b6000602082840312156127ac57600080fd5b5035919050565b6000806000606084860312156127c857600080fd5b6127d184612737565b92506127df60208501612737565b9150604084013590509250925092565b8015158114610ad257600080fd5b60008060006060848603121561281257600080fd5b8335925061282260208501612737565b91506040840135612832816127ef565b809150509250925092565b6000806040838503121561285057600080fd5b61285983612737565b91506020830135612869816127ef565b809150509250929050565b634e487b7160e01b600052602160045260246000fd5b60208101600383106128ac57634e487b7160e01b600052602160045260246000fd5b91905290565b60ff81168114610ad257600080fd5b600080600080600080600060e0888a0312156128dc57600080fd5b6128e588612737565b96506128f360208901612737565b955060408801359450606088013593506080880135612911816128b2565b9699959850939692959460a0840135945060c09093013592915050565b60006020828403121561294057600080fd5b8135612793816127ef565b6000806040838503121561295e57600080fd5b61296783612737565b915061297560208401612737565b90509250929050565b60006020828403121561299057600080fd5b81356003811061279357600080fd5b600080602083850312156129b257600080fd5b823567ffffffffffffffff808211156129ca57600080fd5b818501915085601f8301126129de57600080fd5b8135818111156129ed57600080fd5b8660208260061b8501011115612a0257600080fd5b60209290920196919550909350505050565b600181811c90821680612a2857607f821691505b602082108103612a4857634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b81810381811115610a7f57610a7f612a4e565b600060208284031215612a8957600080fd5b8151612793816127ef565b600060208284031215612aa657600080fd5b8151612793816128b2565b80820180821115610a7f57610a7f612a4e565b600060208284031215612ad657600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600060018201612b0557612b05612a4e565b5060010190565b60008251612b1e8184602087016126e0565b9190910192915050565b600080835481600182811c915080831680612b4457607f831692505b60208084108203612b6357634e487b7160e01b86526022600452602486fd5b818015612b775760018114612b8c57612bb9565b60ff1986168952841515850289019650612bb9565b60008a81526020902060005b86811015612bb15781548b820152908501908301612b98565b505084890196505b509498975050505050505050565b634e487b7160e01b600052603160045260246000fdfeab6730ecea49587e6c50637868078921bc389a6c228c95e1c7259ae5a61c21746d439300980e333f0256d64be2c9f67e86f4493ce25f82498d6db7f4be3d9e6fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef98e2d91934cad395982d17afdb76da8ef5d5f4e6341e368f19914b44485e5886a26469706673582212207a983a1dca7e467ada6a321abe8b22941ef5b2694cbbd7f4158886ead10df42564736f6c63430008130033000000000000000000000000b97ef9ef8734c71904d8002f8b6bc66dd9c48a6e0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000016000000000000000000000000000000000000000000000000000000000000001a00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000072e28c7f34100afefc399fcc0ae041b8fe5841ae00000000000000000000000000000000000000000000000000000000000001e00000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000e496e746572706f7274205553444300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056955534443000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000019a4a4d9fa78e3723eacd6eee04d42de28b825cc000000000000000000000000000000000000000000000000000000000000000100000000000000000000000072e28c7f34100afefc399fcc0ae041b8fe5841ae