0 txs
12 calls
constructor
constructor()
functions
implementation
viewfunction implementation() view returns (address)
prepareUninstallation
viewfunction prepareUninstallation(address _dao, tuple _payload) view returns (tuple[] permissions)
prepareUpdate
purefunction prepareUpdate(address _dao, uint16 _currentBuild, tuple _payload) pure returns (bytes initData, tuple preparedSetupData)
supportsInterface
viewfunction supportsInterface(bytes4 _interfaceId) view returns (bool)
prepareInstallation
nonpayablefunction prepareInstallation(address _dao, bytes _data) returns (address plugin, tuple preparedSetupData)
events
No events.
errors
No errors.
creation bytecode
0x60a060405234801561001057600080fd5b5060405161001d9061004b565b604051809103906000f080158015610039573d6000803e3d6000fd5b506001600160a01b0316608052610058565b6136428061181e83390190565b6080516117896100956000396000818160ad0152818161028e0152818161038801528181610576015281816106b701526107a101526117896000f3fe60806040523480156200001157600080fd5b50600436106200006f5760003560e01c80639cb0a12411620000565780639cb0a12414620000d8578063a8a9c29e14620000fe578063f10832f1146200012557600080fd5b806301ffc9a714620000745780635c60da1b14620000a0575b600080fd5b6200008b620000853660046200098d565b6200014c565b60405190151581526020015b60405180910390f35b6040516001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016815260200162000097565b620000ef620000e936600462000a07565b620001e6565b60405162000097919062000ac2565b620001156200010f36600462000b22565b62000513565b6040516200009792919062000c82565b6200013c6200013636600462000cb4565b6200053b565b6040516200009792919062000d3e565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f99718b50000000000000000000000000000000000000000000000000000000001480620001e057507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60408051600380825260808201909252606091816020015b6040805160a081018252600080825260208083018290529282018190526060820181905260808201528252600019909201910181620001fe5750506040805160a08101909152600181529091506020808201906200025f9085018562000d80565b6001600160a01b03168152602001846001600160a01b0316815260200160006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632caf024b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002eb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000311919062000d9e565b815250816000815181106200032a576200032a62000db8565b60209081029190910101526040805160a081019091528060018152602090810190620003599085018562000d80565b6001600160a01b03168152602001846001600160a01b0316815260200160006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c9c4bfca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003e5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200040b919062000d9e565b8152508160018151811062000424576200042462000db8565b60209081029190910101526040805160a081019091528060018152602001846001600160a01b0316815260200183600001602081019062000466919062000d80565b6001600160a01b0316815260200160006001600160a01b03168152602001846001600160a01b0316630729d0546040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004c3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e9919062000d9e565b8152508160028151811062000502576200050262000db8565b602002602001018190525092915050565b606062000533604051806040016040528060608152602001606081525090565b935093915050565b60006200055b604051806040016040528060608152602001606081525090565b6000806200056c8587018762000e6e565b91509150620006197f0000000000000000000000000000000000000000000000000000000000000000638398525960e01b898585604051602401620005b49392919062000f3d565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009093169290921790915262000926565b6040805160038082526080820190925291955060009190816020015b6040805160a08101825260008082526020808301829052928201819052606082018190526080820152825260001990920191018162000635579050506040805160a081019091529091508060008152602001866001600160a01b03168152602001896001600160a01b0316815260200160006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632caf024b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000714573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200073a919062000d9e565b8152508160008151811062000753576200075362000db8565b60209081029190910101526040805160a081019091528060008152602001866001600160a01b03168152602001896001600160a01b0316815260200160006001600160a01b031681526020017f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663c9c4bfca6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620007fe573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000824919062000d9e565b815250816001815181106200083d576200083d62000db8565b60209081029190910101526040805160a081019091528060008152602001896001600160a01b03168152602001866001600160a01b0316815260200160006001600160a01b03168152602001896001600160a01b0316630729d0546040518163ffffffff1660e01b8152600401602060405180830381865afa158015620008c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620008ee919062000d9e565b8152508160028151811062000907576200090762000db8565b6020026020010181905250808460200181905250505050935093915050565b60006200093483836200093b565b9392505050565b600082826040516200094d906200097f565b6200095a92919062000f82565b604051809103906000f08015801562000977573d6000803e3d6000fd5b509392505050565b6107ad8062000fa783390190565b600060208284031215620009a057600080fd5b81357fffffffff00000000000000000000000000000000000000000000000000000000811681146200093457600080fd5b80356001600160a01b0381168114620009e957600080fd5b919050565b60006060828403121562000a0157600080fd5b50919050565b6000806040838503121562000a1b57600080fd5b62000a2683620009d1565b9150602083013567ffffffffffffffff81111562000a4357600080fd5b62000a5185828601620009ee565b9150509250929050565b600081516003811062000a7e57634e487b7160e01b600052602160045260246000fd5b8352506020818101516001600160a01b0390811691840191909152604080830151821690840152606080830151909116908301526080908101519082015260a00190565b6020808252825182820181905260009190848201906040850190845b8181101562000b035762000af483855162000a5b565b93850193925060010162000ade565b50909695505050505050565b803561ffff81168114620009e957600080fd5b60008060006060848603121562000b3857600080fd5b62000b4384620009d1565b925062000b536020850162000b0f565b9150604084013567ffffffffffffffff81111562000b7057600080fd5b62000b7e86828701620009ee565b9150509250925092565b6000815180845260005b8181101562000bb05760208185018101518683018201520162000b92565b506000602082860101526020601f19601f83011685010191505092915050565b600081518084526020808501945080840160005b8381101562000c0b5781516001600160a01b03168752958201959082019060010162000be4565b509495945050505050565b600081516040845262000c2d604085018262000bd0565b60208481015186830387830152805180845290820193509091600091908301905b8083101562000c775762000c6482865162000a5b565b9150838501945060018301925062000c4e565b509695505050505050565b60408152600062000c97604083018562000b88565b828103602084015262000cab818562000c16565b95945050505050565b60008060006040848603121562000cca57600080fd5b62000cd584620009d1565b9250602084013567ffffffffffffffff8082111562000cf357600080fd5b818601915086601f83011262000d0857600080fd5b81358181111562000d1857600080fd5b87602082850101111562000d2b57600080fd5b6020830194508093505050509250925092565b6001600160a01b038316815260406020820152600062000d62604083018462000c16565b949350505050565b634e487b7160e01b600052604160045260246000fd5b60006020828403121562000d9357600080fd5b6200093482620009d1565b60006020828403121562000db157600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171562000dfa5762000dfa62000d6a565b604052919050565b60006040828403121562000e1557600080fd5b6040516040810181811067ffffffffffffffff8211171562000e3b5762000e3b62000d6a565b6040529050808235801515811462000e5257600080fd5b815262000e626020840162000b0f565b60208201525092915050565b6000806060838503121562000e8257600080fd5b823567ffffffffffffffff8082111562000e9b57600080fd5b818501915085601f83011262000eb057600080fd5b813560208282111562000ec75762000ec762000d6a565b8160051b925062000eda81840162000dce565b828152928401810192818101908985111562000ef557600080fd5b948201945b8486101562000f1e5762000f0e86620009d1565b8252948201949082019062000efa565b965062000f3090508888830162000e02565b9450505050509250929050565b6001600160a01b038416815260806020820152600062000f61608083018562000bd0565b905082511515604083015261ffff6020840151166060830152949350505050565b6001600160a01b038316815260406020820152600062000d62604083018462000b8856fe60806040526040516107ad3803806107ad83398101604081905261002291610319565b61002e82826000610035565b5050610436565b61003e8361006b565b60008251118061004b5750805b156100665761006483836100ab60201b6100291760201c565b505b505050565b610074816100d7565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100d08383604051806060016040528060278152602001610786602791396101a9565b9392505050565b6100ea8161022260201b6100551760201c565b6101515760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b806101887f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc60001b61023160201b6100711760201c565b80546001600160a01b0319166001600160a01b039290921691909117905550565b6060600080856001600160a01b0316856040516101c691906103e7565b600060405180830381855af49150503d8060008114610201576040519150601f19603f3d011682016040523d82523d6000602084013e610206565b606091505b50909250905061021886838387610234565b9695505050505050565b6001600160a01b03163b151590565b90565b606083156102a357825160000361029c576001600160a01b0385163b61029c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610148565b50816102ad565b6102ad83836102b5565b949350505050565b8151156102c55781518083602001fd5b8060405162461bcd60e51b81526004016101489190610403565b634e487b7160e01b600052604160045260246000fd5b60005b838110156103105781810151838201526020016102f8565b50506000910152565b6000806040838503121561032c57600080fd5b82516001600160a01b038116811461034357600080fd5b60208401519092506001600160401b038082111561036057600080fd5b818501915085601f83011261037457600080fd5b815181811115610386576103866102df565b604051601f8201601f19908116603f011681019083821181831017156103ae576103ae6102df565b816040528281528860208487010111156103c757600080fd5b6103d88360208301602088016102f5565b80955050505050509250929050565b600082516103f98184602087016102f5565b9190910192915050565b60208152600082518060208401526104228160408501602087016102f5565b601f01601f19169190910160400192915050565b610341806104456000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610074565b6100b9565b565b606061004e83836040518060600160405280602781526020016102e5602791396100dd565b9392505050565b73ffffffffffffffffffffffffffffffffffffffff163b151590565b90565b60006100b47f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5473ffffffffffffffffffffffffffffffffffffffff1690565b905090565b3660008037600080366000845af43d6000803e8080156100d8573d6000f35b3d6000fd5b60606000808573ffffffffffffffffffffffffffffffffffffffff16856040516101079190610277565b600060405180830381855af49150503d8060008114610142576040519150601f19603f3d011682016040523d82523d6000602084013e610147565b606091505b509150915061015886838387610162565b9695505050505050565b606083156101fd5782516000036101f65773ffffffffffffffffffffffffffffffffffffffff85163b6101f6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064015b60405180910390fd5b5081610207565b610207838361020f565b949350505050565b81511561021f5781518083602001fd5b806040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ed9190610293565b60005b8381101561026e578181015183820152602001610256565b50506000910152565b60008251610289818460208701610253565b9190910192915050565b60208152600082518060208401526102b2816040850160208701610253565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016919091016040019291505056fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a264697066735822122015b2167515f4ace04b6d5f73baf181691326aab8bf1c62e731322916c13586ec64736f6c63430008110033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201e0233a6b3e1d064d248177a0ba028a6ded98ac15cf4a5c3493d653a66bda3eb64736f6c6343000811003360a0604052306080523480156200001557600080fd5b506200002062000026565b620000e7565b600054610100900460ff1615620000935760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff90811614620000e5576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6080516135236200011f6000396000818161081d015281816108b3015281816109ba01528181610a500152610b4701526135236000f3fe6080604052600436106101b75760003560e01c8063747442d3116100ec578063c9c4bfca1161008a578063e097b3ff11610064578063e097b3ff14610535578063f794062e14610575578063fbd56e4114610595578063fe0d94c1146105b557600080fd5b8063c9c4bfca146104cc578063cc63604a14610500578063da35c6641461052057600080fd5b8063a84eb999116100c6578063a84eb99914610420578063b1bb8d2614610440578063bc20830214610460578063c7f758a81461049b57600080fd5b8063747442d3146103c057806383985259146103e0578063a230c5241461040057600080fd5b80633659cfe6116101595780634f1ef286116101335780634f1ef2861461036357806352d1902d146103765780635c60da1b1461038b5780636a6b2d86146103a057600080fd5b80633659cfe6146102f55780634162169f1461031557806341de68301461034757600080fd5b806329245f561161019557806329245f561461025f5780632caf024b1461027f578063303f4336146102b35780633628731c146102d557600080fd5b806301ffc9a7146101bc5780632358d5a8146101f157806327f1608d1461023c575b600080fd5b3480156101c857600080fd5b506101dc6101d73660046128ed565b6105d5565b60405190151581526020015b60405180910390f35b3480156101fd57600080fd5b506101dc61020c36600461292c565b6000828152610191602090815260408083206001600160a01b038516845260020190915290205460ff1692915050565b34801561024857600080fd5b506102516106b5565b6040519081526020016101e8565b34801561026b57600080fd5b506101dc61027a36600461292c565b6106d0565b34801561028b57600080fd5b506102517fb1750e46d35a0069c8465b8643e7838d2149a842a2db8ee233d9835590040cad81565b3480156102bf57600080fd5b506102d36102ce366004612974565b6106e3565b005b3480156102e157600080fd5b506102d36102f03660046129d5565b61072e565b34801561030157600080fd5b506102d3610310366004612a17565b610813565b34801561032157600080fd5b5060c9546001600160a01b03165b6040516001600160a01b0390911681526020016101e8565b34801561035357600080fd5b5060006040516101e89190612a34565b6102d3610371366004612acb565b6109b0565b34801561038257600080fd5b50610251610b3a565b34801561039757600080fd5b5061032f610c00565b3480156103ac57600080fd5b506102516103bb366004612b5e565b610c38565b3480156103cc57600080fd5b506102d36103db366004612b95565b610c46565b3480156103ec57600080fd5b506102d36103fb366004612bba565b610d59565b34801561040c57600080fd5b506101dc61041b366004612a17565b610f11565b34801561042c57600080fd5b506102d361043b3660046129d5565b610f1c565b34801561044c57600080fd5b506101dc61045b366004612c22565b61100b565b34801561046c57600080fd5b50610193546104829067ffffffffffffffff1681565b60405167ffffffffffffffff90911681526020016101e8565b3480156104a757600080fd5b506104bb6104b6366004612b5e565b611038565b6040516101e8959493929190612d19565b3480156104d857600080fd5b506102517f821b6e3a557148015a918c89e5d092e878a69854a2d1a410635f771bd5a8a3f581565b34801561050c57600080fd5b506101dc61051b366004612b5e565b6111ef565b34801561052c57600080fd5b506102516111fa565b34801561054157600080fd5b506101925461055b9060ff811690610100900461ffff1682565b60408051921515835261ffff9091166020830152016101e8565b34801561058157600080fd5b506101dc610590366004612a17565b611206565b3480156105a157600080fd5b506102516105b0366004612da5565b61123b565b3480156105c157600080fd5b506102d36105d0366004612b5e565b611585565b60006001600160e01b031982167f8f85278600000000000000000000000000000000000000000000000000000000148061063857506001600160e01b031982167fd200f62300000000000000000000000000000000000000000000000000000000145b8061066c57506001600160e01b031982167f0bb5c60300000000000000000000000000000000000000000000000000000000145b806106a057506001600160e01b031982167fa230c52400000000000000000000000000000000000000000000000000000000145b806106af57506106af826115d0565b92915050565b60006106c261016061160e565b6001600160e01b0316905090565b60006106dc8383611656565b9392505050565b60c9547fb1750e46d35a0069c8465b8643e7838d2149a842a2db8ee233d9835590040cad90610721906001600160a01b031630335b846000366116e1565b61072a826117cf565b5050565b60c9547fb1750e46d35a0069c8465b8643e7838d2149a842a2db8ee233d9835590040cad90610767906001600160a01b03163033610718565b6000826107726106b5565b61077c9190612ea0565b905061ffff8111156107ca576040517f125ae34000000000000000000000000000000000000000000000000000000000815261ffff6004820152602481018290526044015b60405180910390fd5b6107d48484611926565b7f11ba20e083ffba533caf1d501ce171aa2acdc05a5601e4e473e449460b0718d88484604051610805929190612eb3565b60405180910390a150505050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036108b15760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016107c1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661090c7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b0316146109885760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016107c1565b61099181611a2f565b604080516000808252602082019092526109ad91839190611a68565b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610a4e5760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f64656c656761746563616c6c000000000000000000000000000000000000000060648201526084016107c1565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610aa97f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b6001600160a01b031614610b255760405162461bcd60e51b815260206004820152602c60248201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060448201527f6163746976652070726f7879000000000000000000000000000000000000000060648201526084016107c1565b610b2e82611a2f565b61072a82826001611a68565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610bda5760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c000000000000000060648201526084016107c1565b507f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc5b90565b6000610c337f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b60006106af61016083611c0d565b33610c518382611656565b610c99576040517f37eda872000000000000000000000000000000000000000000000000000000008152600481018490526001600160a01b03821660248201526044016107c1565b60008381526101916020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000ff811660016101009283900461ffff9081168201169092021782556001600160a01b03861680865260028301909452828520805460ff191690911790559051909286917f7b39c92a7e1a86e846edaeff6eba715a046352c596794c2a374269c126a997689190a3828015610d455750610d4584611cc0565b15610d5357610d5384611d03565b50505050565b600054610100900460ff1615808015610d795750600054600160ff909116105b80610d935750303b158015610d93575060005460ff166001145b610e055760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a656400000000000000000000000000000000000060648201526084016107c1565b6000805460ff191660011790558015610e28576000805461ff0019166101001790555b610e3185611e6b565b61ffff831115610e78576040517f125ae34000000000000000000000000000000000000000000000000000000000815261ffff6004820152602481018490526044016107c1565b610e828484611926565b7f11ba20e083ffba533caf1d501ce171aa2acdc05a5601e4e473e449460b0718d88484604051610eb3929190612eb3565b60405180910390a1610ec4826117cf565b8015610f0a576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60006106af82611206565b60c9547fb1750e46d35a0069c8465b8643e7838d2149a842a2db8ee233d9835590040cad90610f55906001600160a01b03163033610718565b600082610f606106b5565b610f6a9190612f01565b6101925490915061ffff61010090910481169082161015610fd057610192546040517f2f621d5a00000000000000000000000000000000000000000000000000000000815261ffff808416600483015261010090920490911660248201526044016107c1565b610fda8484611ef1565b7f0ba413f7646035cae0a4ee999d676078fc8a763d1a36a8ef25e4c10f67d8615d8484604051610805929190612eb3565b6001600160a01b038216600090815261015f6020526040812061102e9083611c0d565b6001149392505050565b60408051608080820183526000808352602080840182905283850182905260609384018290528582526101918152848220805486519485018752600182015461ffff808216875267ffffffffffffffff6201000083048116888701526a010000000000000000000083048116888b0152720100000000000000000000000000000000000090920490911686880152600383018054895181870281018701909a52808a5260ff841699610100909404909216979594909190859084015b828210156111d8576000848152602090819020604080516060810182526003860290920180546001600160a01b031683526001810154938301939093526002830180549293929184019161114790612f14565b80601f016020809104026020016040519081016040528092919081815260200182805461117390612f14565b80156111c05780601f10611195576101008083540402835291602001916111c0565b820191906000526020600020905b8154815290600101906020018083116111a357829003601f168201915b505050505081525050815260200190600101906110f4565b505050509250806004015491505091939590929450565b60006106af82611cc0565b6000610c3361012d5490565b6001600160a01b038116600090815261015f602052604081206112289061160e565b6001600160e01b03166001149050919050565b6101925460009060ff168015611257575061125533611206565b155b1561129c57335b6040517feab993440000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201526024016107c1565b600060016112a943611f5d565b61019354919003915067ffffffffffffffff808316911611156112cc573361125e565b8367ffffffffffffffff166000036112ee576112e742611f5d565b9350611362565b6112f742611f5d565b67ffffffffffffffff168467ffffffffffffffff1610156113625761131b42611f5d565b6040517f4cc9c0f400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff918216600482015290851660248201526044016107c1565b8367ffffffffffffffff168367ffffffffffffffff1610156113c4576040517f4cc9c0f400000000000000000000000000000000000000000000000000000000815267ffffffffffffffff8086166004830152841660248201526044016107c1565b6113d4338c8c87878e8e8e611fe1565b6000818152610191602052604090206001810180547fffffffffffffffffffffffffffff00000000000000000000000000000000ffff166201000067ffffffffffffffff868116919091027fffffffffffffffffffffffffffff0000000000000000ffffffffffffffffffff16919091176a010000000000000000000089831602177fffffffffffff0000000000000000ffffffffffffffffffffffffffffffffffff8116720100000000000000000000000000000000000092891692909202918217835561019254610100900461ffff167fffffffffffff0000000000000000ffffffffffffffffffffffffffffffff00009091167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000090921691909117179055909250871561150657600481018890555b60005b8981101561156557816003018b8b8381811061152757611527612f48565b90506020028101906115399190612f5e565b81546001810183556000928352602090922090916003020161155b8282612fc4565b5050600101611509565b508615611576576115768387610c46565b50509998505050505050505050565b61158e81611cc0565b6115c7576040517f9fefd0f1000000000000000000000000000000000000000000000000000000008152600481018290526024016107c1565b6109ad81611d03565b60006001600160e01b031982167fda35c6640000000000000000000000000000000000000000000000000000000014806106af57506106af82612047565b8054600090801561164d5761163683611628600184612f01565b600091825260209091200190565b5464010000000090046001600160e01b03166106dc565b60009392505050565b60008281526101916020526040812061166e816120e2565b61167c5760009150506106af565b600181015461169c90849062010000900467ffffffffffffffff1661100b565b6116aa5760009150506106af565b6001600160a01b038316600090815260028201602052604090205460ff16156116d75760009150506106af565b5060019392505050565b6040517ffdef91060000000000000000000000000000000000000000000000000000000081526001600160a01b0387169063fdef91069061172e9088908890889088908890600401613120565b602060405180830381865afa15801561174b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061176f919061315e565b6117c7576040517f32dbe3b40000000000000000000000000000000000000000000000000000000081526001600160a01b038088166004830152808716602483015285166044820152606481018490526084016107c1565b505050505050565b60006117d96106b5565b905061ffff81166117f0604084016020850161318b565b61ffff16111561184b578061180b604084016020850161318b565b6040517f2f621d5a00000000000000000000000000000000000000000000000000000000815261ffff9283166004820152911660248201526044016107c1565b600161185d604084016020850161318b565b61ffff16101561187957600161180b604084016020850161318b565b8161019261188782826131a8565b90505061189343611f5d565b61019380547fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000001667ffffffffffffffff929092169190911790556118dd604083016020840161318b565b61ffff167f7d8a9a57630acbcfb28eb55b1ce0ff7b3d0dc9edea594075a8a6af35278a4cf961190f602085018561320b565b604051901515815260200160405180910390a25050565b60005b81811015611a1f5761195b83838381811061194657611946612f48565b90506020020160208101906105909190612a17565b156119c55782828281811061197257611972612f48565b90506020020160208101906119879190612a17565b6040517fc0b7477d0000000000000000000000000000000000000000000000000000000081526001600160a01b0390911660048201526024016107c1565b611a15600161015f60008686868181106119e1576119e1612f48565b90506020020160208101906119f69190612a17565b6001600160a01b0316815260208101919091526040016000209061215b565b5050600101611929565b50610d5361016061219183612195565b60c9547f821b6e3a557148015a918c89e5d092e878a69854a2d1a410635f771bd5a8a3f59061072a906001600160a01b03163033610718565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611aa057611a9b836121cd565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611afa575060408051601f3d908101601f19168201909252611af791810190613228565b60015b611b6c5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201527f6f6e206973206e6f74205555505300000000000000000000000000000000000060648201526084016107c1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc8114611c015760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f7860448201527f6961626c6555554944000000000000000000000000000000000000000000000060648201526084016107c1565b50611a9b838383612298565b6000438210611c5e5760405162461bcd60e51b815260206004820181905260248201527f436865636b706f696e74733a20626c6f636b206e6f7420796574206d696e656460448201526064016107c1565b6000611c69836122bd565b84549091506000611c7c86848385612339565b90508015611caa57611c9386611628600184612f01565b5464010000000090046001600160e01b0316611cad565b60005b6001600160e01b03169695505050505050565b600081815261019160205260408120611cd8816120e2565b611ce55750600092915050565b6001810154905461ffff918216610100909104909116101592915050565b600081815261019160205260409020805460ff19166001178155610d53611d3260c9546001600160a01b031690565b836101916000868152602001908152602001600020600301805480602002602001604051908101604052809291908181526020016000905b82821015611e4e576000848152602090819020604080516060810182526003860290920180546001600160a01b0316835260018101549383019390935260028301805492939291840191611dbd90612f14565b80601f0160208091040260200160405190810160405280929190818152602001828054611de990612f14565b8015611e365780601f10611e0b57610100808354040283529160200191611e36565b820191906000526020600020905b815481529060010190602001808311611e1957829003601f168201915b50505050508152505081526020019060010190611d6a565b50505060008781526101916020526040902060040154905061239a565b600054610100900460ff16611ee85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107c1565b6109ad81612469565b60005b81811015611f4d57611f1183838381811061194657611946612f48565b611f275782828281811061197257611972612f48565b611f43600061015f60008686868181106119e1576119e1612f48565b5050600101611ef4565b50610d5361016061251583612195565b600067ffffffffffffffff821115611fdd5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201527f342062697473000000000000000000000000000000000000000000000000000060648201526084016107c1565b5090565b6000611feb61251a565b9050886001600160a01b0316817fa6c1f8f4276dc3f243459e13b557c84e8f4e90b2e09070bad5f6909cee687c9288888c8c8a8a8a6040516120339796959493929190613241565b60405180910390a398975050505050505050565b60006001600160e01b031982167f41de68300000000000000000000000000000000000000000000000000000000014806120aa57506001600160e01b031982167f52d1902d00000000000000000000000000000000000000000000000000000000145b806106af57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316146106af565b6000806120ee42611f5d565b835490915060ff161580156121225750600183015467ffffffffffffffff8083166a01000000000000000000009092041611155b80156106dc5750600183015467ffffffffffffffff80831672010000000000000000000000000000000000009092041610159392505050565b6000806121798461216b436122bd565b61217486612535565b6125b4565b6001600160e01b0391821693501690505b9250929050565b0190565b6000806121c0856121bb6121a88861160e565b6001600160e01b0316868863ffffffff16565b61215b565b915091505b935093915050565b6001600160a01b0381163b61224a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201527f6f74206120636f6e74726163740000000000000000000000000000000000000060648201526084016107c1565b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b6122a183612757565b6000825111806122ae5750805b15611a9b57610d538383612797565b600063ffffffff821115611fdd5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201527f322062697473000000000000000000000000000000000000000000000000000060648201526084016107c1565b60005b8183101561238f57600061235084846127bc565b60008781526020902090915063ffffffff86169082015463ffffffff16111561237b57809250612389565b612386816001612ea0565b93505b5061233c565b50805b949350505050565b6040517fc71bf3240000000000000000000000000000000000000000000000000000000081526060906000906001600160a01b0387169063c71bf324906123e990889088908890600401613350565b6000604051808303816000875af1158015612408573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526124309190810190613379565b604051919350915085907f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f90600090a294509492505050565b600054610100900460ff166124e65760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e6700000000000000000000000000000000000000000060648201526084016107c1565b60c9805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b900390565b60006125246111fa565b9050610bfd61012d80546001019055565b60006001600160e01b03821115611fdd5760405162461bcd60e51b815260206004820152602760248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203260448201527f323420626974730000000000000000000000000000000000000000000000000060648201526084016107c1565b8254600090819080156126fd5760006125d287611628600185612f01565b60408051808201909152905463ffffffff8082168084526401000000009092046001600160e01b0316602084015291925090871610156126545760405162461bcd60e51b815260206004820152601b60248201527f436865636b706f696e743a2064656372656173696e67206b657973000000000060448201526064016107c1565b805163ffffffff80881691160361269d578461267588611628600186612f01565b80546001600160e01b03929092166401000000000263ffffffff9092169190911790556126ed565b6040805180820190915263ffffffff80881682526001600160e01b0380881660208085019182528b54600181018d5560008d81529190912094519151909216640100000000029216919091179101555b6020015192508391506121c59050565b50506040805180820190915263ffffffff80851682526001600160e01b0380851660208085019182528854600181018a5560008a8152918220955192519093166401000000000291909316179201919091559050816121c5565b612760816121cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606106dc83836040518060600160405280602781526020016134c7602791396127d7565b60006127cb600284841861347f565b6106dc90848416612ea0565b6060600080856001600160a01b0316856040516127f491906134a1565b600060405180830381855af49150503d806000811461282f576040519150601f19603f3d011682016040523d82523d6000602084013e612834565b606091505b50915091506128458683838761284f565b9695505050505050565b606083156128be5782516000036128b7576001600160a01b0385163b6128b75760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000060448201526064016107c1565b5081612392565b61239283838151156128d35781518083602001fd5b8060405162461bcd60e51b81526004016107c191906134b3565b6000602082840312156128ff57600080fd5b81356001600160e01b0319811681146106dc57600080fd5b6001600160a01b03811681146109ad57600080fd5b6000806040838503121561293f57600080fd5b82359150602083013561295181612917565b809150509250929050565b60006040828403121561296e57600080fd5b50919050565b60006040828403121561298657600080fd5b6106dc838361295c565b60008083601f8401126129a257600080fd5b50813567ffffffffffffffff8111156129ba57600080fd5b6020830191508360208260051b850101111561218a57600080fd5b600080602083850312156129e857600080fd5b823567ffffffffffffffff8111156129ff57600080fd5b612a0b85828601612990565b90969095509350505050565b600060208284031215612a2957600080fd5b81356106dc81612917565b6020810160038310612a5657634e487b7160e01b600052602160045260246000fd5b91905290565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612a9b57612a9b612a5c565b604052919050565b600067ffffffffffffffff821115612abd57612abd612a5c565b50601f01601f191660200190565b60008060408385031215612ade57600080fd5b8235612ae981612917565b9150602083013567ffffffffffffffff811115612b0557600080fd5b8301601f81018513612b1657600080fd5b8035612b29612b2482612aa3565b612a72565b818152866020838501011115612b3e57600080fd5b816020840160208301376000602083830101528093505050509250929050565b600060208284031215612b7057600080fd5b5035919050565b80151581146109ad57600080fd5b8035612b9081612b77565b919050565b60008060408385031215612ba857600080fd5b82359150602083013561295181612b77565b60008060008060808587031215612bd057600080fd5b8435612bdb81612917565b9350602085013567ffffffffffffffff811115612bf757600080fd5b612c0387828801612990565b9094509250612c179050866040870161295c565b905092959194509250565b60008060408385031215612c3557600080fd5b8235612c4081612917565b946020939093013593505050565b60005b83811015612c69578181015183820152602001612c51565b50506000910152565b60008151808452612c8a816020860160208601612c4e565b601f01601f19169290920160200192915050565b6000815180845260208085019450848260051b860182860160005b85811015612d0c578383038952815180516001600160a01b031684528581015186850152604090810151606091850182905290612cf881860183612c72565b9a87019a9450505090840190600101612cb9565b5090979650505050505050565b6000610100871515835261ffff808816602085015280875116604085015250602086015167ffffffffffffffff80821660608601528060408901511660808601528060608901511660a086015250508060c0840152612d7a81840186612c9e565b9150508260e08301529695505050505050565b803567ffffffffffffffff81168114612b9057600080fd5b600080600080600080600080600060e08a8c031215612dc357600080fd5b893567ffffffffffffffff80821115612ddb57600080fd5b818c0191508c601f830112612def57600080fd5b813581811115612dfe57600080fd5b8d6020828501011115612e1057600080fd5b60209283019b509950908b01359080821115612e2b57600080fd5b50612e388c828d01612990565b90985096505060408a01359450612e5160608b01612b85565b9350612e5f60808b01612b85565b9250612e6d60a08b01612d8d565b9150612e7b60c08b01612d8d565b90509295985092959850929598565b634e487b7160e01b600052601160045260246000fd5b808201808211156106af576106af612e8a565b60208082528181018390526000908460408401835b86811015612ef6578235612edb81612917565b6001600160a01b031682529183019190830190600101612ec8565b509695505050505050565b818103818111156106af576106af612e8a565b600181811c90821680612f2857607f821691505b60208210810361296e57634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60008235605e19833603018112612f7457600080fd5b9190910192915050565b601f821115611a9b57600081815260208120601f850160051c81016020861015612fa55750805b601f850160051c820191505b818110156117c757828155600101612fb1565b8135612fcf81612917565b6001600160a01b03811673ffffffffffffffffffffffffffffffffffffffff1983541617825550600160208084013582840155600283016040850135601e1986360301811261301d57600080fd5b8501803567ffffffffffffffff81111561303657600080fd5b803603848301131561304757600080fd5b61305b816130558554612f14565b85612f7e565b6000601f821160018114613091576000831561307957508382018601355b600019600385901b1c1916600184901b1785556130ea565b600085815260209020601f19841690835b828110156130c1578685018901358255938801939089019088016130a2565b50848210156130e05760001960f88660031b161c198885880101351681555b50508683881b0185555b505050505050505050565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b60006001600160a01b038088168352808716602084015250846040830152608060608301526131536080830184866130f5565b979650505050505050565b60006020828403121561317057600080fd5b81516106dc81612b77565b61ffff811681146109ad57600080fd5b60006020828403121561319d57600080fd5b81356106dc8161317b565b81356131b381612b77565b815460ff19811691151560ff16918217835560208401356131d38161317b565b62ffff008160081b16837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000008416171784555050505050565b60006020828403121561321d57600080fd5b81356106dc81612b77565b60006020828403121561323a57600080fd5b5051919050565b600067ffffffffffffffff808a1683526020818a1681850152604060a08186015261327060a086018a8c6130f5565b606086820381880152818983528483019050848a60051b8401018b60005b8c81101561333257601f198684030184528135605e198f36030181126132b357600080fd5b8e0180356132c081612917565b6001600160a01b0316845280890135898501528781013536829003601e190181126132ea57600080fd5b0188810190358a8111156132fd57600080fd5b80360382131561330c57600080fd5b868986015261331e87860182846130f5565b958a0195945050509087019060010161328e565b50508097505050505050505082608083015298975050505050505050565b8381526060602082015260006133696060830185612c9e565b9050826040830152949350505050565b600080604080848603121561338d57600080fd5b835167ffffffffffffffff808211156133a557600080fd5b818601915086601f8301126133b957600080fd5b81516020828211156133cd576133cd612a5c565b8160051b6133dc828201612a72565b928352848101820192828101908b8511156133f657600080fd5b83870192505b8483101561346b578251868111156134145760008081fd5b8701603f81018d136134265760008081fd5b84810151613436612b2482612aa3565b8181528e8b83850101111561344b5760008081fd5b61345a828883018d8601612c4e565b8452505091830191908301906133fc565b9990920151989a9899505050505050505050565b60008261349c57634e487b7160e01b600052601260045260246000fd5b500490565b60008251612f74818460208701612c4e565b6020815260006106dc6020830184612c7256fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220c531e83fd5a3624896d28fc4996f2dcc4059e0fa621ba2cc1de5f42b7b7814cb64736f6c63430008110033