6101006040526001600b55600f805460ff1916905534801562000020575f80fd5b5060408051602080820183525f825282518084018452600b81526a212920a4a72a22a729a7a960a91b81830152835180850190945260048452637854414f60e01b9184019190915290916012612710600133806200009757604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b620000a281620001f5565b50620000ae8662000244565b60016004556008620000c18682620002f4565b506009620000d08582620002f4565b5060ff83166080819052620000e790600a620004cf565b60c0819052620000f89082620004e6565b60e05260c0516200010a9083620004e6565b60a0819052335f818152600a60209081526040808320805460ff191660011790556006825280832085905551938452919290917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050505050506040518060400160405280601481526020017f68747470733a2f2f692e696d6775722e636f6d2f000000000000000000000000815250600c9081620001b49190620002f4565b506064620001c56012600a620004cf565b620001d390612710620004e6565b620001e0906002620004e6565b620001ec919062000500565b600e5562000520565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6003620002528282620002f4565b5050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806200027f57607f821691505b6020821081036200029e57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620002ef57805f5260205f20601f840160051c81016020851015620002cb5750805b601f840160051c820191505b81811015620002ec575f8155600101620002d7565b50505b505050565b81516001600160401b0381111562000310576200031062000256565b62000328816200032184546200026a565b84620002a4565b602080601f8311600181146200035e575f8415620003465750858301515b5f19600386901b1c1916600185901b178555620003b8565b5f85815260208120601f198616915b828110156200038e578886015182559484019460019091019084016200036d565b5085821015620003ac57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200041457815f1904821115620003f857620003f8620003c0565b808516156200040657918102915b93841c9390800290620003d9565b509250929050565b5f826200042c57506001620004c9565b816200043a57505f620004c9565b81600181146200045357600281146200045e576200047e565b6001915050620004c9565b60ff841115620004725762000472620003c0565b50506001821b620004c9565b5060208310610133831016604e8410600b8410161715620004a3575081810a620004c9565b620004af8383620003d4565b805f1904821115620004c557620004c5620003c0565b0290505b92915050565b5f620004df60ff8416836200041c565b9392505050565b8082028115828204841417620004c957620004c9620003c0565b5f826200051b57634e487b7160e01b5f52601260045260245ffd5b500490565b60805160a05160c05160e05161398d620005935f395f818161041401528181610ce50152818161154601528181611919015281816127ec01528181612824015281816128e4015261290b01525f61044e01525f818161032d01528181610dde0152610e3801525f6103a0015261398d5ff3fe608060405234801561000f575f80fd5b506004361061023e575f3560e01c806370a0823111610135578063c5b8f772116100b4578063e985e9c511610079578063e985e9c5146105a8578063f242432a146105e3578063f28ca1dd146105f6578063f2fde38b146105fe578063f8b45b0514610611575f80fd5b8063c5b8f7721461052f578063c87b56dd14610542578063d547cfb714610555578063dd62ed3e1461055d578063e0df5b6f14610595575f80fd5b806399a2557a116100fa57806399a2557a146104cb5780639b19251a146104de578063a014e6e214610500578063a22cb46514610509578063a9059cbb1461051c575f80fd5b806370a0823114610470578063715018a6146104985780638462151c146104a05780638da5cb5b146104b357806395d89b41146104c3575f80fd5b806323b872dd116101c15780634eabf2c6116101865780634eabf2c6146103f457806353d6fd59146103fc5780635afcc2f51461040f5780635d0044ca146104365780636d6a6a4d14610449575f80fd5b806323b872dd146103625780632d760d57146103755780632eb2c2d614610388578063313ce5671461039b5780634e1273f4146103d4575f80fd5b8063095ea7b311610207578063095ea7b3146102f55780630a702e8d146103085780630e89341c1461031557806318160ddd1461032857806318d217c31461034f575f80fd5b8062fdd58e1461024257806301ffc9a71461026857806302fe53051461028b57806306fdde03146102a0578063081812fc146102b5575b5f80fd5b610255610250366004612d5d565b61061a565b6040519081526020015b60405180910390f35b61027b610276366004612d9a565b610686565b604051901515815260200161025f565b61029e610299366004612e4f565b610726565b005b6102a8610762565b60405161025f9190612ee0565b6102dd6102c3366004612ef2565b60056020525f90815260409020546001600160a01b031681565b6040516001600160a01b03909116815260200161025f565b61027b610303366004612d5d565b6107ee565b600f5461027b9060ff1681565b6102a8610323366004612ef2565b6108be565b6102557f000000000000000000000000000000000000000000000000000000000000000081565b61029e61035d366004612e4f565b6108c9565b61027b610370366004612f09565b610909565b610255610383366004612f42565b610a45565b61029e610396366004613025565b610a7a565b6103c27f000000000000000000000000000000000000000000000000000000000000000081565b60405160ff909116815260200161025f565b6103e76103e23660046130c7565b610ac7565b60405161025f91906131c5565b61029e610ba5565b61029e61040a3660046131e4565b610bfa565b6102557f000000000000000000000000000000000000000000000000000000000000000081565b61029e610444366004612ef2565b610d7f565b6102557f000000000000000000000000000000000000000000000000000000000000000081565b61025561047e366004613219565b6001600160a01b03165f9081526006602052604090205490565b61029e610e7a565b6103e76104ae366004613219565b610e8d565b5f546001600160a01b03166102dd565b6102a8610ebe565b6103e76104d9366004612f42565b610ecb565b61027b6104ec366004613219565b600a6020525f908152604090205460ff1681565b610255600b5481565b61029e6105173660046131e4565b610ff7565b61027b61052a366004612d5d565b611006565b61027b61053d366004612d5d565b611015565b6102a8610550366004612ef2565b61104a565b6102a8611371565b61025561056b366004613232565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205490565b61029e6105a3366004612e4f565b61137e565b61027b6105b6366004613232565b6001600160a01b039182165f90815260026020908152604080832093909416825291909152205460ff1690565b61029e6105f1366004613263565b611392565b6102a86113e0565b61029e61060c366004613219565b6113ed565b610255600e5481565b5f6001600160a01b038316610642576040516323d3ad8160e21b815260040160405180910390fd5b6001600160a01b0383165f908152600160208181526040808420600887901c85529091529091205460ff84161c161561067d57506001610680565b505f5b92915050565b5f6001600160e01b03198216636cdb3d1360e11b14806106b657506001600160e01b031982166303a24d0760e21b145b806106d157506001600160e01b031982166362dc7bb960e11b145b806106ec57506380ac58cd60e01b6001600160e01b03198316145b806107075750635b5e139f60e01b6001600160e01b03198316145b8061068057506301ffc9a760e01b6001600160e01b0319831614610680565b61072e61142a565b61073781611456565b6040517f21bb7eb2be3a3563f9f1a320ebf802250ef46d44df8d42f1596e09117f626489905f90a150565b6008805461076f906132c2565b80601f016020809104026020016040519081016040528092919081815260200182805461079b906132c2565b80156107e65780601f106107bd576101008083540402835291602001916107e6565b820191905f5260205f20905b8154815290600101906020018083116107c957829003601f168201915b505050505081565b5f336107f960045490565b8310801561080657505f83115b156108a9576108158184611015565b61084257604051634b637e8f60e11b81526001600160a01b03821660048201526024015b60405180910390fd5b5f8381526005602090815260409182902080546001600160a01b0319166001600160a01b038881169182179092559251868152908416917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a36108b4565b6108b4818585611462565b5060019392505050565b60606106808261104a565b6108d161142a565b600c6108dd828261333e565b506040517f21bb7eb2be3a3563f9f1a320ebf802250ef46d44df8d42f1596e09117f626489905f90a150565b5f61091360045490565b821015610a2d576001600160a01b0384165f908152600160208181526040808420600887901c85529091529091205460ff84161c1661097057604051634a1406b160e11b81526001600160a01b0385166004820152602401610839565b336001600160a01b038516148015906109ac57506001600160a01b0384165f90815260026020908152604080832033845290915290205460ff16155b80156109ce57505f828152600560205260409020546001600160a01b03163314155b156109ee57604051634a1406b160e11b8152336004820152602401610839565b5f82815260056020908152604080832080546001600160a01b031916905580519182019052818152610a2891869186918691600191611474565b6108b4565b610a3884338461166d565b6108b484848460016116e8565b5f610a7283610a54818561340d565b6001600160a01b0387165f9081526001602052604090209190611746565b949350505050565b6001600160a01b038516331480610a965750610a9685336105b6565b610ab357604051632ce44b5f60e11b815260040160405180910390fd5b610ac085858585856117e4565b5050505050565b60608151835114610aeb57604051637801f4e960e01b815260040160405180910390fd5b5f83516001600160401b03811115610b0557610b05612db5565b604051908082528060200260200182016040528015610b2e578160200160208202803683370190505b5090505f5b8451811015610b9d57610b78858281518110610b5157610b51613420565b6020026020010151858381518110610b6b57610b6b613420565b602002602001015161061a565b828281518110610b8a57610b8a613420565b6020908102919091010152600101610b33565b509392505050565b610bad61142a565b600f805460ff8082161560ff1990921682179092556040519116151581527fea63aac68e0a18e1731accb41e3c0c386ddcf31edaf96d7aebbaf1ac05cafab59060200160405180910390a1565b610c0261142a565b6001600160a01b0382165f908152600a602052604090205481151560ff909116151503610c675760405162461bcd60e51b81526020600482015260136024820152724e6f206368616e676520746f2073746174757360681b6044820152606401610839565b8015610cc7575f610c7c835f61038360045490565b90508015610c8e57610c8e8382611a5d565b6040516001600160a01b038416907f7f93a45f70dde0bd08c45d334f84774f8aaa04a8b7c8349cf2837646445984db905f90a250610d55565b6001600160a01b0382165f9081526006602052604081205490610d0a7f000000000000000000000000000000000000000000000000000000000000000083613434565b90508015610d1f57610d1c8482611d37565b50505b6040516001600160a01b038516907fc0e106cf568e50698fdbde1eff56f5a5c966cc7958e37e276918e9e4ccdf8cd4905f90a250505b6001600160a01b03919091165f908152600a60205260409020805460ff1916911515919091179055565b610d8761142a565b5f8111610dd65760405162461bcd60e51b815260206004820152601d60248201527f43616e6e6f742064697361626c65206e6f726d616c2074726164696e670000006044820152606401610839565b6064610e02827f0000000000000000000000000000000000000000000000000000000000000000613453565b610e0c9190613434565b600e557f12528a3c61e0f3b2d6fc707a9fc58b1af86e252cad0d7f4c154ebeabb162dace6064610e5c837f0000000000000000000000000000000000000000000000000000000000000000613453565b610e669190613434565b60405190815260200160405180910390a150565b610e8261142a565b610e8b5f611fb2565b565b6060610e97612001565b5f03610eb0575050604080515f81526020810190915290565b610680826001600454610ecb565b6009805461076f906132c2565b6060818310610eed57604051631960ccad60e11b815260040160405180910390fd5b6001831015610efb57600192505b5f610f0560045490565b905080831115610f13578092505b5f83851015610f2e57610f27868686610a45565b9050610f31565b505f5b5f816001600160401b03811115610f4a57610f4a612db5565b604051908082528060200260200182016040528015610f73578160200160208202803683370190505b506001600160a01b0388165f90815260016020526040812091925087905b848114610fe957600882901c5f9081526020849052604090205460ff83161c60011615610fde5781848280600101935081518110610fd157610fd1613420565b6020026020010181815250505b816001019150610f91565b509198975050505050505050565b611002338383612016565b5050565b5f336108b481858560016116e8565b6001600160a01b0382165f908152600160208181526040808420600886901c855290915282205460ff84161c165b9392505050565b606061105560045490565b821061107457604051637801f4e960e01b815260040160405180910390fd5b5f61107e836120f5565b51111561108e57610680826120f5565b5f600d805461109c906132c2565b905011156110d657600d6110af83612187565b6040516020016110c09291906134d9565b6040516020818303038152906040529050919050565b5f826040516020016110ea91815260200190565b60408051601f19818403018152828252805160209182012083820183525f808552835180840185528181528451938401909452825260f81c9350600a841015611199576040518060400160405280600c81526020016b72675a414853382e6a70656760a01b81525092506040518060400160405280600a81526020016923b7b63210213930b4b760b11b81525091506040518060800160405280605881526020016138a960589139905061130c565b60198460ff161015611211576040518060400160405280600c81526020016b64484e75696d422e6a70656760a01b81525092506040518060400160405280600a8152602001692930b93290213930b4b760b11b815250915060405180606001604052806037815260200161392160379139905061130c565b606d8460ff16101561128d576040518060400160405280600c81526020016b7079714578634a2e6a70656760a01b81525092506040518060400160405280600e81526020016d2ab731b7b6b6b7b710213930b4b760911b81525091506040518060600160405280603e815260200161386b603e9139905061130c565b6040518060400160405280600c81526020016b33676e64654e452e6a70656760a01b81525092506040518060400160405280600c81526020016b21b7b6b6b7b710213930b4b760a11b815250915060405180604001604052806015815260200174253ab9ba1030b71031b7b6b6b7b710313930b4b71760591b81525090505b5f61131687612187565b82600c8660405160200161132d94939291906134fd565b604051602081830303815290604052905080836040516020016113519291906135cc565b60405160208183030381529060405295505050505050919050565b919050565b600d805461076f906132c2565b61138661142a565b600d6108dd828261333e565b6001600160a01b0385163314806113ae57506113ae85336105b6565b156113c7576113c285858585856001611474565b610ac0565b604051632ce44b5f60e11b815260040160405180910390fd5b600c805461076f906132c2565b6113f561142a565b6001600160a01b03811661141e57604051631e4fbdf760e01b81525f6004820152602401610839565b61142781611fb2565b50565b5f546001600160a01b03163314610e8b5760405163118cdaa760e01b8152336004820152602401610839565b6003611002828261333e565b61146f8383836001612216565b505050565b6001600160a01b03851661149b57604051633a954ecd60e21b815260040160405180910390fd5b335f6114a6866122e8565b90508460011480156114e257506001600160a01b0388165f90815260016020818152604080842060088b901c85529091529091205460ff88161c165b15611570576001600160a01b038881165f90815260016020818152604080842060088c901c808652908352818520805460ff8e1686901b8019909116909155958d1685529282528084209284529190528120805490921790915561156b90899089907f0000000000000000000000000000000000000000000000000000000000000000906116e8565b611589565b6040516337dbad3d60e01b815260040160405180910390fd5b6001600160a01b038781169089168682825f805160206139018339815191525f80a4886001600160a01b03168a6001600160a01b0316856001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628b8b604051611603929190918252602082015260400190565b60405180910390a4611617848b8b8661232e565b8415611661575f61162760045490565b9050611637858c8c8c8c8c6124b1565b8061164160045490565b1461165f5760405163c07c7e1360e01b815260040160405180910390fd5b505b50505050505050505050565b6001600160a01b038381165f908152600760209081526040808320938616835292905220545f1981146116e257818110156116d457604051637dc7a0d960e11b81526001600160a01b03841660048201526024810182905260448101839052606401610839565b6116e284848484035f612216565b50505050565b6001600160a01b03841661171157604051634b637e8f60e11b81525f6004820152602401610839565b6001600160a01b03831661173a5760405163ec442f0560e01b81525f6004820152602401610839565b6116e284848484612725565b5f600883901c60ff8416610101848201106117b8575f8281526020879052604090205461177490821c6129a3565b930160ff811693925060018201915f9160081c015b8083146117b6575f838152602088905260409020546117a7906129a3565b84019350826001019250611789565b505b5f828152602087905260409020546117d890821c6101008690031b6129a3565b90920195945050505050565b815183511461180657604051637801f4e960e01b815260040160405180910390fd5b6001600160a01b03841661182d57604051633a954ecd60e21b815260040160405180910390fd5b335f5b845181101561190f575f85828151811061184c5761184c613420565b602002602001015190505f85838151811061186957611869613420565b602002602001015190508060011480156118ad57506001600160a01b0389165f908152600160208181526040808420600887901c85529091529091205460ff84161c165b1561157057506001600160a01b038881165f908152600160208181526040808420600887901c808652908352818520805460ff90981685901b80199098169055948c168452828252808420948452939052919020805490921790915501611830565b50611948868686517f00000000000000000000000000000000000000000000000000000000000000006119429190613453565b5f6116e8565b5f805f865160016119599190613676565b90506001600160a01b03891691506001600160a01b0388169250602087015183835f805160206139018339815191525f80a460025b8181146119b7578060200288015184845f805160206139018339815191525f80a460010161198e565b50876001600160a01b0316896001600160a01b0316856001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8a8a604051611a07929190613689565b60405180910390a4611a1b848a8a8a61232e565b5f611a2560045490565b9050611a35858b8b8b8b8b612a52565b80611a3f60045490565b146116615760405163c07c7e1360e01b815260040160405180910390fd5b6001600160a01b038216611a845760405163b817eee760e01b815260040160405180910390fd5b60045433905f836001600160401b03811115611aa257611aa2612db5565b604051908082528060200260200182016040528015611acb578160200160208202803683370190505b5090505f846001600160401b03811115611ae757611ae7612db5565b604051908082528060200260200182016040528015611b10578160200160208202803683370190505b5090505f5b85811015611be1576001838281518110611b3157611b31613420565b6020908102919091018101919091526001600160a01b0388165f908152600190915260408120611b619086612b0d565b90505f198103611b845760405163851f838b60e01b815260040160405180910390fd5b80838381518110611b9757611b97613420565b6020908102919091018101919091526001600160a01b0389165f90815260018083526040808320600886901c8452909352919020805460ff841683901b1916905590945001611b15565b505f80611bef876001613676565b90506001600160a01b038816915060208301515f835f805160206139018339815191525f80a460025b818114611c4157806020028401515f845f805160206139018339815191525f80a4600101611c18565b5086600103611cc9575f6001600160a01b0316886001600160a01b0316876001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62865f81518110611c9b57611c9b613420565b60200260200101516001604051611cbc929190918252602082015260400190565b60405180910390a4611d21565b5f6001600160a01b0316886001600160a01b0316876001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8688604051611d18929190613689565b60405180910390a45b611d2d86895f8661232e565b5050505050505050565b6060806001600160a01b038416611d6057604051622e076360e81b815260040160405180910390fd5b825f03611d805760405163b562e8dd60e01b815260040160405180910390fd5b33836001600160401b03811115611d9957611d99612db5565b604051908082528060200260200182016040528015611dc2578160200160208202803683370190505b509250836001600160401b03811115611ddd57611ddd612db5565b604051908082528060200260200182016040528015611e06578160200160208202803683370190505b5091505f611e1360045490565b905080855f19031015611e615760405162461bcd60e51b8152602060048201526016602482015275135a5b9d1a5b99c81b1a5b5a5d1cc81c995858da195960521b6044820152606401610839565b5f5b85811015611eb357808201858281518110611e8057611e80613420565b6020026020010181815250506001848281518110611ea057611ea0613420565b6020908102919091010152600101611e63565b506001600160a01b0386165f908152600160205260409020611ed6908287612bfa565b8460045f828254611ee79190613676565b909155505f905080611ef98784613676565b90506001600160a01b038816915082825f5f805160206139018339815191525f80a4600183015b818114611f435780835f5f805160206139018339815191525f80a4600101611f20565b50876001600160a01b03165f6001600160a01b0316856001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8989604051611f93929190613689565b60405180910390a4611fa7845f8a8961232e565b505050509250929050565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f6001600454612011919061340d565b905090565b816001600160a01b0316836001600160a01b0316036120895760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610839565b6001600160a01b038381165f81815260026020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b606060038054612104906132c2565b80601f0160208091040260200160405190810160405280929190818152602001828054612130906132c2565b801561217b5780601f106121525761010080835404028352916020019161217b565b820191905f5260205f20905b81548152906001019060200180831161215e57829003601f168201915b50505050509050919050565b60605f61219383612c70565b60010190505f816001600160401b038111156121b1576121b1612db5565b6040519080825280601f01601f1916602001820160405280156121db576020820181803683370190505b5090508181016020015b5f19016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846121e557509392505050565b6001600160a01b03841661223f5760405163e602df0560e01b81525f6004820152602401610839565b6001600160a01b03831661226857604051634a1406b160e11b81525f6004820152602401610839565b6001600160a01b038085165f90815260076020908152604080832093871683529290522082905580156116e257826001600160a01b0316846001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516122da91815260200190565b60405180910390a350505050565b6040805160018082528183019092526060916020808301908036833701905050905081815f8151811061231d5761231d613420565b602002602001018181525050919050565b6001600160a01b0382165f908152600a602052604090205460ff166124ac57600e546001600160a01b0383165f9081526006602052604090205411156123b65760405162461bcd60e51b815260206004820152601f60248201527f5472616e736665722065786365656473206d6178696d756d2077616c6c6574006044820152606401610839565b600f5460ff16156124ac57325f90815260106020526040902054431161242a5760405162461bcd60e51b8152602060048201526024808201527f4f6e6c79206f6e65207472616e736665722070657220626c6f636b20616c6c6f6044820152633bb2b21760e11b6064820152608401610839565b325f9081526010602052604090204390556001600160a01b0382163b1580156124525750323b155b6124ac5760405162461bcd60e51b815260206004820152602560248201527f436f6e74726163742074726164696e672072657374726963746564206174206c6044820152640c2eadcc6d60db1b6064820152608401610839565b6116e2565b6001600160a01b0384163b1561271d576040516301ffc9a760e01b8152636cdb3d1360e11b60048201526001600160a01b038516906301ffc9a790602401602060405180830381865afa15801561250a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061252e91906136b6565b156126385760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061256790899089908890889088906004016136d1565b6020604051808303815f875af19250505080156125a1575060408051601f3d908101601f1916820190925261259e91810190613715565b60015b612601576125ad613730565b806308c379a0036125e657506125c1613749565b806125cc57506125e8565b8060405162461bcd60e51b81526004016108399190612ee0565b505b604051639c05499b60e01b815260040160405180910390fd5b6001600160e01b0319811663f23a6e6160e01b1461263257604051639c05499b60e01b815260040160405180910390fd5b5061271d565b604051630a85bd0160e11b81526001600160a01b0385169063150b7a029061266a9089908990889087906004016137d1565b6020604051808303815f875af19250505080156126a4575060408051601f3d908101601f191682019092526126a191810190613715565b60015b6126ea576126b0613730565b806308c379a0036126cf57506126c4613749565b806125cc57506126d1565b505b6040516368d2bf6b60e11b815260040160405180910390fd5b6001600160e01b03198116630a85bd0160e11b1461271b576040516368d2bf6b60e11b815260040160405180910390fd5b505b505050505050565b6001600160a01b038085165f90815260066020526040808220549286168252902054838210156127815760405163391434e360e21b81526001600160a01b03871660048201526024810183905260448101859052606401610839565b846001600160a01b0316866001600160a01b031614612961576001600160a01b038087165f90815260066020526040808220878603905591871681522081850190558215612961576001600160a01b0386165f908152600a602052604090205460ff1680612867575f7f0000000000000000000000000000000000000000000000000000000000000000612815878661340d565b61281f9190613434565b6128497f000000000000000000000000000000000000000000000000000000000000000086613434565b612853919061340d565b90508015612865576128658882611a5d565b505b6001600160a01b0386165f908152600a602052604090205460ff1661295f57600b5460011480156128955750805b80156128ad57505f546001600160a01b038881169116145b156128de576001600160a01b0386165f908152600a60205260409020805460ff191660011790556002600b5561295f565b5f6129097f000000000000000000000000000000000000000000000000000000000000000084613434565b7f00000000000000000000000000000000000000000000000000000000000000006129348886613676565b61293e9190613434565b612948919061340d565b9050801561295d5761295a8782611d37565b50505b505b505b846001600160a01b0316866001600160a01b03165f805160206139018339815191528660405161299391815260200190565b60405180910390a3505050505050565b7f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f0f7f5555555555555555555555555555555555555555555555555555555555555555600183901c168203600281901c7f3333333333333333333333333333333333333333333333333333333333333333908116911601600481901c01167f01010101010101010101010101010101010101010101010101010101010101010260f81c5f199190911460081b1790565b6001600160a01b0384163b1561271d5760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190612a96908990899088908890889060040161380d565b6020604051808303815f875af1925050508015612ad0575060408051601f3d908101601f19168201909252612acd91810190613715565b60015b612adc576125ad613730565b6001600160e01b0319811663bc197c8160e01b1461271b57604051639c05499b60e01b815260040160405180910390fd5b600881901c5f818152602084905260409020545f19919060ff84191690811b901c81158117612b4d575b5081015f81815260409020548115811715612b37575b8015612bf257612be3817f0706060506020504060203020504030106050205030304010505030400000000601f6f8421084210842108cc6318c6db6d54be831560081b6fffffffffffffffffffffffffffffffff851160071b1784811c6001600160401b031060061b1784811c63ffffffff1060051b1784811c61ffff1060041b1784811c60ff1060031b1793841c1c161a1790565b600883901b178481115f031792505b505092915050565b5f1960ff8316846020528360081c5f5261010183820110612c56575f805160408220805485851b1790559390910160ff811693600181019160081c015b808214612c5257815f528360405f2055600182019150612c37565b505f525b60405f208284610100031c821b8154178155505050505050565b5f8072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612cae5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612cda576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612cf857662386f26fc10000830492506010015b6305f5e1008310612d10576305f5e100830492506008015b6127108310612d2457612710830492506004015b60648310612d36576064830492506002015b600a83106106805760010192915050565b80356001600160a01b038116811461136c575f80fd5b5f8060408385031215612d6e575f80fd5b612d7783612d47565b946020939093013593505050565b6001600160e01b031981168114611427575f80fd5b5f60208284031215612daa575f80fd5b813561104381612d85565b634e487b7160e01b5f52604160045260245ffd5b601f8201601f191681016001600160401b0381118282101715612dee57612dee612db5565b6040525050565b5f6001600160401b03831115612e0d57612e0d612db5565b604051612e24601f8501601f191660200182612dc9565b809150838152848484011115612e38575f80fd5b838360208301375f60208583010152509392505050565b5f60208284031215612e5f575f80fd5b81356001600160401b03811115612e74575f80fd5b8201601f81018413612e84575f80fd5b610a7284823560208401612df5565b5f5b83811015612ead578181015183820152602001612e95565b50505f910152565b5f8151808452612ecc816020860160208601612e93565b601f01601f19169290920160200192915050565b602081525f6110436020830184612eb5565b5f60208284031215612f02575f80fd5b5035919050565b5f805f60608486031215612f1b575f80fd5b612f2484612d47565b9250612f3260208501612d47565b9150604084013590509250925092565b5f805f60608486031215612f54575f80fd5b612f5d84612d47565b95602085013595506040909401359392505050565b5f6001600160401b03821115612f8a57612f8a612db5565b5060051b60200190565b5f82601f830112612fa3575f80fd5b81356020612fb082612f72565b604051612fbd8282612dc9565b80915083815260208101915060208460051b870101935086841115612fe0575f80fd5b602086015b84811015612ffc5780358352918301918301612fe5565b509695505050505050565b5f82601f830112613016575f80fd5b61104383833560208501612df5565b5f805f805f60a08688031215613039575f80fd5b61304286612d47565b945061305060208701612d47565b935060408601356001600160401b038082111561306b575f80fd5b61307789838a01612f94565b9450606088013591508082111561308c575f80fd5b61309889838a01612f94565b935060808801359150808211156130ad575f80fd5b506130ba88828901613007565b9150509295509295909350565b5f80604083850312156130d8575f80fd5b82356001600160401b03808211156130ee575f80fd5b818501915085601f830112613101575f80fd5b8135602061310e82612f72565b60405161311b8282612dc9565b83815260059390931b850182019282810191508984111561313a575f80fd5b948201945b8386101561315f5761315086612d47565b8252948201949082019061313f565b96505086013592505080821115613174575f80fd5b5061318185828601612f94565b9150509250929050565b5f815180845260208085019450602084015f5b838110156131ba5781518752958201959082019060010161319e565b509495945050505050565b602081525f611043602083018461318b565b8015158114611427575f80fd5b5f80604083850312156131f5575f80fd5b6131fe83612d47565b9150602083013561320e816131d7565b809150509250929050565b5f60208284031215613229575f80fd5b61104382612d47565b5f8060408385031215613243575f80fd5b61324c83612d47565b915061325a60208401612d47565b90509250929050565b5f805f805f60a08688031215613277575f80fd5b61328086612d47565b945061328e60208701612d47565b9350604086013592506060860135915060808601356001600160401b038111156132b6575f80fd5b6130ba88828901613007565b600181811c908216806132d657607f821691505b6020821081036132f457634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561146f57805f5260205f20601f840160051c8101602085101561331f5750805b601f840160051c820191505b81811015610ac0575f815560010161332b565b81516001600160401b0381111561335757613357612db5565b61336b8161336584546132c2565b846132fa565b602080601f83116001811461339e575f84156133875750858301515b5f19600386901b1c1916600185901b17855561271d565b5f85815260208120601f198616915b828110156133cc578886015182559484019460019091019084016133ad565b50858210156133e957878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b81810381811115610680576106806133f9565b634e487b7160e01b5f52603260045260245ffd5b5f8261344e57634e487b7160e01b5f52601260045260245ffd5b500490565b8082028115828204841417610680576106806133f9565b5f8154613476816132c2565b6001828116801561348e57600181146134a3576134cf565b60ff19841687528215158302870194506134cf565b855f526020805f205f5b858110156134c65781548a8201529084019082016134ad565b50505082870194505b5050505092915050565b5f6134e4828561346a565b83516134f4818360208801612e93565b01949350505050565b6f7b226e616d65223a202264646464202360801b815284515f90613528816010850160208a01612e93565b701116113232b9b1b934b83a34b7b7111d1160791b6010918401918201528551613559816021840160208a01612e93565b7f222c2265787465726e616c5f75726c223a2268747470733a2f2f627261696e74602192909101918201527432b739b7b91733b7b63211161134b6b0b3b2911d1160591b60418201526135af605682018661346a565b905083516135c1818360208801612e93565b019695505050505050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c000000000081525f835161360381601b850160208801612e93565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a2252601b918401918201526f30b934ba3c9116113b30b63ab2911d1160811b603b820152835161365981604b840160208801612e93565b63227d5d7d60e01b604b9290910191820152604f01949350505050565b80820180821115610680576106806133f9565b604081525f61369b604083018561318b565b82810360208401526136ad818561318b565b95945050505050565b5f602082840312156136c6575f80fd5b8151611043816131d7565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190525f9061370a90830184612eb5565b979650505050505050565b5f60208284031215613725575f80fd5b815161104381612d85565b5f60033d11156137465760045f803e505f5160e01c5b90565b5f60443d10156137565790565b6040516003193d81016004833e81513d6001600160401b03816024840111818411171561378557505050505090565b828501915081518181111561379d5750505050505090565b843d87010160208285010111156137b75750505050505090565b6137c660208286010187612dc9565b509095945050505050565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061380390830184612eb5565b9695505050505050565b6001600160a01b0386811682528516602082015260a0604082018190525f906138389083018661318b565b828103606084015261384a818661318b565b9050828103608084015261385e8185612eb5565b9897505050505050505056fe556e636f6d6d6f6e20427261696e2c206f6e65206f66207375626e65747320756e6c6f636b696e67207574696c69747920666f722074686973204e46542e474f4c4420425241494e21204f6e6c79203430307e204e46542077696c6c20686176652074686973207261726974792e20496620796f75206172652054414f2066616e2c20796f75206e65656420746f206765742069742eddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5261726520427261696e2c2042697474656e736f722077696c6c20756e6c6f636b207574696c69747920666f722074686973204e46542ea2646970667358221220dd09d447f25e1ff2a924383768c0788451a0cd0cad973c912574cfa8185dd37564736f6c63430008180033