0 txs
1 call
constructor
constructor(bool _mainnet)
functions
assets
viewfunction assets(address) view returns (address)
cast
viewfunction cast(address) view returns (bool)
deployer
viewfunction deployer() view returns (address)
mainnet
viewfunction mainnet() view returns (bool)
NEW_VERSION_HASH
viewfunction NEW_VERSION_HASH() view returns (bytes32)
newGovs
viewfunction newGovs(address) view returns (address anastasius, address timelock)
PRIOR_VERSION_HASH
viewfunction PRIOR_VERSION_HASH() view returns (bytes32)
registries
viewfunction registries() view returns (address versionRegistry, address assetPluginRegistry, address daoFeeRegistry, address trustedFillerRegistry)
version
purefunction version() pure returns (string)
castSpell
nonpayablefunction castSpell(address rToken, address oldGovernor, address[] guardians) returns (address newGovernor, address newTimelock)
events
NewGovernanceDeployed
event NewGovernanceDeployed(address indexed rToken, address indexed newGovernor, address indexed newTimelock)
errors
TestError
error TestError()
creation bytecode
0x61078060405273bcb71ee9c3372f3444cbbe3e1b263204967edbe3608090815273fb56b651f882f8f90d35dd7ca181a7f4d889ecac60a0527370c8611f5e34266c09c896f3547d1f7fccf44d5460c052731942270ac94e6c6041c7f7c87562ba8ddb1bdffc60e052732362a9b237e4f06491b7e3827ee179b77f2b22c66101005273b90fe39cb47c4401a941528769f107dee8e4948861012052733a078799a9823cbda084a79c7caf47f499c6ea096101405273d8a1b8e73dc025c527493436057f0d8fc01e197361016052733a395c1bc233d43d126a971b15d8c2b6eb803ca66101805273d1a2a985a18ddf30299cf2bdd0592b29e0aa3e846101a05273723e269d178e887e1691f3cee71c840b5c5b9f766101c052738487278d9262b9dcca4bec85b125a45608d0067a6101e052739a84c6f204209957dda0064eaeaaf6138fdb8cea6102005273f35fbe1576e9d52c20b7ef8626477dcfb939d9ef61022052733484efb04a54bf376da091f4364f4961f7a01b746102405273e3da655331649b86bfe3356bed992580835995436102605273cc07ef5fdafa6298b276f14a6f4198317d0d20c36102805273868dbbd8b7d1aed1fec4c13cc4a15f50965e2fb96102a05273c915f28d1cd97703cf0940abb192ee50dd882f8c6102c0527302d960943e1dd3b2c4d621dd8b72489fa4d7ce496102e052738cfb48b594d54c5bc122f3c4374e16fcf1050a436103005273097b09fd6932cec8cf47d5ec0b0b7defb0c97b0261032052730c82efbbd9b0f47fda04b83226dbfbc04ec728b86103405273cc0c0c376cebd701d9126228510f31f9096b836a61036052738e24283ef5f6fe85fed48ac3a3d4248b5ba2966861038052734adf4c9b985a743d9fef14ae4b3e79661f73c78b6103a05273a9f37b188d71b66c3e1ea876f61e00377174508a6103c052737e80b2f7b6abb98028cc8a66ae6f7ea5302fa9046103e052731e98a442f917aa8e0e1f6e18687e58d954b8ffc26104005273738c191f95c053602e272afaf67a638519fa4b2f6104205273875af0bab943b7416c6d2142546cab61f1ad964a6104405273fa025df685ba0a09b2c767f4cc1a1972f140d42161046052732fe50f96cd61a3056d497fe88cea8441244d5d5e6104805273dcee056a2feb893eb1a1c3e3f103ac8ab098ce2e6104a052733ca3359006c55164753ae475d995163adab5432d6104c0527330789b6a26735c83774cd49e22c6f68dd4533a736104e0527314cef4f11bd1f2a9e6416b812f7d45481c9dd896610500527365ff9cf2fe6a28f5fd7faf5fd0e54ef9b85df4e861052052733cb9dd76aef20d97c0314ad5cae6d3d54d87f6ee6105405273c8f9c28880797cf241d4241395f9bf14c9e7135c6105605273fb80e9a48493ac5c3c401aa713146825d3bb9ca661058052733e2d5cf862c959f5a4046558bec90c02dd5472ed6105a052738b13ac47e0bf142630eac3e838a0c0ace8e81c356105c052733b8bb1153c6b4331ac5ee50d59437a244ed8cf576105e05273661335963a4e84a5e3fb58a9110f635bbf1162016106005273a514214e14d64822ee70dff2d5e15f9a2772ad206106205273d9da5527b077d81b0289eae2745eaf48f0bc433f610640527346ee78397ab4e334a85bbc7b7c3a2935f175d4d96106605273c2b73b106ccb4d2cf937bffcd629f3e63677356761068052732e22d688cf3846e5303f6e4ead0a7455801813e26106a052731c0a14a44c4a6834fe23632da2f493cc4cf87dba6106c052736f7edae52dd7e45f470c327788249a2812a259d86106e052734f30165072351923a1a4bc3926050986318f9b346107005273e0941a6e0dfc823cf44e95664a5b151041c13d4261072052738a1a3b46749b81cf91d56df6042e12ce50e1b08a6107405273a4d38731434e875d7e30e13d8b65befed7d47ac261076052610589906000906038610ece565b50604080516102a0810182527322018d85bfda9e2673fb4101e957562a1e952cdf815273f535cab96457558ee3eeaf1402fca6441e832f086020820152730e8439a17ba5cbb2d9823c03a02566b9dd5d96ac9181019190915273f7d1c6ee4c0d84c6b530d53a897daa1e9eb56833606082015273be70970a10c186185b1bc1be980ea09bd68fd97a608082015273eacaf85ea2df99e56053fd0250330c148d58254760a08201527339e19d88f3d5c25b5a684e8a500dbec2e2c4632760c08201527398f292e6bb4722664feffb81448ccfb5b721146960e082015273a87e9dae6e9ea5b2be858686cc6c21b953bfe0b861010082015273f5366f67ff66a3cefcb18809a762d5b5931febf861012082015273773cf50adcf1730964d4a9b664baed4b9ffc2450610140820152735ccca36cbb66a4e4033b08b4f6d7bac96ba55cdc610160820152731cca3fbb11c4b734183f997679d52defa74b613a61018082015273c98eafc9f249d90e3e35e729e3679dd75a899c106101a082015273339c1509b980d80a0b50858518531edbe2940da16101c0820152731bd20253c49515d348dad1af70ff2c0473fea3586101e082015273daacee75c863a79f07699b094db07793d3a52d6d610200820152736647c880eb8f57948af50ab45fca8fe86c154d2461022082015273cfa67f42a0fde4f0fb612ea5e66170b0465b84c16102408201527345b950af443281c5f67c2c7a1d9bbc325ecb8eea610260820152734024c00bbd0c420e719527d88781bc1543e63dd56102808201526107d1906038906015610f26565b503480156107de57600080fd5b50604051616e56380380616e568339810160408190526107fd91610f82565b466001148061080d575046617a69145b80610819575046612105145b61085e5760405162461bcd60e51b81526020600482015260116024820152703ab739bab83837b93a32b21031b430b4b760791b60448201526064015b60405180910390fd5b6055805460ff19168215801591909117909155610ba057605180546001600160a01b031990811673087ac594713dcf03a85a0d3ca10ace81f47d4526179091556040805160808101825273ba8cd83f793aa046fe5ab7ba01f855742f2d6a30808252736cf05ea2a94a101ce6a44ec2a2995b43f1b0958f6020830181905273ec716ded4eaba060937d1a915f166e237039342b93830184905273279ccf56441fc74f1aac39e7fac165dec5a88b3a6060909301839052604d80548616909217909155604e805485169091179055604f805484169092179091556050805490921617905560005b6038811015610b9a57604051640342e322e360dc1b6020820152602501604051602081830303815290604052805190602001206000826038811061098a5761098a610fab565b0160009054906101000a90046001600160a01b03166001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa1580156109dc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a049190810190610ffb565b604051602001610a1491906110ad565b6040516020818303038152906040528051906020012014610a675760405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a5908185cdcd95d609a1b6044820152606401610855565b6000808260388110610a7b57610a7b610fab565b0160009054906101000a90046001600160a01b03166001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015610acd573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af191906110c9565b6001600160a01b038082166000908152605360205260409020549192501615610b4e5760405162461bcd60e51b815260206004820152600f60248201526e191d5c1b1a58d85d1948185cdcd95d608a1b6044820152606401610855565b60008260388110610b6157610b61610fab565b01546001600160a01b03918216600090815260536020526040902080546001600160a01b03191692909116919091179055600101610944565b50610ec8565b605180546001600160a01b0319908116739e50605e02483c273f7b5a5826f363f3a46dca791790915560408051608081018252733bece5ec596331033726e5c6c188c313ff4e3fe58082527387a959e0377c68a50b08a91ae5ab3afa7f41aca460208301819052733513d2c7d2f51c678889cec083e7d7ae27b219ad9383018490527372db5f49d0599c314e2f2fedf6fe33e1ba6c7a186060909301839052604d80548616909217909155604e805485169091179055604f805484169092179091556050805490921617905560005b6015811015610ec657604051640342e322e360dc1b60208201526025016040516020818303038152906040528051906020012060388260158110610cb557610cb5610fab565b0160009054906101000a90046001600160a01b03166001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa158015610d07573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610d2f9190810190610ffb565b604051602001610d3f91906110ad565b6040516020818303038152906040528051906020012014610d925760405162461bcd60e51b815260206004820152600d60248201526c1a5b9d985b1a5908185cdcd95d609a1b6044820152606401610855565b600060388260158110610da757610da7610fab565b0160009054906101000a90046001600160a01b03166001600160a01b031663785e9e866040518163ffffffff1660e01b8152600401602060405180830381865afa158015610df9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e1d91906110c9565b6001600160a01b038082166000908152605360205260409020549192501615610e7a5760405162461bcd60e51b815260206004820152600f60248201526e191d5c1b1a58d85d1948185cdcd95d608a1b6044820152606401610855565b60388260158110610e8d57610e8d610fab565b01546001600160a01b03918216600090815260536020526040902080546001600160a01b03191692909116919091179055600101610c6f565b505b506110f2565b8260388101928215610f16579160200282015b82811115610f1657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610ee1565b50610f22929150610f6d565b5090565b8260158101928215610f165791602002820182811115610f1657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610ee1565b5b80821115610f225760008155600101610f6e565b600060208284031215610f9457600080fd5b81518015158114610fa457600080fd5b9392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b60005b83811015610ff2578181015183820152602001610fda565b50506000910152565b60006020828403121561100d57600080fd5b81516001600160401b0381111561102357600080fd5b8201601f8101841361103457600080fd5b80516001600160401b0381111561104d5761104d610fc1565b604051601f8201601f19908116603f011681016001600160401b038111828210171561107b5761107b610fc1565b60405281815282820160200186101561109357600080fd5b6110a4826020830160208601610fd7565b95945050505050565b600082516110bf818460208701610fd7565b9190910192915050565b6000602082840312156110db57600080fd5b81516001600160a01b0381168114610fa457600080fd5b615d55806111016000396000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063d346a80211610066578063d346a802146101c5578063d5f39488146101cd578063e81b0462146101f8578063f11b818814610205578063fa7e60fe1461022e57600080fd5b8063206eba5d146100a357806330f17da01461010157806354fd4d5014610155578063614c2dc61461017c5780638fcc1de2146101af575b600080fd5b604d54604e54604f546050546100c9936001600160a01b03908116938116928116911684565b604080516001600160a01b03958616815293851660208501529184169183019190915290911660608201526080015b60405180910390f35b61013561010f3660046132a0565b605260205260009081526040902080546001909101546001600160a01b03918216911682565b604080516001600160a01b039384168152929091166020830152016100f8565b60408051808201825260058152640342e322e360dc1b602082015290516100f891906132e8565b61019f61018a3660046132a0565b60546020526000908152604090205460ff1681565b60405190151581526020016100f8565b6101b7610241565b6040519081526020016100f8565b6101b761026f565b6051546101e0906001600160a01b031681565b6040516001600160a01b0390911681526020016100f8565b60555461019f9060ff1681565b6101e06102133660046132a0565b6053602052600090815260409020546001600160a01b031681565b61013561023c36600461331b565b61027e565b604051640332e342e360dc1b60208201526025015b6040516020818303038152906040528051906020012081565b604051602001610256906133b3565b60008060405160200161029c90640332e342e360dc1b815260050190565b60405160208183030381529060405280519060200120866001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa1580156102f0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610318919081019061347b565b6040516020016103289190613511565b60405160208183030381529060405280519060200120146103785760405162461bcd60e51b815260206004820152600560248201526455533a203160d81b60448201526064015b60405180910390fd5b6001600160a01b03861660009081526054602052604090205460ff16156103cf5760405162461bcd60e51b815260206004820152600b60248201526a1c995c19585d0818d85cdd60aa1b604482015260640161036f565b6001600160a01b0386166000818152605460209081526040808320805460ff191660011790558051630dffeadd60e41b8152905192939263dffeadd0926004808401939192918290030181865afa15801561042e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610452919061352d565b604051632474521560e21b81529091506001600160a01b038216906391d148549061048b906427aba722a960d91b90339060040161354a565b602060405180830381865afa1580156104a8573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104cc9190613561565b6105005760405162461bcd60e51b81526020600482015260056024820152642aa99d101960d91b604482015260640161036f565b604051632474521560e21b81526001600160a01b038216906391d1485490610536906427aba722a960d91b90309060040161354a565b602060405180830381865afa158015610553573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105779190613561565b6105ab5760405162461bcd60e51b815260206004820152600560248201526455533a203360d81b604482015260640161036f565b6040805161014081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081018290526101008101829052610120810191909152816001600160a01b031663979d7e866040518163ffffffff1660e01b8152600401602060405180830381865afa15801561063a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061065e919061352d565b81604001906001600160a01b031690816001600160a01b031681525050816001600160a01b0316632f2439b16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156106b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106dd919061352d565b81606001906001600160a01b031690816001600160a01b031681525050816001600160a01b031663dc8af5f66040518163ffffffff1660e01b8152600401602060405180830381865afa158015610738573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061075c919061352d565b81608001906001600160a01b031690816001600160a01b031681525050816001600160a01b031663abff01106040518163ffffffff1660e01b8152600401602060405180830381865afa1580156107b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107db919061352d565b8160e001906001600160a01b031690816001600160a01b031681525050816001600160a01b031663bfe109286040518163ffffffff1660e01b8152600401602060405180830381865afa158015610836573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061085a919061352d565b8160a001906001600160a01b031690816001600160a01b031681525050816001600160a01b031663656e96e16040518163ffffffff1660e01b8152600401602060405180830381865afa1580156108b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108d9919061352d565b6001600160a01b0390811660c08301528881168252604080516320df862760e11b81529051918416916341bf0c4e916004808201926020929091908290030181865afa15801561092d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610951919061352d565b8161012001906001600160a01b031690816001600160a01b031681525050816001600160a01b031663531367636040518163ffffffff1660e01b8152600401602060405180830381865afa1580156109ad573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109d1919061352d565b8161010001906001600160a01b031690816001600160a01b031681525050816001600160a01b0316634780a5e56040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a2d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a51919061352d565b6001600160a01b03908116602083015260515460408051630c3a404b60e21b8152905160009392909216916330e9012c916004808201926101a0929091908290030181865afa158015610aa8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610acc91906135d5565b8051604051631b2ce7f360e11b81526001600160a01b039182166004820152919250841690633659cfe690602401600060405180830381600087803b158015610b1457600080fd5b505af1158015610b28573d6000803e3d6000fd5b50505050604051602001610b3b906133b3565b60405160208183030381529060405280519060200120836001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa158015610b8f573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610bb7919081019061347b565b604051602001610bc79190613511565b6040516020818303038152906040528051906020012014610c125760405162461bcd60e51b81526020600482015260056024820152641554ce880d60da1b604482015260640161036f565b604d546040516270d4bb60e81b81526001600160a01b039182166004820152908416906370d4bb0090602401600060405180830381600087803b158015610c5857600080fd5b505af1158015610c6c573d6000803e3d6000fd5b5050604e54604051632f8b2ced60e21b81526001600160a01b039182166004820152908616925063be2cb3b49150602401600060405180830381600087803b158015610cb757600080fd5b505af1158015610ccb573d6000803e3d6000fd5b5050604f546040516338b9d41d60e11b81526001600160a01b0391821660048201529086169250637173a83a9150602401600060405180830381600087803b158015610d1657600080fd5b505af1158015610d2a573d6000803e3d6000fd5b5050604051632f2ff15d60e01b81526001600160a01b0386169250632f2ff15d9150610d64906427aba722a960d91b90879060040161354a565b600060405180830381600087803b158015610d7e57600080fd5b505af1158015610d92573d6000803e3d6000fd5b50505050826001600160a01b031663f41c8695604051602001610db4906133b3565b60408051601f198184030181529082905280516020909101206001600160e01b031960e084901b16825260048201526000602482018190526044820152606401600060405180830381600087803b158015610e0e57600080fd5b505af1158015610e22573d6000803e3d6000fd5b50505050826001600160a01b0316637162c7976040518163ffffffff1660e01b8152600401600060405180830381600087803b158015610e6157600080fd5b505af1158015610e75573d6000803e3d6000fd5b50505050604051602001610e88906133b3565b60405160208183030381529060405280519060200120896001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa158015610edc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610f04919081019061347b565b604051602001610f149190613511565b6040516020818303038152906040528051906020012014610f5f5760405162461bcd60e51b815260206004820152600560248201526455533a203560d81b604482015260640161036f565b604051602001610f6e906133b3565b6040516020818303038152906040528051906020012082604001516001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa158015610fc6573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610fee919081019061347b565b604051602001610ffe9190613511565b604051602081830303815290604052805190602001201480156110d3575060405160200161102b906133b3565b6040516020818303038152906040528051906020012082606001516001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa158015611083573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110ab919081019061347b565b6040516020016110bb9190613511565b60405160208183030381529060405280519060200120145b801561119157506040516020016110e9906133b3565b6040516020818303038152906040528051906020012082608001516001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa158015611141573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611169919081019061347b565b6040516020016111799190613511565b60405160208183030381529060405280519060200120145b801561124f57506040516020016111a7906133b3565b604051602081830303815290604052805190602001208260e001516001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa1580156111ff573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611227919081019061347b565b6040516020016112379190613511565b60405160208183030381529060405280519060200120145b801561130d5750604051602001611265906133b3565b604051602081830303815290604052805190602001208260a001516001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa1580156112bd573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526112e5919081019061347b565b6040516020016112f59190613511565b60405160208183030381529060405280519060200120145b80156113cb5750604051602001611323906133b3565b604051602081830303815290604052805190602001208260c001516001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa15801561137b573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113a3919081019061347b565b6040516020016113b39190613511565b60405160208183030381529060405280519060200120145b801561148957506040516020016113e1906133b3565b6040516020818303038152906040528051906020012082600001516001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa158015611439573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611461919081019061347b565b6040516020016114719190613511565b60405160208183030381529060405280519060200120145b8015611548575060405160200161149f906133b3565b604051602081830303815290604052805190602001208261012001516001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa1580156114f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611520919081019061347b565b6040516020016115309190613511565b60405160208183030381529060405280519060200120145b8015611607575060405160200161155e906133b3565b604051602081830303815290604052805190602001208261010001516001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa1580156115b7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526115df919081019061347b565b6040516020016115ef9190613511565b60405160208183030381529060405280519060200120145b80156116c5575060405160200161161d906133b3565b6040516020818303038152906040528051906020012082602001516001600160a01b03166354fd4d506040518163ffffffff1660e01b8152600401600060405180830381865afa158015611675573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261169d919081019061347b565b6040516020016116ad9190613511565b60405160208183030381529060405280519060200120145b6116f95760405162461bcd60e51b81526020600482015260056024820152642aa99d101b60d91b604482015260640161036f565b60405163d547741f60e01b81526001600160a01b0384169063d547741f9061172f906427aba722a960d91b90879060040161354a565b600060405180830381600087803b15801561174957600080fd5b505af115801561175d573d6000803e3d6000fd5b5050604051632474521560e21b81526001600160a01b03861692506391d148549150611797906427aba722a960d91b90879060040161354a565b602060405180830381865afa1580156117b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117d89190613561565b1561180d5760405162461bcd60e51b815260206004820152600560248201526455533a203760d81b604482015260640161036f565b60e08201516050546040516303fff59b60e31b81526001600160a01b03918216600482015260016024820152911690631fffacd890604401600060405180830381600087803b15801561185f57600080fd5b505af1158015611873573d6000803e3d6000fd5b5050505081606001516001600160a01b031663e5f7dd296040518163ffffffff1660e01b8152600401602060405180830381865afa1580156118b9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118dd9190613561565b156119125760405162461bcd60e51b81526020600482015260056024820152640aaa67440760db1b604482015260640161036f565b8060400151602001516001600160a01b03168260e001516001600160a01b031663917102696040518163ffffffff1660e01b8152600401602060405180830381865afa158015611966573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061198a919061352d565b6001600160a01b0316148015611a1e57508060400151600001516001600160a01b03168260e001516001600160a01b031663c3c35a1a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156119ef573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a13919061352d565b6001600160a01b0316145b611a525760405162461bcd60e51b815260206004820152600560248201526455533a203960d81b604482015260640161036f565b5060008160a001516001600160a01b031663c038a38e6040518163ffffffff1660e01b81526004016040805180830381865afa158015611a96573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611aba91906136fd565b9050611ac96001612710613752565b60208201518251611ada919061376b565b62ffffff161015611b165760405162461bcd60e51b8152602060048201526006602482015265055533a2031360d41b604482015260640161036f565b6020810151815161271091611b2a9161376b565b62ffffff161015611cd45760a082015160405163c2db09c160e01b81526002600482015260009081906001600160a01b0384169063c2db09c1906024016040805180830381865afa158015611b83573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ba79190613798565b9150915060008161ffff1611611bbf57611bbf6137cb565b826001600160a01b03166388594437600260405180604001604052808661ffff168152602001856001611bf291906137e1565b61ffff9081169091526040516001600160e01b031960e086901b1681526001600160a01b039093166004840152815181166024840152602090910151166044820152606401600060405180830381600087803b158015611c5157600080fd5b505af1158015611c65573d6000803e3d6000fd5b505050508460a001516001600160a01b031663c038a38e6040518163ffffffff1660e01b81526004016040805180830381865afa158015611caa573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cce91906136fd565b93505050505b6020810151815161271091611ce89161376b565b62ffffff161015611d245760405162461bcd60e51b815260206004820152600660248201526555533a20313160d01b604482015260640161036f565b50600081604001516001600160a01b0316632510a1d76040518163ffffffff1660e01b8152600401600060405180830381865afa158015611d69573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611d9191908101906137fb565b905060005b8151811015611e8f576000828281518110611db357611db36138b4565b6020908102919091018101516001600160a01b03808216600090815260539093526040909220549092501615801590611dfe57508a6001600160a01b0316816001600160a01b031614155b15611e86576040848101516001600160a01b0383811660009081526053602052839020549251631dd1b89560e11b815292811660048401521690633ba3712a906024016020604051808303816000875af1158015611e60573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e849190613561565b505b50600101611d96565b5060408281015190516366f15f4560e11b81526001600160a01b038b811660048301529091169063cdcff00190829063cde2be8a90602401602060405180830381865afa158015611ee4573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f08919061352d565b6001600160a01b03166395acc4ae6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f6991906138ca565b6040516001600160e01b031960e084901b1681526001600160c01b0390911660048201526024016020604051808303816000875af1158015611faf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fd39190613561565b6120085760405162461bcd60e51b815260206004820152600660248201526555533a20313360d01b604482015260640161036f565b81604001516001600160a01b03166332e0f32f6040518163ffffffff1660e01b815260040160006040518083038186803b15801561204557600080fd5b505afa158015612059573d6000803e3d6000fd5b5050505081606001516001600160a01b0316638a55015b6040518163ffffffff1660e01b8152600401600060405180830381600087803b15801561209c57600080fd5b505af11580156120b0573d6000803e3d6000fd5b50600092506120bd915050565b82606001516001600160a01b031663200d2ed26040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120ff573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121239190613909565b6002811115612134576121346138f3565b1461216a5760405162461bcd60e51b81526020600482015260066024820152651554ce880c4d60d21b604482015260640161036f565b506000336001600160a01b031663f27a0c926040518163ffffffff1660e01b8152600401602060405180830381865afa1580156121ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121cf919061392a565b90508060000361220a5760405162461bcd60e51b815260206004820152600660248201526555533a20313560d01b604482015260640161036f565b60408051600080825260208201908152818301928390528392309061222e9061327b565b61223b9493929190613988565b604051809103906000f080158015612257573d6000803e3d6000fd5b509350735a4f2ffc4ad066152b344ceb2fc2275275b1a9c7630c48221d896001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156122b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d6919061352d565b868b6001600160a01b0316633932abb16040518163ffffffff1660e01b8152600401602060405180830381865afa158015612315573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612339919061392a565b8c6001600160a01b03166302a251a36040518163ffffffff1660e01b8152600401602060405180830381865afa158015612377573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061239b919061392a565b6127108e6001600160a01b031663a7713a706040518163ffffffff1660e01b8152600401602060405180830381865afa1580156123dc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612400919061392a565b6040516001600160e01b031960e089901b1681526001600160a01b03968716600482015295909416602486015260448501929092526064840152608483015260a482015260c401602060405180830381865af4158015612464573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612488919061352d565b9450836001600160a01b0316856001600160a01b031663d33219b46040518163ffffffff1660e01b8152600401602060405180830381865afa1580156124d2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124f6919061352d565b6001600160a01b0316146125355760405162461bcd60e51b81526020600482015260066024820152652aa99d10189b60d11b604482015260640161036f565b604051632f2ff15d60e01b815284906001600160a01b03821690632f2ff15d9061257390600080516020615d00833981519152908a9060040161354a565b600060405180830381600087803b15801561258d57600080fd5b505af11580156125a1573d6000803e3d6000fd5b5050604051632f2ff15d60e01b81526001600160a01b0384169250632f2ff15d91506125e190600080516020615cc0833981519152908a9060040161354a565b600060405180830381600087803b1580156125fb57600080fd5b505af115801561260f573d6000803e3d6000fd5b5050604051632f2ff15d60e01b81526001600160a01b0384169250632f2ff15d915061264f90600080516020615ce0833981519152908a9060040161354a565b600060405180830381600087803b15801561266957600080fd5b505af115801561267d573d6000803e3d6000fd5b5050505060005b8781101561272c57816001600160a01b0316632f2ff15d600080516020615d008339815191528b8b858181106126bc576126bc6138b4565b90506020020160208101906126d191906132a0565b6040518363ffffffff1660e01b81526004016126ee92919061354a565b600060405180830381600087803b15801561270857600080fd5b505af115801561271c573d6000803e3d6000fd5b5050600190920191506126849050565b5060405163d547741f60e01b81526001600160a01b0382169063d547741f9061277b907f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca590309060040161354a565b600060405180830381600087803b15801561279557600080fd5b505af11580156127a9573d6000803e3d6000fd5b5050604051632474521560e21b81526001600160a01b03841692506391d1485491506127e990600080516020615cc0833981519152908a9060040161354a565b602060405180830381865afa158015612806573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061282a9190613561565b80156128ae5750604051632474521560e21b81526001600160a01b038216906391d148549061286d90600080516020615ce0833981519152908a9060040161354a565b602060405180830381865afa15801561288a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128ae9190613561565b80156129325750604051632474521560e21b81526001600160a01b038216906391d14854906128f190600080516020615d00833981519152908a9060040161354a565b602060405180830381865afa15801561290e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129329190613561565b6129675760405162461bcd60e51b815260206004820152600660248201526555533a20313760d01b604482015260640161036f565b604051632474521560e21b81526001600160a01b038216906391d14854906129a390600080516020615cc0833981519152908d9060040161354a565b602060405180830381865afa1580156129c0573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e49190613561565b158015612a6b5750604051632474521560e21b81526001600160a01b038216906391d1485490612a2890600080516020615ce0833981519152908d9060040161354a565b602060405180830381865afa158015612a45573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a699190613561565b155b8015612af15750604051632474521560e21b81526001600160a01b038216906391d1485490612aae90600080516020615d00833981519152908d9060040161354a565b602060405180830381865afa158015612acb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612aef9190613561565b155b612b265760405162461bcd60e51b81526020600482015260066024820152650aaa6744062760d31b604482015260640161036f565b604051632474521560e21b81526001600160a01b038216906391d1485490612b6390600080516020615cc08339815191529060009060040161354a565b602060405180830381865afa158015612b80573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ba49190613561565b158015612c2c5750604051632474521560e21b81526001600160a01b038216906391d1485490612be990600080516020615ce08339815191529060009060040161354a565b602060405180830381865afa158015612c06573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c2a9190613561565b155b8015612cb35750604051632474521560e21b81526001600160a01b038216906391d1485490612c7090600080516020615d008339815191529060009060040161354a565b602060405180830381865afa158015612c8d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb19190613561565b155b612ce85760405162461bcd60e51b815260206004820152600660248201526555533a20313960d01b604482015260640161036f565b6040518060400160405280876001600160a01b03168152602001866001600160a01b0316815250605260008c6001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010160006101000a8154816001600160a01b0302191690836001600160a01b03160217905550905050846001600160a01b0316866001600160a01b03168b6001600160a01b03167f0aa6362853f44a7c8f2fe942445ec73857bfa25b341c019260a98d1db87e86c360405160405180910390a45050336001600160a01b0316876001600160a01b031663d33219b46040518163ffffffff1660e01b8152600401602060405180830381865afa158015612e25573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e49919061352d565b6001600160a01b031614612e5f57612e5f6137cb565b604051632f2ff15d60e01b81526001600160a01b03831690632f2ff15d90612e95906427aba722a960d91b90879060040161354a565b600060405180830381600087803b158015612eaf57600080fd5b505af1158015612ec3573d6000803e3d6000fd5b505060405163d547741f60e01b81526001600160a01b038516925063d547741f9150612efd906427aba722a960d91b90339060040161354a565b600060405180830381600087803b158015612f1757600080fd5b505af1158015612f2b573d6000803e3d6000fd5b5050604051631b2b455f60e11b81526001600160a01b03851692506336568abe9150612f65906427aba722a960d91b90309060040161354a565b600060405180830381600087803b158015612f7f57600080fd5b505af1158015612f93573d6000803e3d6000fd5b5050604051632474521560e21b81526001600160a01b03851692506391d148549150612fcd906427aba722a960d91b90879060040161354a565b602060405180830381865afa158015612fea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061300e9190613561565b801561308e5750604051632474521560e21b81526001600160a01b038316906391d148549061304b906427aba722a960d91b90339060040161354a565b602060405180830381865afa158015613068573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061308c9190613561565b155b801561310e5750604051632474521560e21b81526001600160a01b038316906391d14854906130cb906427aba722a960d91b90309060040161354a565b602060405180830381865afa1580156130e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061310c9190613561565b155b6131435760405162461bcd60e51b8152602060048201526006602482015265055533a2032360d41b604482015260640161036f565b604051632474521560e21b81526001600160a01b038316906391d1485490613179906427aba722a960d91b908b9060040161354a565b602060405180830381865afa158015613196573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131ba9190613561565b15801561323b5750604051632474521560e21b81526001600160a01b038316906391d14854906131f8906427aba722a960d91b90889060040161354a565b602060405180830381865afa158015613215573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906132399190613561565b155b6132705760405162461bcd60e51b815260206004820152600660248201526555533a20323160d01b604482015260640161036f565b505094509492505050565b6122f2806139ce83390190565b6001600160a01b038116811461329d57600080fd5b50565b6000602082840312156132b257600080fd5b81356132bd81613288565b9392505050565b60005b838110156132df5781810151838201526020016132c7565b50506000910152565b60208152600082518060208401526133078160408501602087016132c4565b601f01601f19169190910160400192915050565b6000806000806060858703121561333157600080fd5b843561333c81613288565b9350602085013561334c81613288565b9250604085013567ffffffffffffffff81111561336857600080fd5b8501601f8101871361337957600080fd5b803567ffffffffffffffff81111561339057600080fd5b8760208260051b84010111156133a557600080fd5b949793965060200194505050565b640342e322e360dc1b815260050190565b634e487b7160e01b600052604160045260246000fd5b6040805190810167ffffffffffffffff811182821017156133fd576133fd6133c4565b60405290565b6040516060810167ffffffffffffffff811182821017156133fd576133fd6133c4565b604051610140810167ffffffffffffffff811182821017156133fd576133fd6133c4565b604051601f8201601f1916810167ffffffffffffffff81118282101715613473576134736133c4565b604052919050565b60006020828403121561348d57600080fd5b815167ffffffffffffffff8111156134a457600080fd5b8201601f810184136134b557600080fd5b805167ffffffffffffffff8111156134cf576134cf6133c4565b6134e2601f8201601f191660200161344a565b8181528560208385010111156134f757600080fd5b6135088260208301602086016132c4565b95945050505050565b600082516135238184602087016132c4565b9190910192915050565b60006020828403121561353f57600080fd5b81516132bd81613288565b9182526001600160a01b0316602082015260400190565b60006020828403121561357357600080fd5b815180151581146132bd57600080fd5b805161358e81613288565b919050565b6000604082840312156135a557600080fd5b6135ad6133da565b905081516135ba81613288565b815260208201516135ca81613288565b602082015292915050565b60008183036101a0811280156135ea57600080fd5b506135f3613403565b83516135fe81613288565b8152610140601f198301121561361357600080fd5b61361b613426565b915061362960208501613583565b825261363760408501613583565b602083015261364860608501613583565b604083015261365960808501613583565b606083015261366a60a08501613583565b608083015261367b60c08501613583565b60a083015261368c60e08501613583565b60c083015261369e6101008501613583565b60e08301526136b06101208501613583565b6101008301526136c36101408501613583565b6101208301528160208201526136dd856101608601613593565b6040820152949350505050565b805162ffffff8116811461358e57600080fd5b6000604082840312801561371057600080fd5b506137196133da565b613722836136ea565b8152613730602084016136ea565b60208201529392505050565b634e487b7160e01b600052601160045260246000fd5b818103818111156137655761376561373c565b92915050565b62ffffff81811683821601908111156137655761376561373c565b805161ffff8116811461358e57600080fd5b600080604083850312156137ab57600080fd5b6137b483613786565b91506137c260208401613786565b90509250929050565b634e487b7160e01b600052600160045260246000fd5b61ffff81811683821601908111156137655761376561373c565b60006020828403121561380d57600080fd5b815167ffffffffffffffff81111561382457600080fd5b8201601f8101841361383557600080fd5b805167ffffffffffffffff81111561384f5761384f6133c4565b8060051b61385f6020820161344a565b9182526020818401810192908101908784111561387b57600080fd5b6020850194505b838510156138a9578451925061389783613288565b82825260209485019490910190613882565b979650505050505050565b634e487b7160e01b600052603260045260246000fd5b6000602082840312156138dc57600080fd5b81516001600160c01b03811681146132bd57600080fd5b634e487b7160e01b600052602160045260246000fd5b60006020828403121561391b57600080fd5b8151600381106132bd57600080fd5b60006020828403121561393c57600080fd5b5051919050565b600081518084526020840193506020830160005b8281101561397e5781516001600160a01b0316865260209586019590910190600101613957565b5093949350505050565b8481526080602082015260006139a16080830186613943565b82810360408401526139b38186613943565b91505060018060a01b03831660608301529594505050505056fe608060405234801561001057600080fd5b506040516122f23803806122f283398101604081905261002f916103b8565b610047600080516020612272833981519152806101e9565b61006d6000805160206122928339815191526000805160206122728339815191526101e9565b6100936000805160206122b28339815191526000805160206122728339815191526101e9565b6100b96000805160206122d28339815191526000805160206122728339815191526101e9565b6100d160008051602061227283398151915230610234565b6001600160a01b038116156100f8576100f860008051602061227283398151915282610234565b60005b83518110156101675761013b6000805160206122928339815191528583815181106101285761012861043c565b602002602001015161023460201b60201c565b61015f6000805160206122d28339815191528583815181106101285761012861043c565b6001016100fb565b5060005b82518110156101a0576101986000805160206122b28339815191528483815181106101285761012861043c565b60010161016b565b5060028490556040805160008152602081018690527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a150505050610452565b600082815260208190526040808220600101805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b61023e8282610242565b5050565b6000828152602081815260408083206001600160a01b038516845290915290205460ff1661023e576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561029c3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b038116811461030d57600080fd5b919050565b600082601f83011261032357600080fd5b81516001600160401b0381111561033c5761033c6102e0565b604051600582901b90603f8201601f191681016001600160401b038111828210171561036a5761036a6102e0565b60405291825260208185018101929081018684111561038857600080fd5b6020860192505b838310156103ae576103a0836102f6565b81526020928301920161038f565b5095945050505050565b600080600080608085870312156103ce57600080fd5b845160208601519094506001600160401b038111156103ec57600080fd5b6103f887828801610312565b604087015190945090506001600160401b0381111561041657600080fd5b61042287828801610312565b925050610431606086016102f6565b905092959194509250565b634e487b7160e01b600052603260045260246000fd5b611e11806104616000396000f3fe6080604052600436106101bb5760003560e01c80638065657f116100ec578063bc197c811161008a578063d547741f11610064578063d547741f14610582578063e38335e5146105a2578063f23a6e61146105b5578063f27a0c92146105e157600080fd5b8063bc197c8114610509578063c4d252f514610535578063d45c44351461055557600080fd5b806391d14854116100c657806391d1485414610480578063a217fddf146104a0578063b08e51c0146104b5578063b1c5f427146104e957600080fd5b80638065657f1461040c5780638f2a0bb01461042c5780638f61f4f51461044c57600080fd5b8063248a9ca31161015957806331d507501161013357806331d507501461038c57806336568abe146103ac578063584b153e146103cc57806364d62353146103ec57600080fd5b8063248a9ca31461030b5780632ab0f5291461033b5780632f2ff15d1461036c57600080fd5b80630d3cf6fc116101955780630d3cf6fc14610260578063134008d31461029457806313bc9f20146102a7578063150b7a02146102c757600080fd5b806301d5062a146101c757806301ffc9a7146101e957806307bd02651461021e57600080fd5b366101c257005b600080fd5b3480156101d357600080fd5b506101e76101e2366004611434565b6105f6565b005b3480156101f557600080fd5b506102096102043660046114a8565b6106cc565b60405190151581526020015b60405180910390f35b34801561022a57600080fd5b506102527fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e6381565b604051908152602001610215565b34801561026c57600080fd5b506102527f5f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca581565b6101e76102a23660046114d2565b6106f7565b3480156102b357600080fd5b506102096102c236600461153d565b6107ac565b3480156102d357600080fd5b506102f26102e236600461160b565b630a85bd0160e11b949350505050565b6040516001600160e01b03199091168152602001610215565b34801561031757600080fd5b5061025261032636600461153d565b60009081526020819052604090206001015490565b34801561034757600080fd5b5061020961035636600461153d565b6000908152600160208190526040909120541490565b34801561037857600080fd5b506101e7610387366004611672565b6107d2565b34801561039857600080fd5b506102096103a736600461153d565b6107fc565b3480156103b857600080fd5b506101e76103c7366004611672565b610815565b3480156103d857600080fd5b506102096103e736600461153d565b610898565b3480156103f857600080fd5b506101e761040736600461153d565b6108ae565b34801561041857600080fd5b506102526104273660046114d2565b610952565b34801561043857600080fd5b506101e76104473660046116e2565b610991565b34801561045857600080fd5b506102527fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc181565b34801561048c57600080fd5b5061020961049b366004611672565b610b1c565b3480156104ac57600080fd5b50610252600081565b3480156104c157600080fd5b506102527ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f78381565b3480156104f557600080fd5b5061025261050436600461179d565b610b45565b34801561051557600080fd5b506102f26105243660046118d1565b63bc197c8160e01b95945050505050565b34801561054157600080fd5b506101e761055036600461153d565b610b8a565b34801561056157600080fd5b5061025261057036600461153d565b60009081526001602052604090205490565b34801561058e57600080fd5b506101e761059d366004611672565b610c5f565b6101e76105b036600461179d565b610c84565b3480156105c157600080fd5b506102f26105d0366004611984565b63f23a6e6160e01b95945050505050565b3480156105ed57600080fd5b50600254610252565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc161062081610e08565b6000610630898989898989610952565b905061063c8184610e15565b6000817f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8b8b8b8b8b8a60405161067896959493929190611a05565b60405180910390a383156106c157807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d0387856040516106b891815260200190565b60405180910390a25b505050505050505050565b60006001600160e01b03198216630271189760e51b14806106f157506106f182610f04565b92915050565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610723816000610b1c565b610731576107318133610f39565b6000610741888888888888610952565b905061074d8185610f92565b6107598888888861102e565b6000817fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b588a8a8a8a6040516107919493929190611a42565b60405180910390a36107a281611101565b5050505050505050565b6000818152600160205260408120546001811180156107cb5750428111155b9392505050565b6000828152602081905260409020600101546107ed81610e08565b6107f7838361113a565b505050565b60008181526001602052604081205481905b1192915050565b6001600160a01b038116331461088a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b61089482826111be565b5050565b600081815260016020819052604082205461080e565b3330146109115760405162461bcd60e51b815260206004820152602b60248201527f54696d656c6f636b436f6e74726f6c6c65723a2063616c6c6572206d7573742060448201526a62652074696d656c6f636b60a81b6064820152608401610881565b60025460408051918252602082018390527f11c24f4ead16507c69ac467fbd5e4eed5fb5c699626d2cc6d66421df253886d5910160405180910390a1600255565b600086868686868660405160200161096f96959493929190611a05565b6040516020818303038152906040528051906020012090509695505050505050565b7fb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc16109bb81610e08565b8887146109da5760405162461bcd60e51b815260040161088190611a6a565b8885146109f95760405162461bcd60e51b815260040161088190611a6a565b6000610a0b8b8b8b8b8b8b8b8b610b45565b9050610a178184610e15565b60005b8a811015610acd5780827f4cf4410cc57040e44862ef0f45f3dd5a5e02db8eb8add648d4b0e236f1d07dca8e8e85818110610a5757610a57611aad565b9050602002016020810190610a6c9190611ac3565b8d8d86818110610a7e57610a7e611aad565b905060200201358c8c87818110610a9757610a97611aad565b9050602002810190610aa99190611ade565b8c8b604051610abd96959493929190611a05565b60405180910390a3600101610a1a565b508315610b0f57807f20fda5fd27a1ea7bf5b9567f143ac5470bb059374a27e8f67cb44f946f6d038785604051610b0691815260200190565b60405180910390a25b5050505050505050505050565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b60008888888888888888604051602001610b66989796959493929190611bbd565b60405160208183030381529060405280519060200120905098975050505050505050565b7ffd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783610bb481610e08565b610bbd82610898565b610c235760405162461bcd60e51b815260206004820152603160248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e2063616044820152701b9b9bdd0818994818d85b98d95b1b1959607a1b6064820152608401610881565b6000828152600160205260408082208290555183917fbaa1eb22f2a492ba1a5fea61b8df4d27c6c8b5f3971e63bb58fa14ff72eedb7091a25050565b600082815260208190526040902060010154610c7a81610e08565b6107f783836111be565b7fd8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63610cb0816000610b1c565b610cbe57610cbe8133610f39565b878614610cdd5760405162461bcd60e51b815260040161088190611a6a565b878414610cfc5760405162461bcd60e51b815260040161088190611a6a565b6000610d0e8a8a8a8a8a8a8a8a610b45565b9050610d1a8185610f92565b60005b89811015610df25760008b8b83818110610d3957610d39611aad565b9050602002016020810190610d4e9190611ac3565b905060008a8a84818110610d6457610d64611aad565b9050602002013590503660008a8a86818110610d8257610d82611aad565b9050602002810190610d949190611ade565b91509150610da48484848461102e565b84867fc2617efa69bab66782fa219543714338489c4e9e178271560a91b82c3f612b5886868686604051610ddb9493929190611a42565b60405180910390a350505050806001019050610d1d565b50610dfc81611101565b50505050505050505050565b610e128133610f39565b50565b610e1e826107fc565b15610e835760405162461bcd60e51b815260206004820152602f60248201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e20616c60448201526e1c9958591e481cd8da19591d5b1959608a1b6064820152608401610881565b600254811015610ee45760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a20696e73756666696369656e746044820152652064656c617960d01b6064820152608401610881565b610eee8142611c74565b6000928352600160205260409092209190915550565b60006001600160e01b03198216637965db0b60e01b14806106f157506301ffc9a760e01b6001600160e01b03198316146106f1565b610f438282610b1c565b61089457610f5081611223565b610f5b836020611235565b604051602001610f6c929190611cab565b60408051601f198184030181529082905262461bcd60e51b825261088191600401611d20565b610f9b826107ac565b610fb75760405162461bcd60e51b815260040161088190611d53565b801580610fd35750600081815260016020819052604090912054145b6108945760405162461bcd60e51b815260206004820152602660248201527f54696d656c6f636b436f6e74726f6c6c65723a206d697373696e6720646570656044820152656e64656e637960d01b6064820152608401610881565b6000846001600160a01b031684848460405161104b929190611d9d565b60006040518083038185875af1925050503d8060008114611088576040519150601f19603f3d011682016040523d82523d6000602084013e61108d565b606091505b50509050806110fa5760405162461bcd60e51b815260206004820152603360248201527f54696d656c6f636b436f6e74726f6c6c65723a20756e6465726c79696e6720746044820152721c985b9cd858dd1a5bdb881c995d995c9d1959606a1b6064820152608401610881565b5050505050565b61110a816107ac565b6111265760405162461bcd60e51b815260040161088190611d53565b600090815260016020819052604090912055565b6111448282610b1c565b610894576000828152602081815260408083206001600160a01b03851684529091529020805460ff1916600117905561117a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6111c88282610b1c565b15610894576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60606106f16001600160a01b03831660145b60606000611244836002611dad565b61124f906002611c74565b6001600160401b0381111561126657611266611556565b6040519080825280601f01601f191660200182016040528015611290576020820181803683370190505b509050600360fc1b816000815181106112ab576112ab611aad565b60200101906001600160f81b031916908160001a905350600f60fb1b816001815181106112da576112da611aad565b60200101906001600160f81b031916908160001a90535060006112fe846002611dad565b611309906001611c74565b90505b6001811115611381576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061133d5761133d611aad565b1a60f81b82828151811061135357611353611aad565b60200101906001600160f81b031916908160001a90535060049490941c9361137a81611dc4565b905061130c565b5083156107cb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610881565b80356001600160a01b03811681146113e757600080fd5b919050565b60008083601f8401126113fe57600080fd5b5081356001600160401b0381111561141557600080fd5b60208301915083602082850101111561142d57600080fd5b9250929050565b600080600080600080600060c0888a03121561144f57600080fd5b611458886113d0565b96506020880135955060408801356001600160401b0381111561147a57600080fd5b6114868a828b016113ec565b989b979a50986060810135976080820135975060a09091013595509350505050565b6000602082840312156114ba57600080fd5b81356001600160e01b0319811681146107cb57600080fd5b60008060008060008060a087890312156114eb57600080fd5b6114f4876113d0565b95506020870135945060408701356001600160401b0381111561151657600080fd5b61152289828a016113ec565b979a9699509760608101359660809091013595509350505050565b60006020828403121561154f57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561159457611594611556565b604052919050565b600082601f8301126115ad57600080fd5b81356001600160401b038111156115c6576115c6611556565b6115d9601f8201601f191660200161156c565b8181528460208386010111156115ee57600080fd5b816020850160208301376000918101602001919091529392505050565b6000806000806080858703121561162157600080fd5b61162a856113d0565b9350611638602086016113d0565b92506040850135915060608501356001600160401b0381111561165a57600080fd5b6116668782880161159c565b91505092959194509250565b6000806040838503121561168557600080fd5b82359150611695602084016113d0565b90509250929050565b60008083601f8401126116b057600080fd5b5081356001600160401b038111156116c757600080fd5b6020830191508360208260051b850101111561142d57600080fd5b600080600080600080600080600060c08a8c03121561170057600080fd5b89356001600160401b0381111561171657600080fd5b6117228c828d0161169e565b909a5098505060208a01356001600160401b0381111561174157600080fd5b61174d8c828d0161169e565b90985096505060408a01356001600160401b0381111561176c57600080fd5b6117788c828d0161169e565b9a9d999c50979a969997986060880135976080810135975060a0013595509350505050565b60008060008060008060008060a0898b0312156117b957600080fd5b88356001600160401b038111156117cf57600080fd5b6117db8b828c0161169e565b90995097505060208901356001600160401b038111156117fa57600080fd5b6118068b828c0161169e565b90975095505060408901356001600160401b0381111561182557600080fd5b6118318b828c0161169e565b999c989b509699959896976060870135966080013595509350505050565b600082601f83011261186057600080fd5b81356001600160401b0381111561187957611879611556565b8060051b6118896020820161156c565b918252602081850181019290810190868411156118a557600080fd5b6020860192505b838310156118c75782358252602092830192909101906118ac565b9695505050505050565b600080600080600060a086880312156118e957600080fd5b6118f2866113d0565b9450611900602087016113d0565b935060408601356001600160401b0381111561191b57600080fd5b6119278882890161184f565b93505060608601356001600160401b0381111561194357600080fd5b61194f8882890161184f565b92505060808601356001600160401b0381111561196b57600080fd5b6119778882890161159c565b9150509295509295909350565b600080600080600060a0868803121561199c57600080fd5b6119a5866113d0565b94506119b3602087016113d0565b9350604086013592506060860135915060808601356001600160401b0381111561196b57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60018060a01b038716815285602082015260a060408201526000611a2d60a0830186886119dc565b60608301949094525060800152949350505050565b60018060a01b03851681528360208201526060604082015260006118c76060830184866119dc565b60208082526023908201527f54696d656c6f636b436f6e74726f6c6c65723a206c656e677468206d69736d616040820152620e8c6d60eb1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ad557600080fd5b6107cb826113d0565b6000808335601e19843603018112611af557600080fd5b8301803591506001600160401b03821115611b0f57600080fd5b60200191503681900382131561142d57600080fd5b60008383855260208501945060208460051b8201018360005b86811015611bb157838303601f19018852813536879003601e19018112611b6357600080fd5b86016020810190356001600160401b03811115611b7f57600080fd5b803603821315611b8e57600080fd5b611b998582846119dc565b60209a8b019a90955093909301925050600101611b3d565b50909695505050505050565b60a0808252810188905260008960c08301825b8b811015611bfe576001600160a01b03611be9846113d0565b16825260209283019290910190600101611bd0565b5083810360208501528881526001600160fb1b03891115611c1e57600080fd5b8860051b9150818a60208301370182810360209081016040850152611c469082018789611b24565b60608401959095525050608001529695505050505050565b634e487b7160e01b600052601160045260246000fd5b808201808211156106f1576106f1611c5e565b60005b83811015611ca2578181015183820152602001611c8a565b50506000910152565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351611ce3816017850160208801611c87565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351611d14816028840160208801611c87565b01602801949350505050565b6020815260008251806020840152611d3f816040850160208701611c87565b601f01601f19169190910160400192915050565b6020808252602a908201527f54696d656c6f636b436f6e74726f6c6c65723a206f7065726174696f6e206973604082015269206e6f7420726561647960b01b606082015260800190565b8183823760009101908152919050565b80820281158282048414176106f1576106f1611c5e565b600081611dd357611dd3611c5e565b50600019019056fea2646970667358221220eed8fed6f7ec13269debd219583bfabc17f403c4bbcf016f9e17d15cad42c8ba64736f6c634300081c00335f58e3a2316349923ce3780f8d587db2d72378aed66a8261c916544fa6846ca5b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783b09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1d8aa0f3194971a2a116679f7c2090f6939c8d4e01a2a8d7e41d55e5351469e63fd643c72710c63c0180259aba6b2d05451e3591a24e58b62239378085726f783a2646970667358221220b0e5d14f606a9064311bf6e2ebd55d16db1eab9daf40bbbf958668530848133a64736f6c634300081c00330000000000000000000000000000000000000000000000000000000000000000