0 txs
1 call
constructor
constructor(address _provisioner, (string name, string details, address accessManager, address configurationManager, address asset, uint256 depositCap, uint256 maxRebalanceOutflow, uint256 maxRebalanceInflow, bool requiresKeeperData, uint256 maxDepositPercentageOfTVL) _params)
functions
ADMIRALS_QUARTERS_ROLE
viewfunction ADMIRALS_QUARTERS_ROLE() view returns (bytes32)
asset
viewfunction asset() view returns (address)
assetsInDepositQueue
viewfunction assetsInDepositQueue() view returns (uint256)
assetsInWithdrawalQueue
viewfunction assetsInWithdrawalQueue() view returns (uint256)
asyncDepositRequest
viewfunction asyncDepositRequest() view returns (bytes32 hash, uint256 amount)
asyncRedeemRequest
viewfunction asyncRedeemRequest() view returns (bytes32 hash, uint256 amount)
commander
viewfunction commander() view returns (address)
config
viewfunction config() view returns (address commander, address raft, address asset, uint256 depositCap, uint256 maxRebalanceOutflow, uint256 maxRebalanceInflow, string name, string details, bool requiresKeeperData, uint256 maxDepositPercentageOfTVL)
configurationManager
viewfunction configurationManager() view returns (address)
DECAY_CONTROLLER_ROLE
viewfunction DECAY_CONTROLLER_ROLE() view returns (bytes32)
DEFAULT_SLIPPAGE
viewfunction DEFAULT_SLIPPAGE() view returns (uint256)
DEFAULT_SOLVER_TIP
viewfunction DEFAULT_SOLVER_TIP() view returns (uint256)
depositCap
viewfunction depositCap() view returns (uint256)
details
viewfunction details() view returns (string)
fleetCommanderRewardsManagerFactory
viewfunction fleetCommanderRewardsManagerFactory() view returns (address)
generateRole
purefunction generateRole(uint8 roleName, address roleTargetContract) pure returns (bytes32)
getConfig
viewfunction getConfig() view returns (tuple)
GOVERNOR_ROLE
viewfunction GOVERNOR_ROLE() view returns (bytes32)
GUARDIAN_ROLE
viewfunction GUARDIAN_ROLE() view returns (bytes32)
harborCommand
viewfunction harborCommand() view returns (address)
hasAdmiralsQuartersRole
viewfunction hasAdmiralsQuartersRole(address account) view returns (bool)
isWithdrawalClaimRequired
purefunction isWithdrawalClaimRequired() pure returns (bool)
MAX_PRICE_AGE
viewfunction MAX_PRICE_AGE() view returns (uint256)
MAX_SLIPPAGE
viewfunction MAX_SLIPPAGE() view returns (uint256)
maxDepositPercentageOfTVL
viewfunction maxDepositPercentageOfTVL() view returns (uint256)
maxRebalanceInflow
viewfunction maxRebalanceInflow() view returns (uint256)
maxRebalanceOutflow
viewfunction maxRebalanceOutflow() view returns (uint256)
name
viewfunction name() view returns (string)
priceCalculator
viewfunction priceCalculator() view returns (address)
provisioner
viewfunction provisioner() view returns (address)
raft
viewfunction raft() view returns (address)
REQUEST_DEADLINE
viewfunction REQUEST_DEADLINE() view returns (uint256)
requiresKeeperData
viewfunction requiresKeeperData() view returns (bool)
SLIPPAGE_BASE
viewfunction SLIPPAGE_BASE() view returns (uint256)
slippage
viewfunction slippage() view returns (uint256)
SUPER_KEEPER_ROLE
viewfunction SUPER_KEEPER_ROLE() view returns (bytes32)
tipJar
viewfunction tipJar() view returns (address)
totalAssets
viewfunction totalAssets() view returns (uint256 assets)
treasury
viewfunction treasury() view returns (address)
vault
viewfunction vault() view returns (address)
whitelistedRouters
viewfunction whitelistedRouters(address router) view returns (bool isWhitelisted)
withdrawableTotalAssets
viewfunction withdrawableTotalAssets() view returns (uint256)
withdrawalRequestId
purefunction withdrawalRequestId() pure returns (uint256)
board
nonpayablefunction board(uint256 amount, bytes boardData)
claimWithdrawal
nonpayablefunction claimWithdrawal()
disembark
nonpayablefunction disembark(uint256 amount, bytes disembarkData)
harvest
nonpayablefunction harvest(bytes additionalData) returns (address[] rewardTokens, uint256[] rewardAmounts)
move
nonpayablefunction move(uint256 amount, address receiverArk, bytes boardData, bytes disembarkData)
registerFleetCommander
nonpayablefunction registerFleetCommander()
requestWithdrawal
nonpayablefunction requestWithdrawal(uint256 amount)
setDepositCap
nonpayablefunction setDepositCap(uint256 newDepositCap)
setMaxDepositPercentageOfTVL
nonpayablefunction setMaxDepositPercentageOfTVL(uint256 newMaxDepositPercentageOfTVL)
setMaxRebalanceInflow
nonpayablefunction setMaxRebalanceInflow(uint256 newMaxRebalanceInflow)
setMaxRebalanceOutflow
nonpayablefunction setMaxRebalanceOutflow(uint256 newMaxRebalanceOutflow)
setSlippage
nonpayablefunction setSlippage(uint256 _slippage)
sweep
nonpayablefunction sweep() returns (address[] sweptTokens, uint256[] sweptAmounts)
sweep
nonpayablefunction sweep(address[] tokens) returns (address[] sweptTokens, uint256[] sweptAmounts)
unregisterFleetCommander
nonpayablefunction unregisterFleetCommander()
whitelistMerklOperator
nonpayablefunction whitelistMerklOperator(address operator)
whitelistRouter
nonpayablefunction whitelistRouter(address router, bool isWhitelisted)
withdrawUsingSwap
nonpayablefunction withdrawUsingSwap(uint256 amount, bytes data)
events
ArkHarvested
event ArkHarvested(address[] indexed rewardTokens, uint256[] indexed rewardAmounts)
ArkPoked
event ArkPoked(uint256 currentPrice, uint256 timestamp)
ArkSwept
event ArkSwept(address[] indexed sweptTokens, uint256[] indexed sweptAmounts)
Boarded
event Boarded(address indexed commander, address token, uint256 amount)
DepositCapUpdated
event DepositCapUpdated(uint256 newCap)
Disembarked
event Disembarked(address indexed commander, address token, uint256 amount)
FleetCommanderRegistered
event FleetCommanderRegistered(address commander)
FleetCommanderUnregistered
event FleetCommanderUnregistered(address commander)
MaxDepositPercentageOfTVLUpdated
event MaxDepositPercentageOfTVLUpdated(uint256 newMaxDepositPercentageOfTVL)
MaxRebalanceInflowUpdated
event MaxRebalanceInflowUpdated(uint256 newMaxInflow)
MaxRebalanceOutflowUpdated
event MaxRebalanceOutflowUpdated(uint256 newMaxOutflow)
Moved
event Moved(address indexed from, address indexed to, address token, uint256 amount)
RaftUpdated
event RaftUpdated(address newRaft)
RouterWhitelisted
event RouterWhitelisted(address router, bool isWhitelisted)
SlippageSet
event SlippageSet(uint256 slippage)
Swapped
event Swapped(address token, address router, uint256 amount, bytes swapCalldata)
WithdrawalRequested
event WithdrawalRequested(uint256 amount, uint256 withdrawalId)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AsyncDepositAlreadyExists
error AsyncDepositAlreadyExists()
AsyncRedeemAlreadyExists
error AsyncRedeemAlreadyExists()
CallerIsNotAdmin
error CallerIsNotAdmin(address caller)
CallerIsNotAuthorizedToBoard
error CallerIsNotAuthorizedToBoard(address caller)
CallerIsNotCommander
error CallerIsNotCommander(address caller)
CallerIsNotContractSpecificRole
error CallerIsNotContractSpecificRole(address caller, bytes32 role)
CallerIsNotCurator
error CallerIsNotCurator(address caller)
CallerIsNotDecayController
error CallerIsNotDecayController(address caller)
CallerIsNotFoundation
error CallerIsNotFoundation(address caller)
CallerIsNotGovernor
error CallerIsNotGovernor(address caller)
CallerIsNotGuardian
error CallerIsNotGuardian(address caller)
CallerIsNotGuardianOrGovernor
error CallerIsNotGuardianOrGovernor(address caller)
CallerIsNotKeeper
error CallerIsNotKeeper(address caller)
CallerIsNotRaft
error CallerIsNotRaft(address caller)
CallerIsNotRaftOrCommander
error CallerIsNotRaftOrCommander(address caller)
CallerIsNotSuperKeeper
error CallerIsNotSuperKeeper(address caller)
CannotAddCommanderToArkWithCommander
error CannotAddCommanderToArkWithCommander()
CannotDeployArkWithEmptyName
error CannotDeployArkWithEmptyName()
CannotDeployArkWithoutConfigurationManager
error CannotDeployArkWithoutConfigurationManager()
CannotDeployArkWithoutRaft
error CannotDeployArkWithoutRaft()
CannotDeployArkWithoutToken
error CannotDeployArkWithoutToken()
CannotRemoveCommanderFromArkWithAssets
error CannotRemoveCommanderFromArkWithAssets()
CannotUseKeeperDataWhenNotRequired
error CannotUseKeeperDataWhenNotRequired()
ConfigurationManagerZeroAddress
error ConfigurationManagerZeroAddress()
DirectGrantIsDisabled
error DirectGrantIsDisabled(address caller)
DirectRevokeIsDisabled
error DirectRevokeIsDisabled(address caller)
ERC4626AssetMismatch
error ERC4626AssetMismatch()
FailedCall
error FailedCall()
FleetCommanderAlreadyRegistered
error FleetCommanderAlreadyRegistered()
FleetCommanderNotRegistered
error FleetCommanderNotRegistered()
InsufficientBalance
error InsufficientBalance(uint256 balance, uint256 needed)
InvalidAccessManagerAddress
error InvalidAccessManagerAddress(address invalidAddress)
InvalidAddress
error InvalidAddress(string name, address addr)
InvalidBoardData
error InvalidBoardData()
InvalidDisembarkData
error InvalidDisembarkData()
InvalidVaultAddress
error InvalidVaultAddress()
KeeperDataRequired
error KeeperDataRequired()
MaxDepositPercentageOfTVLTooHigh
error MaxDepositPercentageOfTVLTooHigh()
NoWithdrawalToClaim
error NoWithdrawalToClaim()
ReceivedLessThanExpected
error ReceivedLessThanExpected()
ReentrancyGuardReentrantCall
error ReentrancyGuardReentrantCall()
RouterNotWhitelisted
error RouterNotWhitelisted()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
SlippageTooHigh
error SlippageTooHigh()
WithdrawalAlreadyRequested
error WithdrawalAlreadyRequested()
WithdrawalFailed
error WithdrawalFailed()
creation bytecode
0x61012080604052346105c0576146d4803803809161001d82856108fd565b83398101906040818303126105c05761003581610920565b602082015190916001600160401b0382116105c05701610140818403126105c05760405192610063846108e1565b81516001600160401b0381116105c0578161007f918401610934565b84526020820151906001600160401b0382116105c0576100a0918301610934565b90602084019182526100b460408201610920565b918260408601526100c760608301610920565b948560608201526100da60808401610920565b936080820194855260a08401519460a0830195865260c08501519060c0840191825260e08601519260e085019384526101206101196101008901610989565b61010087019081529701516101208601908152996001600160a01b03908116911680156108ce576040516301ffc9a760e01b815263261c910560e21b6004820152602081602481855afa9081156105cc575f91610894575b50156108825760805280156108735760a05280516001600160a01b0316156108645783515115610855576001600160a01b036101ab610996565b16156108465768056bc75e2d6310000089511161083757516001600160a01b03166101d4610996565b9651915192519351945195511515985196610120604051916101f5836108e1565b5f8084526001600160a01b03919091166020840181905260408401859052606084018690526080840187905260a0840188905260c0840189905260e08401998a5261010084019c8d529190920198895281546001600160a01b031990811690925560018054831690911790556002805490911690911790556003556004556005558051906001600160401b03821161073a5760065490600182811c9216801561082d575b602083101461071c5781601f8493116107bf575b50602090601f8311600114610759575f9261074e575b50508160011b915f199060031b1c1916176006555b5180519093906001600160401b03811161073a57600754600181811c91168015610730575b602082101461071c57601f81116106b9575b50602094601f8211600114610656579481929394955f9261064b575b50508160011b915f199060031b1c1916176007555b51151560ff801960085416911617600855516009556002600a5560018060a01b031680156106115760c0819052604051635acb46cf60e01b8152602081600481855afa9081156105cc575f916105d7575b506001600160a01b039081166101005260c0516040516397ac97db60e01b81529160209183916004918391165afa9081156105cc575f9161058e575b5060018060a01b031660e05260018060a01b03600254166040519060205f81840163095ea7b360e01b815285602486015281196044860152604485526104146064866108fd565b84519082855af15f513d82610572575b50501561052d575b604051613c789081610a5c8239608051818181610485015281816105f201528181610c1701528181610d48015281816114630152818161157401528181611d09015281816121380152612a86015260a051818181610343015281816108080152818161170601528181611f1101528181611f8301526131db015260c0518181816116b1015281816125710152818161338301528181613409015261352b015260e051818181610e01015281816114d80152818161261301528181612ce40152818161360601526138650152610100518181816102ce01528181610dc7015281816125e601528181612c5e0152818161358e0152818161364e01526138380152f35b61056561056a936040519063095ea7b360e01b602083015260248201525f60448201526044815261055f6064826108fd565b82610a03565b610a03565b5f808061042c565b9091506105865750803b15155b5f80610424565b60011461057f565b90506020813d6020116105c4575b816105a9602093836108fd565b810103126105c0576105ba90610920565b5f6103cd565b5f80fd5b3d915061059c565b6040513d5f823e3d90fd5b90506020813d602011610609575b816105f2602093836108fd565b810103126105c05761060390610920565b5f610391565b3d91506105e5565b60849060405190630961777760e41b825260406004830152600b60448301526a383937bb34b9b4b7b732b960a91b60648301526024820152fd5b015190505f8061032b565b601f1982169560075f52805f20915f5b8881106106a157508360019596979810610689575b505050811b01600755610340565b01515f1960f88460031b161c191690555f808061067b565b91926020600181928685015181550194019201610666565b60075f527fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c688601f830160051c81019160208410610712575b601f0160051c01905b818110610707575061030f565b5f81556001016106fa565b90915081906106f1565b634e487b7160e01b5f52602260045260245ffd5b90607f16906102fd565b634e487b7160e01b5f52604160045260245ffd5b015190505f806102c3565b60065f9081528281209350601f198516905b8181106107a7575090846001959493921061078f575b505050811b016006556102d8565b01515f1960f88460031b161c191690555f8080610781565b9293602060018192878601518155019501930161076b565b60065f529091507ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f601f840160051c81019160208510610823575b90601f859493920160051c01905b81811061081557506102ad565b5f8155849350600101610808565b90915081906107fa565b91607f1691610299565b634ef9dfe360e01b5f5260045ffd5b633a4f9cdb60e21b5f5260045ffd5b63268c072960e01b5f5260045ffd5b637ff57ef160e11b5f5260045ffd5b63f1634df960e01b5f5260045ffd5b6347bd7c1d60e01b5f5260045260245ffd5b90506020813d6020116108c6575b816108af602093836108fd565b810103126105c0576108c090610989565b5f610171565b3d91506108a2565b6347bd7c1d60e01b5f525f60045260245ffd5b61014081019081106001600160401b0382111761073a57604052565b601f909101601f19168101906001600160401b0382119082101761073a57604052565b51906001600160a01b03821682036105c057565b81601f820112156105c0578051906001600160401b03821161073a5760405192610968601f8401601f1916602001856108fd565b828452602083830101116105c057815f9260208093018386015e8301015290565b519081151582036105c057565b60a051604051628bec5760e51b815290602090829060049082906001600160a01b03165afa9081156105cc575f916109cc575090565b90506020813d6020116109fb575b816109e7602093836108fd565b810103126105c0576109f890610920565b90565b3d91506109da565b905f602091828151910182855af1156105cc575f513d610a5257506001600160a01b0381163b155b610a325750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415610a2b56fe60806040526004361015610011575f80fd5b5f5f3560e01c806301e1d11414612c1557806306fdde0314612bfa5780630af02e5014612a6a5780630f874a1314612a2b578063117d8ae0146129fe57806313c408f81461297d57806320578b371461295f57806324ea54f4146129245780632664584d146128ff5780632db6d399146124b8578063303dbaf3146124955780633194549e1461247757806335faa4161461212557806336e85f7b146104ff57806337270936146120fe57806338d52e0f146120d55780633cf61598146120b05780633e032a3b146120925780634d9d98c6146120775780634fc7fac314611fff578063565974d314611fcf5780635b0f83f314611f5d57806361d027b314611eeb57806361f5cd8b14611e92578063659e694614611e7757806366e943f114611e4f57806369b3054b14611deb5780636e66d84a14611cf6578063780469bb1461180357806379502c55146117525780637aaceb95146116e05780637ba3092c146104ff5780637e94eab91461169b57806386651203146116425780638a8b9976146115075780638b95e335146114c25780638f3ed683146113a657806392f5e8321461133a5780639475cd1c14610d345780639d7f7e8614610d175780639ee679e814610c03578063a879851014610be7578063a89f38a314610bac578063ad5a356f14610b8e578063aee45a6a14610b71578063bdcdd88214610b53578063c0b534c214610b18578063c38a6f0b146109b1578063c3f909d414610837578063c9c667e3146107f2578063ccc57490146107b7578063ce5c7f611461068d578063d570ee471461066a578063dbd5edc71461064c578063ebc136d014610588578063ebf311311461051b578063f0ed4e6c146104ff578063f0fa55a9146103c8578063f7e533ec1461031d578063f9759518146103005763fbfa77cf146102b9575f80fd5b346102fd57806003193601126102fd576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b80fd5b50346102fd57806003193601126102fd5760206040516103e88152f35b50346102fd57806003193601126102fd57604051633df94cfb60e21b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156103bd5760209291610390575b506040516001600160a01b039091168152f35b6103b09150823d84116103b6575b6103a88183612f21565b8101906131a8565b5f61037d565b503d61039e565b6040513d84823e3d90fd5b50346102fd5760203660031901126102fd578054600435906001600160a01b03168015908115610455575b50610442576103e88111610433576020817f1a89170b7100a37f2e1a8bca9d866cd3f6d666800bfb0fa8dd82f0b2193c926f92600a55604051908152a180f35b63428637bb60e11b8252600482fd5b6363b52ed760e11b825233600452602482fd5b61048191506104656020916134a8565b60405180938192632474521560e21b835233906004840161318f565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156104f45783916104c5575b50155f6103f3565b6104e7915060203d6020116104ed575b6104df8183612f21565b810190613177565b5f6104bd565b503d6104d5565b6040513d85823e3d90fd5b50346102fd57806003193601126102fd57602090604051908152f35b50346102fd57806003193601126102fd5780546001600160a01b0381163303610579576001600160a01b03191681556040513381527f7cb941d7b1708e5b3bcd35ca960d6c6311188cec18886e5b67630552676b048790602090a180f35b63430da47160e01b8252600482fd5b50346102fd5760203660031901126102fd576105a2612dbb565b604051632474521560e21b81527fb00be3d6a5434b97b328543d1486d56adcb7e74080170d1cdd7e0306c3d9ba3d60048201526001600160a01b03918216602482015290602090829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156103bd576020929161062f575b506040519015158152f35b6106469150823d84116104ed576104df8183612f21565b5f610624565b50346102fd57806003193601126102fd576020600354604051908152f35b50346102fd57806003193601126102fd576020610685613904565b604051908152f35b50346102fd5760203660031901126102fd576004356001600160401b0381116107b3576106be903690600401612dfb565b5050604051628bec5760e51b8152602081600481305afa9081156103bd578291610794575b506001600160a01b03163303610781576106fb613986565b60405161077d602061070d8184612f21565b8383525f368137604051906107228183612f21565b848252505f368137610733836132e6565b9261073d82613329565b946040519586957f3e3e7958121b3e39c7a49392d1aa9cdce870c2a059744f9e15cf66fff78654558380a35f516020613c235f395f51905f525d83612e5b565b0390f35b631184b31b60e21b815233600452602490fd5b6107ad915060203d6020116103b6576103a88183612f21565b5f6106e3565b5080fd5b50346102fd57806003193601126102fd5760206040517f7935bd0ae54bc31f548c14dba4d37c5c64b3f8ca900cb468fb8abd54d5894f558152f35b50346102fd57806003193601126102fd576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346102fd57806003193601126102fd578061012060405161085881612f05565b8281528260208201528260408201528260608201528260808201528260a0820152606060c0820152606060e08201528261010082015201526040519061089d82612f05565b546001600160a01b03908116825260015481166020830190815260025490911660408301908152600354606084019081526004546080850190815260055460a0860190815293949391929161099c9190610988906108f9612f59565b9060c0880191825261090961303b565b60e089810191825260085460ff1615156101008b019081526009546101208c019081526040805160208082529d516001600160a01b039081169e82019e909e529d518d16908e01529851909a1660608c0152975160808b0152935160a08a01525160c08901525161014095880195909552869594610160870190612d97565b9051858203601f1901610100870152612d97565b91511515610120840152516101408301520390f35b50346102fd5760803660031901126102fd576004356109ce612dd1565b6044356001600160401b038111610af9576109ed903690600401612dfb565b6064939193356001600160401b038111610b1457610a0f903690600401612dfb565b86549091906001600160a01b03163303610b0157869291610a2f916139bb565b6002546001600160a01b031693610a47848287613a46565b6001600160a01b031694853b15610afd5781606484926040519485938492632db6d39960e01b845289600485015260406024850152816044850152848401378181018301859052601f01601f1916810103018183895af180156103bd57610ae4575b5050610ade7f9f784fc02a186f1c98b2d9f15fda084da27cdd291a3785d978f91911d880516b91604051918291309583613232565b0390a380f35b81610aee91612f21565b610af957835f610aa9565b8380fd5b8280fd5b631564c0e160e11b875233600452602487fd5b8580fd5b50346102fd57806003193601126102fd5760206040517f025d8bbf3268be680d2605ebf6da15063b9915615bf1087dab336efc1bf970cb8152f35b50346102fd57806003193601126102fd576020600954604051908152f35b50346102fd57806003193601126102fd5760206040516127108152f35b50346102fd57806003193601126102fd576020600554604051908152f35b50346102fd57806003193601126102fd5760206040517fb00be3d6a5434b97b328543d1486d56adcb7e74080170d1cdd7e0306c3d9ba3d8152f35b50346102fd57806003193601126102fd57602060405160028152f35b50346102fd5760203660031901126102fd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610c4d60206104653061346f565b0381855afa9081156104f4578391610cf8575b50159081610c8f575b50610c7c57610c7960043561350f565b80f35b6329068e8160e21b815233600452602490fd5b604051632474521560e21b81525f516020613be35f395f51905f5260048201523360248201529150602090829060449082905afa9081156103bd578291610cd9575b50155f610c69565b610cf2915060203d6020116104ed576104df8183612f21565b5f610cd1565b610d11915060203d6020116104ed576104df8183612f21565b5f610c60565b50346102fd57806003193601126102fd576020604051610e108152f35b50346102fd57610d4336612e28565b9192917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610d7e60206104653061346f565b0381855afa90811561132f578591611310575b501590816112a7575b5061129457610da7613986565b6002546040516376bf1fbd60e01b81526001600160a01b039182169390927f00000000000000000000000000000000000000000000000000000000000000009092169160208480610dfd8a89886004850161314e565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa938415611289578694611255575b50810190602081830312610b14578035906001600160401b0382116112515701604081830312610b145760405190610e7082612ed6565b610e7981612de7565b82526020810135906001600160401b03821161124d570182601f8201121561125157803590610ea7826132b4565b93610eb56040519586612f21565b8285526020838301011161124d578188926020809301838701378401015260208101918252516001600160a01b031692610eee87613b03565b915191848752600b60205260ff6040882054161561123e5760405163095ea7b360e01b815260208180610f25868a60048401613232565b03818b895af180156111d957611221575b506040516370a0823160e01b815230600482015295602087602481845afa9687156111d95788976111ec575b50956020602497610fa58a808851858a01828d5af13d156111e4573d90610f88826132b4565b91610f966040519384612f21565b82523d8d8684013e5b8a613b84565b506040516370a0823160e01b815230600482015298899182905afa9687156111d95788976111a1575b50860395861161118d57851061117e579285969261102d7f4e3ab79f389be516335be1db65e5dca159cdb36b4d72ceff9499c3e1741533f093600496604051948594855260208501526040840152608060608401526080830190612d97565b0390a160018060a01b0360025416905f516020613c035f395f51905f526040518061105a33948683613232565b0390a2835460405163c8169aa160e01b81529260209184919082906001600160a01b03165afa91821561115257849261115d575b506020604051809263095ea7b360e01b82528187816110b1898960048401613232565b03925af1801561115257611135575b506001600160a01b031690813b15611131578291606483926040519485938492632db6d39960e01b84526004840152604060248401528160448401525af180156103bd5761111c575b505f516020613c235f395f51905f525d80f35b8161112691612f21565b6102fd57805f611109565b5050fd5b61114d9060203d6020116104ed576104df8183612f21565b6110c0565b6040513d86823e3d90fd5b61117791925060203d6020116103b6576103a88183612f21565b905f61108e565b63602f290360e01b8652600486fd5b634e487b7160e01b87526011600452602487fd5b9096506020813d6020116111d1575b816111bd60209383612f21565b810103126111cd5751955f610fce565b5f80fd5b3d91506111b0565b6040513d8a823e3d90fd5b606090610f9f565b96506020873d602011611219575b8161120760209383612f21565b810103126111cd579551956020610f62565b3d91506111fa565b6112399060203d6020116104ed576104df8183612f21565b610f36565b635bb5845760e11b8752600487fd5b8780fd5b8680fd5b9093506020813d602011611281575b8161127160209383612f21565b810103126111cd5751925f610e39565b3d9150611264565b6040513d88823e3d90fd5b6329068e8160e21b835233600452602483fd5b604051632474521560e21b81525f516020613be35f395f51905f5260048201523360248201529150602090829060449082905afa9081156111525784916112f1575b50155f610d9a565b61130a915060203d6020116104ed576104df8183612f21565b5f6112e9565b611329915060203d6020116104ed576104df8183612f21565b5f610d91565b6040513d87823e3d90fd5b50346102fd5760203660031901126102fd578054600435906001600160a01b03163303611393576020817fb6ac66853c4e59c71e118d25ab494bb847c4e5eb0c8894898c5343e6f61afc1292600555604051908152a180f35b631564c0e160e11b825233600452602482fd5b50346102fd5760403660031901126102fd576113c0612dbb565b60243590811515809203610afd5782546001600160a01b0316801590811561144f575b5061143c577fcf2b36bf2aa8353623d06f58eab9577176d9214e588362c013a7eeb0586463f19160409160018060a01b031690818552600b60205282852060ff1981541660ff831617905582519182526020820152a180f35b6363b52ed760e11b835233600452602483fd5b61145f91506104656020916134a8565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156111525784916114a3575b50155f6113e3565b6114bc915060203d6020116104ed576104df8183612f21565b5f61149b565b50346102fd57806003193601126102fd576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346102fd57806003193601126102fd57604051600160f91b60208281019182523060601b6001600160601b03191660218401526015835261157092909190611551603582612f21565b51902060405180938192632474521560e21b835233906004840161318f565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156103bd578291611623575b50156116105780546001600160a01b038116611601576001600160a01b0319163390811782556040519081527f55489ce0259bd691120d8860861be1c401c7c16a3cd268d21045756af4ecc5ca90602090a180f35b636a79b97d60e11b8252600482fd5b631564c0e160e11b815233600452602490fd5b61163c915060203d6020116104ed576104df8183612f21565b5f6115ac565b50346102fd5760203660031901126102fd578054600435906001600160a01b03163303611393576020817f333b26cca69716ad4680ddb07663f5bfb4f06045671f336af9a83690a3ae00f992600355604051908152a180f35b50346102fd57806003193601126102fd576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346102fd57806003193601126102fd57604051637aaceb9560e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156103bd576020929161039057506040516001600160a01b039091168152f35b50346102fd57806003193601126102fd57546001546002546003546004546005546001600160a01b03948516958516949293909216916117f091906117e290611799612f59565b906117a261303b565b9360ff6008541697600954976040519b8c9b8c5260208c015260408b015260608a0152608089015260a088015261014060c0880152610140870190612d97565b9085820360e0870152612d97565b9115156101008401526101208301520390f35b50346102fd5760203660031901126102fd576004356001600160401b0381116107b357366023820112156107b35780600401359061184082612f42565b9161184e6040519384612f21565b8083526024602084019160051b83010191368311611cf257602401905b828210611cda575050604051628bec5760e51b81529050602081600481305afa9081156104f4578391611cbb575b506001600160a01b03163303611ca8576118b1613986565b6118bb815161324d565b906118c6815161324d565b600254845460405163c8169aa160e01b815292949286926001600160a01b039081169260209183916004918391165afa9081156104f4578391611c89575b506040516370a0823160e01b8152306004820152602081602481865afa908115611152578491611c54575b50151580611c41575b611afd575b50505b8251811015611aa45760249060206001600160a01b0361196083876132a0565b5116604051938480926370a0823160e01b82523060048301525afa918215611289578692611a71575b508161199a575b6001915001611940565b6001600160a01b036119ac82866132a0565b51169160246119b96131c7565b9360206001600160a01b036119ce868a6132a0565b5116604051938480926370a0823160e01b82523060048301525afa918215611a66578992611a32575b5090600194611a0592613a0c565b828060a01b03611a1583876132a0565b5116611a2183866132a0565b52611a2c82876132a0565b52611990565b91506020823d8211611a5e575b81611a4c60209383612f21565b810103126111cd5790519060016119f7565b3d9150611a3f565b6040513d8b823e3d90fd5b9091506020813d8211611a9c575b81611a8c60209383612f21565b810103126111cd5751905f611989565b3d9150611a7f565b848261077d86611ab3836132e6565b92611abd82613329565b946040519586957f46b8771620f6acf56cb03d3e835ea8024c7dcbcf05fcc3f6ade9e19d1a3e212b8380a35f516020613c235f395f51905f525d83612e5b565b6040516370a0823160e01b8152306004820152602081602481865afa908115611152578491611c09575b5081611b3860209260249486613a46565b6040516370a0823160e01b81523060048201526001600160a01b0391909116939092839182905afa9081156104f4578391611bd4575b50604051611b7d602082612f21565b838152823b15610af957611baa92849283604051809681958294632db6d39960e01b8452600484016132cf565b03925af180156103bd57611bbf575b8061193d565b81611bc991612f21565b610af957835f611bb9565b9250506020823d602011611c01575b81611bf060209383612f21565b810103126111cd578591515f611b6e565b3d9150611be3565b9350506020833d602011611c39575b81611c2560209383612f21565b810103126111cd5791518692906024611b27565b3d9150611c18565b50306001600160a01b0382161415611938565b9350506020833d602011611c81575b81611c7060209383612f21565b810103126111cd578692515f61192f565b3d9150611c63565b611ca2915060203d6020116103b6576103a88183612f21565b5f611904565b631184b31b60e21b825233600452602482fd5b611cd4915060203d6020116103b6576103a88183612f21565b5f611899565b60208091611ce784612de7565b81520191019061186b565b8480fd5b50346102fd57806003193601126102fd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611d3f60206104653061346f565b0381855afa9081156104f4578391611dcc575b50159081611d63575b50610c7c5780f35b604051632474521560e21b81525f516020613be35f395f51905f5260048201523360248201529150602090829060449082905afa9081156103bd578291611dad575b50155f611d5b565b611dc6915060203d6020116104ed576104df8183612f21565b5f611da5565b611de5915060203d6020116104ed576104df8183612f21565b5f611d52565b50346102fd5760403660031901126102fd5760043560038110156107b357602091611e14612dd1565b9050604051908382019260f81b835260018060601b03199060601b16602182015260158152611e44603582612f21565b519020604051908152f35b50346102fd57806003193601126102fd5760206040515f516020613be35f395f51905f528152f35b50346102fd57806003193601126102fd5760206106856133e9565b50346102fd5760203660031901126102fd578054600435906001600160a01b03163303611393576020817ffbe2d5c01ea8ba5596d6c4e6c82c6d4a0a0ee1128689993a4a5ba0169273d69f92600455604051908152a180f35b50346102fd57806003193601126102fd576040516361d027b360e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156103bd576020929161039057506040516001600160a01b039091168152f35b50346102fd57806003193601126102fd57604051635b0f83f360e01b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156103bd576020929161039057506040516001600160a01b039091168152f35b50346102fd57806003193601126102fd5761077d611feb61303b565b604051918291602083526020830190612d97565b50346102fd5760203660031901126102fd578054600435906001600160a01b031633036113935768056bc75e2d631000008111612068576020817fd3c6d0ab315f2f1352f036cd9f401b49e38e1b90907e195225e8105f9a0b6f0292600955604051908152a180f35b634ef9dfe360e01b8252600482fd5b50346102fd57806003193601126102fd576020610685613363565b50346102fd57806003193601126102fd576020600a54604051908152f35b50346102fd57806003193601126102fd576040600e54600f5482519182526020820152f35b50346102fd57806003193601126102fd576002546040516001600160a01b039091168152602090f35b50346102fd57806003193601126102fd57546040516001600160a01b039091168152602090f35b50346102fd57806003193601126102fd577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661216e60206104653061346f565b0381855afa9081156104f4578391612458575b501590816123ef575b50610c7c57612197613986565b600254604080519092916001600160a01b0316906121b58482612f21565b60018152601f19840191823660208401378451926121d38685612f21565b60018452366020850137806121e78361327f565b5284516370a0823160e01b815230600482015290602082602481845afa80156123b25785906123bc575b6004925061221e8561327f565b528454865163c8169aa160e01b81529260209184919082906001600160a01b03165afa9182156123b2578592612391575b506122598461327f565b515f516020613c035f395f51905f5287518061227733948683613232565b0390a26122838461327f565b5115158061237e575b6122e9575b505090816122a161077d936132e6565b936122ab83613329565b95519586957f46b8771620f6acf56cb03d3e835ea8024c7dcbcf05fcc3f6ade9e19d1a3e212b8380a35f516020613c235f395f51905f525d83612e5b565b6122fe90826122f78661327f565b5191613a46565b6001600160a01b03166123108361327f565b5190855191612320602084612f21565b858352813b15610b145791859161234d93838951809681958294632db6d39960e01b8452600484016132cf565b03925af180156123745790849115612291578161236991612f21565b610afd57825f612291565b85513d86823e3d90fd5b50306001600160a01b038316141561228c565b6123ab91925060203d6020116103b6576103a88183612f21565b905f61224f565b86513d87823e3d90fd5b506020823d6020116123e7575b816123d660209383612f21565b810103126111cd5760049151612211565b3d91506123c9565b604051632474521560e21b81525f516020613be35f395f51905f5260048201523360248201529150602090829060449082905afa9081156103bd578291612439575b50155f61218a565b612452915060203d6020116104ed576104df8183612f21565b5f612431565b612471915060203d6020116104ed576104df8183612f21565b5f612181565b50346102fd57806003193601126102fd576020600454604051908152f35b50346102fd57806003193601126102fd57602060ff600854166040519015158152f35b50346102fd576124c736612e28565b906124d0613986565b604051631b93849b60e11b8152602081600481305afa90811561132f5785916128e0575b506001600160a01b0316338103612824575b5090612511916139bb565b60018060a01b0360025416906125576040516323b872dd60e01b602082015233602482015230604482015282606482015260648152612551608482612f21565b83613b2c565b600c5460405163695dfe8760e01b815260048101919091527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169190602081602481865afa90811561132f578591612805575b506127f6576002546040516376bf1fbd60e01b815292906001600160a01b03908116906020908590819061260f90879086907f00000000000000000000000000000000000000000000000000000000000000001660048501613126565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9384156112895786946127c2575b50828261265792613a46565b6002546001600160a01b03169061266d84613b03565b91620151804201928342116127ae5790829188933b15610af9578492868580946126ad604051978896879586946321a3b5bd60e01b8652600486016134d7565b03925af180156103bd57612795575b5050907fcbaa1442ac205415c9d69643e7b60ec73d1de35dbc807c21ec288c70ddc4207b9261277f926126f160025492613b03565b6040516001600160601b0319606094851b8116602083019081523090951b166034820152919061272089613108565b886048840152846049840152606983015287608983015260a9820152610e1060c982015260c9815261275360e982612f21565b51902081602060405161276581612ed6565b8381520152600c5580600d55604051918291339583613232565b0390a2805f516020613c235f395f51905f525d80f35b816127a291949394612f21565b611cf25790845f6126bc565b634e487b7160e01b88526011600452602488fd5b9093506020813d6020116127ee575b816127de60209383612f21565b810103126111cd5751928261264b565b3d91506127d1565b63af741f8360e01b8452600484fd5b61281e915060203d6020116104ed576104df8183612f21565b5f6125b2565b604051628bec5760e51b8152602081600481305afa9081156112895786916128c1575b506001600160a01b031633146125065760206024916040519283809263d206a05960e01b82523360048301525afa90811561132f5785916128a2575b501561288f575f612506565b638f7a567d60e01b845233600452602484fd5b6128bb915060203d6020116104ed576104df8183612f21565b5f612883565b6128da915060203d6020116103b6576103a88183612f21565b5f612847565b6128f9915060203d6020116103b6576103a88183612f21565b5f6124f4565b50346102fd57806003193601126102fd576040600c54600d5482519182526020820152f35b50346102fd57806003193601126102fd5760206040517f55435dd261a4b9b3364963f7738a7a662ad9c84396d64be3365284bb7f0a50418152f35b50346102fd57806003193601126102fd576020604051620151808152f35b50346102fd5761298c36612e28565b83549091906001600160a01b031633036129eb57906129b2916129ad613986565b6139bb565b6002546001600160a01b0316905f516020613c035f395f51905f529061277f906129dd813386613a0c565b604051918291339583613232565b631564c0e160e11b845233600452602484fd5b50346102fd57806003193601126102fd576020612a196131c7565b6040516001600160a01b039091168152f35b50346102fd5760203660031901126102fd5760209060ff906040906001600160a01b03612a56612dbb565b168152600b84522054166040519015158152f35b50346111cd5760203660031901126111cd57612a84612dbb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316612abc60206104653061346f565b0381855afa908115612b54575f91612bdb575b50159081612b72575b50612b5f57733ef3d8ba38ebe18db133cec108f4d14ce00dd9ae3b156111cd5760405163bdac7ca360e01b81523060048201526001600160a01b0390911660248201525f8160448183733ef3d8ba38ebe18db133cec108f4d14ce00dd9ae5af18015612b5457612b46575080f35b612b5291505f90612f21565b005b6040513d5f823e3d90fd5b6329068e8160e21b5f523360045260245ffd5b604051632474521560e21b81525f516020613be35f395f51905f5260048201523360248201529150602090829060449082905afa908115612b54575f91612bbc575b50155f612ad8565b612bd5915060203d6020116104ed576104df8183612f21565b5f612bb4565b612bf4915060203d6020116104ed576104df8183612f21565b5f612acf565b346111cd575f3660031901126111cd5761077d611feb612f59565b346111cd575f3660031901126111cd57612c49612c41612c3361391a565b612c3b613363565b906130e7565b612c3b6133e9565b6040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602082602481845afa918215612b54575f92612d63575b5081612caf575b602083604051908152f35b600254604051630bd01e0160e41b81529260209284928392612ce09290916001600160a01b03169060048501613126565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115612b54575f91612d30575b50612d29906020926130e7565b9082612ca4565b90506020813d602011612d5b575b81612d4b60209383612f21565b810103126111cd57516020612d1c565b3d9150612d3e565b9091506020813d602011612d8f575b81612d7f60209383612f21565b810103126111cd57519083612c9d565b3d9150612d72565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b03821682036111cd57565b602435906001600160a01b03821682036111cd57565b35906001600160a01b03821682036111cd57565b9181601f840112156111cd578235916001600160401b0383116111cd57602083818601950101116111cd57565b9060406003198301126111cd5760043591602435906001600160401b0382116111cd57612e5791600401612dfb565b9091565b604081016040825282518091526020606083019301905f5b818110612eb7575050506020818303910152602080835192838152019201905f5b818110612ea15750505090565b8251845260209384019390920191600101612e94565b82516001600160a01b0316855260209485019490920191600101612e73565b604081019081106001600160401b03821117612ef157604052565b634e487b7160e01b5f52604160045260245ffd5b61014081019081106001600160401b03821117612ef157604052565b90601f801991011681019081106001600160401b03821117612ef157604052565b6001600160401b038111612ef15760051b60200190565b604051905f6006548060011c9160018216918215613031575b60208410831461301d578386528592908115612ffe5750600114612f9f575b612f9d92500383612f21565b565b5060065f90815290917ff652222313e28459528d920b65115c16c04f3efc82aaedc97be59f3f377c0d3f5b818310612fe2575050906020612f9d92820101612f91565b6020919350806001915483858901015201910190918492612fca565b60209250612f9d94915060ff191682840152151560051b820101612f91565b634e487b7160e01b5f52602260045260245ffd5b92607f1692612f72565b604051905f6007548060011c91600182169182156130dd575b60208410831461301d578386528592908115612ffe575060011461307e57612f9d92500383612f21565b5060075f90815290917fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6885b8183106130c1575050906020612f9d92820101612f91565b60209193508060019154838589010152019101909184926130a9565b92607f1692613054565b919082018092116130f457565b634e487b7160e01b5f52601160045260245ffd5b6004111561311257565b634e487b7160e01b5f52602160045260245ffd5b6001600160a01b0391821681529116602082015260408101919091525f606082015260800190565b6001600160a01b0391821681529116602082015260408101919091526001606082015260800190565b908160209103126111cd575180151581036111cd5790565b9081526001600160a01b03909116602082015260400190565b908160209103126111cd57516001600160a01b03811681036111cd5790565b604051628bec5760e51b81526020816004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115612b54575f91613216575090565b61322f915060203d6020116103b6576103a88183612f21565b90565b6001600160a01b039091168152602081019190915260400190565b9061325782612f42565b6132646040519182612f21565b8281528092613275601f1991612f42565b0190602036910137565b80511561328c5760200190565b634e487b7160e01b5f52603260045260245ffd5b805182101561328c5760209160051b010190565b6001600160401b038111612ef157601f01601f191660200190565b60409061322f939281528160208201520190612d97565b6040518091829160208251919201905f5b8181106133075750505003902090565b82516001600160a01b03168452859450602093840193909201916001016132f7565b6040518091829160208251919201905f5b81811061334a5750505003902090565b825184528594506020938401939092019160010161333a565b600e5460405163766929f960e11b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115612b54575f916133ca575b506133c4575f90565b600f5490565b6133e3915060203d6020116104ed576104df8183612f21565b5f6133bb565b600c5460405163695dfe8760e01b815260048101919091526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115612b54575f91613450575b5061344a575f90565b600d5490565b613469915060203d6020116104ed576104df8183612f21565b5f613441565b604051600160f81b6020820190815260609290921b6001600160601b0319166021820152601581526134a2603582612f21565b51902090565b6040515f6020820190815260609290921b6001600160601b0319166021820152601581526134a2603582612f21565b9094935f9360c09360e084019760018060a01b03168452602084015260408301528360608301526080820152610e1060a08201520152565b600e5460405163766929f960e11b815260048101919091525f917f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691602081602481865afa908115612b54575f916138e5575b506138d6575f19810361380c57506040516370a0823160e01b81523060048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169290602081602481875afa908115612b54575f916137da575b50600254604051630bd01e0160e41b81529194602091839182916136029189916001600160a01b03169060048501613126565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115612b54575f916137a8575b50905b83156137a25761367284847f0000000000000000000000000000000000000000000000000000000000000000613a46565b6002546001600160a01b03169261368883613b03565b93620151804201948542116130f457823b156111cd578592875f80946136c460405197889687958694636be19ed360e01b8652600486016134d7565b03925af18015612b545761378f575b50600254906136e183613b03565b604051606093841b6001600160601b0319908116602083019081523090951b166034820152909490917f6b19bb08027e5bee64cbe3f99bbbfb671c0e134643993f0ad046fd01d020b34296604096600160f81b604886015260498501526069840152608983015260a9820152610e1060c982015260c9815261376460e982612f21565b519020816020845161377581612ed6565b838152015280600e5581600f5582519182526020820152a1565b61379b91505f90612f21565b5f5f6136d3565b50505050565b90506020813d6020116137d2575b816137c360209383612f21565b810103126111cd57515f61363e565b3d91506137b6565b90506020813d602011613804575b816137f560209383612f21565b810103126111cd57515f6135cf565b3d91506137e8565b6002546040516376bf1fbd60e01b815290602090829081906138619086906001600160a01b03908116907f0000000000000000000000000000000000000000000000000000000000000000166004850161314e565b03817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa908115612b54575f916138a4575b5092613641565b90506020813d6020116138ce575b816138bf60209383612f21565b810103126111cd57515f61389d565b3d91506138b2565b6320306bb960e11b5f5260045ffd5b6138fe915060203d6020116104ed576104df8183612f21565b5f61356b565b60ff600854166139165761322f61391a565b5f90565b6002546040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa908115612b54575f91613957575090565b90506020813d60201161397e575b8161397260209383612f21565b810103126111cd575190565b3d9150613965565b5f516020613c235f395f51905f525c6139ac5760015f516020613c235f395f51905f525d565b633ee5aeb560e01b5f5260045ffd5b50158015806139ff575b6139f057806139e4575b6139d557565b63332863a960e11b5f5260045ffd5b5060ff600854166139cf565b630cd0fdf960e01b5f5260045ffd5b5060ff60085416156139c5565b613a41612f9d9392613a3360405194859263a9059cbb60e01b602085015260248401613232565b03601f198101845283612f21565b613b2c565b91909160205f60405193613a7d85613a6f8582019363095ea7b360e01b85528960248401613232565b03601f198101875286612f21565b84519082855af15f513d82613ade575b505015613a9957505050565b60405163095ea7b360e01b60208201526001600160a01b0390931660248401525f6044808501919091528352612f9d92613a4190613ad8606482612f21565b82613b2c565b909150613afb57506001600160a01b0381163b15155b5f80613a8d565b600114613af4565b600a54612710039061271082116130f4578181029181830414901517156130f457612710900490565b905f602091828151910182855af115612b54575f513d613b7b57506001600160a01b0381163b155b613b5b5750565b635274afe760e01b5f9081526001600160a01b0391909116600452602490fd5b60011415613b54565b90613ba85750805115613b9957805190602001fd5b63d6bda27560e01b5f5260045ffd5b81511580613bd9575b613bb9575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15613bb156fe0d186688925976bbe6755ae984501c8e3e2b103a7af59fd803ab9c6d891ae7e0d5e872c5ecfb1bb8820b2e6a20e31b883682282da886621541f71e31ec11947e9b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a2646970667358221220c0abdfa83ec1e2920dd2cbadf7125d1e6ba69ffe63b5438c16496d19319519a764736f6c634300081c003300000000000000000000000018cf8d963e1a727f9bbf3aeffa0bd04fb4dbda070000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000014000000000000000000000000000000000000000000000000000000000000001a0000000000000000000000000603821f86dedc794a3225d62afe1f175fe4ae86100000000000000000000000017134ecce2bfde9cfbd05d0faffcb2e262e81ea1000000000000000000000000833589fcd6edb6e08f4c7c32d4f71b54bda0291300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000056bc75e2d631000000000000000000000000000000000000000000000000000000000000000000039416572612d3078313843463864393633453161373237463962624633414566666130426430344642346442644130372d757364632d383435330000000000000000000000000000000000000000000000000000000000000000000000000000d47b2270726f746f636f6c223a2241657261222c2274797065223a2241657261222c226173736574223a22307838333335383966434436654462364530386634633743333244346637316235346264413032393133222c226d61726b65744173736574223a22307838333335383966434436654462364530386634633743333244346637316235346264413032393133222c22706f6f6c223a22307830303030303030303030303143644235374535384661373546653432306130663444363634304435222c22636861696e4964223a383435337d000000000000000000000000