0x60e06040523060805234801562000014575f80fd5b5060405162005129380380620051298339810160408190526200003791620001db565b5f620000446001620000cb565b905080156200005c575f805461ff0019166101001790555b4660011462000069575f80fd5b6001600160a01b0380841660a052821660c0528015620000c2575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505062000218565b5f8054610100900460ff16156200014d578160ff166001148015620000ef5750303b155b620001465760405162461bcd60e51b815260206004820152602e60248201525f805160206200510983398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b505f919050565b5f5460ff808416911610620001aa5760405162461bcd60e51b815260206004820152602e60248201525f805160206200510983398151915260448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016200013d565b505f805460ff191660ff92909216919091179055600190565b6001600160a01b0381168114620001d8575f80fd5b50565b5f8060408385031215620001ed575f80fd5b8251620001fa81620001c3565b60208401519092506200020d81620001c3565b809150509250929050565b60805160a05160c051614e79620002905f395f818161051301528181610ac60152610bad01525f81816102e20152818161040101528181610c6501528181610e490152818161104301526114fb01525f81816106220152818161066b0152818161094c0152818161098c0152610a1d0152614e795ff3fe6080604052600436106100fa575f3560e01c806352d1902d11610092578063858dccb311610062578063858dccb3146102d15780638d8965bd1461031c578063a014a2fb1461033b578063bfb8afa71461036a578063ddf11c38146103e0575f80fd5b806352d1902d1461025c5780635caf9fda1461027057806367a74ddc14610283578063792d44f4146102a2575f80fd5b80633659cfe6116100cd5780633659cfe6146101de5780634c2d8eff146101fd5780634f00f6231461021c5780634f1ef28614610249575f80fd5b806301374518146100fe578063108644ba14610164578063203a9ec1146101955780632ba8c23c146101b6575b5f80fd5b348015610109575f80fd5b5061013e61011836600461371e565b60016020525f90815260409020546001600160a01b03811690600160a01b900460ff1682565b604080516001600160a01b03909316835260ff9091166020830152015b60405180910390f35b34801561016f575f80fd5b506002546101809063ffffffff1681565b60405163ffffffff909116815260200161015b565b3480156101a0575f80fd5b506101b46101af36600461374a565b6103ff565b005b6101c96101c436600461378c565b61050f565b6040805192835260208301919091520161015b565b3480156101e9575f80fd5b506101b46101f836600461371e565b610618565b348015610208575f80fd5b506101c96102173660046137d6565b6106fe565b348015610227575f80fd5b5061023b61023636600461381b565b6108fe565b60405190815260200161015b565b6101b4610257366004613a1d565b610942565b348015610267575f80fd5b5061023b610a11565b6101c961027e366004613af4565b610ac2565b34801561028e575f80fd5b506101b461029d3660046137d6565b610c63565b3480156102ad575f80fd5b506102c16102bc366004613b51565b610e00565b60405161015b9493929190613bf9565b3480156102dc575f80fd5b506103047f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161015b565b348015610327575f80fd5b506101b461033636600461374a565b610e25565b348015610346575f80fd5b5061035a610355366004613c2b565b610f54565b604051901515815260200161015b565b348015610375575f80fd5b506103bc6103843660046137d6565b600360209081525f928352604080842090915290825290205460ff81169063ffffffff61010082048116916501000000000090041683565b60408051931515845263ffffffff928316602085015291169082015260600161015b565b3480156103eb575f80fd5b506101b46103fa366004613c56565b611041565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561045b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061047f9190613ca5565b6001600160a01b0316336001600160a01b0316146104af576040516282b42960e81b815260040160405180910390fd5b6002546040805163ffffffff928316815291831660208301527fe297010868ffa9832af35ba77653b3510d73fda57bb3e8d838b0345b58a51ccf910160405180910390a16002805463ffffffff191663ffffffff92909216919091179055565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a014a2fb3086866040518463ffffffff1660e01b815260040161056193929190613d51565b602060405180830381865afa15801561057c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a09190613e0c565b6105bd5760405163061cbdd360e51b815260040160405180910390fd5b82606001355f036105d257505f905080610611565b5f8080806105e988306105e48a613e27565b6111ee565b9350935093509350610608876105fe90613e27565b898686868661137f565b95509550505050505b9250929050565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001630036106695760405162461bcd60e51b815260040161066090613e32565b60405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166106b15f80516020614dfd833981519152546001600160a01b031690565b6001600160a01b0316146106d75760405162461bcd60e51b815260040161066090613e7e565b6106e0816114f9565b604080515f808252602082019092526106fb918391906115a9565b50565b5f806001600160a01b038085165f908152600160208181526040808420815180830183529054808716825260ff600160a01b9182900481168386019081528b891688529585528387208451808601909552549788168452960490951691810191909152905190919061077190600a613fbe565b90505f8260200151600a6107859190613fbe565b90505f80855f01516001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa1580156107c8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ec9190613fe5565b5060025492955093505063ffffffff1690506108088242614031565b1115610812575f80fd5b5f821361081d575f80fd5b5f80865f01516001600160a01b031663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa15801561085e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108829190613fe5565b5060025492955093505063ffffffff16905061089e8242614031565b11156108a8575f80fd5b5f82136108b3575f80fd5b6108bd8683614044565b670de0b6b3a76400006108d08787614044565b6108da9190614044565b6108e49190614087565b9c670de0b6b3a76400009c509a5050505050505050505050565b5f805f61090b87876106fe565b915091505f821361091a575f80fd5b5f8113610925575f80fd5b610935898989898989888861171a565b9998505050505050505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361098a5760405162461bcd60e51b815260040161066090613e32565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166109d25f80516020614dfd833981519152546001600160a01b031690565b6001600160a01b0316146109f85760405162461bcd60e51b815260040161066090613e7e565b610a01826114f9565b610a0d828260016115a9565b5050565b5f306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ab05760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c60448201527f6c6564207468726f7567682064656c656761746563616c6c00000000000000006064820152608401610660565b505f80516020614dfd83398151915290565b5f807f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a014a2fb3087876040518463ffffffff1660e01b8152600401610b14939291906140b3565b602060405180830381865afa158015610b2f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610b539190613e0c565b610b705760405163061cbdd360e51b815260040160405180910390fd5b83606001515f03610b8557505f905080610c5b565b8351602085015160408087015160608801519151634f00f62360e01b81526001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001694634f00f62394610be994309492939192918b90600401614132565b602060405180830381865afa158015610c04573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c28919061417f565b60808501525f808080610c3c89308a6111ee565b9350935093509350610c52888a8686868661137f565b95509550505050505b935093915050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610cbf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce39190613ca5565b6001600160a01b0316336001600160a01b031614610d13576040516282b42960e81b815260040160405180910390fd5b6001600160a01b038281165f9081526001602090815260409182902080546001600160a01b0319169385169384178155825163313ce56760e01b8152925190939263313ce5679260048083019391928290030181865afa158015610d79573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d9d9190614196565b815460ff91909116600160a01b0260ff60a01b19909116178155604080516001600160a01b038581168252841660208201527f56b5f80d8cac1479698aa7d01605fd6111e90b15fc4d2b377417f46034876cbd91015b60405180910390a1505050565b5f80806060610e1387876105e488613e27565b93509350935093505b93509350935093565b5f610e3060016119f6565b90508015610e47575f805461ff0019166101001790555b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ea3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ec79190613ca5565b6001600160a01b0316336001600160a01b031614610ef7576040516282b42960e81b815260040160405180910390fd5b6002805463ffffffff191663ffffffff84161790558015610a0d575f805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050565b6001600160a01b0383165f908152600360209081526040808320839290918391610f8291870190870161371e565b6001600160a01b0316815260208082019290925260409081015f208151606081018352905460ff81161515825263ffffffff610100820481169483018590526501000000000090910416918101919091529150610fe690600161ffff87161b611a7f565b610ff3575f91505061103a565b60408101516110299061100960208601866141b6565b600381111561101a5761101a613cc0565b63ffffffff166001901b611a7f565b611036575f91505061103a565b5190505b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561109d573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110c19190613ca5565b6001600160a01b0316336001600160a01b0316146110f1576040516282b42960e81b815260040160405180910390fd5b5f6110fe600860016141cf565b90505b60208163ffffffff16101561114357611132611123604084016020850161374a565b600163ffffffff84161b611a7f565b1561113b575f80fd5b600101611101565b505f611151600360016141cf565b90505b60208163ffffffff16101561118757611176611123606084016040850161374a565b1561117f575f80fd5b600101611154565b506001600160a01b038084165f90815260036020908152604080832093861683529290522081906111b882826141f3565b9050507f89424b88bcd3b868f19563882d59849ce9a96d3603cb00af6cc71003f419dfcf838383604051610df393929190614273565b5f805f606084602001516001600160a01b031685604001516001600160a01b03160361122d5760405163c3078a1b60e01b815260040160405180910390fd5b60028761ffff16600881111561124557611245613cc0565b600881111561125657611256613cc0565b03611272576112658686611a95565b9350935093509350610e1c565b60048761ffff16600881111561128a5761128a613cc0565b600881111561129b5761129b613cc0565b036112aa576112658686611b50565b60038761ffff1660088111156112c2576112c2613cc0565b60088111156112d3576112d3613cc0565b036112f65760c08501516d1ff3684f28c67538d4d072c227349081905f90611265565b60078761ffff16600881111561130e5761130e613cc0565b600881111561131f5761131f613cc0565b0361132e576112658686611c3b565b60018761ffff16600881111561134657611346613cc0565b600881111561135757611357613cc0565b03611366576112658686611edb565b60405163b35bc85960e01b815260040160405180910390fd5b5f805f8061138c8a6124ed565b9150915061139a8a83612606565b6001600160a01b038816158015906113d9575060068961ffff1660088111156113c5576113c5613cc0565b60088111156113d6576113d6613cc0565b14155b156113e8576113e88a89612692565b6113f58787878b8e6126f0565b5f806114008c6124ed565b90925090506114188c6114138584614031565b612b2f565b6001600160a01b038a1615801590611457575060068b61ffff16600881111561144357611443613cc0565b600881111561145457611454613cc0565b14155b156114745760208c0151611474906001600160a01b03168b612bbb565b61147e8285614031565b955061148a8382614031565b94508b604001516001600160a01b03168c602001516001600160a01b03167f54424bcd37c121359634358c4b6124e821af711811c1ad2fb8f96b94b046338c88886040516114e2929190918252602082015260400190565b60405180910390a350505050965096945050505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611555573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115799190613ca5565b6001600160a01b0316336001600160a01b0316146106fb576040516282b42960e81b815260040160405180910390fd5b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff16156115e1576115dc83612c31565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa92505050801561163b575060408051601f3d908101601f191682019092526116389181019061417f565b60015b61169e5760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610660565b5f80516020614dfd833981519152811461170c5760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610660565b506115dc838383612ccc565b565b5f806001600160a01b0388161561179057876001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa158015611767573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061178b9190614196565b611793565b60125b61179e90600a613fbe565b90505f6001600160a01b0388161561181557876001600160a01b031663313ce5676040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117ec573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118109190614196565b611818565b60125b61182390600a613fbe565b905060018a600381111561183957611839613cc0565b1480611856575060038a600381111561185457611854613cc0565b145b156119725763fffffffe1963ffffffff8716016118fe576001600160a01b038916156118e9576040516370a0823160e01b81526001600160a01b038c811660048301528a16906370a0823190602401602060405180830381865afa1580156118c0573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118e4919061417f565b6118f5565b8a6001600160a01b0316315b925050506119ea565b8461190985806142d9565b61191391906142f0565b945083876305f5e10061192c63ffffffff8a16896142d9565b61193691906142f0565b6119409088614303565b61194a91906142d9565b61195491906142f0565b92508061196183856142d9565b61196b91906142f0565b92506119e7565b63fffffffe1963ffffffff87160161198e575f925050506119ea565b83876305f5e1006119a563ffffffff8a16896142d9565b6119af91906142f0565b6119b99088614031565b6119c391906142d9565b6119cd91906142f0565b9250816119da82856142d9565b6119e491906142f0565b92505b50505b98975050505050505050565b5f8054610100900460ff1615611a3b578160ff166001148015611a185750303b155b611a345760405162461bcd60e51b815260040161066090614316565b505f919050565b5f5460ff808416911610611a615760405162461bcd60e51b815260040161066090614316565b505f805460ff191660ff92909216919091179055600190565b919050565b81811663ffffffff908116908216145b92915050565b73e592427a0aece92de3edee1f18e0157c05861564805f60608185516003811115611ac257611ac2613cc0565b03611ad857611ad18686612cf0565b9050611b47565b600185516003811115611aed57611aed613cc0565b03611afc57611ad18686612def565b600285516003811115611b1157611b11613cc0565b03611b2057611ad18686612eb2565b600385516003811115611b3557611b35613cc0565b03611b4757611b448686612fb0565b90505b92959194509250565b60208101515f9073ba12222222228d8ba445958a75a0704d566bf2c89082906060906001600160a01b0316611b8e575f935084606001519150611ba6565b73ba12222222228d8ba445958a75a0704d566bf2c893505b5f85516003811115611bba57611bba613cc0565b03611bca57611ad15f878761309f565b600185516003811115611bdf57611bdf613cc0565b03611bf057611ad16001878761309f565b600285516003811115611c0557611c05613cc0565b03611c1557611ad15f87876131e4565b600385516003811115611c2a57611c2a613cc0565b03611b4757611b44600187876131e4565b5f805f60605f6001600160a01b031685602001516001600160a01b031603611c6557846060015191505b5f85516003811115611c7957611c79613cc0565b03611d05575f8560c00151806020019051810190611c979190614375565b805160208083015160409384015160608b015160808c01518651600f94850b60248201529290930b604483015260648201526084808201929092528451808203909201825260a401909352820180516001600160e01b0316630f7c084960e21b17905294509150611ecf9050565b600285516003811115611d1a57611d1a613cc0565b03611eb6575f8560c00151806020019051810190611d389190614457565b905073f0d4c12a5768d806021f80a262b4d39d26c58b8d9350611d5e8660200151613328565b8151516001600160a01b03908116911614611d77575f80fd5b5f60015b6009811015611e3e578115611dbb5782515f908260098110611d9f57611d9f6144f6565b60200201516001600160a01b031614611db6575f80fd5b611e36565b82515f908260098110611dd057611dd06144f6565b60200201516001600160a01b031603611e3657611df08860400151613328565b6001600160a01b0316835f0151600183611e0a9190614031565b60098110611e1a57611e1a6144f6565b60200201516001600160a01b031614611e31575f80fd5b600191505b600101611d7b565b50611e476136c3565b630651cb3560e01b835f015184602001518a606001518b60800151858e604051602401611e7996959493929190614535565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529350611ecf92505050565b60405163d69b537960e01b815260040160405180910390fd5b82935092959194509250565b5f805f60605f855f015190505f8660c00151806020019051810190611f00919061460d565b737a250d5630b4cf539739df2c5dacb4c659f2488d955090505f826003811115611f2c57611f2c613cc0565b1480611f4957506002826003811115611f4757611f47613cc0565b145b156121ff5760208701516001600160a01b031661205057805180515f80516020614ddd83398151915291905f90611f8257611f826144f6565b60200260200101516001600160a01b031614611f9c575f80fd5b6040870151815180516001600160a01b0390921691611fbd90600190614031565b81518110611fcd57611fcd6144f6565b60200260200101516001600160a01b031614611fe7575f80fd5b60608701516080880151825160a08a0151604051939750637ff36ab560e01b936120179392918d91602401614716565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915292506124e2565b60408701516001600160a01b03166121305786602001516001600160a01b0316815f01515f81518110612085576120856144f6565b60200260200101516001600160a01b03161461209f575f80fd5b805180515f80516020614ddd83398151915291906120bf90600190614031565b815181106120cf576120cf6144f6565b60200260200101516001600160a01b0316146120e9575f80fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d95506318cbafe560e01b87606001518860800151835f01518b8b60a0015160405160240161201795949392919061474a565b86602001516001600160a01b0316815f01515f81518110612153576121536144f6565b60200260200101516001600160a01b03161461216d575f80fd5b6040870151815180516001600160a01b039092169161218e90600190614031565b8151811061219e5761219e6144f6565b60200260200101516001600160a01b0316146121b8575f80fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d95506338ed173960e01b87606001518860800151835f01518b8b60a0015160405160240161201795949392919061474a565b600182600381111561221357612213613cc0565b14806122305750600382600381111561222e5761222e613cc0565b145b156124e25760208701516001600160a01b03166122fe57805180515f80516020614ddd83398151915291905f90612269576122696144f6565b60200260200101516001600160a01b031614612283575f80fd5b6040870151815180516001600160a01b03909216916122a490600190614031565b815181106122b4576122b46144f6565b60200260200101516001600160a01b0316146122ce575f80fd5b60808701516060880151825160a08a015160405193975063fb3bdb4160e01b936120179392918d91602401614716565b60408701516001600160a01b03166123de5786602001516001600160a01b0316815f01515f81518110612333576123336144f6565b60200260200101516001600160a01b03161461234d575f80fd5b805180515f80516020614ddd833981519152919061236d90600190614031565b8151811061237d5761237d6144f6565b60200260200101516001600160a01b031614612397575f80fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d9550634a25d94a60e01b87606001518860800151835f01518b8b60a0015160405160240161201795949392919061474a565b86602001516001600160a01b0316815f01515f81518110612401576124016144f6565b60200260200101516001600160a01b03161461241b575f80fd5b6040870151815180516001600160a01b039092169161243c90600190614031565b8151811061244c5761244c6144f6565b60200260200101516001600160a01b031614612466575f80fd5b737a250d5630b4cf539739df2c5dacb4c659f2488d9550638803dbee60e01b87606001518860800151835f01518b8b60a001516040516024016124ad95949392919061474a565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915292505b505092959194509250565b60208101515f9081906001600160a01b0316156125755760208301516040516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa15801561254c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612570919061417f565b612577565b475b60408401516001600160a01b0316156125fb5760408085015190516370a0823160e01b81523060048201526001600160a01b03909116906370a0823190602401602060405180830381865afa1580156125d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906125f6919061417f565b6125fd565b475b91509150915091565b61260f82613359565b801561261e5750816060015181105b1561264c57606082015160405163969683b760e01b8152600481019190915260248101829052604401610660565b61265582613392565b80156126645750816080015181105b15610a0d57608082015160405163fbc0971d60e01b8152600481019190915260248101829052604401610660565b5f61269c83613359565b6126aa5782608001516126b0565b82606001515b60208401519091506001600160a01b0381166126d657505f80516020614ddd8339815191525b6126ea6001600160a01b03821684846133b6565b50505050565b5f5f80516020614ddd8339815191526001600160a01b031682604001516001600160a01b0316036127225750476127b3565b60408201516001600160a01b0316158061274157506127418284613498565b156127b3576040516370a0823160e01b81523060048201525f80516020614ddd833981519152906370a0823190602401602060405180830381865afa15801561278c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127b0919061417f565b90505b60208201516001600160a01b03165f80516020614ddd8339815191521480156127e357506001600160a01b038316155b15612868575f6127f283613359565b612800578260800151612806565b82606001515b604051632e1a7d4d60e01b8152600481018290529091505f80516020614ddd83398151915290632e1a7d4d906024015f604051808303815f87803b15801561284c575f80fd5b505af115801561285e573d5f803e3d5ffd5b505050505061290f565b60208201516001600160a01b031615801561288b57506001600160a01b03831615155b1561290f575f61289a83613359565b6128a85782608001516128ae565b82606001515b90505f80516020614ddd8339815191526001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b1580156128f6575f80fd5b505af1158015612908573d5f803e3d5ffd5b5050505050505b5f80876001600160a01b0316878760405161292a9190614785565b5f6040518083038185875af1925050503d805f8114612964576040519150601f19603f3d011682016040523d82523d5f602084013e612969565b606091505b50915091508161298e578060405163979bd78f60e01b815260040161066091906147a0565b5f80516020614ddd8339815191526001600160a01b031684604001516001600160a01b031603612a2a5782471115612a25575f83470390505f80516020614ddd8339815191526001600160a01b031663d0e30db0826040518263ffffffff1660e01b81526004015f604051808303818588803b158015612a0c575f80fd5b505af1158015612a1e573d5f803e3d5ffd5b5050505050505b612b25565b60408401516001600160a01b03161580612a495750612a498486613498565b15612b25576040516370a0823160e01b81523060048201525f905f80516020614ddd833981519152906370a0823190602401602060405180830381865afa158015612a96573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612aba919061417f565b905083811115612b2357604051632e1a7d4d60e01b815284820360048201819052905f80516020614ddd83398151915290632e1a7d4d906024015f604051808303815f87803b158015612b0b575f80fd5b505af1158015612b1d573d5f803e3d5ffd5b50505050505b505b5050505050505050565b612b3882613359565b8015612b475750816080015181105b15612b7557608082015160405163b9d902af60e01b8152600481019190915260248101829052604401610660565b612b7e82613392565b8015612b8d5750816060015181105b15610a0d576060820151604051637cc21abb60e01b8152600481019190915260248101829052604401610660565b6001600160a01b038216612bcd575050565b60405163095ea7b360e01b81526001600160a01b0382811660048301525f602483015283169063095ea7b3906044015f604051808303815f87803b158015612c13575f80fd5b505af1158015612c25573d5f803e3d5ffd5b50505050610a0d6134cd565b6001600160a01b0381163b612c9e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610660565b5f80516020614dfd83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b612cd5836134f2565b5f82511180612ce15750805b156115dc576126ea8383613531565b60605f8260c00151806020019051810190612d0b91906147b2565b90505f604051806101000160405280612d278660200151613556565b6001600160a01b03168152602001612d428660400151613556565b6001600160a01b03168152602001835f015162ffffff168152602001866001600160a01b031681526020018560a00151815260200185606001518152602001856080015181526020015f6001600160a01b0316815250905063414bf38960e01b81604051602401612db391906147e5565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529250505092915050565b60605f8260c00151806020019051810190612e0a91906147b2565b90505f604051806101000160405280612e268660200151613556565b6001600160a01b03168152602001612e418660400151613556565b6001600160a01b03168152602001835f015162ffffff168152602001866001600160a01b031681526020018560a00151815260200185606001518152602001856080015181526020015f6001600160a01b0316815250905063db3e219860e01b81604051602401612db391906147e5565b60605f8260c00151806020019051810190612ecd91906148dd565b80515190915060201115612edf575f80fd5b612eec8360200151613556565b815160200151600160601b90046001600160a01b03908116911614612f0f575f80fd5b612f1c8360400151613556565b6001600160a01b0316612f4c825f01516014845f015151612f3d9190614031565b0160200151600160601b900490565b6001600160a01b031614612f5e575f80fd5b6040805160a08082018352835182526001600160a01b0387166020830152850151818301526060808601519082015260808086015190820152905163c04b8d5960e01b90612db390839060240161495e565b60605f8260c00151806020019051810190612fcb91906148dd565b80515190915060201115612fdd575f80fd5b612fea8360400151613556565b815160200151600160601b90046001600160a01b0390811691161461300d575f80fd5b61301a8360200151613556565b6001600160a01b031661303b825f01516014845f015151612f3d9190614031565b6001600160a01b03161461304d575f80fd5b6040805160a08082018352835182526001600160a01b03871660208301528501518183015260608086015190820152608080860151908201529051631e51809360e31b90612db390839060240161495e565b60605f8260c001518060200190518101906130ba9190614970565b90506352bbbe2960e01b6040518060c00160405280835f015181526020018760018111156130ea576130ea613cc0565b815260200185602001516001600160a01b0316815260200185604001516001600160a01b03168152602001856060015181526020015f6001600160401b038111156131375761313761388e565b6040519080825280601f01601f191660200182016040528015613161576020820181803683370190505b50905260408051608080820183526001600160a01b0389168083525f6020840181905283850191909152606083015287015160a088015192516131a89493906024016149a2565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091529150509392505050565b60605f8260c001518060200190518101906131ff9190614b28565b905082602001516001600160a01b03168160200151825f01515f81518110613229576132296144f6565b60200260200101516020015181518110613245576132456144f6565b60200260200101516001600160a01b03161461325f575f80fd5b60408301516020820151825180516001600160a01b039093169261328590600190614031565b81518110613295576132956144f6565b602002602001015160400151815181106132b1576132b16144f6565b60200260200101516001600160a01b0316146132cb575f80fd5b8051602080830151604080516080810182526001600160a01b0389168082525f9482018590528183015260608101939093528085015160a0880151915163945bcec960e01b956131a8958c95919491939092909190602401614cc5565b5f6001600160a01b0382161561333e5781611a8f565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee92915050565b5f808251600381111561336e5761336e613cc0565b1480611a8f575060025b8251600381111561338b5761338b613cc0565b1492915050565b5f6001825160038111156133a8576133a8613cc0565b1480611a8f57506003613378565b6001600160a01b0383166133c957505050565b60405163095ea7b360e01b81526001600160a01b0383811660048301525f602483015284169063095ea7b3906044015f604051808303815f87803b15801561340f575f80fd5b505af1158015613421573d5f803e3d5ffd5b5050505061342d6134cd565b80156115dc5760405163095ea7b360e01b81526001600160a01b0383811660048301526024820183905284169063095ea7b3906044015f604051808303815f87803b15801561347a575f80fd5b505af115801561348c573d5f803e3d5ffd5b505050506115dc6134cd565b60208201515f906001600160a01b03161580156134bd57506001600160a01b03821615155b801561103a575061103a83613392565b6134d5613580565b6117185760405163012c72af60e71b815260040160405180910390fd5b6134fb81612c31565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a250565b606061103a8383604051806060016040528060278152602001614e1d602791396135b1565b5f6001600160a01b0382161561356c5781611a8f565b5f80516020614ddd83398151915292915050565b5f6135896136e1565b3d801561359c57602081146135a5575f80fd5b60019250505090565b60205f833e5051919050565b60606001600160a01b0384163b6136195760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610660565b5f80856001600160a01b0316856040516136339190614785565b5f60405180830381855af49150503d805f811461366b576040519150601f19603f3d011682016040523d82523d5f602084013e613670565b606091505b509150915061368082828661368a565b9695505050505050565b6060831561369957508161103a565b8251156136a95782518084602001fd5b8160405162461bcd60e51b815260040161066091906147a0565b60405180608001604052806004906020820280368337509192915050565b60405180602001604052806001906020820280368337509192915050565b6001600160a01b03811681146106fb575f80fd5b8035611a7a816136ff565b5f6020828403121561372e575f80fd5b813561103a816136ff565b63ffffffff811681146106fb575f80fd5b5f6020828403121561375a575f80fd5b813561103a81613739565b803561ffff81168114611a7a575f80fd5b5f60e08284031215613786575f80fd5b50919050565b5f806040838503121561379d575f80fd5b6137a683613765565b915060208301356001600160401b038111156137c0575f80fd5b6137cc85828601613776565b9150509250929050565b5f80604083850312156137e7575f80fd5b82356137f2816136ff565b91506020830135613802816136ff565b809150509250929050565b803560048110611a7a575f80fd5b5f805f805f8060c08789031215613830575f80fd5b863561383b816136ff565b95506138496020880161380d565b94506040870135613859816136ff565b93506060870135613869816136ff565b92506080870135915060a087013561388081613739565b809150509295509295509295565b634e487b7160e01b5f52604160045260245ffd5b60405160e081016001600160401b03811182821017156138c4576138c461388e565b60405290565b604051606081016001600160401b03811182821017156138c4576138c461388e565b604051602081016001600160401b03811182821017156138c4576138c461388e565b60405160a081016001600160401b03811182821017156138c4576138c461388e565b604051608081016001600160401b03811182821017156138c4576138c461388e565b60405161012081016001600160401b03811182821017156138c4576138c461388e565b604051601f8201601f191681016001600160401b038111828210171561399d5761399d61388e565b604052919050565b5f6001600160401b038211156139bd576139bd61388e565b50601f01601f191660200190565b5f82601f8301126139da575f80fd5b81356139ed6139e8826139a5565b613975565b818152846020838601011115613a01575f80fd5b816020850160208301375f918101602001919091529392505050565b5f8060408385031215613a2e575f80fd5b8235613a39816136ff565b915060208301356001600160401b03811115613a53575f80fd5b6137cc858286016139cb565b5f60e08284031215613a6f575f80fd5b613a776138a2565b9050613a828261380d565b8152613a9060208301613713565b6020820152613aa160408301613713565b6040820152606082013560608201526080820135608082015260a082013560a082015260c08201356001600160401b03811115613adc575f80fd5b613ae8848285016139cb565b60c08301525092915050565b5f805f60608486031215613b06575f80fd5b613b0f84613765565b925060208401356001600160401b03811115613b29575f80fd5b613b3586828701613a5f565b9250506040840135613b4681613739565b809150509250925092565b5f805f60608486031215613b63575f80fd5b613b6c84613765565b92506020840135613b7c816136ff565b915060408401356001600160401b03811115613b96575f80fd5b613ba286828701613776565b9150509250925092565b5f5b83811015613bc6578181015183820152602001613bae565b50505f910152565b5f8151808452613be5816020860160208601613bac565b601f01601f19169290920160200192915050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061368090830184613bce565b5f805f60608486031215613c3d575f80fd5b8335613c48816136ff565b9250613b7c60208501613765565b5f805f83850360a0811215613c69575f80fd5b8435613c74816136ff565b93506020850135613c84816136ff565b92506060603f1982011215613c97575f80fd5b506040840190509250925092565b5f60208284031215613cb5575f80fd5b815161103a816136ff565b634e487b7160e01b5f52602160045260245ffd5b60048110613ce457613ce4613cc0565b9052565b5f808335601e19843603018112613cfd575f80fd5b83016020810192503590506001600160401b03811115613d1b575f80fd5b803603821315610611575f80fd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f60018060a01b03808616835261ffff8516602084015260606040840152613d8460608401613d7f8661380d565b613cd4565b6020840135613d92816136ff565b811660808401526040840135613da7816136ff565b81811660a08501525050606083013560c0830152608083013560e083015260a0830135610100830152613ddd60c0840184613ce8565b60e0610120850152613df461014085018284613d29565b979650505050505050565b80151581146106fb575f80fd5b5f60208284031215613e1c575f80fd5b815161103a81613dff565b5f611a8f3683613a5f565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201527f46756e6374696f6e206d7573742062652063616c6c6564207468726f7567682060408201526b6163746976652070726f787960a01b606082015260800190565b634e487b7160e01b5f52601160045260245ffd5b600181815b80851115613f1857815f1904821115613efe57613efe613eca565b80851615613f0b57918102915b93841c9390800290613ee3565b509250929050565b5f82613f2e57506001611a8f565b81613f3a57505f611a8f565b8160018114613f505760028114613f5a57613f76565b6001915050611a8f565b60ff841115613f6b57613f6b613eca565b50506001821b611a8f565b5060208310610133831016604e8410600b8410161715613f99575081810a611a8f565b613fa38383613ede565b805f1904821115613fb657613fb6613eca565b029392505050565b5f61103a60ff841683613f20565b805169ffffffffffffffffffff81168114611a7a575f80fd5b5f805f805f60a08688031215613ff9575f80fd5b61400286613fcc565b945060208601519350604086015192506060860151915061402560808701613fcc565b90509295509295909350565b81810381811115611a8f57611a8f613eca565b8082025f8212600160ff1b8414161561405f5761405f613eca565b8181058314821517611a8f57611a8f613eca565b634e487b7160e01b5f52601260045260245ffd5b5f8261409557614095614073565b600160ff1b82145f19841416156140ae576140ae613eca565b500590565b5f60018060a01b03808616835261ffff85166020840152606060408401526140df606084018551613cd4565b8060208501511660808401528060408501511660a084015250606083015160c0830152608083015160e083015260a083015161010083015260c083015160e0610120840152613680610140840182613bce565b6001600160a01b03878116825260c08201906141516020840189613cd4565b808716604084015280861660608401525083608083015263ffffffff831660a0830152979650505050505050565b5f6020828403121561418f575f80fd5b5051919050565b5f602082840312156141a6575f80fd5b815160ff8116811461103a575f80fd5b5f602082840312156141c6575f80fd5b61103a8261380d565b63ffffffff8181168382160190808211156141ec576141ec613eca565b5092915050565b81356141fe81613dff565b815460ff19811691151560ff169182178355602084013561421e81613739565b64ffffffff008160081b169050808364ffffffffff19841617178455604085013561424881613739565b68ffffffff00000000008160281b168468ffffffffffffffffff198516178317178555505050505050565b6001600160a01b0384811682528316602082015260a08101823561429681613dff565b1515604083015260208301356142ab81613739565b63ffffffff90811660608401526040840135906142c782613739565b80821660808501525050949350505050565b8082028115828204841417611a8f57611a8f613eca565b5f826142fe576142fe614073565b500490565b80820180821115611a8f57611a8f613eca565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b8051600f81900b8114611a7a575f80fd5b5f60608284031215614385575f80fd5b61438d6138ca565b8251614398816136ff565b81526143a660208401614364565b60208201526143b760408401614364565b60408201529392505050565b5f601f83601f8401126143d4575f80fd5b6143dc613930565b806101808501868111156143ee575f80fd5b855b8181101561444b578785820112614405575f80fd5b61440d6138ca565b80606083018a81111561441e575f80fd5b835b81811015614438578051845260209384019301614420565b50508552506020909301926060016143f0565b50909695505050505050565b5f6102a08284031215614468575f80fd5b604051604081018181106001600160401b038211171561448a5761448a61388e565b604052601f8301841361449b575f80fd5b6144a3613952565b806101208501868111156144b5575f80fd5b855b818110156144d85780516144ca816136ff565b8452602093840193016144b7565b508184526144e687826143c3565b6020850152509195945050505050565b634e487b7160e01b5f52603260045260245ffd5b805f5b60048110156126ea5781516001600160a01b031684526020938401939091019060010161450d565b610380810181885f5b60098110156145665781516001600160a01b031683526020928301929091019060010161453e565b5050506101208201875f5b60048110156145b7578151835f5b600381101561459e57825182526020928301929091019060010161457f565b5050506060929092019160209190910190600101614571565b505050856102a0830152846102c08301526145d66102e083018561450a565b6001600160a01b038316610360830152613df4565b5f6001600160401b038211156146035761460361388e565b5060051b60200190565b5f602080838503121561461e575f80fd5b82516001600160401b0380821115614634575f80fd5b8185019150828287031215614647575f80fd5b61464f6138ec565b82518281111561465d575f80fd5b80840193505086601f840112614671575f80fd5b825191506146816139e8836145eb565b82815260059290921b8301840191848101908884111561469f575f80fd5b938501935b838510156146c65784516146b7816136ff565b825293850193908501906146a4565b8252509695505050505050565b5f815180845260208085019450602084015f5b8381101561470b5781516001600160a01b0316875295820195908201906001016146e6565b509495945050505050565b848152608060208201525f61472e60808301866146d3565b6001600160a01b03949094166040830152506060015292915050565b85815284602082015260a060408201525f61476860a08301866146d3565b6001600160a01b0394909416606083015250608001529392505050565b5f8251614796818460208701613bac565b9190910192915050565b602081525f61103a6020830184613bce565b5f602082840312156147c2575f80fd5b6147ca6138ec565b825162ffffff811681146147dc575f80fd5b81529392505050565b6101008101611a8f828480516001600160a01b03908116835260208083015182169084015260408083015162ffffff16908401526060808301518216908401526080808301519084015260a0828101519084015260c0808301519084015260e09182015116910152565b5f82601f83011261485e575f80fd5b815161486c6139e8826139a5565b818152846020838601011115614880575f80fd5b614891826020830160208701613bac565b949350505050565b5f602082840312156148a9575f80fd5b6148b16138ec565b905081516001600160401b038111156148c8575f80fd5b6148d48482850161484f565b82525092915050565b5f602082840312156148ed575f80fd5b81516001600160401b03811115614902575f80fd5b61489184828501614899565b5f815160a0845261492260a0850182613bce565b6020848101516001600160a01b031690860152604080850151908601526060808501519086015260809384015193909401929092525090919050565b602081525f61103a602083018461490e565b5f60208284031215614980575f80fd5b6149886138ec565b9151825250919050565b60028110613ce457613ce4613cc0565b60e08152845160e08201525f60208601516149c1610100840182614992565b5060408601516001600160a01b03908116610120840152606087015116610140830152608086015161016083015260a086015160c0610180840152614a0a6101a0840182613bce565b915050614a4a602083018680516001600160a01b039081168352602080830151151590840152604080830151909116908301526060908101511515910152565b60a082019390935260c0015292915050565b5f82601f830112614a6b575f80fd5b81516020614a7b6139e8836145eb565b8083825260208201915060208460051b870101935086841115614a9c575f80fd5b602086015b84811015614ac1578051614ab4816136ff565b8352918301918301614aa1565b509695505050505050565b5f82601f830112614adb575f80fd5b81516020614aeb6139e8836145eb565b8083825260208201915060208460051b870101935086841115614b0c575f80fd5b602086015b84811015614ac15780518352918301918301614b11565b5f6020808385031215614b39575f80fd5b82516001600160401b0380821115614b4f575f80fd5b9084019060608287031215614b62575f80fd5b614b6a6138ca565b825182811115614b78575f80fd5b8301601f81018813614b88575f80fd5b8051614b966139e8826145eb565b81815260059190911b8201860190868101908a831115614bb4575f80fd5b8784015b83811015614c4157805187811115614bce575f80fd5b850160a0818e03601f19011215614be3575f80fd5b614beb61390e565b8a820151815260408201518b820152606082015160408201526080820151606082015260a082015189811115614c1f575f80fd5b614c2d8f8d8386010161484f565b608083015250845250918801918801614bb8565b5084525050508284015182811115614c57575f80fd5b614c6388828601614a5c565b85830152506040830151935081841115614c7b575f80fd5b614c8787858501614acc565b60408201529695505050505050565b5f815180845260208085019450602084015f5b8381101561470b57815187529582019590820190600101614ca9565b5f610120808301614cd6848b614992565b60208481019290925288519081905261014080850192600583901b8601909101918a82015f5b82811015614d5f5787850361013f190186528151805186528481015185870152604080820151908701526060808201519087015260809081015160a091870182905290614d4b81880183613bce565b978601979650505090830190600101614cfc565b505050508381036040850152614d7581896146d3565b915050614db5606084018780516001600160a01b039081168352602080830151151590840152604080830151909116908301526060908101511515910152565b82810360e0840152614dc78186614c96565b9150508261010083015297965050505050505056fe000000000000000000000000c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212201b06a838533dd7e763313eb7c87eb6eef60b12f2ac0033646f92f9679241906c64736f6c63430008180033496e697469616c697a61626c653a20636f6e747261637420697320616c7265610000000000000000000000006e7058c91f85e0f6db4fc9da2ca41241f5e4263f000000000000000000000000594734c7e06c3d483466adbce401c6bd269746c8