610100604052600f805460ff191660011790553480156200001e575f80fd5b5060405180604001604052806005815260200164145d585b9d60da1b81525060405180604001604052806005815260200164145550539560da1b81525081600390816200006c919062000a24565b5060046200007b828262000a24565b5050505f6200008f6200078460201b60201c565b600580546001600160a01b0319166001600160a01b038316908117909155604051919250905f907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000f3336a52b7d2dcc80cd2e400000062000788565b5f46600103620001195750737a250d5630b4cf539739df2c5dacb4c659f2488d620001b2565b466005036200013e5750737a250d5630b4cf539739df2c5dacb4c659f2488d620001b2565b4662aa36a70362000165575073c532a74256d3db42d0bf7a0400fefdbad7694008620001b2565b60405162461bcd60e51b815260206004820152601460248201527f436861696e206e6f7420636f6e6669677572656400000000000000000000000060448201526064015b60405180910390fd5b604051620001c09062000976565b604051809103905ff080158015620001da573d5f803e3d5ffd5b506001600160a01b03908116608052811660c0526064620001fa60025490565b6200020790600262000b00565b62000213919062000b20565b601180546001600160801b0319166001600160801b039290921691909117905560646200023f60025490565b6200024c90600262000b00565b62000258919062000b20565b601180546001600160801b03928316600160801b029216919091179055620186a06200028360025490565b6200029090601962000b00565b6200029c919062000b20565b601055600b8054336001600160a01b0319909116179055600c80546001600160901b0319166d01f40000000000000000000009c4179081905565ffffffffffff6c01000000000000000000000000820481169162000309916601000000000000909104166109c462000b40565b62000315919062000b40565b600c805465ffffffffffff60901b1916600160901b65ffffffffffff938416021790819055600d80546001600160901b0319166d01f4000000000000000000000dac17908190556c0100000000000000000000000080820484169392048216916200038e916601000000000000900416610dac62000b40565b6200039a919062000b40565b620003a6919062000b40565b600d805465ffffffffffff92909216600160901b0265ffffffffffff60901b19909216919091179055600e805460ff60c01b1916600160c01b17905560c051604080516315ab88c960e31b815290516001600160a01b039092169163ad5c4648916004808201926020929091908290030181865afa1580156200042b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000451919062000b69565b6001600160a01b031660e0816001600160a01b03168152505060c0516001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620004a9573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620004cf919062000b69565b60e0516040516364e329cb60e11b81523060048201526001600160a01b03918216602482015291169063c9c65396906044016020604051808303815f875af11580156200051e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000544919062000b69565b6001600160a01b0390811660a08190525f9081526009602090815260408083208054600160ff19918216811790925560078452828520805482168317905533808652838620805483168417905530808752848720805484168517905560c05188168088528588208054851686179055918752600690955283862080548316841790558486528386208054831684179055855293829020805490941617909255608051915163031e79db60e41b815260048101919091529116906331e79db0906024015f604051808303815f87803b1580156200061e575f80fd5b505af115801562000631573d5f803e3d5ffd5b505060805160a05160405163031e79db60e41b81526001600160a01b039182166004820152911692506331e79db091506024015f604051808303815f87803b1580156200067c575f80fd5b505af11580156200068f573d5f803e3d5ffd5b505060805160405163031e79db60e41b81523360048201526001600160a01b0390911692506331e79db091506024015f604051808303815f87803b158015620006d6575f80fd5b505af1158015620006e9573d5f803e3d5ffd5b505060805160405163031e79db60e41b815261dead60048201526001600160a01b0390911692506331e79db091506024015f604051808303815f87803b15801562000732575f80fd5b505af115801562000745573d5f803e3d5ffd5b505050506200075f3060c0515f196200084f60201b60201c565b6200077d3360c051620007776200084960201b60201c565b6200084f565b5062000bae565b3390565b6001600160a01b038216620007e05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401620001a9565b8060025f828254620007f3919062000b98565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b60025490565b6001600160a01b038316620008b35760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401620001a9565b6001600160a01b038216620009165760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401620001a9565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6111508062004e8d83390190565b634e487b7160e01b5f52604160045260245ffd5b600181811c90821680620009ad57607f821691505b602082108103620009cc57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111562000a1f575f81815260208120601f850160051c81016020861015620009fa5750805b601f850160051c820191505b8181101562000a1b5782815560010162000a06565b5050505b505050565b81516001600160401b0381111562000a405762000a4062000984565b62000a588162000a51845462000998565b84620009d2565b602080601f83116001811462000a8e575f841562000a765750858301515b5f19600386901b1c1916600185901b17855562000a1b565b5f85815260208120601f198616915b8281101562000abe5788860151825594840194600190910190840162000a9d565b508582101562000adc57878501515f19600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141762000b1a5762000b1a62000aec565b92915050565b5f8262000b3b57634e487b7160e01b5f52601260045260245ffd5b500490565b65ffffffffffff81811683821601908082111562000b625762000b6262000aec565b5092915050565b5f6020828403121562000b7a575f80fd5b81516001600160a01b038116811462000b91575f80fd5b9392505050565b8082018082111562000b1a5762000b1a62000aec565b60805160a05160c05160e0516141fc62000c915f395f81816109a5015261374f01525f818161038a01528181610d6801528181610e53015281816117780152818161186301528181612c8101528181612d6a01526137a601525f81816105df01528181612309015281816134e3015261350a01525f81816104e2015281816111690152818161120f015281816114e7015281816115b30152818161197e01528181611c1d01528181611ca601528181611f3f01528181611f94015281816120790152818161226401528181612ae601528181612b7801526135c301526141fc5ff3fe608060405260043610610344575f3560e01c806370a08231116101bd578063aa5f7e26116100f2578063cc1776d311610092578063e59621951161006d578063e596219514610ac3578063f270fde414610af1578063f2fde38b14610b3b578063fd607aad14610b5a575f80fd5b8063cc1776d314610a48578063ccad03e114610a85578063dd62ed3e14610aa4575f80fd5b8063b0249cc6116100cd578063b0249cc6146109c7578063bedafd01146109f5578063c0f306ef14610a14578063c78d0fa014610a33575f80fd5b8063aa5f7e261461092c578063ad56c13c1461094b578063ad5c464814610994575f80fd5b806395d89b411161015d578063a457c2d711610138578063a457c2d7146108b0578063a5ece941146108cf578063a8b9d240146108ee578063a9059cbb1461090d575f80fd5b806395d89b411461085b5780639986fc301461086f5780639e93ad8e14610883575f80fd5b8063860a32ec11610198578063860a32ec146107e35780638a8c523c146107fc5780638d3e6e40146108105780638da5cb5b1461083e575f80fd5b806370a082311461079c57806371778e7d146107bb578063751039fc146107cf575f80fd5b8063313ce567116102935780634f7041a5116102335780635a90a49e1161020e5780635a90a49e146106bc57806366ebd39a146106ea5780636843cd84146107095780636d7adcad14610728575f80fd5b80634f7041a51461061557806353371be0146106845780635431c94e1461069d575f80fd5b8063395093511161026e57806339509351146105905780634008c2f0146105af578063452ed4f1146105ce5780634e71d92d14610601575f80fd5b8063313ce5671461053757806331e79db01461055257806336e18e1914610571575f80fd5b806321045918116102fe57806323b872dd116102d957806323b872dd146104b25780632c1f5216146104d15780632f0f5e4f1461050457806330bb4cff14610523575f80fd5b806321045918146104555780632307b441146104745780632369bf8314610493575f80fd5b806306fdde031461034f5780630758d92414610379578063095ea7b3146103c45780630e701845146103f357806314bb4edd1461041457806318160ddd14610441575f80fd5b3661034b57005b5f80fd5b34801561035a575f80fd5b50610363610b79565b60405161037091906139a4565b60405180910390f35b348015610384575f80fd5b506103ac7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610370565b3480156103cf575f80fd5b506103e36103de3660046139ea565b610c09565b6040519015158152602001610370565b3480156103fe575f80fd5b5061041261040d366004613a97565b610c22565b005b34801561041f575f80fd5b5061043361042e366004613b42565b610d2a565b604051908152602001610370565b34801561044c575f80fd5b50600254610433565b348015610460575f80fd5b5061041261046f366004613b64565b610f54565b34801561047f575f80fd5b5061041261048e366004613bc2565b61109f565b34801561049e575f80fd5b506104126104ad366004613b42565b6112a6565b3480156104bd575f80fd5b506103e36104cc366004613c28565b611337565b3480156104dc575f80fd5b506103ac7f000000000000000000000000000000000000000000000000000000000000000081565b34801561050f575f80fd5b5061041261051e366004613c7b565b61135a565b34801561052e575f80fd5b506104336114e4565b348015610542575f80fd5b5060405160128152602001610370565b34801561055d575f80fd5b5061041261056c366004613b42565b61156a565b34801561057c575f80fd5b5061041261058b366004613cbb565b61160e565b34801561059b575f80fd5b506103e36105aa3660046139ea565b611726565b3480156105ba575f80fd5b506104336105c9366004613b64565b611747565b3480156105d9575f80fd5b506103ac7f000000000000000000000000000000000000000000000000000000000000000081565b34801561060c575f80fd5b50610412611963565b348015610620575f80fd5b50600c546106529065ffffffffffff80821691600160301b8104821691600160601b8204811691600160901b90041684565b6040805165ffffffffffff95861681529385166020850152918416918301919091529091166060820152608001610370565b34801561068f575f80fd5b506008546103e39060ff1681565b3480156106a8575f80fd5b506104126106b7366004613ce1565b6119f3565b3480156106c7575f80fd5b506103e36106d6366004613b42565b60066020525f908152604090205460ff1681565b3480156106f5575f80fd5b50610412610704366004613cbb565b611ae8565b348015610714575f80fd5b50610433610723366004613b42565b611bfc565b348015610733575f80fd5b50600e54610767906001600160401b0380821691600160401b8104821691600160801b82041690600160c01b900460ff1684565b60405161037094939291906001600160401b039485168152928416602084015292166040820152901515606082015260800190565b3480156107a7575f80fd5b506104336107b6366004613b42565b611c89565b3480156107c6575f80fd5b50610433611ca3565b3480156107da575f80fd5b50610412611d00565b3480156107ee575f80fd5b50600f546103e39060ff1681565b348015610807575f80fd5b50610412611d9f565b34801561081b575f80fd5b506103e361082a366004613b42565b60076020525f908152604090205460ff1681565b348015610849575f80fd5b506005546001600160a01b03166103ac565b348015610866575f80fd5b50610363611e22565b34801561087a575f80fd5b50610412611e31565b34801561088e575f80fd5b5061089861271081565b6040516001600160401b039091168152602001610370565b3480156108bb575f80fd5b506103e36108ca3660046139ea565b611ea4565b3480156108da575f80fd5b50600b546103ac906001600160a01b031681565b3480156108f9575f80fd5b50610433610908366004613b42565b611f1e565b348015610918575f80fd5b506103e36109273660046139ea565b611f70565b348015610937575f80fd5b50610412610946366004613b64565b611f7d565b348015610956575f80fd5b5061096a610965366004613b42565b612052565b604080516001600160a01b0390951685526020850193909352918301526060820152608001610370565b34801561099f575f80fd5b506103ac7f000000000000000000000000000000000000000000000000000000000000000081565b3480156109d2575f80fd5b506103e36109e1366004613b42565b60096020525f908152604090205460ff1681565b348015610a00575f80fd5b50610412610a0f366004613d18565b6120f1565b348015610a1f575f80fd5b50610412610a2e366004613b42565b61221b565b348015610a3e575f80fd5b5061043360105481565b348015610a53575f80fd5b50600d546106529065ffffffffffff80821691600160301b8104821691600160601b8204811691600160901b90041684565b348015610a90575f80fd5b50610412610a9f366004613d18565b612293565b348015610aaf575f80fd5b50610433610abe366004613ce1565b6123d8565b348015610ace575f80fd5b506103e3610add366004613b42565b600a6020525f908152604090205460ff1681565b348015610afc575f80fd5b50601154610b1b906001600160801b0380821691600160801b90041682565b604080516001600160801b03938416815292909116602083015201610370565b348015610b46575f80fd5b50610412610b55366004613b42565b612402565b348015610b65575f80fd5b50610412610b74366004613c7b565b6124ec565b606060038054610b8890613d44565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb490613d44565b8015610bff5780601f10610bd657610100808354040283529160200191610bff565b820191905f5260205f20905b815481529060010190602001808311610be257829003601f168201915b5050505050905090565b5f33610c16818585612676565b60019150505b92915050565b6005546001600160a01b03163314610c555760405162461bcd60e51b8152600401610c4c90613d7c565b60405180910390fd5b5f5b8251811015610d25575f828015610c8557506001600160a01b0381165f9081526009602052604090205460ff165b15610ccb5760405162461bcd60e51b815260206004820152601660248201527543616e6e6f7420626c6f636b20414d4d20506169727360501b6044820152606401610c4c565b82600a5f868581518110610ce157610ce1613db1565b6020908102919091018101516001600160a01b031682528101919091526040015f20805460ff19169115159190911790555080610d1d81613dd9565b915050610c57565b505050565b5f80610d3583611f1e565b9050805f03610d4657505f92915050565b6040805160028082526060820183525f926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610dc2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610de69190613df1565b815f81518110610df857610df8613db1565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110610e2c57610e2c613db1565b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b81525f917f0000000000000000000000000000000000000000000000000000000000000000169063d06ca61f90610e8a9086908690600401613e4e565b5f60405180830381865afa158015610ea4573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052610ecb9190810190613e66565b600c5490915061271090610eef90600160901b900465ffffffffffff166032613ee6565b65ffffffffffff1682600181518110610f0a57610f0a613db1565b6020026020010151610f1c9190613f0c565b610f269190613f37565b81600181518110610f3957610f39613db1565b6020026020010151610f4b9190613f4a565b95945050505050565b6005546001600160a01b03163314610f7e5760405162461bcd60e51b8152600401610c4c90613d7c565b620186a0610f8b60025490565b610f96906001613f0c565b610fa09190613f37565b81101561100d5760405162461bcd60e51b815260206004820152603560248201527f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60448201527410181718181892903a37ba30b61039bab838363c9760591b6064820152608401610c4c565b6103e861101960025490565b611024906005613f0c565b61102e9190613f37565b81111561109a5760405162461bcd60e51b815260206004820152603460248201527f5377617020616d6f756e742063616e6e6f742062652068696768657220746861604482015273371018171a92903a37ba30b61039bab838363c9760611b6064820152608401610c4c565b601055565b6005546001600160a01b031633146110c95760405162461bcd60e51b8152600401610c4c90613d7c565b8281146111105760405162461bcd60e51b81526020600482015260156024820152740c2e4e4c2f240d8cadccee8d040dad2e6dac2e8c6d605b1b6044820152606401610c4c565b5f805b8481101561120c5785858281811061112d5761112d613db1565b90506020020160208101906111429190613b42565b9150611167338386868581811061115b5761115b613db1565b90506020020135612799565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e30443bc836111a085611c89565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b1580156111e3575f80fd5b505af11580156111f5573d5f803e3d5ffd5b50505050808061120490613dd9565b915050611113565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e30443bc3361124633611c89565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b158015611289575f80fd5b505af115801561129b573d5f803e3d5ffd5b505050505050505050565b6005546001600160a01b031633146112d05760405162461bcd60e51b8152600401610c4c90613d7c565b6001600160a01b0381166113155760405162461bcd60e51b815260206004820152600c60248201526b7a65726f206164647265737360a01b6044820152606401610c4c565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b5f3361134485828561293c565b61134f8585856129b4565b506001949350505050565b6005546001600160a01b031633146113845760405162461bcd60e51b8152600401610c4c90613d7c565b604080516080810182525f606082015265ffffffffffff85811682528481166020830152831691810191909152816113bc8486613ee6565b6113c69190613ee6565b65ffffffffffff90811660608301819052600c54600160901b900490911611156114215760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b6044820152606401610c4c565b606081015160405165ffffffffffff90911681527f5380a61520019ce8270d583f62f1b2b9f4f4372e1acaaf708f4865cecece05089060200160405180910390a18051600c80546020840151604085015160609095015165ffffffffffff908116600160901b0265ffffffffffff60901b19968216600160601b02969096166bffffffffffffffffffffffff60601b19928216600160301b026bffffffffffffffffffffffff199094169190951617919091171691909117919091179055505050565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166385a6b3ae6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611541573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906115659190613f5d565b905090565b6005546001600160a01b031633146115945760405162461bcd60e51b8152600401610c4c90613d7c565b60405163031e79db60e41b81526001600160a01b0382811660048301527f000000000000000000000000000000000000000000000000000000000000000016906331e79db0906024015b5f604051808303815f87803b1580156115f5575f80fd5b505af1158015611607573d5f803e3d5ffd5b5050505050565b6005546001600160a01b031633146116385760405162461bcd60e51b8152600401610c4c90613d7c565b6116446012600a614054565b6103e861165060025490565b61165b906001613f0c565b6116659190613f37565b61166f9190613f37565b816001600160801b031610156116b15760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606401610c4c565b6116bd6012600a614054565b6116d0906001600160801b038316613f0c565b601180546001600160801b0319166001600160801b039290921691821790556040519081527f6710da7d4acedae09cb83751ae24c150719ef67dcbc1e02049f171d13c6b44e6906020015b60405180910390a150565b5f33610c1681858561173883836123d8565b6117429190614062565b612676565b5f815f0361175657505f919050565b6040805160028082526060820183525f926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156117d2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906117f69190613df1565b815f8151811061180857611808613db1565b60200260200101906001600160a01b031690816001600160a01b031681525050308160018151811061183c5761183c613db1565b6001600160a01b03928316602091820292909201015260405163d06ca61f60e01b81525f917f0000000000000000000000000000000000000000000000000000000000000000169063d06ca61f9061189a9087908690600401613e4e565b5f60405180830381865afa1580156118b4573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526118db9190810190613e66565b600c54909150612710906118ff90600160901b900465ffffffffffff166032613ee6565b65ffffffffffff168260018151811061191a5761191a613db1565b602002602001015161192c9190613f0c565b6119369190613f37565b8160018151811061194957611949613db1565b602002602001015161195b9190613f4a565b949350505050565b60405163bc4c4b3760e01b81523360048201525f60248201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063bc4c4b37906044016020604051808303815f875af11580156119cc573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119f09190614075565b50565b6005546001600160a01b03163314611a1d5760405162461bcd60e51b8152600401610c4c90613d7c565b6001600160a01b038216611a735760405162461bcd60e51b815260206004820152601a60248201527f5f746f6b656e20616464726573732063616e6e6f7420626520300000000000006044820152606401610c4c565b6040516370a0823160e01b81523060048201525f906001600160a01b038416906370a0823190602401602060405180830381865afa158015611ab7573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611adb9190613f5d565b9050610d25838383612c0d565b6005546001600160a01b03163314611b125760405162461bcd60e51b8152600401610c4c90613d7c565b611b1e6012600a614054565b6103e8611b2a60025490565b611b35906001613f0c565b611b3f9190613f37565b611b499190613f37565b816001600160801b03161015611b8b5760405162461bcd60e51b8152602060048201526007602482015266546f6f206c6f7760c81b6044820152606401610c4c565b611b976012600a614054565b611baa906001600160801b038316613f0c565b601180546001600160801b03908116600160801b93821684021791829055604051929091041681527fde064515fae8f8bb6d8ff19d2c6ba704322def7494147d8a971266430ade07889060200161171b565b60405163156dbbf560e31b81526001600160a01b0382811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063ab6ddfa8906024015b602060405180830381865afa158015611c65573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c1c9190613f5d565b6001600160a01b03165f9081526020819052604090205490565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad7a672f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611541573d5f803e3d5ffd5b6005546001600160a01b03163314611d2a5760405162461bcd60e51b8152600401610c4c90613d7c565b600f805460ff19169055604080518082019091525f80825260208201525f611d5160025490565b6001600160801b03811680845260208401819052600160801b8102176011556040519091507fa4ffae85e880608d5d4365c2b682786545d136145537788e7e0940dff9f0b98c905f90a15050565b6005546001600160a01b03163314611dc95760405162461bcd60e51b8152600401610c4c90613d7c565b60085460ff1615611e135760405162461bcd60e51b815260206004820152601460248201527354726164696e6720616c7265616479206c69766560601b6044820152606401610c4c565b6008805460ff19166001179055565b606060048054610b8890613d44565b6005546001600160a01b03163314611e5b5760405162461bcd60e51b8152600401610c4c90613d7c565b6005546040515f916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b5f3381611eb182866123d8565b905083811015611f115760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610c4c565b61134f8286868403612676565b6040516302a2e74960e61b81526001600160a01b0382811660048301525f917f00000000000000000000000000000000000000000000000000000000000000009091169063a8b9d24090602401611c4a565b5f33610c168185856129b4565b60405163dcb95ed960e01b81523360048201525f907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063dcb95ed9906024016020604051808303815f875af1158015611fe2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120069190613f5d565b9050801561201d57612019818333612c5f565b5050565b60405162461bcd60e51b815260206004820152600a6024820152694e6f207265776172647360b01b6044820152606401610c4c565b60405163fbcbc0f160e01b81526001600160a01b0382811660048301525f918291829182917f0000000000000000000000000000000000000000000000000000000000000000169063fbcbc0f190602401608060405180830381865afa1580156120be573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906120e29190614090565b93509350935093509193509193565b6005546001600160a01b0316331461211b5760405162461bcd60e51b8152600401610c4c90613d7c565b6001600160a01b0382166121605760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610c4c565b306001600160a01b038316036121b85760405162461bcd60e51b815260206004820152601860248201527f43616e6e6f7420756e6578656d707420636f6e747261637400000000000000006044820152606401610c4c565b6001600160a01b0382165f81815260066020908152604091829020805460ff19168515159081179091558251938452908301527f998cce27cbf44405c67eb636a634d5e2f2e6ff248b3d71fbbbb022f3c4c6dd2d91015b60405180910390a15050565b6005546001600160a01b031633146122455760405162461bcd60e51b8152600401610c4c90613d7c565b60405163c0f306ef60e01b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063c0f306ef906024016115de565b6005546001600160a01b031633146122bd5760405162461bcd60e51b8152600401610c4c90613d7c565b6001600160a01b0382166123025760405162461bcd60e51b815260206004820152600c60248201526b5a65726f204164647265737360a01b6044820152606401610c4c565b8061237d577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03160361237d5760405162461bcd60e51b815260206004820152601260248201527121b0b73737ba103932b6b7bb32903830b4b960711b6044820152606401610c4c565b6001600160a01b0382165f81815260076020908152604091829020805460ff19168515159081179091558251938452908301527f8f9f40630a1d139e6cf69b4f447ca47a36f10a017524efaa38252e516fa227ce910161220f565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6005546001600160a01b0316331461242c5760405162461bcd60e51b8152600401610c4c90613d7c565b6001600160a01b0381166124915760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c4c565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6005546001600160a01b031633146125165760405162461bcd60e51b8152600401610c4c90613d7c565b604080516080810182525f606082015265ffffffffffff858116825284811660208301528316918101919091528161254e8486613ee6565b6125589190613ee6565b65ffffffffffff90811660608301819052600c54600160901b900490911611156125b35760405162461bcd60e51b815260206004820152600c60248201526b0a8c2f040e8dede40d0d2ced60a31b6044820152606401610c4c565b606081015160405165ffffffffffff90911681527fa02824f65350567bc405e202b741e7ca6274004a9feeb44149df72b8bd599c979060200160405180910390a18051600d80546020840151604085015160609095015165ffffffffffff908116600160901b0265ffffffffffff60901b19968216600160601b02969096166bffffffffffffffffffffffff60601b19928216600160301b026bffffffffffffffffffffffff199094169190951617919091171691909117919091179055505050565b6001600160a01b0383166126d85760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610c4c565b6001600160a01b0382166127395760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610c4c565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b0383166127fd5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610c4c565b6001600160a01b03821661285f5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610c4c565b6001600160a01b0383165f90815260208190526040902054818110156128d65760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610c4c565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a350505050565b5f61294784846123d8565b90505f1981146129ae57818110156129a15760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610c4c565b6129ae8484848403612676565b50505050565b6001600160a01b0383165f908152600a602052604090205460ff161580156129f457506001600160a01b0382165f908152600a602052604090205460ff16155b612a2a5760405162461bcd60e51b8152602060048201526007602482015266109b1bd8dad95960ca1b6044820152606401610c4c565b6001600160a01b0383165f9081526006602052604090205460ff16158015612a6a57506001600160a01b0382165f9081526006602052604090205460ff16155b15612ad95760085460ff16612ab65760405162461bcd60e51b815260206004820152601260248201527154726164696e67206e6f742061637469766560701b6044820152606401610c4c565b612ac1838383612dc0565b612acc838383612fcd565b612ad69082613f4a565b90505b612ae4838383612799565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e30443bc83612b1d85611c89565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b158015612b60575f80fd5b505af1158015612b72573d5f803e3d5ffd5b505050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663e30443bc84612baf86611c89565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044015f604051808303815f87803b158015612bf2575f80fd5b505af1158015612c04573d5f803e3d5ffd5b50505050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052610d2590849061331a565b6040805160028082526060820183525f926020830190803683370190505090507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612cdb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612cff9190613df1565b815f81518110612d1157612d11613db1565b60200260200101906001600160a01b031690816001600160a01b0316815250503081600181518110612d4557612d45613db1565b6001600160a01b03928316602091820292909201015260405163b6f9de9560e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063b6f9de95908690612da99087908690889042906004016140cc565b5f604051808303818588803b158015611289575f80fd5b600f5460ff1615610d25576001600160a01b0382165f9081526007602052604081205460ff1690612df084611c89565b6040805180820182526011546001600160801b038082168352600160801b909104166020808301919091526001600160a01b0389165f908152600990915291909120549192509060ff168015612e44575082155b15612ee55780516001600160801b0316841115612e8d5760405162461bcd60e51b815260206004820152600760248201526626b0bc102a3c3760c91b6044820152606401610c4c565b60208101516001600160801b0316612ea58386614062565b1115612ee05760405162461bcd60e51b815260206004820152600a60248201526913585e0815d85b1b195d60b21b6044820152606401610c4c565b612fc5565b6001600160a01b0385165f9081526009602052604090205460ff168015612f2457506001600160a01b0386165f9081526007602052604090205460ff16155b15612f6d5780516001600160801b0316841115612ee05760405162461bcd60e51b815260206004820152600760248201526626b0bc102a3c3760c91b6044820152606401610c4c565b82612fc55760208101516001600160801b0316612f8a8386614062565b1115612fc55760405162461bcd60e51b815260206004820152600a60248201526913585e0815d85b1b195d60b21b6044820152606401610c4c565b505050505050565b5f601054612fda30611c89565b1015801561300057506001600160a01b0384165f9081526009602052604090205460ff16155b1561300d5761300d6133eb565b604080516080810182525f8082526020808301829052828401829052606083018290526001600160a01b0387168252600990529182205460ff1615613098575060408051608081018252600d5465ffffffffffff8082168352600160301b820481166020840152600160601b8204811693830193909352600160901b90049091166060820152613100565b6001600160a01b0386165f9081526009602052604090205460ff1615613100575060408051608081018252600c5465ffffffffffff8082168352600160301b820481166020840152600160601b8204811693830193909352600160901b900490911660608201525b606081015165ffffffffffff16156133085760408051608081018252600e546001600160401b038082168352600160401b820481166020840152600160801b82041692820192909252600160c01b90910460ff161515606080830191909152820151612710906131789065ffffffffffff1687613f0c565b6131829190613f37565b9250633b9aca00826060015165ffffffffffff16836020015165ffffffffffff16856131ae9190614100565b6131b8919061412b565b6131c2919061412b565b816020018181516131d39190614150565b6001600160401b031690525060608201518251633b9aca009165ffffffffffff90811691613202911686614100565b61320c919061412b565b613216919061412b565b81518290613225908390614150565b6001600160401b031690525060608201516040830151633b9aca009165ffffffffffff90811691613257911686614100565b613261919061412b565b61326b919061412b565b8160400181815161327c9190614150565b6001600160401b039081169091528251600e80546020860151604087015160608801511515600160c01b0260ff60c01b19918716600160801b029190911668ffffffffffffffffff60801b19928716600160401b026001600160801b031990941695909616949094179190911716929092171790555061330687306001600160801b038616612799565b505b506001600160801b0316949350505050565b5f61336e826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166136ec9092919063ffffffff16565b805190915015610d25578080602001905181019061338c9190614075565b610d255760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610c4c565b5f6133f530611c89565b60408051608081018252600e546001600160401b03808216808452600160401b8304821660208501819052600160801b8404909216948401859052600160c01b90920460ff161515606084015293945090925f929161345391614150565b61345d9190614150565b6001600160401b03169050821580613473575080155b1561347d57505050565b60105461348b906014613f0c565b8311156134a3576010546134a0906014613f0c565b92505b60208201516001600160401b03161561359b575f8183602001516001600160401b0316856134d19190613f0c565b6134db9190613f37565b9050613508307f000000000000000000000000000000000000000000000000000000000000000083612799565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015613560575f80fd5b505af1925050508015613571575060015b5061357c8185613f4a565b935082602001516001600160401b0316826135979190613f4a565b9150505b82156136b4576135aa836136fa565b604082015147905f906001600160401b031615613653577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168385604001516001600160401b0316846136059190613f0c565b61360f9190613f37565b6040515f81818185875af1925050503d805f8114613648576040519150601f19603f3d011682016040523d82523d5f602084013e61364d565b606091505b50909150505b47915081156136b157600b546040516001600160a01b039091169083905f81818185875af1925050503d805f81146136a6576040519150601f19603f3d011682016040523d82523d5f602084013e6136ab565b606091505b50909150505b50505b505f602082018190528082526040820152600e80546060909201511515600160c01b026001600160c81b031990921691909117905550565b606061195b84845f8561380e565b6040805160028082526060820183525f9260208301908036833701905050905030815f8151811061372d5761372d613db1565b60200260200101906001600160a01b031690816001600160a01b0316815250507f00000000000000000000000000000000000000000000000000000000000000008160018151811061378157613781613db1565b6001600160a01b03928316602091820292909201015260405163791ac94760e01b81527f00000000000000000000000000000000000000000000000000000000000000009091169063791ac947906137e59085905f90869030904290600401614170565b5f604051808303815f87803b1580156137fc575f80fd5b505af1158015612fc5573d5f803e3d5ffd5b60608247101561386f5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f6044820152651c8818d85b1b60d21b6064820152608401610c4c565b5f80866001600160a01b0316858760405161388a91906141ab565b5f6040518083038185875af1925050503d805f81146138c4576040519150601f19603f3d011682016040523d82523d5f602084013e6138c9565b606091505b50915091506138da878383876138e5565b979650505050505050565b606083156139535782515f0361394c576001600160a01b0385163b61394c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610c4c565b508161195b565b61195b83838151156139685781518083602001fd5b8060405162461bcd60e51b8152600401610c4c91906139a4565b5f5b8381101561399c578181015183820152602001613984565b50505f910152565b602081525f82518060208401526139c2816040850160208701613982565b601f01601f19169190910160400192915050565b6001600160a01b03811681146119f0575f80fd5b5f80604083850312156139fb575f80fd5b8235613a06816139d6565b946020939093013593505050565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715613a5057613a50613a14565b604052919050565b5f6001600160401b03821115613a7057613a70613a14565b5060051b60200190565b80151581146119f0575f80fd5b8035613a9281613a7a565b919050565b5f8060408385031215613aa8575f80fd5b82356001600160401b03811115613abd575f80fd5b8301601f81018513613acd575f80fd5b80356020613ae2613add83613a58565b613a28565b82815260059290921b83018101918181019088841115613b00575f80fd5b938201935b83851015613b27578435613b18816139d6565b82529382019390820190613b05565b9550613b369050868201613a87565b93505050509250929050565b5f60208284031215613b52575f80fd5b8135613b5d816139d6565b9392505050565b5f60208284031215613b74575f80fd5b5035919050565b5f8083601f840112613b8b575f80fd5b5081356001600160401b03811115613ba1575f80fd5b6020830191508360208260051b8501011115613bbb575f80fd5b9250929050565b5f805f8060408587031215613bd5575f80fd5b84356001600160401b0380821115613beb575f80fd5b613bf788838901613b7b565b90965094506020870135915080821115613c0f575f80fd5b50613c1c87828801613b7b565b95989497509550505050565b5f805f60608486031215613c3a575f80fd5b8335613c45816139d6565b92506020840135613c55816139d6565b929592945050506040919091013590565b803565ffffffffffff81168114613a92575f80fd5b5f805f60608486031215613c8d575f80fd5b613c9684613c66565b9250613ca460208501613c66565b9150613cb260408501613c66565b90509250925092565b5f60208284031215613ccb575f80fd5b81356001600160801b0381168114613b5d575f80fd5b5f8060408385031215613cf2575f80fd5b8235613cfd816139d6565b91506020830135613d0d816139d6565b809150509250929050565b5f8060408385031215613d29575f80fd5b8235613d34816139d6565b91506020830135613d0d81613a7a565b600181811c90821680613d5857607f821691505b602082108103613d7657634e487b7160e01b5f52602260045260245ffd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b5f60018201613dea57613dea613dc5565b5060010190565b5f60208284031215613e01575f80fd5b8151613b5d816139d6565b5f8151808452602080850194508084015f5b83811015613e435781516001600160a01b031687529582019590820190600101613e1e565b509495945050505050565b828152604060208201525f61195b6040830184613e0c565b5f6020808385031215613e77575f80fd5b82516001600160401b03811115613e8c575f80fd5b8301601f81018513613e9c575f80fd5b8051613eaa613add82613a58565b81815260059190911b82018301908381019087831115613ec8575f80fd5b928401925b828410156138da57835182529284019290840190613ecd565b65ffffffffffff818116838216019080821115613f0557613f05613dc5565b5092915050565b8082028115828204841417610c1c57610c1c613dc5565b634e487b7160e01b5f52601260045260245ffd5b5f82613f4557613f45613f23565b500490565b81810381811115610c1c57610c1c613dc5565b5f60208284031215613f6d575f80fd5b5051919050565b600181815b80851115613fae57815f1904821115613f9457613f94613dc5565b80851615613fa157918102915b93841c9390800290613f79565b509250929050565b5f82613fc457506001610c1c565b81613fd057505f610c1c565b8160018114613fe65760028114613ff05761400c565b6001915050610c1c565b60ff84111561400157614001613dc5565b50506001821b610c1c565b5060208310610133831016604e8410600b841016171561402f575081810a610c1c565b6140398383613f74565b805f190482111561404c5761404c613dc5565b029392505050565b5f613b5d60ff841683613fb6565b80820180821115610c1c57610c1c613dc5565b5f60208284031215614085575f80fd5b8151613b5d81613a7a565b5f805f80608085870312156140a3575f80fd5b84516140ae816139d6565b60208601516040870151606090970151919890975090945092505050565b848152608060208201525f6140e46080830186613e0c565b6001600160a01b03949094166040830152506060015292915050565b6001600160801b0381811683821602808216919082811461412357614123613dc5565b505092915050565b5f6001600160801b038084168061414457614144613f23565b92169190910492915050565b6001600160401b03818116838216019080821115613f0557613f05613dc5565b85815284602082015260a060408201525f61418e60a0830186613e0c565b6001600160a01b0394909416606083015250608001529392505050565b5f82516141bc818460208701613982565b919091019291505056fea2646970667358221220d5777b46aaf966ead3bf8b929906e9fd7fa8983988ec468630a7074c1841109e64736f6c63430008140033608060405234801561000f575f80fd5b505f80546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506110f38061005d5f395ff3fe608060405260043610610134575f3560e01c80639986fc30116100a8578063bc4c4b371161006d578063bc4c4b371461034f578063c0f306ef1461036e578063dcb95ed91461038d578063e30443bc146103ac578063f2fde38b146103cb578063fbcbc0f1146103ea575f80fd5b80639986fc30146102a8578063a8b9d240146102bc578063aafd847a146102db578063ab6ddfa81461030f578063ad7a672f1461033a575f80fd5b80636843cd84116100f95780636843cd84146101f25780636a4740021461022657806371778e7d1461023a57806385a6b3ae1461024e5780638da5cb5b1461026357806391b89fba14610289575f80fd5b806303c833021461014757806327ce01471461014f57806330bb4cff1461018157806331e79db0146101955780634e7b827f146101b4575f80fd5b3661014357610141610433565b005b5f80fd5b610141610433565b34801561015a575f80fd5b5061016e610169366004610ef0565b6104bb565b6040519081526020015b60405180910390f35b34801561018c575f80fd5b5060065461016e565b3480156101a0575f80fd5b506101416101af366004610ef0565b61051d565b3480156101bf575f80fd5b506101e26101ce366004610ef0565b60076020525f908152604090205460ff1681565b6040519015158152602001610178565b3480156101fd575f80fd5b5061016e61020c366004610ef0565b6001600160a01b03165f9081526004602052604090205490565b348015610231575f80fd5b5061014161057f565b348015610245575f80fd5b5060055461016e565b348015610259575f80fd5b5061016e60065481565b34801561026e575f80fd5b505f546040516001600160a01b039091168152602001610178565b348015610294575f80fd5b5061016e6102a3366004610ef0565b610588565b3480156102b3575f80fd5b50610141610592565b3480156102c7575f80fd5b5061016e6102d6366004610ef0565b610603565b3480156102e6575f80fd5b5061016e6102f5366004610ef0565b6001600160a01b03165f9081526003602052604090205490565b34801561031a575f80fd5b5061016e610329366004610ef0565b60046020525f908152604090205481565b348015610345575f80fd5b5061016e60055481565b34801561035a575f80fd5b506101e2610369366004610f0b565b61062e565b348015610379575f80fd5b50610141610388366004610ef0565b6106c3565b348015610398575f80fd5b5061016e6103a7366004610ef0565b6107b2565b3480156103b7575f80fd5b506101416103c6366004610f46565b61090c565b3480156103d6575f80fd5b506101416103e5366004610ef0565b61096f565b3480156103f5575f80fd5b50610409610404366004610ef0565b610a56565b604080516001600160a01b0390951685526020850193909352918301526060820152608001610178565b5f60055411801561044357505f34115b156104b9576005546104709061045d34600160801b610a92565b6104679190610f84565b60015490610b17565b60015560405134815233907fa493a9229478c3fcd73f66d2cdeb7f94fd0f341da924d1054236d784541165119060200160405180910390a26006546104b59034610b17565b6006555b565b6001600160a01b0381165f908152600260209081526040808320546004909252822054600154600160801b9261050d9261050892610502916104fd9190610a92565b610b75565b90610b83565b610bbd565b6105179190610f84565b92915050565b5f546001600160a01b0316331461054f5760405162461bcd60e51b815260040161054690610fa3565b60405180910390fd5b6001600160a01b0381165f908152600760205260408120805460ff1916600117905561057c908290610bce565b50565b61057c33610c62565b5f61051782610603565b5f546001600160a01b031633146105bb5760405162461bcd60e51b815260040161054690610fa3565b5f80546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a35f80546001600160a01b0319169055565b6001600160a01b0381165f9081526003602052604081205461051790610628846104bb565b90610d99565b5f80546001600160a01b031633146106585760405162461bcd60e51b815260040161054690610fa3565b5f61066284610c62565b905080156106ba57821515846001600160a01b03167fa2c38e2d2fb7e3e1912d937fd1ca11ed6d51864dee4cfa7a7bf02becd7acf092836040516106a891815260200190565b60405180910390a36001915050610517565b505f9392505050565b5f546001600160a01b031633146106ec5760405162461bcd60e51b815260040161054690610fa3565b6001600160a01b0381165f9081526007602052604090205460ff1661070f575f80fd5b6001600160a01b0381165f908152600760205260409020805460ff1916905561057c816107435f546001600160a01b031690565b6040516370a0823160e01b81526001600160a01b03858116600483015291909116906370a0823190602401602060405180830381865afa158015610789573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107ad9190610fd8565b610bce565b5f80546001600160a01b031633146107dc5760405162461bcd60e51b815260040161054690610fa3565b6107e582610603565b90508015610867576001600160a01b0382165f90815260036020526040902054610810908290610fef565b6001600160a01b0383165f81815260036020526040908190209290925590517fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d9061085e9084815260200190565b60405180910390a25b5f80546040516001600160a01b039091169083908381818185875af1925050503d805f81146108b1576040519150601f19603f3d011682016040523d82523d5f602084013e6108b6565b606091505b5050905080610905576001600160a01b0383165f908152600360205260409020546108e19083610d99565b6001600160a01b0384165f9081526003602052604081209190915591506109079050565b505b919050565b5f546001600160a01b031633146109355760405162461bcd60e51b815260040161054690610fa3565b6001600160a01b0382165f9081526007602052604090205460ff1661096b5761095e8282610bce565b61096982600161062e565b505b5050565b5f546001600160a01b031633146109985760405162461bcd60e51b815260040161054690610fa3565b6001600160a01b0381166109fd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610546565b5f80546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a35f80546001600160a01b0319166001600160a01b0392909216919091179055565b805f8080610a6384610603565b9250610a6e846104bb565b6001600160a01b0385165f9081526004602052604090205494969395509392915050565b5f825f03610aa157505f610517565b5f610aac8385611002565b905082610ab98583610f84565b14610b105760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610546565b9392505050565b5f80610b238385610fef565b905083811015610b105760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610546565b5f8181811215610517575f80fd5b5f80610b8f8385611019565b90505f8312158015610ba15750838112155b80610bb557505f83128015610bb557508381125b610b10575f80fd5b5f80821215610bca575f80fd5b5090565b6001600160a01b0382165f90815260046020526040902080549082905580821115610c27575f610bfe8383610d99565b9050610c0a8482610dda565b8060055f828254610c1b9190610fef565b90915550610969915050565b80821015610969575f610c3a8284610d99565b9050610c468482610e32565b8060055f828254610c579190611040565b909155505050505050565b5f80610c6d83610603565b90508015610d91576001600160a01b0383165f90815260036020526040902054610c979082610b17565b6001600160a01b0384165f81815260036020526040908190209290925590517fee503bee2bb6a87e57bc57db795f98137327401a0e7b7ce42e37926cc1a9ca4d90610ce59084815260200190565b60405180910390a25f836001600160a01b0316826040515f6040518083038185875af1925050503d805f8114610d36576040519150601f19603f3d011682016040523d82523d5f602084013e610d3b565b606091505b5050905080610d8a576001600160a01b0384165f90815260036020526040902054610d669083610d99565b6001600160a01b039094165f90815260036020526040812094909455509192915050565b5092915050565b505f92915050565b5f610b1083836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250610e6b565b610e13610df56104fd83600154610a9290919063ffffffff16565b6001600160a01b0384165f9081526002602052604090205490610ea3565b6001600160a01b039092165f9081526002602052604090209190915550565b610e13610e4d6104fd83600154610a9290919063ffffffff16565b6001600160a01b0384165f9081526002602052604090205490610b83565b5f8184841115610e8e5760405162461bcd60e51b81526004016105469190611053565b505f610e9a8486611040565b95945050505050565b5f80610eaf838561109e565b90505f8312158015610ec15750838113155b80610bb557505f83128015610bb55750838113610b10575f80fd5b6001600160a01b038116811461057c575f80fd5b5f60208284031215610f00575f80fd5b8135610b1081610edc565b5f8060408385031215610f1c575f80fd5b8235610f2781610edc565b915060208301358015158114610f3b575f80fd5b809150509250929050565b5f8060408385031215610f57575f80fd5b8235610f6281610edc565b946020939093013593505050565b634e487b7160e01b5f52601160045260245ffd5b5f82610f9e57634e487b7160e01b5f52601260045260245ffd5b500490565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b5f60208284031215610fe8575f80fd5b5051919050565b8082018082111561051757610517610f70565b808202811582820484141761051757610517610f70565b8082018281125f83128015821682158216171561103857611038610f70565b505092915050565b8181038181111561051757610517610f70565b5f6020808352835180828501525f5b8181101561107e57858101830151858201604001528201611062565b505f604082860101526040601f19601f8301168501019250505092915050565b8181035f831280158383131683831282161715610d8a57610d8a610f7056fea2646970667358221220ab6cab902127f54b0069be6fa763b5d39649aa9b58ffe45132178f2ff064ecae64736f6c63430008140033