0 txs
1 call
constructor
constructor(address _addyRegistry, address _wethAddr, address _userWalletTemplate, address _userConfigTemplate, address _agentTemplate, address _defaultAgent, uint256 _minChangeDelay, uint256 _maxChangeDelay)
functions
addressChangeDelay
viewfunction addressChangeDelay() view returns (uint256)
addressInfo
viewfunction addressInfo(uint256 arg0) view returns (tuple)
ADDY_REGISTRY
viewfunction ADDY_REGISTRY() view returns (address)
agentBlacklist
viewfunction agentBlacklist(address arg0) view returns (bool)
ambassadorBonusRatio
viewfunction ambassadorBonusRatio() view returns (uint256)
canCancelCriticalAction
viewfunction canCancelCriticalAction(address _addr) view returns (bool)
canCriticalCancel
viewfunction canCriticalCancel(address arg0) view returns (bool)
canGovern
viewfunction canGovern(address _address) view returns (bool)
getAgentTemplateAddr
viewfunction getAgentTemplateAddr() view returns (address)
getAgentTemplateInfo
viewfunction getAgentTemplateInfo() view returns (tuple)
getDefaultAgentAddr
viewfunction getDefaultAgentAddr() view returns (address)
getDefaultAgentInfo
viewfunction getDefaultAgentInfo() view returns (tuple)
getPendingAgentTemplateUpdate
viewfunction getPendingAgentTemplateUpdate() view returns (tuple)
getPendingDefaultAgentUpdate
viewfunction getPendingDefaultAgentUpdate() view returns (tuple)
getPendingUserWalletConfigTemplateUpdate
viewfunction getPendingUserWalletConfigTemplateUpdate() view returns (tuple)
getPendingUserWalletTemplateUpdate
viewfunction getPendingUserWalletTemplateUpdate() view returns (tuple)
getUserWalletConfigTemplateAddr
viewfunction getUserWalletConfigTemplateAddr() view returns (address)
getUserWalletConfigTemplateInfo
viewfunction getUserWalletConfigTemplateInfo() view returns (tuple)
getUserWalletTemplateAddr
viewfunction getUserWalletTemplateAddr() view returns (address)
getUserWalletTemplateInfo
viewfunction getUserWalletTemplateInfo() view returns (tuple)
govChangeDelay
viewfunction govChangeDelay() view returns (uint256)
governance
viewfunction governance() view returns (address)
hasPendingAgentTemplateUpdate
viewfunction hasPendingAgentTemplateUpdate() view returns (bool)
hasPendingDefaultAgentUpdate
viewfunction hasPendingDefaultAgentUpdate() view returns (bool)
hasPendingGovChange
viewfunction hasPendingGovChange() view returns (bool)
hasPendingUserWalletConfigTemplateUpdate
viewfunction hasPendingUserWalletConfigTemplateUpdate() view returns (bool)
hasPendingUserWalletTemplateUpdate
viewfunction hasPendingUserWalletTemplateUpdate() view returns (bool)
isActivated
viewfunction isActivated() view returns (bool)
isAgent
viewfunction isAgent(address _addr) view returns (bool)
isAgentLocal
viewfunction isAgentLocal(address arg0) view returns (bool)
isUserWallet
viewfunction isUserWallet(address _addr) view returns (bool)
isUserWalletLocal
viewfunction isUserWalletLocal(address arg0) view returns (bool)
MAX_ADDRESS_CHANGE_DELAY
viewfunction MAX_ADDRESS_CHANGE_DELAY() view returns (uint256)
MAX_GOV_CHANGE_DELAY
viewfunction MAX_GOV_CHANGE_DELAY() view returns (uint256)
MAX_OWNER_CHANGE_DELAY
viewfunction MAX_OWNER_CHANGE_DELAY() view returns (uint256)
MIN_ADDRESS_CHANGE_DELAY
viewfunction MIN_ADDRESS_CHANGE_DELAY() view returns (uint256)
MIN_GOV_CHANGE_DELAY
viewfunction MIN_GOV_CHANGE_DELAY() view returns (uint256)
MIN_OWNER_CHANGE_DELAY
viewfunction MIN_OWNER_CHANGE_DELAY() view returns (uint256)
numAgents
viewfunction numAgents() view returns (uint256)
numAgentsAllowed
viewfunction numAgentsAllowed() view returns (uint256)
numUserWallets
viewfunction numUserWallets() view returns (uint256)
numUserWalletsAllowed
viewfunction numUserWalletsAllowed() view returns (uint256)
pendingAddress
viewfunction pendingAddress(uint256 arg0) view returns (tuple)
pendingGov
viewfunction pendingGov() view returns (tuple)
shouldEnforceWhitelist
viewfunction shouldEnforceWhitelist() view returns (bool)
trialFundsData
viewfunction trialFundsData() view returns (tuple)
WETH_ADDR
viewfunction WETH_ADDR() view returns (address)
whitelist
viewfunction whitelist(address arg0) view returns (bool)
activate
nonpayablefunction activate(bool _shouldActivate)
cancelAgentTemplateUpdate
nonpayablefunction cancelAgentTemplateUpdate() returns (bool)
cancelDefaultAgentUpdate
nonpayablefunction cancelDefaultAgentUpdate() returns (bool)
cancelGovernanceChange
nonpayablefunction cancelGovernanceChange()
cancelUserWalletConfigTemplateUpdate
nonpayablefunction cancelUserWalletConfigTemplateUpdate() returns (bool)
cancelUserWalletTemplateUpdate
nonpayablefunction cancelUserWalletTemplateUpdate() returns (bool)
changeGovernance
nonpayablefunction changeGovernance(address _newGov)
clawBackTrialFunds
nonpayablefunction clawBackTrialFunds(address[] _wallets) returns (bool)
clawBackTrialFundsLegacy
nonpayablefunction clawBackTrialFundsLegacy(tuple[] _recoveries) returns (bool)
confirmAgentTemplateUpdate
nonpayablefunction confirmAgentTemplateUpdate() returns (bool)
confirmDefaultAgentUpdate
nonpayablefunction confirmDefaultAgentUpdate() returns (bool)
confirmGovernanceChange
nonpayablefunction confirmGovernanceChange()
confirmUserWalletConfigTemplateUpdate
nonpayablefunction confirmUserWalletConfigTemplateUpdate() returns (bool)
confirmUserWalletTemplateUpdate
nonpayablefunction confirmUserWalletTemplateUpdate() returns (bool)
createAgent
nonpayablefunction createAgent() returns (address)
createAgent
nonpayablefunction createAgent(address _owner) returns (address)
createUserWallet
nonpayablefunction createUserWallet() returns (address)
createUserWallet
nonpayablefunction createUserWallet(address _owner, address _ambassador, bool _shouldUseTrialFunds) returns (address)
createUserWallet
nonpayablefunction createUserWallet(address _owner, address _ambassador) returns (address)
createUserWallet
nonpayablefunction createUserWallet(address _owner) returns (address)
initiateAgentTemplateUpdate
nonpayablefunction initiateAgentTemplateUpdate(address _newAddr) returns (bool)
initiateDefaultAgentUpdate
nonpayablefunction initiateDefaultAgentUpdate(address _newAddr) returns (bool)
initiateUserWalletConfigTemplateUpdate
nonpayablefunction initiateUserWalletConfigTemplateUpdate(address _newAddr) returns (bool)
initiateUserWalletTemplateUpdate
nonpayablefunction initiateUserWalletTemplateUpdate(address _newAddr) returns (bool)
payAmbassadorYieldBonus
nonpayablefunction payAmbassadorYieldBonus(address _ambassador, address _asset, uint256 _amount) returns (bool)
recoverFundsFromAgentFactory
nonpayablefunction recoverFundsFromAgentFactory(address _asset, address _recipient) returns (bool)
setAddressChangeDelay
nonpayablefunction setAddressChangeDelay(uint256 _numBlocks)
setAgentBlacklist
nonpayablefunction setAgentBlacklist(address _agentAddr, bool _shouldBlacklist) returns (bool)
setAmbassadorBonusRatio
nonpayablefunction setAmbassadorBonusRatio(uint256 _bonusRatio) returns (bool)
setCanCriticalCancel
nonpayablefunction setCanCriticalCancel(address _addr, bool _canCancel) returns (bool)
setGovernanceChangeDelay
nonpayablefunction setGovernanceChangeDelay(uint256 _numBlocks)
setNumAgentsAllowed
nonpayablefunction setNumAgentsAllowed() returns (bool)
setNumAgentsAllowed
nonpayablefunction setNumAgentsAllowed(uint256 _numAllowed) returns (bool)
setNumUserWalletsAllowed
nonpayablefunction setNumUserWalletsAllowed() returns (bool)
setNumUserWalletsAllowed
nonpayablefunction setNumUserWalletsAllowed(uint256 _numAllowed) returns (bool)
setShouldEnforceWhitelist
nonpayablefunction setShouldEnforceWhitelist(bool _shouldEnforce) returns (bool)
setTrialFundsData
nonpayablefunction setTrialFundsData(address _asset, uint256 _amount) returns (bool)
setWhitelist
nonpayablefunction setWhitelist(address _addr, bool _shouldWhitelist) returns (bool)
events
AddressChangeDelaySet
event AddressChangeDelaySet(uint256 delayBlocks)
AddressUpdateCancelled
event AddressUpdateCancelled(address indexed cancelledTemplate, uint256 initiatedBlock, uint256 confirmBlock, uint256 addressType)
AddressUpdateConfirmed
event AddressUpdateConfirmed(address indexed prevAddr, address indexed newAddr, uint256 initiatedBlock, uint256 confirmBlock, uint256 addressType)
AddressUpdateInitiated
event AddressUpdateInitiated(address indexed prevAddr, address indexed newAddr, uint256 confirmBlock, uint256 addressType)
AgentBlacklistSet
event AgentBlacklistSet(address indexed agentAddr, bool shouldBlacklist)
AgentCreated
event AgentCreated(address indexed agent, address indexed owner, address creator)
AgentFactoryActivated
event AgentFactoryActivated(bool isActivated)
AgentFactoryFundsRecovered
event AgentFactoryFundsRecovered(address indexed asset, address indexed recipient, uint256 balance)
AmbassadorBonusRatioSet
event AmbassadorBonusRatioSet(uint256 ratio)
AmbassadorYieldBonusPaid
event AmbassadorYieldBonusPaid(address indexed user, address indexed ambassador, address indexed asset, uint256 amount, uint256 ratio)
CanCriticalCancelSet
event CanCriticalCancelSet(address indexed addr, bool canCancel)
GovChangeCancelled
event GovChangeCancelled(address indexed cancelledGov, uint256 initiatedBlock, uint256 confirmBlock)
GovChangeConfirmed
event GovChangeConfirmed(address indexed prevGov, address indexed newGov, uint256 initiatedBlock, uint256 confirmBlock)
GovChangeDelaySet
event GovChangeDelaySet(uint256 delayBlocks)
GovChangeInitiated
event GovChangeInitiated(address indexed prevGov, address indexed newGov, uint256 confirmBlock)
NumAgentsAllowedSet
event NumAgentsAllowedSet(uint256 numAllowed)
NumUserWalletsAllowedSet
event NumUserWalletsAllowedSet(uint256 numAllowed)
ShouldEnforceWhitelistSet
event ShouldEnforceWhitelistSet(bool shouldEnforce)
TrialFundsDataSet
event TrialFundsDataSet(address indexed asset, uint256 amount)
UserWalletCreated
event UserWalletCreated(address indexed mainAddr, address indexed configAddr, address indexed owner, address agent, address ambassador, address creator)
WhitelistSet
event WhitelistSet(address addr, bool shouldWhitelist)
errors
No errors.
creation bytecode
0x612c0d515034610369576020612ed35f395f518060a01c61036957610140526020612ef35f395f518060a01c61036957610160526020612f135f395f518060a01c61036957610180526020612f335f395f518060a01c610369576101a0526020612f535f395f518060a01c610369576101c0526020612f735f395f518060a01c610369576101e052610140511561009b5761016051151561009d565b5f5b156103695761014051612b6d5261016051612b8d526020612fb35f395f516020612f935f395f5111610369576020612f935f395f51612bad526020612fb35f395f51612bcd526020612f935f395f51612bed526020612fb35f395f51612c0d526020612f935f395f51600c556001601655610180516040525f60605261012461020061021f565b61020051610132575f61014d565b6101a0516040525f60605261014861022061021f565b610220515b1561018457600160405261018051606052600160805261016b61024f565b60026040526101a051606052600160805261018461024f565b6101c0516040525f60605261019a61020061021f565b61020051156101bc5760046040526101c05160605260016080526101bc61024f565b6101e0516040525f6060526101d261020061021f565b61020051156101f45760086040526101e05160605260016080526101f461024f565b5f6040526101405160605260403660803761020d610273565b612b2d61036d61000039612c2d610000f35b60405161022d576001610233565b6040513b155b15610241575f81525061024d565b60605160405114158152505b565b600a6040516020525f5260405f206060518155608051600182015542600282015550565b60405115610282576001610288565b60605115155b15610369576040511561029b576040515f555b606051156102aa576060516005555b6040608060c05e60c0516102bf5760016102c4565b60e051155b1561033e57606051156103695760605163ed860576610100526020610100600461011c845afa6102f6573d5f5f3e3d5ffd5b60203d106103695761010090505160c05260605163c55728b0610100526020610100600461011c845afa61032c573d5f5f3e3d5ffd5b60203d106103695761010090505160e0525b60e05160c05110156103695760c051612b2d5260e051612b4d52606051156103675760c0516004555b565b5f80fd5f3560e01c60026056820660011b612a8101601e395f51565b6353aa4307811861257557602436103417612a7d576004358060a01c612a7d576102605260206102605161016052610051610280612649565b610280f35b633f561eff81186100745734612a7d57600354151560405260206040f35b63d345d79d81186125755734612a7d573361016052610094610260612649565b6102605115612a7d57602060046040526100af6102606129d9565b610260f35b6399572d6f811861021c57602436103417612a7d576004358060a01c612a7d57610160526100e36101e0612579565b6101e0805160208160051b0180836101805e505050335f6101e0525f6101805160028111612a7d57801561013857905b8060051b6101a00151831861012d5760016101e052610138565b600101818118610113575b50506101e051905015612a7d576101605160016101e0525f6101805160028111612a7d57801561018857905b8060051b6101a00151831861017d575f6101e052610188565b600101818118610164575b50506101e051905015612a7d57610160513b15612a7d576101aa6101e06126a8565b6101e051156101bd576101605115612a7d575b43600454808201828110612a7d57905090506101e05261016051600155436002556101e051600355610160515f547fa8e5a115434955f3c91f53089861da9b575399fbfbc1fc8b345ae6a18b0f193e6101e051610200526020610200a3005b63f40b169781186125755734612a7d5760045460405260206040f35b636e4fd9c881186102d05734612a7d5760015460405260025460605260035460805260405115612a7d576080511561027557608051431015610277565b5f5b15612a7d576040513318612a7d575f5460a0526040515f555f6001555f6002555f60035560405160a0517fb5dfe18540f75a87f8c7963e7f4942e9392be572b787d486d7868ac53a5bdf5b6040606060c05e604060c0a3005b63562f791e81186125755734612a7d5733610160526102f0610260612649565b6102605115612a7d57600b60086020525f5260405f2054604052610315610260612733565b6102605161032c575f610280526020610280610342565b6020600860a05261033e6102606128a4565b6102605bf35b63366836cc81186125755734612a7d573361016052610364610260612649565b6102605115612a7d5760015461026052600254610280526003546102a0526102a05115612a7d575f6001555f6002555f600355610260517f4301277e72c59c5071608882749a82a210817721ba94066744cea89211d3838060406102806102c05e60406102c0a2005b63a908dc80811861257557602436103417612a7d57600354612a7d5733610160526103f9610260612649565b6102605115612a7d576020612b2d5f395f51600435101561041a575f610429565b6020612b4d5f395f5160043511155b15612a7d576004356004557fb8d7f2c6802e04bfd3abb436c2b7b52bd4b37872b53bd1150146816d66ac7de2600435610260526020610260a1005b635aa6e67581186125755734612a7d575f5460405260206040f35b632524081081186125755734612a7d5760015460405260025460605260035460805260606040f35b63ed86057681186125755734612a7d576020612b2d60403960206040f35b63c55728b081186104e35734612a7d576020612b4d60403960206040f35b637879735a811861257557602436103417612a7d576004358060a01c612a7d5760405260146040516020525f5260405f205460605260206060f35b6342af624e811861055957602436103417612a7d576004358060a01c612a7d5760e052602060e0516040526105546101006126b1565b610100f35b63c169d334811861257557606436103417612a7d576004358060a01c612a7d5760e0526024358060a01c612a7d57610100526016546105a1575f610120526020610120610776565b60e0516105af5760016105c3565b610100516105be5760016105c3565b604435155b156105d7575f610120526020610120610776565b3361012052610120516040526105ee6101406126b1565b61014051610605575f610160526020610160610776565b600d546101405261014051610623575f610160526020610160610776565b60443561014051808202811583838304141715612a7d579050905061271081049050610100516370a0823161018052306101a0526020610180602461019c845afa610670573d5f5f3e3d5ffd5b60203d10612a7d576101809050518082811882841002189050905061016052610160516106a6575f610180526020610180610776565b6101005163a9059cbb6101805260e0516101a052610160516101c0526020610180604461019c5f855af16106dc573d5f5f3e3d5ffd5b3d6106f357803b15612a7d5760016101e05261071d565b3d602081183d602010021880610180016101a011612a7d57610180518060011c612a7d576101e052505b6101e090505115612a7d576101005160e051610120517fbb5f4325b4317ad684d0b70ced7083af3d5e866c37eee69f53ac66bf25ee34ec6101605161018052610140516101a0526040610180a460016101805260206101805bf35b636aafebbb811861079c5734612a7d573360e0525f610100526001610120526108af565b6389cdef9781186107c35734612a7d57600a60046020525f5260405f205460405260206040f35b63d7786ea981186125755734612a7d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610260526111fb565b63e7cf0c66811861257557602436103417612a7d576004358060a01c612a7d5760e0525f610100526001610120526108af565b63e660928d811861257557604436103417612a7d576004358060a01c612a7d5760e0526024358060a01c612a7d57610100526001610120526108af565b6354e47ce48118610e8e57606436103417612a7d576004358060a01c612a7d5760e0526024358060a01c612a7d57610100526044358060011c612a7d57610120525b60165415612a7d57600a60016020525f5260405f205461014052600a60026020525f5260405f20546101605261014051156108fd5761016051156108f75760e05115156108ff565b5f6108ff565b5f5b15612a7d57601354610911575f610920565b6012336020525f5260405f2054155b15610934575f610180526020610180610e8c565b6010546007541061094e575f610180526020610180610e8c565b5f610180526101005115610b01576101005160405261096e6101a06126b1565b6101a05115612a7d576101005163258294106101e05260606101e060046101fc845afa61099d573d5f5f3e3d5ffd5b3d606081183d6060100218806101e00161020011612a7d576101e06101e0516101e00110612a7d576101e0516101e0018051826101e0018251602001830111612a7d57601c8111612a7d5750602081510180826102605e5050506102609050602081510180826101a05e50506005610220527f302e302e31000000000000000000000000000000000000000000000000000000610240526102208051602082012090506101a0516101c02014610af15760056102a0527f302e302e320000000000000000000000000000000000000000000000000000006102c0526102a08051602082012090506101a0516101c02014610aeb5761010051630a21fe0f6102e05260206102e060046102fc845afa610ab7573d5f5f3e3d5ffd5b3d602081183d6020100218806102e00161030011612a7d576102e0518060011c612a7d576103205250610320905051610af3565b5f610af3565b5f5b15610b015761010051610180525b600e546101a052600f546101c05261012051610b1d575f610b24565b6101a05115155b15610b78576101c0516101a0516370a082316101e052306102005260206101e060246101fc845afa610b58573d5f5f3e3d5ffd5b60203d10612a7d576101e0905051808281188284100218905090506101c0525b600a60086020525f5260405f20546101e0526101605160e05161022052610220516102e0526101e051610240526102405161030052610180516102605261026051610320526020612b6d6102803961028051610340526020612bad6102a0396102a051610360526020612bcd6102c0396102c0516103805260c06003823b035960018212612a7d5781600382863c818101836102e0825e50828201815ff08015612a7d57905090509050905061020052610140516102005161024052610240516102e0526020612b6d6102603961026051610300526020612b8d6102803961028051610320526101a0516102a0526102a051610340526101c0516102c0526102c0516103605260a06003823b035960018212612a7d5781600382863c818101836102e0825e50828201815ff08015612a7d579050905090509050610220526102005163deaa59df6102405261022051610260526020610240602461025c5f855af1610ce5573d5f5f3e3d5ffd5b3d602081183d6020100218806102400161026011612a7d57610240518060011c612a7d57610280525061028090505115612a7d576101c05115610da6576101a05163a9059cbb6102405261022051610260526101c051610280526020610240604461025c5f855af1610d59573d5f5f3e3d5ffd5b3d610d7057803b15612a7d5760016102a052610d9a565b3d602081183d6020100218806102400161026011612a7d57610240518060011c612a7d576102a052505b6102a090505115612a7d575b6020612b6d5f395f5163a4c1dd1561024052610220516102605260016102805260016102a0526020610240606461025c5f855af1610de6573d5f5f3e3d5ffd5b3d602081183d6020100218806102400161026011612a7d57610240518060011c612a7d576102c052506102c090505115612a7d5760016006610220516020525f5260405f205560075460018101818110612a7d57905060075560e05161020051610220517f09b46939ee680b1425f364355105a51210e50c6f23ff4b635b6d86d43a7f4ab96101e05161024052610180516102605233610280526060610240a460206102205bf35b634a7060288118610efa57602436103417612a7d576004358060a01c612a7d57610260523361016052610ec2610280612649565b6102805115612a7d57602060016080526102605160a052600a60016020525f5260405f205460c052610ef56102806127e5565b610280f35b63751cfafe811861257557602436103417612a7d57600435610260525b3361016052610f27610280612649565b6102805115612a7d57610260516011557f2db5757e0783998cb09a70a8bbda0764e5d919afdf5f558fccb1cd33a87dcf1261026051610280526020610280a16001610280526020610280f35b631ffbb0648118610fae57602436103417612a7d576004358060a01c612a7d5760e052602060e051604052610fa9610100612733565b610100f35b63a15d267881186125755734612a7d573361016052610fce610260612649565b6102605115612a7d576020600460a052610fe96102606128a4565b610260f35b63457e8e1e81186125755734612a7d573360405261102b565b637243fb4a81186111de57602436103417612a7d576004358060a01c612a7d576040525b60165415612a7d57600a60046020525f5260405f205460605260605115611056576040511515611058565b5f5b15612a7d5760135461106a575f611079565b6012336020525f5260405f2054155b1561108b575f608052602060806111dc565b601154600954106110a3575f608052602060806111dc565b60605160405160a05260a051610120526020612b6d60c03960c051610140526020612bad60e03960e051610160526020612bcd61010039610100516101805260806003823b035960018212612a7d5781600382863c81810183610120825e50828201815ff08015612a7d5790509050905090506080526020612b6d5f395f5163a4c1dd1560a05260805160c052600160e0525f61010052602060a0606460bc5f855af1611152573d5f5f3e3d5ffd5b3d602081183d60201002188060a00160c011612a7d5760a0518060011c612a7d57610120525061012090505115612a7d57600160086080516020525f5260405f205560095460018101818110612a7d5790506009556040516080517f312fbd5a045443b15c7d6785d3fc6be1cda2be58416ac6416d8487ab88e53ae73360a052602060a0a3602060805bf35b638adddb10811861257557602436103417612a7d57600435610260525b336101605261120b610280612649565b6102805115612a7d57610260516010557fe63f7a001fc53d83b10b46a9e0c641bf5a494c33fc5e2a65d6ee1509df49aaa761026051610280526020610280a16001610280526020610280f35b630be2deef81186112975734612a7d573361016052611277610260612649565b6102605115612a7d576020600160a0526112926102606128a4565b610260f35b6353ebca89811861257557602436103417612a7d576004358060a01c612a7d5760405260156040516020525f5260405f205460605260206060f35b63d9f45e6a81186113125734612a7d5733610160526112f2610260612649565b6102605115612a7d576020600160405261130d6102606129d9565b610260f35b63476f5d9c811861257557604436103417612a7d576004358060a01c612a7d57610260526024358060a01c612a7d576102805233610160526113556102a0612649565b6102a05115612a7d57610260516370a082316102c052306102e05260206102c060246102dc845afa611389573d5f5f3e3d5ffd5b60203d10612a7d576102c09050516102a052610280516113aa5760016113b0565b61026051155b6113be576102a051156113c1565b60015b156113d5575f6102e05260206102e0611494565b6102605163a9059cbb6102c05260406102806102e05e60206102c060446102dc5f855af1611405573d5f5f3e3d5ffd5b3d61141c57803b15612a7d57600161032052611446565b3d602081183d6020100218806102c0016102e011612a7d576102c0518060011c612a7d5761032052505b61032090505115612a7d5761028051610260517f153f864a086e6a8849df572fe63f7ea82f0b00b328e662b1759e1f06b853a1486102a0516102c05260206102c0a360016102c05260206102c05bf35b634c77189781186125755734612a7d57600a60016020525f5260405f205460405260206040f35b63110ffddb81186114f65734612a7d57600a60016020525f5260405f208054604052600181015460605260028101546080525060606040f35b63746ffdc581186125755734612a7d57600b60026020525f5260405f208054604052600181015460605260028101546080525060606040f35b63462c8f7e81186115685734612a7d57600b60016020525f5260405f208054604052600181015460605260028101546080525060606040f35b637599df3681186115f857602436103417612a7d57336101605261158d610260612649565b6102605115612a7d576020612bed5f395f5160043510156115ae575f6115bd565b6020612c0d5f395f5160043511155b15612a7d57600435600c557fff263327a9eeb2ee1302597d325d0296b5602f2057c36a081ace2b9b20f79023600435610260526020610260a1005b634eacfd4681186125755734612a7d57600a60086020525f5260405f205460405260206040f35b63b18c516081186116445734612a7d57602060016040526116406060612a61565b6060f35b63c86cfae681186125755734612a7d576020612bad60403960206040f35b63b73eeb76811861257557602436103417612a7d576004358060a01c612a7d57610260523361016052611696610280612649565b6102805115612a7d57602060026080526102605160a052600a60026020525f5260405f205460c0526116c96102806127e5565b610280f35b6359cd554481186125755734612a7d5733610160526116ee610260612649565b6102605115612a7d576020600260a0526117096102606128a4565b610260f35b6396052bea811861174e5734612a7d57336101605261172e610260612649565b6102605115612a7d57602060026040526117496102606129d9565b610260f35b634a8c1fb481186125755734612a7d5760165460405260206040f35b636956ca3e81186125755734612a7d57600a60026020525f5260405f205460405260206040f35b63125dc62b81186117ca5734612a7d57600a60026020525f5260405f208054604052600181015460605260028101546080525060606040f35b63709c07f7811861257557602436103417612a7d576004358060041c612a7d57604052600a6040516020525f5260405f2080546060526001810154608052600281015460a0525060606060f35b6313df6116811861183c5734612a7d57602060026040526118386060612a61565b6060f35b63231e91f4811861257557602436103417612a7d576004356004016064813511612a7d5780355f8160648111612a7d57801561190e57905b8060051b602085010135602085010161054082026102800181358060a01c612a7d578152602082013582016014813511612a7d5780355f8160148111612a7d5780156118f757905b8060061b6020850101602086018260061b602082010190508135815260208201358060a01c612a7d57602082015250506001018181186118bc575b505080602084015250505050600101818118611874575b5050806102605250506015336020525f5260405f205461194357336101605261193962020f80612649565b62020f8051611946565b60015b15612a7d575f6102605160648111612a7d578015611a4457905b6105408102610280016105408162020f805e5062020f80516366d24deb620214c052602080620214e05280620214e0015f62020fa0518083528060061b5f8260148111612a7d5780156119d357905b8060061b62020fc0018160061b6020880101604082825e50506001018181186119af575b505082016020019150509050810150506020620214c0610544620214dc5f855af1611a00573d5f5f3e3d5ffd5b3d602081183d602010021880620214c001620214e011612a7d57620214c0518060011c612a7d5762021a20525062021a2090505115612a7d57600101818118611960575b5050600162020f8052602062020f80f35b630a3fd6ab811861257557602436103417612a7d576004358060a01c612a7d57610260523361016052611a89610280612649565b6102805115612a7d57602060046080526102605160a052600a60046020525f5260405f205460c052611abc6102806127e5565b610280f35b63e719462881186125755734612a7d57600a60046020525f5260405f208054604052600181015460605260028101546080525060606040f35b63f3afabb18118611b335734612a7d57600b60046020525f5260405f208054604052600181015460605260028101546080525060606040f35b63ba76fc6f8118611b6d5734612a7d577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff61026052610f17565b6394b51d3781186125755734612a7d576020612b6d60403960206040f35b63228a20908118611bb05734612a7d5760206004604052611bac6060612a61565b6060f35b639b19251a811861257557602436103417612a7d576004358060a01c612a7d5760405260126040516020525f5260405f205460605260206060f35b6353d6fd598118611c8857604436103417612a7d576004358060a01c612a7d57610260526024358060011c612a7d57610280523361016052611c2e6102a0612649565b6102a05115612a7d57610280516012610260516020525f5260405f20557f0aa5ec5ffdc7f6f9c4d0dded489d7450297155cb2f71cb771e02427f7dff4f5160406102606102a05e60406102a0a160016102a05260206102a0f35b63b1bb8dd1811861257557604436103417612a7d576004358060a01c612a7d57610260526024358060011c612a7d57610280523361016052611ccb6102a0612649565b6102a05115612a7d57610280516014610260516020525f5260405f2055610260517f88891276668bcea2ad01bfa6dea2945fa653fe4e160fc230950382dba31f296a610280516102a05260206102a0a260016102a05260206102a0f35b6312aa65498118611da857602436103417612a7d576004358060011c612a7d57610260523361016052611d5c610280612649565b6102805115612a7d57610260516013557f3d23ae8e025ce5c0b0e38368e4dbab0e33d4e35f64b71d8829f6229cdfdf8e3d61026051610280526020610280a16001610280526020610280f35b631b1f8c0581186125755734612a7d5760135460405260206040f35b630fd8944c8118611e2657602436103417612a7d576004358060a01c612a7d57610260526015610260516020525f5260405f2054611e18576102605161016052611e0f610280612649565b61028051611e1b565b60015b6102a05260206102a0f35b639be9558e81186125755734612a7d57600e54604052600f5460605260406040f35b6383deff0e811861257557604436103417612a7d576004358060a01c612a7d57610260526024358060011c612a7d57610280523361016052611e8b6102a0612649565b6102a05115612a7d5761026051611ea3576001611edb565b610280516015610260516020525f5260405f205418611ec3576001611edb565b6102605161016052611ed66102a0612649565b6102a0515b15611eef575f6102c05260206102c0611f42565b610280516015610260516020525f5260405f2055610260517f6de48abbd83f07b7b3a1233375c0d2f42ffccd504512f104f03d86ac10e55594610280516102a05260206102a0a260016102a05260206102a05bf35b63d06e9ebd811861257557604436103417612a7d576004358060a01c612a7d57610260523361016052611f78610280612649565b6102805115612a7d57610260513b611f91576001611fa5565b61026051611fa0576001611fa5565b602435155b15611fb9575f610280526020610280612004565b61026051600e55602435600f55610260517f5a997816b08a297326dc7210ade6edda68866a278377698e4bc6167e2399d0cb602435610280526020610280a260016102805260206102805bf35b6394d92681811861257557602436103417612a7d576004356004016064813511612a7d5780355f8160648111612a7d57801561206457905b8060051b6020850101358060a01c612a7d578160051b610280015260010181811861203e575b5050806102605250506015336020525f5260405f205461209757336101605261208e610f00612649565b610f005161209a565b60015b15612a7d575f6102605160648111612a7d57801561212757905b8060051b6102800151610f0052610f005163e0bfdbeb610f20526020610f206004610f3c5f855af16120e8573d5f5f3e3d5ffd5b3d602081183d602010021880610f2001610f4011612a7d57610f20518060011c612a7d57610f605250610f6090505115612a7d576001018181186120b4575b50506001610f00526020610f00f35b63cdde768a81186121b057602436103417612a7d57336101605261215b610260612649565b6102605115612a7d5761271060043511612a7d57600435600d557fdb4551168dfba89083bb326e0315890305b4f85733407494ec5471987adabd73600435610260526020610260a16001610260526020610260f35b63199f881281186125755734612a7d576020612bcd60403960206040f35b63dd287fb2811861257557602436103417612a7d576004358060a01c612a7d57610260523361016052612202610280612649565b6102805115612a7d576102605160405261221d610280612733565b61028051612234575f6102a05260206102a0612262565b602060086080526102605160a052600a60086020525f5260405f205460c05261225e6102806127e5565b6102805bf35b63fd63815d81186125755734612a7d573361016052612284610260612649565b6102605115612a7d576020600860405261229f6102606129d9565b610260f35b63ff8b0a2d81186122dd5734612a7d57600a60086020525f5260405f208054604052600181015460605260028101546080525060606040f35b63ce5e84a3811861257557602436103417612a7d576004358060011c612a7d57610260523361016052612311610280612649565b6102805115612a7d57610260516016557f95980685d636ce829cef772691241a033b4ca773bf32502290d8c591f3bb808761026051610280526020610280a1005b630ce4950f81186125755734612a7d57600b60086020525f5260405f208054604052600181015460605260028101546080525060606040f35b637a52282481186125755734612a7d57602060086040526123ac6060612a61565b6060f35b63371fd0d1811861257557602436103417612a7d576004358060a01c612a7d5760405260066040516020525f5260405f205460605260206060f35b63601f2e2681186124075734612a7d5760075460405260206040f35b63e20d373281186125755734612a7d5760095460405260206040f35b6380cae8b0811861257557602436103417612a7d576004358060a01c612a7d5760405260086040516020525f5260405f205460605260206060f35b63e99025cb81186124ab57602436103417612a7d576004358060041c612a7d57604052600b6040516020525f5260405f2080546060526001810154608052600281015460a0525060606060f35b63e5de237181186125755734612a7d57600d5460405260206040f35b639b0f914f81186125755734612a7d57600c5460405260206040f35b6332bca78081186125755734612a7d5760105460405260206040f35b634117d8a481186125755734612a7d5760115460405260206040f35b6382dfc5f781186125755734612a7d576020612b8d60403960206040f35b6385ca6c8f81186125755734612a7d576020612bed60403960206040f35b63552b4eae81186125755734612a7d576020612c0d60403960206040f35b5f5ffd5b5f6040525f5460a05260a051156125a95760405160018111612a7d5760a0518160051b6060015260018101604052505b60055460c05260c051156126355760c051635aa6e675610100526020610100600461011c845afa6125dc573d5f5f3e3d5ffd5b3d602081183d6020100218806101000161012011612a7d57610100518060a01c612a7d57610140525061014090505160e05260e051156126355760405160018111612a7d5760e0518160051b6060015260018101604052505b60405160208160051b01806040845e505050565b610160516126586101e0612579565b6101e05f610240525f815160028111612a7d57801561269957905b8060051b602084010151841861268e57600161024052612699565b600101818118612673575b50506102405190509050815250565b60055415815250565b60066040516020525f5260405f2054606052606051156126d5576001815250612731565b6020612b6d5f395f516342af624e60805260405160a052602060806024609c845afa612703573d5f5f3e3d5ffd5b3d602081183d60201002188060800160a011612a7d576080518060011c612a7d5760c0525060c09050518152505b565b60086040516020525f5260405f2054606052606051156127575760018152506127b3565b6020612b6d5f395f51631ffbb06460805260405160a052602060806024609c845afa612785573d5f5f3e3d5ffd5b3d602081183d60201002188060800160a011612a7d576080518060011c612a7d5760c0525060c09050518152505b565b6040516127c35760016127c9565b6040513b155b156127d7575f8152506127e3565b60605160405114158152505b565b604060a060405e6127f660e06127b5565b60e051612806575f81525061287e565b43600c54808201828110612a7d579050905060e052600b6080516020525f5260405f2060a051815543600182015560e05160028201555060a05160c0517f396bfad38891a9d4d747acfe52a1ef9b9bf3faaeb0b9ffd072b052042884632760e05161010052608051610120526040610100a360018152505b565b600a6040516020525f5260405f206060518155608051600182015542600282015550565b600b60a0516020525f5260405f20805460c052600181015460e0526002810154610100525061010051156128de57610100514310156128e0565b5f5b15612a7d57600a60a0516020525f5260405f208054610120526001810154610140526002810154610160525060c051604052610120516060526129246101806127b5565b6101805161295357600b60a0516020525f5260405f205f81555f60018201555f6002820155505f8152506129d7565b604060a060405e6101405160018101818110612a7d579050608052612976612880565b600b60a0516020525f5260405f205f81555f60018201555f60028201555060c051610120517f576fa7b8beeb87c58d279a36db62b3c29726e0c9ee6a1b94fe2f1e769222e124604060e06101805e60a0516101c0526060610180a360018152505b565b600b6040516020525f5260405f2080546060526001810154608052600281015460a0525060a05115612a7d57600b6040516020525f5260405f205f81555f60018201555f6002820155506060517f7d1c2bcff1c0c9017880558eec8be8f1539d6b33d584c84273bc63530cbc2f4d6040608060c05e60405161010052606060c0a26001815250565b600b6040516020525f5260405f20600281019050541515815250565b5f80fd170e1a5503cd22a407fd00b416ce25751dc412572136257524232264257525391b8b235212d22575047f2575176a2575161f1f442557083025752575257504641e481beb2575005621ce257504a72575257525750fee25751ac1245e10071791086d251b2575257518171afa051e257525751496152f257524e3001802381d2825752575166214bd25752575257524c704c525750f73257523eb257524ff23b003442006238b257525750778855820a1e2251d630e7102b4852cb732e3661b11584335cbe43a94969065616aa4465f192b2d8118ac190100a16576797065728300040100390000000000000000000000007bcd6d471d1a068012a79347c7a944d1df01a1ae0000000000000000000000004200000000000000000000000000000000000006000000000000000000000000e43d5bd11a2a6a9348efc516ad9ac3d32164a5a000000000000000000000000061293f1bf484d20dcc841175b4e4a0f46c26658c00000000000000000000000076eb19ae42c07a7ad50afd58b579a7c45bd70183000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054600000000000000000000000000000000000000000000000000000000000049d40