Loading
[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "_executor", "type": "address" } ], "name": "AccessDenied", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "_poolSize", "type": "uint256" } ], "name": "InvalidPoolSize", "type": "error" }, { "inputs": [], "name": "InvalidStatusUpdate", "type": "error" }, { "inputs": [], "name": "PoolIsNotActive", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "previousAdmin", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newAdmin", "type": "address" } ], "name": "AdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_oldOwner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "AdminTransferred", "type": "event" }, { "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": "_by", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_prevValue", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_newValue", "type": "uint256" } ], "name": "AssetUnderManagementUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "beacon", "type": "address" } ], "name": "BeaconUpgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assets", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Deposit", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_token", "type": "address" }, { "indexed": false, "internalType": "address", "name": "_to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "EmergencyWithdraw", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_account", "type": "address" } ], "name": "OracleManagerAdded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "_account", "type": "address" } ], "name": "OracleManagerRemoved", "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": "_by", "type": "address" }, { "indexed": false, "internalType": "enum CsigmaV2Pool.PoolStatus", "name": "_prevStatus", "type": "uint8" }, { "indexed": false, "internalType": "enum CsigmaV2Pool.PoolStatus", "name": "_newStatus", "type": "uint8" } ], "name": "PoolStatusUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "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" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "implementation", "type": "address" } ], "name": "Upgraded", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "sender", "type": "address" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "assets", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "Withdraw", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "ROLE_ORACLE_MANAGER", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "activatePool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "addOracleManager", "outputs": [], "stateMutability": "nonpayable", "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": [], "name": "asset", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "assetUnderManagement", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "closePool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "convertToAssets", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "convertToShares", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "deposit", "outputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_token", "type": "address" }, { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "emergencyWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "factory", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "fundManager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "_account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "string", "name": "_poolName", "type": "string" }, { "internalType": "string", "name": "_poolSymbol", "type": "string" }, { "internalType": "address", "name": "_poolManager", "type": "address" }, { "internalType": "address", "name": "_fundManager", "type": "address" }, { "internalType": "address", "name": "_poolToken", "type": "address" }, { "internalType": "address", "name": "_oracleManager", "type": "address" }, { "internalType": "uint256", "name": "_projectedAPY", "type": "uint256" }, { "internalType": "uint256", "name": "_poolSize", "type": "uint256" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "isOracleManager", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "maxDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "maxMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "maxRedeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "maxWithdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "mint", "outputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": [], "name": "poolManager", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poolSize", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "poolToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "previewDeposit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "previewMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" } ], "name": "previewRedeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" } ], "name": "previewWithdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "projectedAPY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "proxiableUUID", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "shares", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "redeem", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_account", "type": "address" } ], "name": "removeOracleManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "_account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "status", "outputs": [ { "internalType": "enum CsigmaV2Pool.PoolStatus", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalAssets", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalInvestedAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "transferAdmin", "outputs": [], "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": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_assetUnderManagement", "type": "uint256" } ], "name": "updateAssetUnderManagement", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_poolManager", "type": "address" } ], "name": "updatePoolManager", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_poolSize", "type": "uint256" } ], "name": "updatePoolSize", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" } ], "name": "upgradeTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newImplementation", "type": "address" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "upgradeToAndCall", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "assets", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "withdraw", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" } ]
60a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b608051613a796200011f60003960008181610e3801528181610e7801528181610f6101528181610fa101526110300152613a796000f3fe6080604052600436106103a25760003560e01c806370a08231116101e7578063c45a01551161010d578063dd62ed3e116100a0578063ef8b30f71161006f578063ef8b30f714610952578063f3d6d13114610a82578063f7f79b9614610aa2578063fe1ebda914610ac257600080fd5b8063dd62ed3e14610a14578063e1aec3de14610a34578063e232ef0a14610a4b578063e63ea40814610a6257600080fd5b8063ce96cb77116100dc578063ce96cb7714610993578063d547741f146109b3578063d905777e146109d3578063dc4c90d3146109f357600080fd5b8063c45a015514610911578063c63d75b614610932578063c6e6f59214610952578063cbdf382c1461097257600080fd5b8063a217fddf11610185578063b3cf20d711610154578063b3cf20d714610891578063b3d7f6b9146108b1578063b460af94146108d1578063ba087652146108f157600080fd5b8063a217fddf14610827578063a457c2d71461083c578063a8e67bfc1461085c578063a9059cbb1461087157600080fd5b80638456cb59116101c15780638456cb59146107bd57806391d14854146107d257806394bf804d146107f257806395d89b411461081257600080fd5b806370a0823114610746578063737870851461077d57806375829def1461079d57600080fd5b806338d52e0f116102cc5780634f1ef2861161026a5780635c975abb116102395780635c975abb146106d85780636209ec2d146106f057806366805de5146107115780636e553f651461072657600080fd5b80634f1ef2861461066e57806352d1902d1461068157806354c2eef81461069657806357524751146106b857600080fd5b8063402d267d116102a6578063402d267d1461062057806343214521146106405780634cdad506146104215780634ec18db91461065757600080fd5b806338d52e0f146105b857806339509351146105eb5780633f4ba83a1461060b57600080fd5b8063200d2ed2116103445780632f2ff15d116103135780632f2ff15d14610531578063313ce5671461055157806336568abe146105785780633659cfe61461059857600080fd5b8063200d2ed21461049757806323b872dd146104bf578063248a9ca3146104df5780632ab38b5f1461050f57600080fd5b806307a2d13a1161038057806307a2d13a14610421578063095ea7b3146104415780630a28a4771461046157806318160ddd1461048157600080fd5b806301e1d114146103a757806301ffc9a7146103cf57806306fdde03146103ff575b600080fd5b3480156103b357600080fd5b506103bc610ae2565b6040519081526020015b60405180910390f35b3480156103db57600080fd5b506103ef6103ea3660046131f8565b610c02565b60405190151581526020016103c6565b34801561040b57600080fd5b50610414610c39565b6040516103c6919061324e565b34801561042d57600080fd5b506103bc61043c366004613281565b610ccc565b34801561044d57600080fd5b506103ef61045c3660046132b6565b610cd9565b34801561046d57600080fd5b506103bc61047c366004613281565b610cf1565b34801561048d57600080fd5b5061012f546103bc565b3480156104a357600080fd5b50610199546104b29060ff1681565b6040516103c69190613318565b3480156104cb57600080fd5b506103ef6104da366004613326565b610cfe565b3480156104eb57600080fd5b506103bc6104fa366004613281565b60009081526065602052604090206001015490565b34801561051b57600080fd5b5061052f61052a366004613281565b610d24565b005b34801561053d57600080fd5b5061052f61054c366004613362565b610d62565b34801561055d57600080fd5b50610566610d94565b60405160ff90911681526020016103c6565b34801561058457600080fd5b5061052f610593366004613362565b610daf565b3480156105a457600080fd5b5061052f6105b336600461338e565b610e2d565b3480156105c457600080fd5b5061015f546001600160a01b03165b6040516001600160a01b0390911681526020016103c6565b3480156105f757600080fd5b506103ef6106063660046132b6565b610f0d565b34801561061757600080fd5b5061052f610f2f565b34801561062c57600080fd5b506103bc61063b36600461338e565b610f42565b34801561064c57600080fd5b506103bc6101975481565b34801561066357600080fd5b506103bc6101965481565b61052f61067c3660046133bf565b610f56565b34801561068d57600080fd5b506103bc611023565b3480156106a257600080fd5b506103bc600080516020613a2483398151915281565b3480156106c457600080fd5b5061052f6106d336600461338e565b6110d6565b3480156106e457600080fd5b5060fb5460ff166103ef565b3480156106fc57600080fd5b50610193546105d3906001600160a01b031681565b34801561071d57600080fd5b5061052f611105565b34801561073257600080fd5b506103bc610741366004613362565b61119d565b34801561075257600080fd5b506103bc61076136600461338e565b6001600160a01b0316600090815261012d602052604090205490565b34801561078957600080fd5b5061052f6107983660046134ca565b61123a565b3480156107a957600080fd5b5061052f6107b836600461338e565b61145c565b3480156107c957600080fd5b5061052f6114b9565b3480156107de57600080fd5b506103ef6107ed366004613362565b6114cc565b3480156107fe57600080fd5b506103bc61080d366004613362565b6114f7565b34801561081e57600080fd5b50610414611579565b34801561083357600080fd5b506103bc600081565b34801561084857600080fd5b506103ef6108573660046132b6565b611589565b34801561086857600080fd5b5061052f61160f565b34801561087d57600080fd5b506103ef61088c3660046132b6565b6116db565b34801561089d57600080fd5b506103ef6108ac36600461338e565b6116e9565b3480156108bd57600080fd5b506103bc6108cc366004613281565b611703565b3480156108dd57600080fd5b506103bc6108ec366004613590565b611710565b3480156108fd57600080fd5b506103bc61090c366004613590565b61175d565b34801561091d57600080fd5b50610191546105d3906001600160a01b031681565b34801561093e57600080fd5b506103bc61094d36600461338e565b6117a2565b34801561095e57600080fd5b506103bc61096d366004613281565b6117b9565b34801561097e57600080fd5b50610194546105d3906001600160a01b031681565b34801561099f57600080fd5b506103bc6109ae36600461338e565b6117c6565b3480156109bf57600080fd5b5061052f6109ce366004613362565b611843565b3480156109df57600080fd5b506103bc6109ee36600461338e565b611870565b3480156109ff57600080fd5b50610192546105d3906001600160a01b031681565b348015610a2057600080fd5b506103bc610a2f3660046135cc565b611885565b348015610a4057600080fd5b506103bc6101955481565b348015610a5757600080fd5b506103bc6101985481565b348015610a6e57600080fd5b5061052f610a7d366004613326565b6118b1565b348015610a8e57600080fd5b5061052f610a9d36600461338e565b611918565b348015610aae57600080fd5b5061052f610abd366004613281565b61197c565b348015610ace57600080fd5b5061052f610add36600461338e565b611a12565b6101985461019454610193546040516370a0823160e01b81526001600160a01b0391821660048201526000939291909116906370a082319060240160206040518083038186803b158015610b3557600080fd5b505afa158015610b49573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b6d91906135f6565b610194546040516370a0823160e01b81523060048201526001600160a01b03909116906370a082319060240160206040518083038186803b158015610bb157600080fd5b505afa158015610bc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610be991906135f6565b610bf39190613625565b610bfd9190613625565b905090565b60006001600160e01b03198216637965db0b60e01b1480610c3357506301ffc9a760e01b6001600160e01b03198316145b92915050565b60606101308054610c499061363d565b80601f0160208091040260200160405190810160405280929190818152602001828054610c759061363d565b8015610cc25780601f10610c9757610100808354040283529160200191610cc2565b820191906000526020600020905b815481529060010190602001808311610ca557829003601f168201915b5050505050905090565b6000610c33826000611a6e565b600033610ce7818585611aa9565b5060019392505050565b6000610c33826001611bce565b600033610d0c858285611bff565b610d17858585611c79565b60019150505b9392505050565b6000610d2f81611e31565b61019754821015610d5b57604051630f9e1c3b60e11b8152600481018390526024015b60405180910390fd5b5061019655565b600082815260656020526040902060010154610d7d81611e31565b610d85611e3b565b610d8f8383611e83565b505050565b60008061015f54610bfd9190600160a01b900460ff16613678565b6001600160a01b0381163314610e1f5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610d52565b610e298282611f09565b5050565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610e765760405162461bcd60e51b8152600401610d529061369d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610ebf6000805160206139dd833981519152546001600160a01b031690565b6001600160a01b031614610ee55760405162461bcd60e51b8152600401610d52906136e9565b610eee81611f70565b60408051600080825260208201909252610f0a91839190611f7b565b50565b600033610ce7818585610f208383611885565b610f2a9190613625565b611aa9565b6000610f3a81611e31565b610f0a6120f5565b60006101975461019654610c339190613735565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610f9f5760405162461bcd60e51b8152600401610d529061369d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610fe86000805160206139dd833981519152546001600160a01b031690565b6001600160a01b03161461100e5760405162461bcd60e51b8152600401610d52906136e9565b61101782611f70565b610e2982826001611f7b565b6000306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146110c35760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610d52565b506000805160206139dd83398151915290565b60006110e181611e31565b5061019280546001600160a01b0319166001600160a01b0392909216919091179055565b600061111081611e31565b60026101995460ff16600281111561112a5761112a6132e0565b141561114957604051630e53517160e31b815260040160405180910390fd5b6101995460405133917f09d61a1c1b2830bd9f203cb39d446f65b7a3425d5266fce697cb53f22fcb251c916111849160ff169060029061374c565b60405180910390a250610199805460ff19166002179055565b600060016101995460ff1660028111156111b9576111b96132e0565b146111d757604051632b5b3f3760e11b815260040160405180910390fd5b6111e18383612147565b610194546101935491925061121b916001600160a01b03918216911661271061120c87612328613767565b611216919061379c565b6121ba565b82610197600082825461122e9190613625565b90915550909392505050565b600054610100900460ff161580801561125a5750600054600160ff909116105b806112745750303b158015611274575060005460ff166001145b6112d75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610d52565b6000805460ff1916600117905580156112fa576000805461ff0019166101001790555b61130261221d565b61130a61221d565b611312612244565b61131b85612273565b61138e8b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8f018190048102820181019092528d815292508d91508c90819084018382808284376000920191909152506122a392505050565b611399600033611e83565b6113b1600080516020613a2483398151915285611e83565b3361019180546001600160a01b03199081166001600160a01b0393841617909155610192805482168a8416179055610193805482168984161790556101948054909116918716919091179055610195839055610196829055801561144f576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b611467600082610d62565b611472600033611843565b7ff8ccb027dfcd135e000e9d45e6cc2d662578a8825d4c45b5e32e0adf67e79ec633604080516001600160a01b03928316815291841660208301520160405180910390a150565b60006114c481611e31565b610f0a6122d4565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600060016101995460ff166002811115611513576115136132e0565b1461153157604051632b5b3f3760e11b815260040160405180910390fd5b61153b8383612311565b6101945461019354919250611566916001600160a01b03918216911661271061120c85612328613767565b80610197600082825461122e9190613625565b60606101318054610c499061363d565b600033816115978286611885565b9050838110156115f75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610d52565b6116048286868403611aa9565b506001949350505050565b611617611e3b565b60006101995460ff166002811115611631576116316132e0565b1461164f57604051630e53517160e31b815260040160405180910390fd5b610192546001600160a01b0316336001600160a01b03161461168657604051630504a20d60e01b8152336004820152602401610d52565b610199805460ff19166001179055336001600160a01b03167f09d61a1c1b2830bd9f203cb39d446f65b7a3425d5266fce697cb53f22fcb251c600060016040516116d192919061374c565b60405180910390a2565b600033610ce7818585611c79565b6000610c33600080516020613a24833981519152836114cc565b6000610c33826001611a6e565b600060016101995460ff16600281111561172c5761172c6132e0565b1461174a57604051632b5b3f3760e11b815260040160405180910390fd5b611755848484612384565b949350505050565b600060016101995460ff166002811115611779576117796132e0565b1461179757604051632b5b3f3760e11b815260040160405180910390fd5b6117558484846123f8565b6000610c33610197546101965461096d9190613735565b6000610c33826000611bce565b610194546040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561180b57600080fd5b505afa15801561181f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c3391906135f6565b60008281526065602052604090206001015461185e81611e31565b611866611e3b565b610d8f8383611f09565b6000610c3361187e836117c6565b6000611bce565b6001600160a01b03918216600090815261012e6020908152604080832093909416825291909152205490565b60006118bc81611e31565b6118c78484846121ba565b604080516001600160a01b038087168252851660208201529081018390527ff24ef89f38eadc1bde50701ad6e4d6d11a2dc24f7cf834a486991f38833285049060600160405180910390a150505050565b600061192381611e31565b61193b600080516020613a2483398151915283611843565b6040516001600160a01b03831681527f6761283827cfeb45829a9e107e0ebc1edf14926d5b1ead80962c82041f2989af906020015b60405180910390a15050565b600080516020613a2483398151915261199481611e31565b60016101995460ff1660028111156119ae576119ae6132e0565b146119cc57604051632b5b3f3760e11b815260040160405180910390fd5b61019854604080519182526020820184905233917f8f728c0f194ab0f693e933718bb323adb729700f2377cdb74c3c9433c4e67c47910160405180910390a25061019855565b6000611a1d81611e31565b611a35600080516020613a2483398151915283610d62565b6040516001600160a01b03831681527f376241ba2070b84726607dcf732a14c346afa1747390f3967beace29ac9a9b8b90602001611970565b6000610d1d611a7b610ae2565b611a86906001613625565b611a926000600a6138a2565b61012f54611aa09190613625565b8591908561246c565b6001600160a01b038316611b0b5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610d52565b6001600160a01b038216611b6c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610d52565b6001600160a01b03838116600081815261012e602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610d1d611bde82600a6138a2565b61012f54611bec9190613625565b611bf4610ae2565b611aa0906001613625565b6000611c0b8484611885565b90506000198114611c735781811015611c665760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610d52565b611c738484848403611aa9565b50505050565b6001600160a01b038316611cdd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610d52565b6001600160a01b038216611d3f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610d52565b611d4a8383836124c9565b6001600160a01b038316600090815261012d602052604090205481811015611dc35760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610d52565b6001600160a01b03808516600081815261012d602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611e249086815260200190565b60405180910390a3611c73565b610f0a81336124d1565b60fb5460ff1615611e815760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610d52565b565b611e8d82826114cc565b610e295760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055611ec53390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b611f1382826114cc565b15610e295760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610e2981611e31565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611fae57610d8f8361252a565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b815260040160206040518083038186803b158015611fe757600080fd5b505afa925050508015612017575060408051601f3d908101601f19168201909252612014918101906135f6565b60015b61207a5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610d52565b6000805160206139dd83398151915281146120e95760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610d52565b50610d8f8383836125c6565b6120fd6125eb565b60fb805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600061215282610f42565b8311156121a15760405162461bcd60e51b815260206004820152601e60248201527f455243343632363a206465706f736974206d6f7265207468616e206d617800006044820152606401610d52565b60006121ac846117b9565b9050610d1d33848684612634565b6040516001600160a01b038316602482015260448101829052610d8f90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526126b3565b600054610100900460ff16611e815760405162461bcd60e51b8152600401610d52906138b1565b600054610100900460ff1661226b5760405162461bcd60e51b8152600401610d52906138b1565b611e81612788565b600054610100900460ff1661229a5760405162461bcd60e51b8152600401610d52906138b1565b610f0a816127bb565b600054610100900460ff166122ca5760405162461bcd60e51b8152600401610d52906138b1565b610e298282612841565b6122dc611e3b565b60fb805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861212a3390565b600061231c826117a2565b83111561236b5760405162461bcd60e51b815260206004820152601b60248201527f455243343632363a206d696e74206d6f7265207468616e206d617800000000006044820152606401610d52565b600061237684611703565b9050610d1d33848387612634565b600061238f826117c6565b8411156123de5760405162461bcd60e51b815260206004820152601f60248201527f455243343632363a207769746864726177206d6f7265207468616e206d6178006044820152606401610d52565b60006123e985610cf1565b90506117553385858885612891565b600061240382611870565b8411156124525760405162461bcd60e51b815260206004820152601d60248201527f455243343632363a2072656465656d206d6f7265207468616e206d61780000006044820152606401610d52565b600061245d85610ccc565b90506117553385858489612891565b60008061247a86868661293e565b90506001836002811115612490576124906132e0565b1480156124ad5750600084806124a8576124a8613786565b868809115b156124c0576124bd600182613625565b90505b95945050505050565b610d8f611e3b565b6124db82826114cc565b610e29576124e881612a29565b6124f3836020612a3b565b6040516020016125049291906138fc565b60408051601f198184030181529082905262461bcd60e51b8252610d529160040161324e565b6001600160a01b0381163b6125975760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610d52565b6000805160206139dd83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b6125cf83612bd7565b6000825111806125dc5750805b15610d8f57611c738383612c17565b60fb5460ff16611e815760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610d52565b61015f5461264d906001600160a01b0316853085612c3c565b6126578382612c74565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d784846040516126a5929190918252602082015260400190565b60405180910390a350505050565b6000612708826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316612d439092919063ffffffff16565b90508051600014806127295750808060200190518101906127299190613971565b610d8f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610d52565b600054610100900460ff166127af5760405162461bcd60e51b8152600401610d52906138b1565b60fb805460ff19169055565b600054610100900460ff166127e25760405162461bcd60e51b8152600401610d52906138b1565b6000806127ee83612d52565b91509150816127fe576012612800565b805b61015f80546001600160a01b039095166001600160a01b031960ff93909316600160a01b02929092166001600160a81b031990951694909417179092555050565b600054610100900460ff166128685760405162461bcd60e51b8152600401610d52906138b1565b815161287c9061013090602085019061315f565b508051610d8f9061013190602084019061315f565b826001600160a01b0316856001600160a01b0316146128b5576128b5838683611bff565b6128bf8382612e2e565b61015f546128d7906001600160a01b031685846121ba565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db858560405161292f929190918252602082015260400190565b60405180910390a45050505050565b6000808060001985870985870292508281108382030391505080600014156129795783828161296f5761296f613786565b0492505050610d1d565b8084116129c05760405162461bcd60e51b81526020600482015260156024820152744d6174683a206d756c446976206f766572666c6f7760581b6044820152606401610d52565b60008486880960026001871981018816978890046003810283188082028403028082028403028082028403028082028403028082028403029081029092039091026000889003889004909101858311909403939093029303949094049190911702949350505050565b6060610c336001600160a01b03831660145b60606000612a4a836002613767565b612a55906002613625565b67ffffffffffffffff811115612a6d57612a6d6133a9565b6040519080825280601f01601f191660200182016040528015612a97576020820181803683370190505b509050600360fc1b81600081518110612ab257612ab2613993565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612ae157612ae1613993565b60200101906001600160f81b031916908160001a9053506000612b05846002613767565b612b10906001613625565b90505b6001811115612b88576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612b4457612b44613993565b1a60f81b828281518110612b5a57612b5a613993565b60200101906001600160f81b031916908160001a90535060049490941c93612b81816139a9565b9050612b13565b508315610d1d5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610d52565b612be08161252a565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b6060610d1d83836040518060600160405280602781526020016139fd60279139612f71565b6040516001600160a01b0380851660248301528316604482015260648101829052611c739085906323b872dd60e01b906084016121e6565b6001600160a01b038216612cca5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610d52565b612cd6600083836124c9565b8061012f6000828254612ce99190613625565b90915550506001600160a01b038216600081815261012d60209081526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60606117558484600085612fe9565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290516000918291829182916001600160a01b03871691612d99916139c0565b600060405180830381855afa9150503d8060008114612dd4576040519150601f19603f3d011682016040523d82523d6000602084013e612dd9565b606091505b5091509150818015612ded57506020815110155b15612e2157600081806020019051810190612e0891906135f6565b905060ff8111612e1f576001969095509350505050565b505b5060009485945092505050565b6001600160a01b038216612e8e5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610d52565b612e9a826000836124c9565b6001600160a01b038216600090815261012d602052604090205481811015612f0f5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610d52565b6001600160a01b038316600081815261012d60209081526040808320868603905561012f80548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a3505050565b6060600080856001600160a01b031685604051612f8e91906139c0565b600060405180830381855af49150503d8060008114612fc9576040519150601f19603f3d011682016040523d82523d6000602084013e612fce565b606091505b5091509150612fdf868383876130c4565b9695505050505050565b60608247101561304a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610d52565b600080866001600160a01b0316858760405161306691906139c0565b60006040518083038185875af1925050503d80600081146130a3576040519150601f19603f3d011682016040523d82523d6000602084013e6130a8565b606091505b50915091506130b9878383876130c4565b979650505050505050565b60608315613130578251613129576001600160a01b0385163b6131295760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610d52565b5081611755565b61175583838151156131455781518083602001fd5b8060405162461bcd60e51b8152600401610d52919061324e565b82805461316b9061363d565b90600052602060002090601f01602090048101928261318d57600085556131d3565b82601f106131a657805160ff19168380011785556131d3565b828001600101855582156131d3579182015b828111156131d35782518255916020019190600101906131b8565b506131df9291506131e3565b5090565b5b808211156131df57600081556001016131e4565b60006020828403121561320a57600080fd5b81356001600160e01b031981168114610d1d57600080fd5b60005b8381101561323d578181015183820152602001613225565b83811115611c735750506000910152565b602081526000825180602084015261326d816040850160208701613222565b601f01601f19169190910160400192915050565b60006020828403121561329357600080fd5b5035919050565b80356001600160a01b03811681146132b157600080fd5b919050565b600080604083850312156132c957600080fd5b6132d28361329a565b946020939093013593505050565b634e487b7160e01b600052602160045260246000fd5b6003811061331457634e487b7160e01b600052602160045260246000fd5b9052565b60208101610c3382846132f6565b60008060006060848603121561333b57600080fd5b6133448461329a565b92506133526020850161329a565b9150604084013590509250925092565b6000806040838503121561337557600080fd5b823591506133856020840161329a565b90509250929050565b6000602082840312156133a057600080fd5b610d1d8261329a565b634e487b7160e01b600052604160045260246000fd5b600080604083850312156133d257600080fd5b6133db8361329a565b9150602083013567ffffffffffffffff808211156133f857600080fd5b818501915085601f83011261340c57600080fd5b81358181111561341e5761341e6133a9565b604051601f8201601f19908116603f01168101908382118183101715613446576134466133a9565b8160405282815288602084870101111561345f57600080fd5b8260208601602083013760006020848301015280955050505050509250929050565b60008083601f84011261349357600080fd5b50813567ffffffffffffffff8111156134ab57600080fd5b6020830191508360208285010111156134c357600080fd5b9250929050565b6000806000806000806000806000806101008b8d0312156134ea57600080fd5b8a3567ffffffffffffffff8082111561350257600080fd5b61350e8e838f01613481565b909c509a5060208d013591508082111561352757600080fd5b506135348d828e01613481565b9099509750613547905060408c0161329a565b955061355560608c0161329a565b945061356360808c0161329a565b935061357160a08c0161329a565b925060c08b0135915060e08b013590509295989b9194979a5092959850565b6000806000606084860312156135a557600080fd5b833592506135b56020850161329a565b91506135c36040850161329a565b90509250925092565b600080604083850312156135df57600080fd5b6135e88361329a565b91506133856020840161329a565b60006020828403121561360857600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b600082198211156136385761363861360f565b500190565b600181811c9082168061365157607f821691505b6020821081141561367257634e487b7160e01b600052602260045260246000fd5b50919050565b600060ff821660ff84168060ff038211156136955761369561360f565b019392505050565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b6000828210156137475761374761360f565b500390565b6040810161375a82856132f6565b610d1d60208301846132f6565b60008160001904831182151516156137815761378161360f565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826137b957634e487b7160e01b600052601260045260246000fd5b500490565b600181815b808511156137f95781600019048211156137df576137df61360f565b808516156137ec57918102915b93841c93908002906137c3565b509250929050565b60008261381057506001610c33565b8161381d57506000610c33565b8160018114613833576002811461383d57613859565b6001915050610c33565b60ff84111561384e5761384e61360f565b50506001821b610c33565b5060208310610133831016604e8410600b841016171561387c575081810a610c33565b61388683836137be565b806000190482111561389a5761389a61360f565b029392505050565b6000610d1d60ff841683613801565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613934816017850160208801613222565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613965816028840160208801613222565b01602801949350505050565b60006020828403121561398357600080fd5b81518015158114610d1d57600080fd5b634e487b7160e01b600052603260045260246000fd5b6000816139b8576139b861360f565b506000190190565b600082516139d2818460208701613222565b919091019291505056fe360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564323baab94aa45aaa3cc044271188889aad21b45e0260589722dc9ff769b4b1d8a26469706673582212201740adc5b0f0b9c5040984880a5ee3697b5c02e7f000a15ddc88411d71e066d464736f6c63430008090033