0 txs
2 calls
constructor
constructor(address _aerodromeRouter)
functions
aerodromeRouter
viewfunction aerodromeRouter() view returns (address)
getAllUserAccessibleManagers
viewfunction getAllUserAccessibleManagers(address user) view returns (address[])
getAllUserManagedManagers
viewfunction getAllUserManagedManagers(address user) view returns (address[])
getAllUserOwnedManagers
viewfunction getAllUserOwnedManagers(address user) view returns (address[])
getUserManager
viewfunction getUserManager(address user) view returns (address)
isManagerContract
viewfunction isManagerContract(address managerContract) view returns (bool)
userManagedManagers
viewfunction userManagedManagers(address, uint256) view returns (address)
userManagers
viewfunction userManagers(address) view returns (address)
userOwnedManagers
viewfunction userOwnedManagers(address, uint256) view returns (address)
createManager
nonpayablefunction createManager() returns (address)
registerManager
nonpayablefunction registerManager(address user, address managerContract)
unregisterManager
nonpayablefunction unregisterManager(address user, address managerContract)
events
FactoryDebug
event FactoryDebug(string message, address user, address manager)
ManagerCreated
event ManagerCreated(address indexed user, address manager)
UserBecameManager
event UserBecameManager(address indexed user, address manager)
UserRemovedAsManager
event UserRemovedAsManager(address indexed user, address manager)
errors
No errors.
creation bytecode
0x60a03461007157601f6153d938819003918201601f19168301916001600160401b038311848410176100765780849260209460405283398101031261007157516001600160a01b03811681036100715760805260405161534c908161008d8239608051818181610103015261046c0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe608060408181526004918236101561001657600080fd5b600090813560e01c9081631071bb3814610ac257508063498e78b114610672578063995dc76e14610628578063a9088b59146105cf578063bd583bff14610551578063c7f8fb9814610517578063db87f4fa1461049b578063e18e3a6814610457578063e650e1cd146102bc578063f31f676d1461022d578063f33e690d146101fa5763fda9c2b2146100a857600080fd5b346101f757806003193601126101f75733815260208181528282205490936001600160a01b039182166101b4578351906146078083019183831067ffffffffffffffff8411176101a157508591839162000d108339338152847f0000000000000000000000000000000000000000000000000000000000000000168882015203019083f08015610197579161016791849316938491338152808752818120836bffffffffffffffffffffffff60a01b8254161790556001875220610c17565b80518281527f9794be21cc98149ec91986dd1a11aeca888fcd5eb920c7ac0efe970022701cdf843392a251908152f35b83513d84823e3d90fd5b634e487b7160e01b865260419052602485fd5b835162461bcd60e51b8152908101859052601a60248201527f5573657220616c7265616479206861732061206d616e616765720000000000006044820152606490fd5b80fd5b5090346102295760203660031901126102295760209061022061021b610af9565b610c90565b90519015158152f35b5080fd5b5090346102295760209060206003193601126102b8576001600160a01b039283610255610af9565b16815260026020528181209382519081946020875493848152019684526020842093915b83831061029f5761029b8787610291828c0383610bdf565b5191829182610b58565b0390f35b8454811688529681019660019485019490920191610279565b8280fd5b50903461022957602090816003193601126102b8576001600160a01b03806102e2610af9565b1690818552600194858552838120928451938785888354918281520192855288852090855b8a82821061044257505050505084610320910385610bdf565b815260028552858482209185519283888254918281520191835288832090835b8a82821061042d575050505083610358910384610bdf565b6103658551845190610c41565b9661036f88610c64565b9761037c8851998a610bdf565b80895261038b601f1991610c64565b0190369089013780825b6103ef575b50905b6103af575b84518061029b8882610b58565b81518110156103ea57908682846103c98397969585610c7c565b51166103df6103d9838851610c41565b8a610c7c565b52019091929361039d565b6103a2565b918594939281965181101561042357808561040b849389610c7c565b5116610417828c610c7c565b52019092939495610395565b509192939461039a565b83548916855290930192918501918501610340565b83548916865290940193918301918301610307565b509034610229578160031936011261022957517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b5090346102295760209060206003193601126102b8576001600160a01b0392836104c3610af9565b1681526001806020528282209483519081956020885493848152019785526020852094915b8383106105005761029b8888610291828d0383610bdf565b8554811689529781019794840194918401916104e8565b509034610229576020366003190112610229576020916001600160a01b0390829082610541610af9565b1681528085522054169051908152f35b5090346102295780600319360112610229577ffb2456407f694967c4ca02b5b73dabd141c9a971707d4d0cb500832ccfd35e52602061058e610af9565b610596610b14565b906105a86105a383610c90565b610b9d565b60018060a01b0380911694858752600284526105c683828920610c17565b5191168152a280f35b5090346102295780600319360112610229576105e9610af9565b6001600160a01b0390811683526001602052818320805460243594908510156101f7575060209361061991610b2a565b92905490519260031b1c168152f35b509034610229578060031936011261022957610642610af9565b6001600160a01b0390811683526002602052818320805460243594908510156101f7575060209361061991610b2a565b50346101f757816003193601126101f75760a061068d610af9565b92610696610b14565b9062014a3346141580610ab5575b610aa4575b8051906060928383526018848401526080977f756e72656769737465724d616e616765722063616c6c6564000000000000000089850152602090600180881b0380809a16938484880152169485858201527f046d52f70d2c74813e86c3910552fa4d1d9ef3d26ba0d497ad304a2b16b2e8f3978891a18798885b848a5260028452858a208054821015610a945782610742838a93610b2a565b90549060031b1c161461075757600101610723565b509091929394959697985060015b8015610a3f57855186810181811067ffffffffffffffff821117610a2c578752601f81527f5573657220666f756e6420696e206d616e6167656420636f6e747261637473008582015289905b8c8a8d8a51938285528051809386015289825b848110610a0a575050508382018301528783018990528983018b9052601f01601f191682018290030190a1610868575b50507f5573657252656d6f76656441734d616e61676572206576656e7420656d69747460c0969798837f4eded25de91df1aa08a4f9f092af9db2b2dcca271a4cf3c25ea14408938b3788848751898152a2602285519780895288015286015261195960f21b60a0860152840152820152a180f35b9796959493929190988288526002825283882098885b8a54808210156109d457829088610895848f610b2a565b939054600394851b1c16146108ae57505060010161087e565b90939495969798999a9b9291600019918281019081116109bf57906108e8846108da6109069488610b2a565b905490891b1c169186610b2a565b90919060018060a01b038084549260031b9316831b921b1916179055565b825480156109ab5760c09b9c9d50907f5573657252656d6f76656441734d616e61676572206576656e7420656d697474959493929101926109478484610b2a565b81939154921b1b19169055555b8888865189815260298a8201527f557365722072656d6f7665642066726f6d206d616e6167656420636f6e747261848201526863747320617272617960b81b60a082015286868201528888820152a19897966107f4565b50634e487b7160e01b8c5260318d5260248cfd5b5050634e487b7160e01b8c5260118d5260248cfd5b50505060c09799507f5573657252656d6f76656441734d616e61676572206576656e7420656d6974749192939495969850610954565b819496975080935082959201015190828701015201918d8f92898f96956107c4565b634e487b7160e01b8c526041855260248cfd5b855188810181811067ffffffffffffffff821117610a2c578752602381527f55736572206e6f7420666f756e6420696e206d616e6167656420636f6e747261858201526263747360e81b8782015289906107b1565b5050909192939495969798610765565b610ab06105a383610c90565b6106a9565b5062aa37dc4614156106a4565b905082346102b85760203660031901126102b8576020926001600160a01b03919082610aec610af9565b1681528085522054168152f35b600435906001600160a01b0382168203610b0f57565b600080fd5b602435906001600160a01b0382168203610b0f57565b8054821015610b425760005260206000200190600090565b634e487b7160e01b600052603260045260246000fd5b602090602060408183019282815285518094520193019160005b828110610b80575050505090565b83516001600160a01b031685529381019392810192600101610b72565b15610ba457565b60405162461bcd60e51b81526020600482015260136024820152722737ba1030903b30b634b21036b0b730b3b2b960691b6044820152606490fd5b90601f8019910116810190811067ffffffffffffffff821117610c0157604052565b634e487b7160e01b600052604160045260246000fd5b9081549168010000000000000000831015610c0157826108e8916001610c3f95018155610b2a565b565b91908201809211610c4e57565b634e487b7160e01b600052601160045260246000fd5b67ffffffffffffffff8111610c015760051b60200190565b8051821015610b425760209160051b010190565b60405163c45a015560e01b8152906001600160a01b03906020908390600490829085165afa60009281610cd0575b50610cca575050600090565b16301490565b6020939193813d602011610d07575b81610cec60209383610bdf565b8101031261022957519082821682036101f757509138610cbe565b3d9150610cdf56fe60c0346200011357601f6200460738819003918201601f19168301916001600160401b038311848410176200011857808492604094855283398101031262000113576200005a602062000052836200012e565b92016200012e565b6001600160a01b03828116918215620000fa576000549360018060a01b03199380858716176000558360405196167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a33360805260a052169081620000ea575b6144c383816200014482396080518181816104ce0152818161088101526115ed015260a051816111050152f35b60015416176001553880620000bd565b604051631e4fbdf760e01b815260006004820152602490fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b0382168203620001135756fe6040608081526004908136101561002b575b50503615610023576100216143b5565b005b6100216143b5565b600091823560e01c908163067e3945146117d4578163117d37e6146117ae5781631aa81aca14611720578163232f4965146116d35781632d06177a14611561578163308e401e1461151b57816336d4a20a146113875781633aecd0e3146112f85781634612bd4f146112cb578163461d7cbc146111fc5781634782f779146111345781634f8632ba146110f057816352cdd49614610f4a57816358ad387414610efb5781635e35359e14610e3257816366168bd714610d32578163715018a614610cd8578163760450d714610ca95781637707887214610c835781638da5cb5b14610c5b5781638fcdc75214610c355781639872d4fe146109ca578163a75061891461099c578163ac18de43146107fa578163b394927c146107a2578163bca9f68514610770578163c01498ac146104fd578163c45a0155146104b9578163c45acd2314610490578163cb1b0e3414610462578163d5250681146103db578163d61ffdd114610352578163e18e3a6814610329578163ef5cfb8c146102c5578163f2fde38b1461023557508063f3ae24151461020b5763fdff9b4d0361001157346102075760203660031901126102075760209160ff9082906001600160a01b036101f4611856565b1681526003855220541690519015158152f35b5080fd5b50346102075760203660031901126102075760209160ff9082906001600160a01b036101f4611856565b9050346102c15760203660031901126102c157610250611856565b90610259614441565b6001600160a01b039182169283156102ab575050600054826001600160601b0360a01b821617600055167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a380f35b51631e4fbdf760e01b8152908101849052602490fd5b8280fd5b5050346102075760203660031901126102075761030b6020926103066102e9611856565b918460018060a01b038254163314918215610314575b50506118c5565b613c5e565b90519015158152f35b60ff92503381526003885220541684386102ff565b50503461020757816003193601126102075760015490516001600160a01b039091168152602090f35b8284346103d85760e03660031901126103d8576103b690610371611856565b9061037a61186c565b6103a1610385611882565b928660018060a01b0382541633149182156103c25750506118c5565b60c4359260a4359260843592606435926134a9565b82519182526020820152f35b60ff9250338152600360205220541686886102ff565b80fd5b9050346102c15760203660031901126102c1576103f6611856565b6103fe614441565b6001600160a01b03169182156104265750506001600160601b0360a01b600154161760015580f35b906020606492519162461bcd60e51b83528201526016602482015275496e76616c696420726f75746572206164647265737360501b6044820152fd5b50503461020757806003193601126102075760209061030b610482611856565b61048a61186c565b90613419565b50503461020757816003193601126102075760025490516001600160a01b039091168152602090f35b505034610207578160031936011261020757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9050346102c157816003193601126102c157610517611856565b83546001600160a01b03946024359186163314801561075b575b61053a906118c5565b61055c8684169361054c851515612e33565b610557841515612fe2565b6133c3565b9586169361056b851515612e76565b6105748761308a565b156107225785516370a0823160e01b81523082820152602097908881602481895afa9081156107185790859185916106e2575b50106106a657865163095ea7b360e01b81526001600160a01b0390911682820190815260208101859052889082908190604001038186895af1801561069c5761066f575b50843b1561020757855163b6b55f2560e01b8152908101839052818160248183895af18015610665579087929161064d575b50507e8bfa58790ca176ab7c8a54d2fa2a44b1b1c883248e56849845d29a6e944aa4918551908152a35160018152f35b819250610659906119a0565b6103d85780869161061d565b86513d84823e3d90fd5b61068e90883d8a11610695575b6106868183611a3a565b810190611cfc565b50386105eb565b503d61067c565b87513d85823e3d90fd5b865162461bcd60e51b81528083018990526016602482015275496e73756666696369656e74204c5020746f6b656e7360501b6044820152606490fd5b8092508a8092503d8311610711575b6106fb8183611a3a565b8101031261070c57849051386105a7565b600080fd5b503d6106f1565b88513d86823e3d90fd5b606490602087519162461bcd60e51b835282015260136024820152724761756765206973206e6f742061637469766560681b6044820152fd5b5033815260036020528481205460ff16610531565b50503461020757602036600319011261020757602090610791610557611856565b90516001600160a01b039091168152f35b505034610207576060366003190112610207576107f6906107da6107c4611856565b6107cc61186c565b6107d4611882565b916131e4565b9251918252602082015260408101919091529081906060820190565b0390f35b9050346102c15760203660031901126102c157610815611856565b9061081e614441565b6001600160a01b038281168086526003602052848620549093919060ff16156109695790859291848452600360205285842060ff1981541690558551947fef69f7d97228658c92417be1b16b19058315de71fecb435d07b7d23728b6bd318580a27f000000000000000000000000000000000000000000000000000000000000000016803b156109655763498e78b160e01b85526001600160a01b03909116918401918252306020830152829184919082908490829060400103925af19182610951575b505061094d57601960008051602061446e833981519152916109476109056131a4565b82519383859485528401527f556e7265676973746572206d616e61676572206661696c6564000000000000006060840152608060208401526080830190611a7f565b0390a180f35b5080f35b61095a906119a0565b6102c15782386108e2565b8380fd5b845162461bcd60e51b8152602081850152600d60248201526c2737ba10309036b0b730b3b2b960991b6044820152606490fd5b50503461020757806003193601126102075760209061030b6109bc611856565b6109c461186c565b90613117565b8383346102075760c0366003190112610207578235906001600160a01b036044358181169081900361070c576064359180831680930361070c576084359687151580980361070c5781869288541633148015610c20575b610a2a906118c5565b8060015416610a3a811515611908565b865163095ea7b360e01b81526001600160a01b0390911683820190815260208181019990995288908290819060400103818c895af18015610c1657918992918392610bf9575b506001541660e48b895194859384926313dcfc5960e01b8452898985015260243560248501528a60448501528b606485015260848401523060a484015260a43560c48401525af1978815610bee578098610b43575b5050865160011015610b2e5750606086977f9dbb2ce3151d495d487bd63afd1c74999ef4fc70f035600241741f63b0263ab992866107f6989901519087519283528983015286820152a351928284938452830190611891565b603290634e487b7160e01b6000525260246000fd5b909197503d8082843e610b568184611a3a565b82019087838303126103d857825167ffffffffffffffff938482116102c1570182601f82011215610207578051938411610bd9578360051b91885194610b9e8b850187611a3a565b855289808601938301019384116103d8575088809101915b838310610bc95750505050958880610ad5565b8251815291810191899101610bb6565b60418a634e487b7160e01b6000525260246000fd5b8651903d90823e3d90fd5b610c0f908a3d8c11610695576106868183611a3a565b508b610a80565b87513d8b823e3d90fd5b5033885260036020528588205460ff16610a21565b5050346102075760203660031901126102075760209061030b610c56611856565b61308a565b505034610207578160031936011261020757905490516001600160a01b039091168152602090f35b50503461020757602036600319011261020757602090610791610ca4611856565b61302e565b505034610207578160031936011261020757602090517316613524e02ad97edfef371bc883f2f5d6c480a58152f35b83346103d857806003193601126103d857610cf1614441565b600080546001600160a01b0319811682556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a380f35b919050346102c157806003193601126102c157610d4d611856565b9060243591610d5d831515612fe2565b81516323b872dd60e01b81523381860152306024820152604481018490526001600160a01b0391909116939060208160648189895af1908115610e28578691610e09575b5015610dd55750519081527fcbc4a4091b012bb1329c38bbbb15455f5cac5aa3673da0a7f38cd61a4f49551760203392a380f35b6020606492519162461bcd60e51b8352820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b6044820152fd5b610e22915060203d602011610695576106868183611a3a565b38610da1565b83513d88823e3d90fd5b919050346102c15760603660031901126102c1576020610eb192610e54611856565b610e5c61186c565b865487906001600160a01b0390811633148015610ee7575b610e7d906118c5565b865163a9059cbb60e01b81526001600160a01b03909316948301948552604435602086015291968794859391849160400190565b0393165af1908115610ede5750610ec6575080f35b61094d9060203d602011610695576106868183611a3a565b513d84823e3d90fd5b50338252600386528682205460ff16610e74565b5050346102075780600319360112610207576107f690610f2a610f1c611856565b610f2461186c565b90612ec2565b91516001600160a01b039182168152911660208201529081906040820190565b8284346103d857816003193601126103d857610f64611856565b81546001600160a01b039460243593918616331480156110db575b610f88906118c5565b8395610f9c81851694610557861515612e33565b1693610fa9851515612e76565b15611077575b851561103457833b15610207578451632e1a7d4d60e01b8152908101869052818160248183885af1801561102a57611016575b50507f61131ffd80a30d321524ddfde6ceb003ce05f619e5ff737ffce9b8594fd13837602080958551908152a35160018152f35b61102082916119a0565b6103d85780610fe2565b85513d84823e3d90fd5b606490602086519162461bcd60e51b8352820152601760248201527f4e6f204c5020746f6b656e7320746f20756e7374616b650000000000000000006044820152fd5b84516370a0823160e01b81523081830152909550602081602481875afa90811561102a5782916110a9575b5094610faf565b90506020813d6020116110d3575b816110c460209383611a3a565b8101031261070c5751866110a2565b3d91506110b7565b5033825260036020528482205460ff16610f7f565b505034610207578160031936011261020757517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9050346102c157816003193601126102c1576001600160a01b0390803582811691908290036111f85760243592855416331480156111e3575b611176906118c5565b4783116111a957508380809381938282156111a0575bf115611196575080f35b51903d90823e3d90fd5b506108fc61118c565b606490602085519162461bcd60e51b83528201526014602482015273496e73756666696369656e742062616c616e636560601b6044820152fd5b5033855260036020528385205460ff1661116d565b8480fd5b919050346102c15760603660031901126102c157611218611856565b90602061122361186c565b61122b611882565b60015490956001600160a01b03959186169190611249831515611908565b611276876002541661125c811515611954565b875163874029d960e01b8152998a96879586958601611ac3565b03915afa9283156112c15760209493611292575b505191168152f35b6112b3919350843d86116112ba575b6112ab8183611a3a565b810190611aa4565b913861128a565b503d6112a1565b81513d86823e3d90fd5b505034610207576020366003190112610207576020906112f16112ec611856565b612deb565b9051908152f35b83833461020757602092836003193601126102c157836001600160a01b0361131e611856565b169160248451809481936370a0823160e01b835230908301525afa92831561137c579261134d575b5051908152f35b9091508281813d8311611375575b6113658183611a3a565b8101031261070c57519083611346565b503d61135b565b8251903d90823e3d90fd5b83915034610207576060366003190112610207576113a3611856565b61142460206113b061186c565b926113b9611882565b9060018060a01b03948588541633148015611507575b6113d8906118c5565b8560025416916113e9831515611954565b89516379bc57d560e01b81526001600160a01b0391821689820190815291909216602082015292151560408401529384928391829160600190565b03915afa9081156114fd5784916114de575b50169081156114aa57835163d294f09360e01b81529184918391829086905af19081156114a0578291611471575b5082519182526020820152f35b90506114939150823d8411611499575b61148b8183611a3a565b810190611c9d565b83611464565b503d611481565b83513d84823e3d90fd5b606490602085519162461bcd60e51b8352820152600e60248201526d141bdbdb081b9bdd08199bdd5b9960921b6044820152fd5b6114f7915060203d6020116112ba576112ab8183611a3a565b85611436565b85513d86823e3d90fd5b50338852600384528888205460ff166113cf565b505034610207576020366003190112610207576107f69061154261153d611856565b612d05565b91519081526001600160a01b0390911660208201529081906040820190565b839150346102075760203660031901126102075761157d611856565b611585614441565b6001600160a01b038181169290831561169057838552600360205260ff8686205416611659578385526003602052858520805460ff191660011790559451939485937f3b4a40cccf2058c593542587329dd385be4f0b588db5471fbd9598e56dd7093a8580a27f00000000000000000000000000000000000000000000000000000000000000001690813b156109655763bd583bff60e01b85526001600160a01b03909216918401918252306020830152839182908490829060400103925af161164d575080f35b611656906119a0565b80f35b855162461bcd60e51b8152602081840152601160248201527020b63932b0b23c90309036b0b730b3b2b960791b6044820152606490fd5b855162461bcd60e51b8152602081840152601760248201527f496e76616c6964206d616e6167657220616464726573730000000000000000006044820152606490fd5b8284346103d85760603660031901126103d857506117086116f2611856565b6116fa61186c565b611702611882565b91612b5d565b82516001600160701b03928316815291166020820152f35b9050346102c15760203660031901126102c15761173b611856565b611743614441565b6001600160a01b031691821561176b5750506001600160601b0360a01b600254161760025580f35b906020606492519162461bcd60e51b8352820152601760248201527f496e76616c696420666163746f727920616464726573730000000000000000006044820152fd5b505034610207576020366003190112610207576020906112f16117cf611856565b612acb565b50503461020757610100366003190112610207576107da6107f6926117f7611856565b6117ff61186c565b9161182761180b611882565b918660018060a01b0382541633149182156118405750506118c5565b60e4359260c4359260a435926084359260643592611d53565b60ff9250338152600360205220541686386102ff565b600435906001600160a01b038216820361070c57565b602435906001600160a01b038216820361070c57565b60443590811515820361070c57565b90815180825260208080930193019160005b8281106118b1575050505090565b8351855293810193928101926001016118a3565b156118cc57565b60405162461bcd60e51b81526020600482015260146024820152732737ba1037bbb732b91037b91036b0b730b3b2b960611b6044820152606490fd5b1561190f57565b60405162461bcd60e51b815260206004820152601860248201527f4165726f64726f6d6520726f75746572206e6f742073657400000000000000006044820152606490fd5b1561195b57565b60405162461bcd60e51b815260206004820152601960248201527f4165726f64726f6d6520666163746f7279206e6f7420736574000000000000006044820152606490fd5b67ffffffffffffffff81116119b457604052565b634e487b7160e01b600052604160045260246000fd5b6040810190811067ffffffffffffffff8211176119b457604052565b6060810190811067ffffffffffffffff8211176119b457604052565b60a0810190811067ffffffffffffffff8211176119b457604052565b6020810190811067ffffffffffffffff8211176119b457604052565b90601f8019910116810190811067ffffffffffffffff8211176119b457604052565b60005b838110611a6f5750506000910152565b8181015183820152602001611a5f565b90602091611a9881518092818552858086019101611a5c565b601f01601f1916010190565b9081602091031261070c57516001600160a01b038116810361070c5790565b6001600160a01b039182168152918116602083015291151560408201529116606082015260800190565b906080611b1f9260408152600a604082015269141bdbdb08199bdd5b9960b21b60608201528160208201520190611a7f565b90565b60009060033d11611b2f57565b905060046000803e60005160e01c90565b600060443d10611b1f57604051600319913d83016004833e815167ffffffffffffffff918282113d602484011117611b9e57818401948551938411611ba6573d85010160208487010111611b9e5750611b1f92910160200190611a3a565b949350505050565b50949350505050565b906080611b1f9260408152601960408201527f706f6f6c466f72206661696c65642077697468206572726f720000000000000060608201528160208201520190611a7f565b602181527f706f6f6c466f72206661696c6564207769746820756e6b6e6f776e206572726f6020820152603960f91b604082015260600190565b60209060408152611c4160408201611bf4565b9082818303910152600081520190565b15611c5857565b60405162461bcd60e51b815260206004820152601d60248201527f4165726f64726f6d6520706f6f6c20646f6573206e6f742065786973740000006044820152606490fd5b919082604091031261070c576020825192015190565b81810292918115918404141715611cc657565b634e487b7160e01b600052601160045260246000fd5b8115611ce6570490565b634e487b7160e01b600052601260045260246000fd5b9081602091031261070c5751801515810361070c5790565b602681527f6164644c6971756964697479206661696c6564207769746820756e6b6e6f776e6020820152651032b93937b960d11b604082015260600190565b93979592919694909460018060a01b0360015416611d72811515611908565b6002546001600160a01b0316611d89811515611954565b604080516001600160a01b0389811660208301528a16918101919091528a151560608201526080810186905260a08082018d9052815267ffffffffffffffff60c08201908111908211176119b45760c080820160408181529052601d6101008301527f6164644c69717569646974794165726f64726f6d652073746172746564000000610120830152608060e083015260008051602061446e833981519152919060bf1982611e3c610140820182611a7f565b03019101a160405163874029d960e01b815260208180611e62858f8e8e60048601611ac3565b0381865afa60009181612aaa575b50611f9157611e7d611b22565b6308c379a014611ecb575b60008051602061446e83398151915260405180611ea481611c2e565b0390a160405162461bcd60e51b81526020600482015280611ec760248201611bf4565b0390fd5b611ed3611b40565b80611ede5750611e88565b611ec79060008051602061446e833981519152611f28604051602080820152611f1c81611f0e6040820187611a7f565b03601f198101835282611a3a565b60405191829182611baf565b0390a1611f71603060405180936f03837b7b62337b9103330b4b632b21d160851b6020830152611f618151809260208686019101611a5c565b8101036010810184520182611a3a565b60405162461bcd60e51b8152602060048201529182916024830190611a7f565b8060008051602061446e833981519152611fd3611fe693926040519060018060a01b0316602082015260208152611fc7816119ca565b60405191829182611aed565b0390a16001600160a01b03161515611c51565b6040516370a0823160e01b81523060048201526020816024816001600160a01b038c165afa9081156126e757600091612a78575b506040516370a0823160e01b81523060048201526020816024816001600160a01b038e165afa9081156126e757600091612a38575b5060008051602061446e833981519152916120c79160405191602083015260408201526040815261207f816119e6565b60405191829160408352601e60408401527f546f6b656e2062616c616e636573206265666f726520617070726f76616c00006060840152608060208401526080830190611a7f565b0390a1604051636eb1769f60e11b81523060048201526001600160a01b038316602482015290602082806044810103816001600160a01b038c165afa9182156126e757600092612a04575b50604051636eb1769f60e11b81523060048201526001600160a01b0384166024820152602081806044810103816001600160a01b038e165afa9081156126e7576000916129c2575b509060008051602061446e8339815191526121d26121f39460409485519160208301528582015284815261218d816119e6565b84519182918683526017878401527f546f6b656e20616c6c6f77616e636573206265666f72650000000000000000006060840152608060208401526080830190611a7f565b0390a181516323000df760e21b81529283918291908e8d8d60048601611ac3565b0381855afa908160009160009361299f575b5061286157505060208461225e92600161221d611b22565b6308c379a0146127cb575b612765575b60405163095ea7b360e01b81526001600160a01b039091166004820152602481019190915291829081906044820190565b038160006001600160a01b038b165af180156126e757612746575b5060015460405163095ea7b360e01b81526001600160a01b039091166004820152602481018a90526020818060448101038160006001600160a01b038c165af180156126e757612727575b50600154604051636eb1769f60e11b81523060048201526001600160a01b0390911660248201819052949092602084806044810103816001600160a01b038b165afa9384156126e7576000946126f3575b50604051636eb1769f60e11b81523060048201526001600160a01b038716602482015293602085806044810103816001600160a01b038d165afa80156126e7578b956000916126a5575b50926060979260008051602061446e8339815191526123db61012498979460009760405191602083015260408201526040815261239b816119e6565b6040519182916040835260166040840152752a37b5b2b71030b63637bbb0b731b2b99030b33a32b960511b8e840152608060208401526080830190611a7f565b0390a16040519d8e988997635a47ddc360e01b895260018060a01b038d1660048a01528d60018060a01b031660248a0152151560448901526064880152608487015260a486015260c48501523060e48501526101048401525af193600092858497859761265e575b5061258757612450611b22565b6308c379a0146124ae575b60008051602061446e83398151915260405160408152602061247f60408301611d14565b6000838203918284860152520190a160405162461bcd60e51b81526020600482015280611ec760248201611d14565b6124b6611b40565b806124c1575061245b565b611ec79060008051602061446e8339815191526125396040516020808201526124f181611f0e6040820187611a7f565b60405191829160408352601e60408401527f6164644c6971756964697479206661696c65642077697468206572726f7200006060840152608060208401526080830190611a7f565b0390a1611f716035604051809374030b2322634b8bab4b234ba3c903330b4b632b21d1605d1b60208301526125778151809260208686019101611a5c565b8101036015810184520182611a3a565b837f316bf8459750d7b31f9335b761a7a2460a2072993ea64d6f11bf0c450c552c759160008051602061446e833981519152612626896125e58c611f0e60405193849289602085016040919493926060820195825260208201520152565b604051918291604083526016604084015275185919131a5c5d5a591a5d1e481cdd58d8d95959195960521b6060840152608060208401526080830190611a7f565b0390a16040805194151585526020850192909252908301889052606083018790526001600160a01b03908116931691608090a3929190565b9491975095506060843d60601161269d575b8161267d60609383611a3a565b810103126103d85750825195604060208501519401519693969538612443565b3d9150612670565b939792955050926020833d6020116126df575b816126c560209383611a3a565b8101031261070c57915190958a949293909291606061235f565b3d91506126b8565b6040513d6000823e3d90fd5b9093506020813d60201161271f575b8161270f60209383611a3a565b8101031261070c57519238612315565b3d9150612702565b61273f9060203d602011610695576106868183611a3a565b50386122c4565b61275e9060203d602011610695576106868183611a3a565b5038612279565b60008051602061446e83398151915260c060405160408152602560408201527f6765745265736572766573206661696c6564207769746820756e6b6e6f776e2060608201526432b93937b960d91b608082015260a086820152600060a0820152a161222d565b6127d3611b40565b806127df575b50612228565b905060008051602061446e833981519152612858611f0e6128116000946040519283918a808401526040830190611a7f565b60405191829160408352601d60408401527f6765745265736572766573206661696c65642077697468206572726f7200000060608401526080898401526080830190611a7f565b0390a1386127d9565b9295509250986128d99360008051602061446e8339815191526128d160405185602082015286604082015260408152612899816119e6565b60405191829160408352600d60408401526c506f6f6c20726573657276657360981b6060840152608060208401526080830190611a7f565b0390a16143e3565b919096879183986050810281810460501482151715611cc657606490049285605081020460501486151715611cc6578460209160008051602061446e83398151915261299761225e95606460508c02049a604051918783015260408201528860608201528a60808201526080815261295081611a02565b60405191829160408352601a60408401527f43616c63756c61746564206f7074696d616c20616d6f756e747300000000000060608401526080888401526080830190611a7f565b0390a161222d565b9092506129bb915060403d6040116114995761148b8183611a3a565b9138612205565b9190506020823d6020116129fc575b816129de60209383611a3a565b8101031261070c57905160008051602061446e83398151915261215a565b3d91506129d1565b9091506020813d602011612a30575b81612a2060209383611a3a565b8101031261070c57519038612112565b3d9150612a13565b90506020813d602011612a70575b81612a5360209383611a3a565b8101031261070c575160008051602061446e83398151915261204f565b3d9150612a46565b90506020813d602011612aa2575b81612a9360209383611a3a565b8101031261070c57513861201a565b3d9150612a86565b612ac491925060203d6020116112ba576112ab8183611a3a565b9038611e70565b6001600160a01b0390612add906133c3565b168015612b43576020602491604051928380926370a0823160e01b82523060048301525afa9081156126e757600091612b14575090565b90506020813d602011612b3b575b81612b2f60209383611a3a565b8101031261070c575190565b3d9150612b22565b50600090565b51906001600160701b038216820361070c57565b6001546001600160a01b039493929085168015612cf75790612ba091866002541690604051808095819463874029d960e01b83526020998a978a60048601611ac3565b03915afa60009181612cd8575b50612bbf575050509050600090600090565b8416938415612ccb57604051630240bc6b60e21b815290606082600481895afa92836000938495612c6f575b50612bff5750505050509050600090600090565b90600491839580869960405195868092630dfe168160e01b82525afa938491600095612c50575b5050612c355750505050509190565b8116911603612c45575b50509190565b935090503880612c3f565b612c67929550803d106112ba576112ab8183611a3a565b923880612c26565b939094506060843d606011612cc3575b81612c8c60609383611a3a565b810103126103d857612c9d84612b49565b906040612cab888701612b49565b95015163ffffffff8116036103d85750929338612beb565b3d9150612c7f565b5050509050600090600090565b612cf0919250843d86116112ba576112ab8183611a3a565b9038612bad565b505050509050600090600090565b612d0e906133c3565b6001600160a01b03811691908215908115612dda575b50612dd2576040516246613160e11b8152306004820152602092908381602481855afa9081156126e7578490600092612da4575b5060405163f7c618c160e01b81529192829060049082905afa9384156126e757600094612d855750509190565b612d9c929450803d106112ba576112ab8183611a3a565b913880612c3f565b809250813d8311612dcb575b612dba8183611a3a565b8101031261070c5751836004612d58565b503d612db0565b600091508190565b612de4915061308a565b1538612d24565b6001600160a01b0390612dfd906133c3565b168015612b43576020602491604051928380926246613160e11b82523060048301525afa9081156126e757600091612b14575090565b15612e3a57565b60405162461bcd60e51b8152602060048201526014602482015273496e76616c696420706f6f6c206164647265737360601b6044820152606490fd5b15612e7d57565b60405162461bcd60e51b815260206004820152601c60248201527f4e6f20676175676520666f756e6420666f72207468697320706f6f6c000000006044820152606490fd5b6001546001600160a01b039081169392919084158015612fd6575b612ccb5760025460405163874029d960e01b8082526001600160a01b03858116600484015286811660248401526001604484015293909216928316606482015290959193602093849391928481608481865afa60009181612fb7575b50612fb157506000975b6040519081526001600160a01b03918216600482015292811660248401526000604484015294909416606482015292839060849082905afa918291600093612f92575b5050611b1f5750600090565b612fa9929350803d106112ba576112ab8183611a3a565b903880612f86565b97612f43565b612fcf919250863d88116112ba576112ab8183611a3a565b9038612f39565b50806002541615612edd565b15612fe957565b60405162461bcd60e51b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606490fd5b6001600160a01b0390613040906133c3565b168015612b435760206004916040519283809263f7c618c160e01b82525afa9081156126e757600091613071575090565b611b1f915060203d6020116112ba576112ab8183611a3a565b6001600160a01b03168015612b435760405190631703e5f960e01b825260048201526020816024817316613524e02ad97edfef371bc883f2f5d6c480a55afa9081156126e7576000916130db575090565b611b1f915060203d602011610695576106868183611a3a565b8051156131015760200190565b634e487b7160e01b600052603260045260246000fd5b6001805460025460405163874029d960e01b81526001600160a01b039485166004820152948416602486015260448501929092529082166064840152909190602090829084168180608481015b03915afa60009181613183575b5061317d575050600090565b16151590565b61319d91925060203d6020116112ba576112ab8183611a3a565b9038613171565b3d156131df573d9067ffffffffffffffff82116119b457604051916131d3601f8201601f191660200184611a3a565b82523d6000602084013e565b606090565b6002549193926001600160a01b03926132469291908416613206811515611954565b6040516379bc57d560e01b81526001600160a01b039384166004820152969092166024870152151560448601526020949185918391829081906064820190565b03915afa9081156126e7576000916133a6575b501690811561339b576040516370a0823160e01b8152306004820152600093849384928281602481855afa6000918161336c575b50613364575b506040516326ad4fc560e11b81523060048201528281602481855afa60009181613335575b5061332d575b5090806024926040519384809263a1ac4d1360e01b82523060048301525afa9182916000936132fd575b50506132f5575b50929190565b9250386132ef565b9080929350813d8311613326575b6133158183611a3a565b8101031261070c57519038806132e8565b503d61330b565b9550816132be565b9091508381813d831161335d575b61334d8183611a3a565b8101031261070c575190386132b8565b503d613343565b925038613293565b9091508381813d8311613394575b6133848183611a3a565b8101031261070c5751903861328d565b503d61337a565b600092508291508190565b6133bd9150843d86116112ba576112ab8183611a3a565b38613259565b6001600160a01b03166133d7811515612e33565b6040519063b9a09fd560e01b825260048201526020816024817316613524e02ad97edfef371bc883f2f5d6c480a55afa9081156126e757600091613071575090565b60015460025460405163874029d960e01b81526001600160a01b0393841660048201529383166024850152600060448501528216606484015290919060209082908416818060848101613164565b602981527f72656d6f76654c6971756964697479206661696c6564207769746820756e6b6e60208201526837bbb71032b93937b960b91b604082015260600190565b93909192969560018060a01b03600154166134c5811515611908565b6002546001600160a01b03166134dc811515611954565b604080516001600160a01b038981166020830152871691810191909152861515606082015260808082018c9052815260008051602061446e833981519152906135709061352881611a02565b60405191829160408352602060408401527f72656d6f76654c69717569646974794165726f64726f6d6520737461727465646060840152608060208401526080830190611a7f565b0390a160648a10613b775790602061359f926040518094819263874029d960e01b83528a8a8d60048601611ac3565b0381845afa60009281613b56575b506135ba57611e7d611b22565b60008051602061446e8339815191526135eb836040519060018060a01b0316602082015260208152611fc7816119ca565b0390a16136026001600160a01b0383161515611c51565b6040516370a0823160e01b81523060048201526020816024816001600160a01b0387165afa9081156126e757600091613b24575b5060008051602061446e83398151915261369a6040518360208201526020815261365f816119ca565b60405191829160408352601060408401526f4c5020746f6b656e2062616c616e636560801b6060840152608060208401526080830190611a7f565b0390a18a8110613aa1575b508915613a425760405163095ea7b360e01b81526001600160a01b039182166004820152602481018b905293929160209185916044918391600091165af19283156126e7576000610104928b92604096613a23575b5060008051602061446e83398151915261375b875185602082015260208152613722816119ca565b88519182918a835260118b840152701314081d1bdad95b88185c1c1c9bdd9959607a1b6060840152608060208401526080830190611a7f565b0390a1600154865163037b79b160e21b81526001600160a01b038b8116600483015289811660248301528a151560448301526064820195909552608481019690965260a486019a909a523060c486015260e48501529297889384929091165af195866000956000986139fc575b5061391e576137d5611b22565b6308c379a014613833575b60008051602061446e83398151915260405160408152602061380460408301613467565b6000838203918284860152520190a160405162461bcd60e51b81526020600482015280611ec760248201613467565b61383b611b40565b8061384657506137e0565b611ec79060008051602061446e8339815191526138c860405160208082015261387681611f0e6040820187611a7f565b60405191829160408352602160408401527f72656d6f76654c6971756964697479206661696c65642077697468206572726f6060840152603960f91b608084015260a0602084015260a0830190611a7f565b0390a1611f71603860405180937f72656d6f76654c6971756964697479206661696c65643a200000000000000000602083015261390e8151809260208686019101611a5c565b8101036018810184520182611a3a565b7ff1c6b4a8d9333d8b05efe1f29dc513e4228b99f31cee9d12247683adbd2004b0916139f5869260008051602061446e8339815191526139bb6040518660208201528c604082015260408152613973816119e6565b60405191829160408352601960408401527f72656d6f76654c697175696469747920737563636565646564000000000000006060840152608060208401526080830190611a7f565b0390a1604080519615158752602087019490945292850189905260608501929092526001600160a01b039081169416929081906080820190565b0390a39190565b909750613a1991955060403d6040116114995761148b8183611a3a565b94909496386137c8565b613a3b9060203d602011610695576106868183611a3a565b50386136fa565b5050505050505050905060008051602061446e83398151915260a06040516040815260166040820152754e6f204c5020746f6b656e7320746f2072656d6f766560501b60608201526080602082015260006080820152a1600090600090565b9099613b1a60008051602061446e8339815191529160405190846020830152604082015260408152613ad2816119e6565b60405191829160408352601d60408401527f496e73756666696369656e74204c5020746f6b656e2062616c616e63650000006060840152608060208401526080830190611a7f565b0390a198386136a5565b906020823d602011613b4e575b81613b3e60209383611a3a565b810103126103d857505138613636565b3d9150613b31565b613b7091935060203d6020116112ba576112ab8183611a3a565b91386135ad565b505050505050505090613bf160008051602061446e8339815191529160405190602082015260208152613ba9816119ca565b60405191829160408352601a60408401527f4c697175696469747920616d6f756e7420746f6f20736d616c6c0000000000006060840152608060208401526080830190611a7f565b0390a1600090600090565b90815180825260208080930193019160005b828110613c1c575050505090565b83516001600160a01b031685529381019392810192600101613c0e565b9091613c50611b1f93604084526040840190613bfc565b916020818403910152611891565b6001600160a01b0390600090613c7b906105578185161515612e33565b91613c8e81841693610c56851515612e76565b1561433a5760409081516246613160e11b8152600491308383015260209182816024818a5afa90811561428c578691614309575b501561429657835163f7c618c160e01b815290828285818a5afa91821561428c57869261426d575b5084516370a0823160e01b8082523086830152918316928482602481875afa918215614001578892614238575b5086518086018381526001600160a01b0390921660208301529493929190613d4c90869060400103601f198101875286611a3a565b613d9c8751958887526014898801527342616c616e6365206265666f726520636c61696d60601b606088015260809687878201528060008051602061446e8339815191529384938a830190611a7f565b0390a188958a8683601d8c613e37815195613db6876119ca565b6001875285368189013780613dca886130f4565b528251907316613524e02ad97edfef371bc883f2f5d6c480a5809783015283820152828152613df8816119e6565b82519383859485528401527f417474656d7074696e6720766f7465722e636c61696d526577617264730000006060840152878d84015287830190611a7f565b0390a1803b1561423457613e6a918c9189838d8f519687958694859363f9f031df60e01b85528401526024830190613bfc565b03925af19081614221575b506141d8576001613e84611b22565b6308c379a01461414e575b6140a6575b861561400b575b5050865191825230868301528382602481865afa918215614001578892613fd2575b50808211613f37575050505015613f2957509081613f217fc53cb8bc1a7200a84d0b66a538905a245c4915aace7f1ce5dc4a0ba107ebc15c935191613f0183611a1e565b838352805193613f1085611a1e565b845260003681375192839283613c39565b0390a2600190565b905163e016b9c560e01b8152fd5b90809396945098979691949803918211613fbf57507fc53cb8bc1a7200a84d0b66a538905a245c4915aace7f1ce5dc4a0ba107ebc15c9495965090613f2191815193613f82856119ca565b60018552853681870137825195613f98876119ca565b600187523681880137613faa856130f4565b52613fb4856130f4565b525192839283613c39565b634e487b7160e01b815260118852602490fd5b9091508381813d8311613ffa575b613fea8183611a3a565b8101031261070c57519038613ebd565b503d613fe0565b87513d8a823e3d90fd5b89868c8a8c5180948193631e8c5c8960e11b83525af18b9181614087575b50614076575060a0908a8a51918b835260178c8401527f4661696c656420746f20636c61696d207265776172647300000000000000000060608401528089840152820152a15b3880613e9b565b9150501561406f576001945061406f565b61409f919250883d8a11610695576106868183611a3a565b9038614029565b8160278a6141466140b56131a4565b6432b93937b960d91b838c7f566f74657220636c61696d206661696c6564207769746820756e6b6e6f776e208251916140ed836119e6565b60258352820152015282519383859485528401527f566f74657220636c61696d206661696c65642077697468206c6f772d6c657665606084015266361032b93937b960c91b8684015260a08b84015260a0830190611a7f565b0390a1613e94565b8a838b614159611b40565b9283614169575b50505050613e8f565b601e929394506141cc909461418d8c611f0e85519382859384015286830190611a7f565b82519383859485528401527f566f74657220636c61696d206661696c6564207769746820726561736f6e00006060840152868c84015286830190611a7f565b0390a138838b8d614160565b95508060a089518a8152601d8b8201527f566f74657220636c61696d20617474656d707420636f6d706c65746564000000606082015288888201528b89820152a1600195613e94565b61422d909b919b6119a0565b9938613e75565b8b80fd5b9091508481813d8311614266575b6142508183611a3a565b81010312614262575190613d4c613d17565b8780fd5b503d614246565b614285919250833d85116112ba576112ab8183611a3a565b9038613cea565b85513d88823e3d90fd5b506080906142f960008051602061446e8339815191529395855190838201528281526142c1816119ca565b8551938493878552601488860152734e6f207265776172647320617661696c61626c6560601b60608601528401526080830190611a7f565b0390a15163afb0be3360e01b8152fd5b90508281813d8311614333575b6143208183611a3a565b8101031261432f575138613cc2565b8580fd5b503d614316565b60008051602061446e8339815191526143a08460405190602082015260208152614363816119ca565b6040519182916040835260126040840152714761756765206973206e6f7420616c69766560701b6060840152608060208401526080830190611a7f565b0390a160405163324aced760e01b8152600490fd5b6040513481527f6c703791f399558807424f489ccd811c72b4ff0b74af547264fad7c646776df060203392a2565b9193929093801580614439575b612c3f57614407816144028486611cb3565b611cdc565b8581111561443157509061440261441e9286611cb3565b9080821161442b57509190565b90509190565b945050509190565b5081156143f0565b6000546001600160a01b0316330361445557565b60405163118cdaa760e01b8152336004820152602490fdfe0c1267f8b6a6608f6166ea98ce91e23fe3bf0d92464854249481dd7d07a5d464a2646970667358221220a687fcfd582f03071be658439af333ae79f78a693b06f29e86bd2e69b4f723c664736f6c63430008160033a26469706673582212204a155879c870c0c6226eacbada6106c83f7e234044e8c9c28b8b2c144c44ead264736f6c634300081600330000000000000000000000006a8832b8881a668ddaa1a795f1b9e0cc7f9e19cd