[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "components": [ { "internalType": "address", "name": "_asset", "type": "address" }, { "internalType": "address", "name": "_yearnVault", "type": "address" }, { "internalType": "address", "name": "_discountRateAdapter", "type": "address" }, { "internalType": "address", "name": "_eventEmitter", "type": "address" }, { "internalType": "address", "name": "_governorAddress", "type": "address" }, { "internalType": "address", "name": "_termController", "type": "address" }, { "internalType": "uint256", "name": "_repoTokenConcentrationLimit", "type": "uint256" }, { "internalType": "uint256", "name": "_timeToMaturityThreshold", "type": "uint256" }, { "internalType": "uint256", "name": "_requiredReserveRatio", "type": "uint256" }, { "internalType": "uint256", "name": "_discountRateMarkup", "type": "uint256" } ], "internalType": "struct Strategy.StrategyParams", "name": "_params", "type": "tuple" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AuctionNotOpen", "type": "error" }, { "inputs": [], "name": "BalanceBelowRequiredReserveRatio", "type": "error" }, { "inputs": [], "name": "DepositPaused", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "have", "type": "uint256" }, { "internalType": "uint256", "name": "want", "type": "uint256" } ], "name": "InsufficientLiquidBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "token", "type": "address" } ], "name": "InvalidRepoToken", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "auction", "type": "address" } ], "name": "InvalidTermAuction", "type": "error" }, { "inputs": [], "name": "OfferNotFound", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "repoToken", "type": "address" } ], "name": "RepoTokenBlacklisted", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "repoToken", "type": "address" } ], "name": "RepoTokenConcentrationTooHigh", "type": "error" }, { "inputs": [], "name": "TimeToMaturityAboveThreshold", "type": "error" }, { "inputs": [], "name": "ZeroPurchaseTokenAmount", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "stateMutability": "nonpayable", "type": "fallback" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "acceptGovernor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "auctionClosed", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "availableDepositLimit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "availableWithdrawLimit", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "repoToken", "type": "address" }, { "internalType": "uint256", "name": "discountRate", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "calculateRepoTokenPresentValue", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "termAuction", "type": "address" }, { "internalType": "bytes32[]", "name": "offerIds", "type": "bytes32[]" } ], "name": "deleteAuctionOffers", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "deployFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "freeFunds", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "repoToken", "type": "address" } ], "name": "getRepoTokenConcentrationRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "repoToken", "type": "address" } ], "name": "getRepoTokenHoldingValue", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "harvestAndReport", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "name": "liquidReserveRatio", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pauseDeposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "pauseStrategy", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pendingOffers", "outputs": [ { "internalType": "bytes32[]", "name": "", "type": "bytes32[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "repoTokenBlacklist", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "repoTokenHoldings", "outputs": [ { "internalType": "address[]", "name": "", "type": "address[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "repoToken", "type": "address" }, { "internalType": "uint256", "name": "repoTokenAmount", "type": "uint256" } ], "name": "sellRepoToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "tokenAddr", "type": "address" }, { "internalType": "uint256", "name": "minCollateralRatio", "type": "uint256" } ], "name": "setCollateralTokenParams", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newAdapter", "type": "address" } ], "name": "setDiscountRateAdapter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newDiscountRateMarkup", "type": "uint256" } ], "name": "setDiscountRateMarkup", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newGovernor", "type": "address" } ], "name": "setPendingGovernor", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "repoToken", "type": "address" }, { "internalType": "bool", "name": "blacklisted", "type": "bool" } ], "name": "setRepoTokenBlacklist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newRepoTokenConcentrationLimit", "type": "uint256" } ], "name": "setRepoTokenConcentrationLimit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newRequiredReserveRatio", "type": "uint256" } ], "name": "setRequiredReserveRatio", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newTermControllerAddr", "type": "address" } ], "name": "setTermController", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newTimeToMaturityThreshold", "type": "uint256" } ], "name": "setTimeToMaturityThreshold", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "shutdownWithdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "repoToken", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "simulateTransaction", "outputs": [ { "internalType": "uint256", "name": "simulatedWeightedMaturity", "type": "uint256" }, { "internalType": "uint256", "name": "simulatedRepoTokenConcentrationRatio", "type": "uint256" }, { "internalType": "uint256", "name": "simulatedLiquidityRatio", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "strategyState", "outputs": [ { "internalType": "address", "name": "assetVault", "type": "address" }, { "internalType": "address", "name": "eventEmitter", "type": "address" }, { "internalType": "address", "name": "governorAddress", "type": "address" }, { "internalType": "contract ITermController", "name": "prevTermController", "type": "address" }, { "internalType": "contract ITermController", "name": "currTermController", "type": "address" }, { "internalType": "contract ITermDiscountRateAdapter", "name": "discountRateAdapter", "type": "address" }, { "internalType": "uint256", "name": "timeToMaturityThreshold", "type": "uint256" }, { "internalType": "uint256", "name": "requiredReserveRatio", "type": "uint256" }, { "internalType": "uint256", "name": "discountRateMarkup", "type": "uint256" }, { "internalType": "uint256", "name": "repoTokenConcentrationLimit", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "contract ITermAuction", "name": "termAuction", "type": "address" }, { "internalType": "address", "name": "repoToken", "type": "address" }, { "internalType": "bytes32", "name": "idHash", "type": "bytes32" }, { "internalType": "bytes32", "name": "offerPriceHash", "type": "bytes32" }, { "internalType": "uint256", "name": "purchaseTokenAmount", "type": "uint256" } ], "name": "submitAuctionOffer", "outputs": [ { "internalType": "bytes32[]", "name": "offerIds", "type": "bytes32[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_totalIdle", "type": "uint256" } ], "name": "tendThis", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "tendTrigger", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenizedStrategyAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalAssetValue", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalLiquidBalance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "unpauseDeposit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpauseStrategy", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6101206040523480156200001257600080fd5b5060405162006d0638038062006d068339810160408190526200003591620008f4565b80516001600160a01b0381166080523060a05260405183906200009e906200006a9084908490339081908190602401620009f1565b60408051601f198184030181529190526020810180516001600160e01b03908116634b839d7360e11b17909152620002b616565b505073bb51273d6c746910c7c06fe718f30c936170fed07f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc55506000805460ff191690556020808201516001600160a01b03908116610100526060830151811660c0526080516040805163313ce56760e01b81529051919092169263313ce56792600480820193918290030181865afa15801562000140573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000166919062000a34565b6200017390600a62000b6c565b60e0526020810151815162000197916001600160a01b03909116906000196200034a565b604080516101408101825261010080516001600160a01b0390811680845260c08051831660208601819052608080890180518616888a01819052600060608a015260a0808c01518816938a01849052998b015190961698880189905260e0808b0151858a018190528b890151918a01829052610120808d0151998b018a9052958c015195909901859052600a80546001600160a01b03199081169097179055600b80548716909417909355600c80548616909617909555600d805485169055600e805485169091179055600f805490931690961790915560109390935560119390935560125560135551620002ae907f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55906200049d565b505062000bee565b606060008073bb51273d6c746910c7c06fe718f30c936170fed06001600160a01b031684604051620002e9919062000b7d565b600060405180830381855af49150503d806000811462000326576040519150601f19603f3d011682016040523d82523d6000602084013e6200032b565b606091505b50915091508162000343576040513d806000833e8082fd5b9392505050565b801580620003c85750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015620003a0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003c6919062000b9b565b155b620004405760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527f20746f206e6f6e2d7a65726f20616c6c6f77616e63650000000000000000000060648201526084015b60405180910390fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b0390811663095ea7b360e01b17909152620004989185916200050c16565b505050565b620004a98282620005e0565b620005085760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45b5050565b6040805180820190915260208082527f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564908201526000906200055b906001600160a01b0385169084906200060d565b90508051600014806200057f5750808060200190518101906200057f919062000bb5565b620004985760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b606482015260840162000437565b60008281526001602090815260408083206001600160a01b038516845290915290205460ff165b92915050565b60606200061e848460008562000626565b949350505050565b606082471015620006895760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b606482015260840162000437565b600080866001600160a01b03168587604051620006a7919062000b7d565b60006040518083038185875af1925050503d8060008114620006e6576040519150601f19603f3d011682016040523d82523d6000602084013e620006eb565b606091505b509092509050620006ff878383876200070a565b979650505050505050565b606083156200077e57825160000362000776576001600160a01b0385163b620007765760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015260640162000437565b50816200061e565b6200061e8383815115620007955781518083602001fd5b8060405162461bcd60e51b815260040162000437919062000bd9565b634e487b7160e01b600052604160045260246000fd5b60405161014081016001600160401b0381118282101715620007ed57620007ed620007b1565b60405290565b60005b8381101562000810578181015183820152602001620007f6565b50506000910152565b80516001600160a01b03811681146200083157600080fd5b919050565b600061014082840312156200084a57600080fd5b62000854620007c7565b9050620008618262000819565b8152620008716020830162000819565b6020820152620008846040830162000819565b6040820152620008976060830162000819565b6060820152620008aa6080830162000819565b6080820152620008bd60a0830162000819565b60a082015260c082015160c082015260e082015160e082015261010080830151818301525061012080830151818301525092915050565b60008061016083850312156200090957600080fd5b82516001600160401b03808211156200092157600080fd5b818501915085601f8301126200093657600080fd5b8151818111156200094b576200094b620007b1565b604051601f8201601f19908116603f01168101908382118183101715620009765762000976620007b1565b816040528281528860208487010111156200099057600080fd5b620009a3836020830160208801620007f3565b8096505050505050620009ba846020850162000836565b90509250929050565b60008151808452620009dd816020860160208601620007f3565b601f01601f19169290920160200192915050565b600060018060a01b03808816835260a0602084015262000a1560a0840188620009c3565b9581166040840152938416606083015250911660809091015292915050565b60006020828403121562000a4757600080fd5b815160ff811681146200034357600080fd5b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000ab057816000190482111562000a945762000a9462000a59565b8085161562000aa257918102915b93841c939080029062000a74565b509250929050565b60008262000ac95750600162000607565b8162000ad85750600062000607565b816001811462000af1576002811462000afc5762000b1c565b600191505062000607565b60ff84111562000b105762000b1062000a59565b50506001821b62000607565b5060208310610133831016604e8410600b841016171562000b41575081810a62000607565b62000b4d838362000a6f565b806000190482111562000b645762000b6462000a59565b029392505050565b60006200034360ff84168362000ab8565b6000825162000b91818460208701620007f3565b9190910192915050565b60006020828403121562000bae57600080fd5b5051919050565b60006020828403121562000bc857600080fd5b815180151581146200034357600080fd5b602081526000620003436020830184620009c3565b60805160a05160c05160e05161010051615fd062000d366000396000818161258e01528181612bb10152818161356c015261472e0152600081816108b20152818161092e015281816114fc0152818161152901528181611826015281816119430152818161197d015281816126e60152818161272201528181612983015281816129e801528181612aca01528181612d740152612db3015260008181610b0801528181610f5201528181610ffb0152818161109601528181611142015281816119e601528181611ba601528181611cfe01528181611e1501528181611f85015261201c015260008181610cfc01526111bc01526000818161078401528181610a5301528181610df501528181611333015281816113bf015281816124ae015281816124f4015281816126380152818161308b015281816133c701526135960152615fd06000f3fe608060405234801561001057600080fd5b50600436106102895760003560e01c806372db6dfc1161015c578063aeaaa299116100ce578063e3bafad211610087578063e3bafad21461068d578063e58bb639146106a0578063ed22088e146106a8578063f235757f146106bb578063fb06a3bd146106ce578063fde813a8146105d057610289565b8063aeaaa29914610611578063aff518f314610619578063b7bd869c1461062c578063d19a3bb81461063f578063d547741f14610672578063d8c143f71461068557610289565b8063903c2c0611610120578063903c2c06146105b557806391d14854146105bd5780639d7fb70c146105d0578063a217fddf146105e3578063ad568159146105eb578063add5ba4b146105fe57610289565b806372db6dfc14610544578063740152831461055757806383076af9146105855780638c02ea3a1461059a5780638f90ae5a146105ad57610289565b806346aa2f12116102005780635c975abb116101b95780635c975abb146104d85780635d265d3f146104e357806367747e571461051957806369026e881461052c5780636bc912e014610534578063702848131461053c57610289565b806346aa2f121461046a57806349317f1d1461047f578063503160d9146104875780635134f5761461049a5780635157ced5146104ad57806354c885e0146104b557610289565b8063176eacd311610252578063176eacd3146103da578063248a9ca3146103ed5780632f2ff15d1461041157806336568abe146104245780633d6cb57514610437578063442e61aa1461044a57610289565b80625446f2146102c457806301ffc9a7146102d757806304bd4629146102ff57806311b4e2531461032057806312345134146103c7575b73bb51273d6c746910c7c06fe718f30c936170fed03660008037600080366000845af43d6000803e8080156102bd573d6000f35b3d6000fd5b005b6102c26102d236600461572b565b6106d6565b6102ea6102e5366004615757565b610a88565b60405190151581526020015b60405180910390f35b61031261030d366004615781565b610abf565b6040519081526020016102f6565b600a54600b54600c54600d54600e54600f54601054601154601254601354610362996001600160a01b039081169981169881169781169681169516939291908a565b604080516001600160a01b039b8c168152998b1660208b0152978a169789019790975294881660608801529287166080870152951660a085015260c084019490945260e0830193909352610100820192909252610120810191909152610140016102f6565b6102c26103d53660046157ac565b610ac9565b6103126103e8366004615781565b610b90565b6103126103fb3660046157e5565b6000908152600160208190526040909120015490565b6102c261041f3660046157fe565b610bd9565b6102c26104323660046157fe565b610c04565b6102c26104453660046157e5565b610c82565b61045d610458366004615823565b610c96565b6040516102f69190615874565b610312610478366004615781565b5060001990565b610312610ef1565b6102c26104953660046157e5565b610f08565b6102c26104a83660046157e5565b610f19565b6102c2610fbf565b6102ea6104c3366004615781565b60146020526000908152604090205460ff1681565b60005460ff166102ea565b60408051600481526024810182526020810180516001600160e01b031663440368a360e01b17905290516102f691600091615908565b6102c26105273660046157e5565b61105d565b6102c2611103565b61045d611189565b610312611195565b6102c2610552366004615923565b6111a7565b61056a61056536600461572b565b611361565b604080519384526020840192909252908201526060016102f6565b61058d6115eb565b6040516102f691906159ab565b6103126105a8366004615781565b6115f7565b610312611861565b61031261186e565b6102ea6105cb3660046157fe565b611878565b6102c26105de3660046157e5565b6118a3565b610312600081565b6103126105f93660046159ec565b6118ab565b6102c261060c3660046157e5565b6119ad565b6102c2611a53565b6102c2610627366004615781565b611a5f565b6102c261063a366004615781565b611c37565b61065a73bb51273d6c746910c7c06fe718f30c936170fed081565b6040516001600160a01b0390911681526020016102f6565b6102c26106803660046157fe565b611d81565b6102c2611da7565b6102c261069b36600461572b565b611dd7565b6102c2611e8f565b6102c26106b63660046157e5565b611fe3565b6102c26106c9366004615781565b612089565b6102c26120dd565b6106de61210a565b6001600160a01b038216600090815260146020526040902054829060ff161561072a57604051633d764d2b60e11b81526001600160a01b03821660048201526024015b60405180910390fd5b6000821161073757600080fd5b61074083612150565b6107685760405163017dad6760e71b81526001600160a01b0384166004820152602401610721565b600f5460009081906107a89060039087906001600160a01b03167f000000000000000000000000000000000000000000000000000000000000000061227f565b9250509150816107d65760405163017dad6760e71b81526001600160a01b0386166004820152602401610721565b6107e06000612496565b60006107ea612616565b9050600081116107f957600080fd5b6000610804826126be565b90506000811161081357600080fd5b600f54604051633580ec1360e11b81526001600160a01b0389811660048301526000921690636b01d82690602401602060405180830381865afa15801561085e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108829190615a21565b600f54604051631bf49af760e11b81526001600160a01b03808c166004830152929350600092610924928c928c927f00000000000000000000000000000000000000000000000000000000000000009216906337e935ee906024015b602060405180830381865afa1580156108fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091f9190615a21565b612764565b90506000610964827f000000000000000000000000000000000000000000000000000000000000000088600a600801548761095f9190615a50565b6128d3565b90508085101561099157604051633bf1b8e760e11b81526004810186905260248101829052604401610721565b60006109a78b8b6109a2858a615a63565b61295f565b6010549091508111156109cd57604051632391f20360e21b815260040160405180910390fd5b6000856109da8489615a63565b6109ec90670de0b6b3a7640000615a76565b6109f69190615a8d565b601154909150811015610a1c57604051631342c8d960e11b815260040160405180910390fd5b610a288c858886612b5c565b610a3183612b9b565b610a466001600160a01b038d1633308e612c9b565b610a7a6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163385612d06565b505050505050505050505050565b60006001600160e01b03198216637965db0b60e01b1480610ab957506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000610ab9612616565b600080516020615f7b833981519152610ae181612d36565b604051637948ecd560e01b81526001600160a01b03848116600483015283151560248301527f00000000000000000000000000000000000000000000000000000000000000001690637948ecd590604401600060405180830381600087803b158015610b4c57600080fd5b505af1158015610b60573d6000803e3d6000fd5b505050506001600160a01b03929092166000908152601460205260409020805460ff191691151591909117905550565b60006001600160a01b038216610bbc5760405163017dad6760e71b815260006004820152602401610721565b610ab9826000610bd2610bcd612616565b6126be565b6000612d40565b60008281526001602081905260409091200154610bf581612d36565b610bff8383612e16565b505050565b6001600160a01b0381163314610c745760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610721565b610c7e8282612e81565b5050565b610c8a612ee8565b610c9381612f1f565b50565b6060610ca061210a565b6001600160a01b038516600090815260146020526040902054859060ff1615610ce757604051633d764d2b60e11b81526001600160a01b0382166004820152602401610721565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b158015610d4657600080fd5b505afa158015610d5a573d6000803e3d6000fd5b5050505082600003610d7f5760405163b97ce22960e01b815260040160405180910390fd5b6000610d8b8888612f30565b9050610d976000612496565b6000868152600960205260409020600101548490610ddc6040805160a08101825260008082526020820181905291810182905260608101829052608081019190915290565b88815230602082015260408101889052606081018790527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166080820152610e308b85838d8787613230565b95506000610e3c612616565b90506000610e49826126be565b905060008111610e5857600080fd5b600081610e6d84670de0b6b3a7640000615a76565b610e779190615a8d565b601154909150811015610e9d57604051631342c8d960e11b815260040160405180910390fd5b6000610eab6000808661295f565b601054909150811115610ed157604051632391f20360e21b815260040160405180910390fd5b610edf8e6000856000612b5c565b50505050505050505095945050505050565b6000610efb612ee8565b610f03613677565b905090565b610f10612ee8565b610c9381613696565b600080516020615f7b833981519152610f3181612d36565b601354604051632efd6ecd60e21b81526004810191909152602481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063bbf5bb3490604401600060405180830381600087803b158015610f9e57600080fd5b505af1158015610fb2573d6000803e3d6000fd5b5050506013929092555050565b600080516020615f7b833981519152610fd781612d36565b6002805460ff19169055604080516305ad0e1f60e51b815290516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169163b5a1c3e091600480830192600092919082900301818387803b15801561104257600080fd5b505af1158015611056573d6000803e3d6000fd5b5050505050565b600080516020615f7b83398151915261107581612d36565b60115460405163627d8a0160e11b81526004810191909152602481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063c4fb140290604401600060405180830381600087803b1580156110e257600080fd5b505af11580156110f6573d6000803e3d6000fd5b5050506011929092555050565b600080516020615f7b83398151915261111b81612d36565b6002805460ff1916600117905560408051631022cfd760e01b815290516001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001691631022cfd791600480830192600092919082900301818387803b15801561104257600080fd5b6060610f0360076136cc565b6000610f036111a2612616565b613788565b6040516348e4a64960e01b81523360048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906348e4a6499060240160006040518083038186803b15801561120657600080fd5b505afa15801561121a573d6000803e3d6000fd5b5050505061122783612150565b61124f5760405163f14a3cf960e01b81526001600160a01b0384166004820152602401610721565b60008390506000816001600160a01b031663505d799e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611294573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b89190615aaf565b60405163720e52c560e01b81529091506001600160a01b0382169063720e52c5906112e99087908790600401615acc565b600060405180830381600087803b15801561130357600080fd5b505af1158015611317573d6000803e3d6000fd5b5050600f546113579250600791506003906001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006137c4565b6110566000612496565b60008060008061136f612616565b90506000806001600160a01b038816156115615761138c88612150565b6113b45760405163017dad6760e71b81526001600160a01b0389166004820152602401610721565b6000806113e360038b7f0000000000000000000000000000000000000000000000000000000000000000613c41565b91509150816114105760405163017dad6760e71b81526001600160a01b038b166004820152602401610721565b600f54604051633580ec1360e11b81526001600160a01b038c811660048301526000921690636b01d82690602401602060405180830381865afa15801561145b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061147f9190615a21565b600f54604051631bf49af760e11b81526001600160a01b038e81166004830152929350600092909116906337e935ee90602401602060405180830381865afa1580156114cf573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114f39190615a21565b90506115218c8c7f000000000000000000000000000000000000000000000000000000000000000084612764565b955061155a867f000000000000000000000000000000000000000000000000000000000000000085600a600801548661095f9190615a50565b9450505050505b61157088886109a28487615a63565b95506001600160a01b0388161561159857611595888361158f866126be565b84612d40565b94505b60006115a3846126be565b9050806000036115b657600094506115e0565b806115c18386615a63565b6115d390670de0b6b3a7640000615a76565b6115dd9190615a8d565b94505b505050509250925092565b6060610f036003613e95565b6001600160a01b03811660009081526005602052604081205481901561180557600e5460405163e7e4b8db60e01b81526001600160a01b038581166004830152600092169063e7e4b8db90602401602060405180830381865afa158015611662573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116869190615b05565b1561169d5750600e546001600160a01b031661171e565b600d5460405163e7e4b8db60e01b81526001600160a01b0386811660048301529091169063e7e4b8db90602401602060405180830381865afa1580156116e7573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061170b9190615b05565b1561171e5750600d546001600160a01b03165b600f5460405163739d020f60e11b81526001600160a01b038381166004830152808716602483015261180192879291169063e73a041e90604401602060405180830381865afa158015611775573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117999190615a21565b6040516370a0823160e01b81523060048201526001600160a01b038816906370a0823190602401602060405180830381865afa1580156117dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105f99190615a21565b9150505b600f54600d54600e54611850926007926003926001600160a01b03928316927f0000000000000000000000000000000000000000000000000000000000000000928116911689613f5d565b61185a9082615a50565b9392505050565b6000610f03610bcd612616565b6000610f03612616565b60009182526001602090815260408084206001600160a01b0393909316845291905290205460ff1690565b610c93612ee8565b600080846001600160a01b03166379502c556040518163ffffffff1660e01b8152600401608060405180830381865afa1580156118ec573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119109190615b22565b5050600f54604051631bf49af760e11b81526001600160a01b03808a1660048301529394506000936119759350899288927f000000000000000000000000000000000000000000000000000000000000000092909116906337e935ee906024016108de565b90506119a3817f000000000000000000000000000000000000000000000000000000000000000084886128d3565b9695505050505050565b600080516020615f7b8339815191526119c581612d36565b6012546040516309209da160e01b81526004810191909152602481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906309209da190604401600060405180830381600087803b158015611a3257600080fd5b505af1158015611a46573d6000803e3d6000fd5b5050506012929092555050565b611a5d6000612496565b565b600080516020615f7b833981519152611a7781612d36565b6001600160a01b038216611a8a57600080fd5b60006001600160a01b0316826001600160a01b031663025f1a5e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ad3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611af79190615aaf565b6001600160a01b031603611b0a57600080fd5b60035482906001600160a01b03165b6001600160a01b03811615611b7957611b3181612150565b611b595760405163017dad6760e71b81526001600160a01b0382166004820152602401610721565b6001600160a01b0390811660009081526004602052604090205416611b19565b600e546040516333d864dd60e21b81526001600160a01b03918216600482018190528683166024830152917f0000000000000000000000000000000000000000000000000000000000000000169063cf61937490604401600060405180830381600087803b158015611bea57600080fd5b505af1158015611bfe573d6000803e3d6000fd5b5050600d80546001600160a01b039485166001600160a01b031991821617909155600e8054969094169516949094179091555050505050565b600080516020615f7b833981519152611c4f81612d36565b600082905060006001600160a01b0316816001600160a01b03166342a9d1316040518163ffffffff1660e01b8152600401602060405180830381865afa158015611c9d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cc19190615aaf565b6001600160a01b031603611cd457600080fd5b600f546040516399146dff60e01b81526001600160a01b03918216600482015284821660248201527f0000000000000000000000000000000000000000000000000000000000000000909116906399146dff90604401600060405180830381600087803b158015611d4457600080fd5b505af1158015611d58573d6000803e3d6000fd5b5050600f80546001600160a01b0319166001600160a01b03949094169390931790925550505050565b60008281526001602081905260409091200154611d9d81612d36565b610bff8383612e81565b600080516020615f7b833981519152611dbf81612d36565b611dc76142ca565b506002805460ff19166001179055565b600080516020615f7b833981519152611def81612d36565b604051633759d6ad60e11b81526001600160a01b038481166004830152602482018490527f00000000000000000000000000000000000000000000000000000000000000001690636eb3ad5a90604401600060405180830381600087803b158015611e5957600080fd5b505af1158015611e6d573d6000803e3d6000fd5b505050506001600160a01b039290921660009081526006602052604090205550565b60025461010090046001600160a01b03163314611ee15760405162461bcd60e51b815260206004820152601060248201526f10b832b73234b733a3b7bb32b93737b960811b6044820152606401610721565b600c54611f0690600080516020615f7b833981519152906001600160a01b0316612e81565b600254611f3090600080516020615f7b8339815191529061010090046001600160a01b0316612e16565b60028054600c80546101008084046001600160a01b039081166001600160a01b031990931692909217909255610100600160a81b03199092169283905560405163a12f83a960e01b81529204811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a12f83a990602401600060405180830381600087803b158015611fc957600080fd5b505af1158015611fdd573d6000803e3d6000fd5b50505050565b600080516020615f7b833981519152611ffb81612d36565b6010546040516368e5255760e01b81526004810191909152602481018390527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906368e5255790604401600060405180830381600087803b15801561206857600080fd5b505af115801561207c573d6000803e3d6000fd5b5050506010929092555050565b600080516020615f7b8339815191526120a181612d36565b6001600160a01b0382166120b457600080fd5b50600280546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080516020615f7b8339815191526120f581612d36565b6120fd614324565b506002805460ff19169055565b60005460ff1615611a5d5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610721565b600e54600d546000916001600160a01b03908116911681158015906121da575060405163e7e4b8db60e01b81526001600160a01b03858116600483015283169063e7e4b8db90602401602060405180830381865afa1580156121b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121da9190615b05565b156121e9575060019392505050565b6001600160a01b03811615801590612266575060405163e7e4b8db60e01b81526001600160a01b03858116600483015282169063e7e4b8db90602401602060405180830381865afa158015612242573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122669190615b05565b15612275575060019392505050565b5060009392505050565b6001600160a01b03831660009081526002850160205260408120548181156123b957856001600160a01b03166379502c556040518163ffffffff1660e01b8152600401608060405180830381865afa1580156122df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123039190615b22565b5091925050504281101561231a576000925061248c565b604051633580ec1360e11b81526001600160a01b03878116600483015260009190871690636b01d82690602401602060405180830381865afa925050508015612380575060408051601f3d908101601f1916820190925261237d91810190615a21565b60015b156123885790505b80156123b3578083146123b3576001600160a01b038716600090815260028901602052604090208190555b50612487565b604051633580ec1360e11b81526001600160a01b038781166004830152861690636b01d82690602401602060405180830381865afa92505050801561241b575060408051601f3d908101601f1916820190925261241891810190615a21565b60015b61242c57600091506000925061248c565b8015612438578061243b565b60015b925050600061244b888887613c41565b925090508061245e57600093505061248c565b612468888861435d565b506001600160a01b038616600090815260028801602052604090208290555b600192505b9450945094915050565b600f546124d2906007906003906001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000006137c4565b6124dc60036144f1565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015612543573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906125679190615a21565b90508181111561260357604051636e553f6560e01b815282820360048201523060248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636e553f65906044016020604051808303816000875af11580156125df573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610bff9190615a21565b81811015610c7e57610c7e818303612b9b565b6040516370a0823160e01b815230600482015260009081906001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa15801561267f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126a39190615a21565b9050806126ae614716565b6126b89190615a50565b91505090565b600d54600e54600f546000926001600160a01b039081169281169161270d91600791600391167f0000000000000000000000000000000000000000000000000000000000000000868689613f5d565b600f54612748906003906001600160a01b03167f00000000000000000000000000000000000000000000000000000000000000008686614808565b6127529086615a50565b61275c9190615a50565b949350505050565b600080856001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156127a5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906127c99190615b77565b6127d490600a615c7e565b90506000866001600160a01b031663ef4474cd6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612816573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061283a9190615a21565b90508360000361287a57612856670de0b6b3a764000083615a76565b856128618884615a76565b61286b9190615a76565b6128759190615a8d565b6128c8565b61288c670de0b6b3a764000083615a76565b61289e90670de0b6b3a7640000615a76565b85876128aa8785615a76565b6128b49190615a76565b6128be9190615a76565b6128c89190615a8d565b979650505050505050565b600080834211612906576301da9c00856128ed4287615a63565b6128f79190615a76565b6129019190615a8d565b612909565b60005b9050670de0b6b3a764000061291e8285615a76565b6129289190615a8d565b6129329086615a50565b61293c8688615a76565b6129469190615a8d565b915085821161295557816119a3565b5093949350505050565b600f54600090819081908190819081906129a7906003906001600160a01b03168b8b7f00000000000000000000000000000000000000000000000000000000000000006149b8565b919450925090506129b88386615a50565b94506129c48285615a50565b600f5490945060009081908190612a0c906007906003906001600160a01b03168f8f7f0000000000000000000000000000000000000000000000000000000000000000614b1a565b91945092509050612a1d8389615a50565b9750612a298288615a50565b965083158015612a37575080155b8015612a4b57506001600160a01b038c1615155b15612b1657600f54604051631bf49af760e11b81526001600160a01b038e8116600483015260009216906337e935ee90602401602060405180830381865afa158015612a9b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612abf9190615a21565b90506000612aef8e8e7f000000000000000000000000000000000000000000000000000000000000000085612764565b9050612afb818a615a50565b9850612b078e82614dd8565b612b11908b615a50565b995050505b86158015612b22575089155b15612b385760009850505050505050505061185a565b612b428a88615a50565b612b4c9089615a8d565b9c9b505050505050505050505050565b6000612b6a85858585612d40565b60135490915081111561105657604051633cb36e3560e11b81526001600160a01b0386166004820152602401610721565b6040516363737ac960e11b8152600481018290527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063b460af9490829063c6e6f59290602401602060405180830381865afa158015612c08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2c9190615a21565b6040516001600160e01b031960e084901b1681526004810191909152306024820181905260448201526064016020604051808303816000875af1158015612c77573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c7e9190615a21565b6040516001600160a01b0380851660248301528316604482015260648101829052611fdd9085906323b872dd60e01b906084015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152614e10565b6040516001600160a01b038316602482015260448101829052610bff90849063a9059cbb60e01b90606401612ccf565b610c938133614ee5565b60008084612d4d876115f7565b612d579190615a50565b9050600083612d668787615a50565b612d709190615a63565b90507f0000000000000000000000000000000000000000000000000000000000000000612da583670de0b6b3a7640000615a76565b612daf9190615a8d565b91507f0000000000000000000000000000000000000000000000000000000000000000612de482670de0b6b3a7640000615a76565b612dee9190615a8d565b90508015612e09578061286b83670de0b6b3a7640000615a76565b5060009695505050505050565b612e208282611878565b610c7e5760008281526001602081815260408084206001600160a01b0386168086529252808420805460ff19169093179092559051339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b612e8b8282611878565b15610c7e5760008281526001602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b333014611a5d5760405162461bcd60e51b815260206004820152600560248201526410b9b2b63360d91b6044820152606401610721565b612f2761210a565b610c9381612496565b6000612f3b83612150565b612f635760405163f14a3cf960e01b81526001600160a01b0384166004820152602401610721565b612f6c82612150565b612f945760405163017dad6760e71b81526001600160a01b0383166004820152602401610721565b816001600160a01b031663cc5b6e4a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015612fd2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ff69190615a21565b836001600160a01b031663cc5b6e4a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613034573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130589190615a21565b146130815760405163017dad6760e71b81526001600160a01b0383166004820152602401610721565b60006130af6003847f0000000000000000000000000000000000000000000000000000000000000000613c41565b509050806130db5760405163017dad6760e71b81526001600160a01b0384166004820152602401610721565b6000846001600160a01b031663505d799e6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561311b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061313f9190615aaf565b9050806001600160a01b031663eb54f9ec6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561317f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a39190615a21565b421115806132125750806001600160a01b031663ba829d716040518163ffffffff1660e01b8152600401602060405180830381865afa1580156131ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061320e9190615a21565b4210155b1561275c5760405163f046007760e01b815260040160405180910390fd5b60606000866001600160a01b031663357a77d26040518163ffffffff1660e01b8152600401602060405180830381865afa158015613272573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132969190615aaf565b60408051600180825281830190925291925060009190816020015b6040805160a0810182526000808252602080830182905292820181905260608201819052608082015282526000199092019101816132b1579050509050868160008151811061330257613302615ca3565b6020026020010181905250838511156133f1578385036000613322612616565b90508181101561334f57604051633bf1b8e760e11b81526004810182905260248101839052604401610721565b61335882612b9b565b6133ee846001600160a01b0316635c4b440e6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613399573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906133bd9190615aaf565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169084614f3e565b50505b60405163db875b6960e01b81526001600160a01b0389169063db875b699061341d908490600401615cb9565b6000604051808303816000875af115801561343c573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526134649190810190615d64565b9250825160000361348857604051636df5846d60e01b815260040160405180910390fd5b83600003613504576134ff836000815181106134a6576134a6615ca3565b60200260200101516040518060800160405280896001600160a01b031681526020018a6060015181526020018c6001600160a01b031681526020018b6001600160a01b031681525060076150539092919063ffffffff16565b613547565b6000600760020160008560008151811061352057613520615ca3565b60200260200101518152602001908152602001600020905087606001518160010181905550505b8385101561366b576040516370a0823160e01b81523060048201526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000811691636e553f65917f000000000000000000000000000000000000000000000000000000000000000016906370a0823190602401602060405180830381865afa1580156135dd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136019190615a21565b6040516001600160e01b031960e084901b16815260048101919091523060248201526044016020604051808303816000875af1158015613645573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136699190615a21565b505b50509695505050505050565b600061368161210a565b61368b6000612496565b610f03610bcd612616565b61369e61210a565b60025460ff16156136c25760405163035edea360e41b815260040160405180910390fd5b610c936000612496565b606060006136d983615277565b90508015613782578067ffffffffffffffff8111156136fa576136fa615c8d565b604051908082528060200260200182016040528015613723578160200160208202803683370190505b5083549092506000905b801561377f5780848361373f81615e0a565b94508151811061375157613751615ca3565b60200260200101818152505061377885826000908152600191909101602052604090205490565b905061372d565b50505b50919050565b600080613794836126be565b9050806000036137a75750600092915050565b806137ba84670de0b6b3a7640000615a76565b61185a9190615a8d565b835415611fdd578354805b8115613c39576000828152600287810160209081526040808420815160808101835281546001600160a01b0390811682526001808401548387015295830154811682850152600390920154821660608201908152888752948c0190935281852054935191516372e3a5b160e01b8152600481018890529294929116906372e3a5b19060240160e060405180830381865afa158015613871573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138959190615e23565b608001519050600083604001516001600160a01b0316635fb8f3ed6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139039190615b05565b15613a85575082516001906000908190613920908c908c8c61227f565b92505091508115801561393257508042115b15613a7e576000866000015190506000816001600160a01b03166379502c556040518163ffffffff1660e01b8152600401608060405180830381865afa158015613980573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906139a49190615b22565b506040516370a0823160e01b815230600482018190529194508493506001600160a01b038085169350637e237e899291908716906370a0823190602401602060405180830381865afa1580156139fe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613a229190615a21565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b158015613a6857600080fd5b505af1925050508015613a79575060015b505050505b5050613bb1565b83604001516001600160a01b0316638dfea9e76040518163ffffffff1660e01b8152600401602060405180830381865afa158015613ac7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613aeb9190615b05565b15613ba557604080516001808252818301909252600091602080830190803683370190505090508681600081518110613b2657613b26615ca3565b60200260200101818152505084606001516001600160a01b031663720e52c5826040518263ffffffff1660e01b8152600401613b629190615874565b600060405180830381600087803b158015613b7c57600080fd5b505af1925050508015613b8d575060015b613b9a5760009150613b9f565b600191505b50613bb1565b81600003613bb1575060015b8015613c2c5760008681526001808c01602090815260408084208490556002808f01909252832080546001600160a01b0319908116825592810193909355820180548216905560039091018054909116905589548603613c1357828a55613c2c565b600085815260018b016020526040902083905593945084935b50909392506137cf915050565b505050505050565b600080600080856001600160a01b03166379502c556040518163ffffffff1660e01b8152600401608060405180830381865afa158015613c85573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ca99190615b22565b929550909350909150506001600160a01b0380831690861614613cd157600093505050613e8d565b42831015613ce457600093505050613e8d565b6000816001600160a01b031663190e80126040518163ffffffff1660e01b8152600401602060405180830381865afa158015613d24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d489190615b77565b60ff16905060005b81811015613e845760405163172c48c760e01b8152600481018290526000906001600160a01b0385169063172c48c790602401602060405180830381865afa158015613da0573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613dc49190615aaf565b6001600160a01b038116600090815260038c016020526040812054919250819003613df85760009750505050505050613e8d565b6040516320db25d560e01b81526001600160a01b0383811660048301528291908716906320db25d590602401602060405180830381865afa158015613e41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e659190615a21565b1015613e7a5760009750505050505050613e8d565b5050600101613d50565b50600194505050505b935093915050565b60606000613ea2836152b7565b90508015613782578067ffffffffffffffff811115613ec357613ec3615c8d565b604051908082528060200260200182016040528015613eec578160200160208202803683370190505b5083549092506000906001600160a01b03165b6001600160a01b0381161561377f57808483613f1a81615e0a565b945081518110613f2c57613f2c615ca3565b60200260200101906001600160a01b031690816001600160a01b031681525050613f56858261530a565b9050613eff565b8654600090613f6e575060006128c8565b87546000905b80156142bd57600081815260028b01602052604090206001600160a01b03851615801590613faf575080546001600160a01b03868116911614155b15613fcb5750600090815260018a016020526040902054613f74565b60038101546040516372e3a5b160e01b8152600481018490526000916001600160a01b0316906372e3a5b19060240160e060405180830381865afa158015614017573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061403b9190615e23565b6080015182546001600160a01b0316600090815260028d0160205260409020549091501580156140df57508160020160009054906101000a90046001600160a01b03166001600160a01b0316635fb8f3ed6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156140bb573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906140df9190615b05565b156142985760028201546001600160a01b038581169116146142935781546040516370a0823160e01b81523060048201526000916141c2916001600160a01b039091169081906370a0823190602401602060405180830381865afa15801561414b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061416f9190615a21565b8c8e6001600160a01b03166337e935ee8860000160009054906101000a90046001600160a01b03166040518263ffffffff1660e01b81526004016108de91906001600160a01b0391909116815260200190565b83549091506142749082908c906141e1906001600160a01b031661532d565b8e6001600160a01b0316636b01d8268860000160009054906101000a90046001600160a01b03166040518263ffffffff1660e01b815260040161423391906001600160a01b0391909116815260200190565b602060405180830381865afa158015614250573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061095f9190615a21565b61427e9087615a50565b60028401549096506001600160a01b03169450505b6142a5565b6142a28186615a50565b94505b5050600090815260018a016020526040902054613f74565b5050979650505050505050565b6142d261210a565b6000805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586143073390565b6040516001600160a01b03909116815260200160405180910390a1565b61432c61539b565b6000805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa33614307565b81546001600160a01b0316806143a6575081546001600160a01b039091166001600160a01b03199182168117835560009081526001909201602052604090912080549091169055565b60006143b18361532d565b905060005b6001600160a01b0383161561105657836001600160a01b0316836001600160a01b031603156110565760006143ea8461532d565b905080831015614487576001600160a01b0382166144205785546001600160a01b0319166001600160a01b038616178655614451565b6001600160a01b038281166000908152600188016020526040902080546001600160a01b0319169187169190911790555b506001600160a01b038481166000908152600187016020526040902080546001600160a01b031916918516919091179055611056565b6000614493878661530a565b90506001600160a01b0381166144e75750506001600160a01b03808416600090815260018701602052604080822080549388166001600160a01b031994851681179091558252902080549091169055611056565b9391506143b69050565b80546001600160a01b03166145035750565b80546001600160a01b0316805b6001600160a01b03821615610bff5760004261452b8461532d565b11611fdd576040516370a0823160e01b815230600482015260009081906001600160a01b038616906370a0823190602401602060405180830381865afa158015614579573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061459d9190615a21565b90508015614678576000856001600160a01b03166379502c556040518163ffffffff1660e01b8152600401608060405180830381865afa1580156145e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906146099190615b22565b50604051637e237e8960e01b8152306004820152602481018690529093506001600160a01b0384169250637e237e899150604401600060405180830381600087803b15801561465757600080fd5b505af1925050508015614668575060015b1561467257600192505b5061467d565b600191505b614687868661530a565b9250811561470c5785546001600160a01b03908116908616036146be5785546001600160a01b0319166001600160a01b0384161786555b6001600160a01b038085166000908152600188016020908152604080832080548589166001600160a01b03199182161790915593891683528083208054909416909355600289019052908120555b5050919050614510565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307a2d13a9082906370a0823190602401602060405180830381865afa158015614785573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906147a99190615a21565b6040518263ffffffff1660e01b81526004016147c791815260200190565b602060405180830381865afa1580156147e4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f039190615a21565b84546000906001600160a01b0316614822575060006149af565b85546001600160a01b03165b6001600160a01b038116156149ad5760006148488261532d565b6040516370a0823160e01b81523060048201529091506000906001600160a01b038416906370a0823190602401602060405180830381865afa158015614892573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906148b69190615a21565b604051633580ec1360e11b81526001600160a01b0385811660048301529192506000918a1690636b01d82690602401602060405180830381865afa158015614902573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906149269190615a21565b604051631bf49af760e11b81526001600160a01b03808716600483015291925060009161496491879186918d918f16906337e935ee906024016108de565b90504284111561498b5761497a818a86856128d3565b6149849087615a50565b9550614998565b6149958187615a50565b95505b6149a28b8661530a565b94505050505061482e565b505b95945050505050565b8454600090819081906001600160a01b03166149dc57506000915081905080614b0f565b87546001600160a01b03165b6001600160a01b03811615614b0d576040516370a0823160e01b81523060048201526000906001600160a01b038316906370a0823190602401602060405180830381865afa158015614a3e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614a629190615a21565b90508015614afb57816001600160a01b0316886001600160a01b031603614a9457614a8d8782615a50565b9050600192505b604051631bf49af760e11b81526001600160a01b038084166004830152600091614ad091859185918b91908f16906337e935ee906024016108de565b90506000614ade8483614dd8565b9050614aea8188615a50565b9650614af68287615a50565b955050505b614b058a8361530a565b9150506149e8565b505b955095509592505050565b855460009081908190614b3557506000915081905080614dcc565b88546000905b8015614dc957600081815260028c016020526040812080549091906001600160a01b03808c16911603614b7357506001935087614d77565b60038201546040516372e3a5b160e01b8152600481018590526001600160a01b03909116906372e3a5b19060240160e060405180830381865afa158015614bbe573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614be29190615e23565b6080015182546001600160a01b0316600090815260028e016020526040902054909150158015614c8657508160020160009054906101000a90046001600160a01b03166001600160a01b0316635fb8f3ed6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614c62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614c869190615b05565b15614d775760028201546001600160a01b03858116911614614d775781546040516370a0823160e01b8152306004820152614d64916001600160a01b03169081906370a0823190602401602060405180830381865afa158015614ced573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d119190615a21565b8a8e6001600160a01b03166337e935ee8760000160009054906101000a90046001600160a01b03166040518263ffffffff1660e01b81526004016108de91906001600160a01b0391909116815260200190565b60028301546001600160a01b0316945090505b8015614db1578154600090614d95906001600160a01b031683614dd8565b9050614da18189615a50565b9750614dad8288615a50565b9650505b5050600090815260018b016020526040902054614b3b565b50505b96509650969350505050565b600080614de48461532d565b905042811115614e09576000614df9826153e4565b9050614e058482615a76565b9250505b5092915050565b6000614e65826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166153f09092919063ffffffff16565b9050805160001480614e86575080806020019051810190614e869190615b05565b610bff5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610721565b614eef8282611878565b610c7e57614efc816153ff565b614f07836020615411565b604051602001614f18929190615ebf565b60408051601f198184030181529082905262461bcd60e51b825261072191600401615f34565b801580614fb85750604051636eb1769f60e11b81523060048201526001600160a01b03838116602483015284169063dd62ed3e90604401602060405180830381865afa158015614f92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614fb69190615a21565b155b6150235760405162461bcd60e51b815260206004820152603660248201527f5361666545524332303a20617070726f76652066726f6d206e6f6e2d7a65726f60448201527520746f206e6f6e2d7a65726f20616c6c6f77616e636560501b6064820152608401610721565b6040516001600160a01b038316602482015260448101829052610bff90849063095ea7b360e01b90606401612ccf565b60008360000154905081604001516001600160a01b0316635fb8f3ed6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561509e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906150c29190615b05565b156150cc57600080fd5b8061514c575081835560009182526001808401602090815260408085208590556002958601825293849020835181546001600160a01b03199081166001600160a01b039283161783559285015193820193909355938301519484018054821695831695909517909455606090910151600390920180549093169116179055565b60005b81156152085781841461520857600082815260028087016020526040918290200154908401516001600160a01b039182169181168211156151c55782615197578587556151ab565b600083815260018801602052604090208690555b505060008481526001860160205260409020829055615208565b6000848152600188016020526040902054806151fd575050506000828152600186016020526040808220869055858252812055615208565b93925061514f915050565b5050600091825260029283016020908152604092839020825181546001600160a01b039182166001600160a01b03199182161783559284015160018301559383015194810180549585169583169590951790945560609091015160039093018054939092169216919091179055565b805460009061528857506000919050565b81545b8015613782578161529b81615e0a565b60009283526001850160205260409092205491925061528b9050565b80546000906001600160a01b03166152d157506000919050565b81546001600160a01b03165b6001600160a01b0381161561378257816152f681615e0a565b925050615303838261530a565b90506152dd565b6001600160a01b0380821660009081526001840160205260409020541692915050565b6000816001600160a01b03166379502c556040518163ffffffff1660e01b8152600401608060405180830381865afa15801561536d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906153919190615b22565b5091949350505050565b60005460ff16611a5d5760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610721565b6000610ab94283615a63565b606061275c84846000856155ad565b6060610ab96001600160a01b03831660145b60606000615420836002615a76565b61542b906002615a50565b67ffffffffffffffff81111561544357615443615c8d565b6040519080825280601f01601f19166020018201604052801561546d576020820181803683370190505b509050600360fc1b8160008151811061548857615488615ca3565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106154b7576154b7615ca3565b60200101906001600160f81b031916908160001a90535060006154db846002615a76565b6154e6906001615a50565b90505b600181111561555e576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061551a5761551a615ca3565b1a60f81b82828151811061553057615530615ca3565b60200101906001600160f81b031916908160001a90535060049490941c9361555781615f47565b90506154e9565b50831561185a5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610721565b60608247101561560e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610721565b600080866001600160a01b0316858760405161562a9190615f5e565b60006040518083038185875af1925050503d8060008114615667576040519150601f19603f3d011682016040523d82523d6000602084013e61566c565b606091505b50915091506128c887838387606083156156e75782516000036156e0576001600160a01b0385163b6156e05760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610721565b508161275c565b61275c83838151156156fc5781518083602001fd5b8060405162461bcd60e51b81526004016107219190615f34565b6001600160a01b0381168114610c9357600080fd5b6000806040838503121561573e57600080fd5b823561574981615716565b946020939093013593505050565b60006020828403121561576957600080fd5b81356001600160e01b03198116811461185a57600080fd5b60006020828403121561579357600080fd5b813561185a81615716565b8015158114610c9357600080fd5b600080604083850312156157bf57600080fd5b82356157ca81615716565b915060208301356157da8161579e565b809150509250929050565b6000602082840312156157f757600080fd5b5035919050565b6000806040838503121561581157600080fd5b8235915060208301356157da81615716565b600080600080600060a0868803121561583b57600080fd5b853561584681615716565b9450602086013561585681615716565b94979496505050506040830135926060810135926080909101359150565b6020808252825182820181905260009190848201906040850190845b818110156158ac57835183529284019291840191600101615890565b50909695505050505050565b60005b838110156158d35781810151838201526020016158bb565b50506000910152565b600081518084526158f48160208601602086016158b8565b601f01601f19169290920160200192915050565b821515815260406020820152600061275c60408301846158dc565b60008060006040848603121561593857600080fd5b833561594381615716565b9250602084013567ffffffffffffffff8082111561596057600080fd5b818601915086601f83011261597457600080fd5b81358181111561598357600080fd5b8760208260051b850101111561599857600080fd5b6020830194508093505050509250925092565b6020808252825182820181905260009190848201906040850190845b818110156158ac5783516001600160a01b0316835292840192918401916001016159c7565b600080600060608486031215615a0157600080fd5b8335615a0c81615716565b95602085013595506040909401359392505050565b600060208284031215615a3357600080fd5b5051919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610ab957610ab9615a3a565b81810381811115610ab957610ab9615a3a565b8082028115828204841417610ab957610ab9615a3a565b600082615aaa57634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215615ac157600080fd5b815161185a81615716565b6020808252810182905260006001600160fb1b03831115615aec57600080fd5b8260051b80856040850137919091016040019392505050565b600060208284031215615b1757600080fd5b815161185a8161579e565b60008060008060808587031215615b3857600080fd5b845193506020850151615b4a81615716565b6040860151909350615b5b81615716565b6060860151909250615b6c81615716565b939692955090935050565b600060208284031215615b8957600080fd5b815160ff8116811461185a57600080fd5b600181815b80851115615bd5578160001904821115615bbb57615bbb615a3a565b80851615615bc857918102915b93841c9390800290615b9f565b509250929050565b600082615bec57506001610ab9565b81615bf957506000610ab9565b8160018114615c0f5760028114615c1957615c35565b6001915050610ab9565b60ff841115615c2a57615c2a615a3a565b50506001821b610ab9565b5060208310610133831016604e8410600b8410161715615c58575081810a610ab9565b615c628383615b9a565b8060001904821115615c7657615c76615a3a565b029392505050565b600061185a60ff841683615bdd565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b602080825282518282018190526000919060409081850190868401855b82811015615d2657815180518552868101516001600160a01b0390811688870152868201518787015260608083015190870152608091820151169085015260a09093019290850190600101615cd6565b5091979650505050505050565b604051601f8201601f1916810167ffffffffffffffff81118282101715615d5c57615d5c615c8d565b604052919050565b60006020808385031215615d7757600080fd5b825167ffffffffffffffff80821115615d8f57600080fd5b818501915085601f830112615da357600080fd5b815181811115615db557615db5615c8d565b8060051b9150615dc6848301615d33565b8181529183018401918481019088841115615de057600080fd5b938501935b83851015615dfe57845182529385019390850190615de5565b98975050505050505050565b600060018201615e1c57615e1c615a3a565b5060010190565b600060e08284031215615e3557600080fd5b60405160e0810181811067ffffffffffffffff82111715615e5857615e58615c8d565b604052825181526020830151615e6d81615716565b8060208301525060408301516040820152606083015160608201526080830151608082015260a0830151615ea081615716565b60a082015260c0830151615eb38161579e565b60c08201529392505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351615ef78160178501602088016158b8565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615f288160288401602088016158b8565b01602801949350505050565b60208152600061185a60208301846158dc565b600081615f5657615f56615a3a565b506000190190565b60008251615f708184602087016158b8565b919091019291505056fe7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f55a2646970667358221220d3d03d6ea6256f63c452005b7bc3de0fd7b3099e2f358f387791077fdc7258a764736f6c63430008170033000000000000000000000000000000000000000000000000000000000000016000000000000000000000000027af15ed04dfb358ea86f22ff93625d6b7cef4940000000000000000000000001b707eb09d622150f5e2e1cd285b0a4fb513e088000000000000000000000000824726bc2f7c9e8e0a7556660af26c50b93df5f9000000000000000000000000cf9ad7d801abd58496fb1ef2389cc3b2cc38ae270000000000000000000000006d178aea9630d77cc7a947c2689c7fd7494b3165000000000000000000000000810a105531f6cfdfd5ad930927f34fd9ff217a0500000000000000000000000000000000000000000000000006f05b59d3b2000000000000000000000000000000000000000000000000000000000000006ebe0000000000000000000000000000000000000000000000000002c68af0bb1400000000000000000000000000000000000000000000000000000008e1bc9bf04000000000000000000000000000000000000000000000000000000000000000000f757364635f776574685f676f765f340000000000000000000000000000000000
0x000000000000000000000000000000000000000000000000000000000000016000000000000000000000000027af15ed04dfb358ea86f22ff93625d6b7cef4940000000000000000000000001b707eb09d622150f5e2e1cd285b0a4fb513e088000000000000000000000000824726bc2f7c9e8e0a7556660af26c50b93df5f9000000000000000000000000cf9ad7d801abd58496fb1ef2389cc3b2cc38ae270000000000000000000000006d178aea9630d77cc7a947c2689c7fd7494b3165000000000000000000000000810a105531f6cfdfd5ad930927f34fd9ff217a0500000000000000000000000000000000000000000000000006f05b59d3b2000000000000000000000000000000000000000000000000000000000000006ebe0000000000000000000000000000000000000000000000000002c68af0bb1400000000000000000000000000000000000000000000000000000008e1bc9bf04000000000000000000000000000000000000000000000000000000000000000000f757364635f776574685f676f765f340000000000000000000000000000000000