60806040523480156200001157600080fd5b5060408051808201825260078152661554d110cb515560ca1b6020808301918252835180850190945260068452651554d110d15560d21b9084015281519192916200005f91600391620000f8565b50805162000075906004906020840190620000f8565b50506005805460ff1990811690915560078054336001600160a01b03199182168117909255600c8054821683179055601280548216831790556013805490911682179055600060148190559081526015602052604080822082815560019081018054851682179055308352908220918255908101805490921617905550620001db565b82805462000106906200019e565b90600052602060002090601f0160209004810192826200012a576000855562000175565b82601f106200014557805160ff191683800117855562000175565b8280016001018555821562000175579182015b828111156200017557825182559160200191906001019062000158565b506200018392915062000187565b5090565b5b8082111562000183576000815560010162000188565b600281046001821680620001b357607f821691505b60208210811415620001d557634e487b7160e01b600052602260045260246000fd5b50919050565b61372b80620001eb6000396000f3fe608060405234801561001057600080fd5b50600436106102f15760003560e01c80638da5cb5b1161019d578063c415b95c116100e9578063e169d402116100a2578063e9ed9b641161007c578063e9ed9b6414610717578063f39a597a1461072a578063f6ab8f111461073d578063f851a44014610745576102f1565b8063e169d402146106de578063e534155d146106f1578063e724529c14610704576102f1565b8063c415b95c14610640578063d32867d014610653578063d67ecd801461065b578063d76fd2e71461067f578063d979f5aa14610692578063dd62ed3e146106a5576102f1565b8063a83622e011610156578063ac3dcf8711610130578063ac3dcf87146105d4578063b414d4b6146105f7578063b5ed298a1461061a578063b6cf146c1461062d576102f1565b8063a83622e0146105a6578063a9059cbb146105ae578063a969ff0a146105c1576102f1565b80638da5cb5b14610553578063953ba1a21461056657806395d89b411461056f5780639af1d35a14610577578063a42dce8014610580578063a457c2d714610593576102f1565b806346f249061161025c578063768916e711610215578063814a2e30116101ef578063814a2e30146104fd5780638456cb591461051d578063893d20e814610525578063897f02e31461054a576102f1565b8063768916e7146104c457806379cc6790146104d75780637cd7922d146104ea576102f1565b806346f24906146104135780634c657073146104365780635c975abb1461047557806360536172146104805780636eb3ac931461048857806370a082311461049b576102f1565b806323b872dd116102ae57806323b872dd146103b957806329c69f4b146103cc578063313ce567146103d457806339509351146103e35780633f4ba83a146103f657806342966c6814610400576102f1565b806306fdde03146102f6578063075e85e414610314578063095ea7b31461034e578063147bf6c41461037157806318160ddd146103845780631885bb5914610396575b600080fd5b6102fe610758565b60405161030b91906132db565b60405180910390f35b600d54600e5461032e916001600160a01b03908116911682565b604080516001600160a01b0393841681529290911660208301520161030b565b61036161035c366004613191565b6107ea565b604051901515815260200161030b565b61036161037f36600461309f565b610801565b6002545b60405190815260200161030b565b6103a96103a436600461309f565b6109b7565b60405161030b94939291906134c3565b6103616103c736600461312d565b610b1f565b610388610bcb565b6040516012815260200161030b565b6103616103f1366004613191565b610bf1565b6103fe610c2d565b005b6103fe61040e366004613206565b610c61565b61036161042136600461309f565b60096020526000908152604090205460ff1681565b61046061044436600461309f565b6015602052600090815260409020805460019091015460ff1682565b6040805192835290151560208301520161030b565b60055460ff16610361565b6103fe610c6e565b61036161049636600461309f565b610cdd565b6103886104a936600461309f565b6001600160a01b031660009081526020819052604090205490565b6103616104d23660046131ba565b610eb8565b6103fe6104e5366004613191565b611142565b6103fe6104f8366004613206565b6111c8565b61038861050b36600461309f565b60116020526000908152604090205481565b6103fe6112bd565b6007546001600160a01b03165b6040516001600160a01b03909116815260200161030b565b610388611a0a81565b600754610532906001600160a01b031681565b61038860145481565b6102fe6112ef565b61038860165481565b6103fe61058e36600461309f565b6112fe565b6103616105a1366004613191565b6113d0565b610388600481565b6103616105bc366004613191565b611469565b6103616105cf366004613206565b611476565b6103616105e236600461309f565b600b6020526000908152604090205460ff1681565b61036161060536600461309f565b60066020526000908152604090205460ff1681565b6103fe61062836600461309f565b6115b7565b61036161063b366004613206565b611690565b601354610532906001600160a01b031681565b61038861180a565b61066e6106693660046131ec565b611816565b60405161030b959493929190613283565b6103fe61068d366004613168565b611947565b6103fe6106a036600461309f565b611a64565b6103886106b33660046130b9565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6103fe6106ec3660046131ba565b611b11565b601254610532906001600160a01b031681565b610361610712366004613168565b611d37565b6103fe610725366004613168565b611d6e565b6103616107383660046130eb565b611e40565b61036161218c565b600c54610532906001600160a01b031681565b60606003805461076790613689565b80601f016020809104026020016040519081016040528092919081815260200182805461079390613689565b80156107e05780601f106107b5576101008083540402835291602001916107e0565b820191906000526020600020905b8154815290600101906020018083116107c357829003601f168201915b5050505050905090565b60006107f7338484612345565b5060015b92915050565b336000908152600b602052604081205460ff166108395760405162461bcd60e51b8152600401610830906133c0565b60405180910390fd5b6001600160a01b03821661089f5760405162461bcd60e51b815260206004820152602760248201527f41646d696e6973747261626c653a207a65726f2061646472657373206e6f7420604482015266185b1b1bddd95960ca1b6064820152608401610830565b6108a7612469565b15806108b657506108b6612482565b61091f5760405162461bcd60e51b815260206004820152603460248201527f41646d696e6973747261626c653a2070726f706f73616c20697320617070726f6044820152731d9a5b99c8185b99081b9bdd081bdc1c1bdcd95960621b6064820152608401610830565b600d80546001600160a01b03199081168255600e805490911690556000610947600f82613046565b610955600383016000613046565b5050600d80546001600160a01b031990811633908117909255600e80546001600160a01b0386169216821790556040519091907ffd22260ca7b3d2a5f6332770491ab546b6235bc73909c334f5e304d2fae455b190600090a35060015b919050565b600060608060008060116000876001600160a01b03166001600160a01b031681526020019081526020016000206040518060600160405290816000820154815260200160018201805480602002602001604051908101604052809291908181526020018280548015610a5257602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a34575b5050505050815260200160028201805480602002602001604051908101604052809291908181526020018280548015610ab457602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610a96575b50505050508152505090506000610aca87612491565b610aff57610ad7876124b6565b610af757610ae4876124db565b610aef576000610af2565b60015b610afa565b60025b610b02565b60035b825160208401516040909401519099939850965094509092505050565b6000610b2c848484612520565b6001600160a01b038416600090815260016020908152604080832033845290915290205482811015610bb15760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b6064820152608401610830565b610bbe8533858403612345565b60019150505b9392505050565b6001610bd96004600a613585565b610be4906001613653565b610bee9190613672565b81565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916107f7918590610c28908690613507565b612345565b600c546001600160a01b03163314610c575760405162461bcd60e51b815260040161083090613406565b610c5f612698565b565b610c6b338261272b565b50565b6008546001600160a01b03163314610cc85760405162461bcd60e51b815260206004820152601f60248201527f4f776e61626c653a206e6f74207468652070726f706f736564206f776e6572006044820152606401610830565b600854610c5f906001600160a01b0316612885565b336000908152600b602052604081205460ff16610d0c5760405162461bcd60e51b8152600401610830906133c0565b6001600160a01b038216600090815260116020526040902054610d415760405162461bcd60e51b81526004016108309061347d565b610d4a82612491565b15610da35760405162461bcd60e51b815260206004820152602360248201527f4d696e7461626c653a2070726f706f73616c20686173206265656e206f70706f6044820152621cd95960ea1b6064820152608401610830565b610dac826124b6565b610e1e5760405162461bcd60e51b815260206004820152603860248201527f4d696e7461626c653a20617070726f76656420636f756e74206e6f742072656160448201527f6368206d696e20617070726f766520726174696f2079657400000000000000006064820152608401610830565b6001600160a01b0382166000908152601160205260408120805482825591610e496001830182613046565b610e57600283016000613046565b5050601254610e6f906001600160a01b031682612941565b60405181815233906001600160a01b038516907f2be847da20fd9b1091b08d3860a1efff965798dc0b071b5fb41139dd437fc5e59060200160405180910390a350600192915050565b3360009081526009602052604081205460ff16610ee75760405162461bcd60e51b81526004016108309061332e565b6001600160a01b03841660009081526011602052604090208054610f1d5760405162461bcd60e51b81526004016108309061347d565b80548414610f6d5760405162461bcd60e51b815260206004820152601960248201527f4d696e7461626c653a20616d6f756e74206d69736d61746368000000000000006044820152606401610830565b610fd33382600101805480602002602001604051908101604052809291908181526020018280548015610fc957602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610fab575b505050505061294b565b158015611041575061103f3382600201805480602002602001604051908101604052809291908181526020018280548015610fc9576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610fab57505050505061294b565b155b6110975760405162461bcd60e51b815260206004820152602160248201527f4d696e7461626c653a206475706c69636174656420617070726f7665206d696e6044820152601d60fa1b6064820152608401610830565b82156110c8576001808201805491820181556000908152602090200180546001600160a01b031916331790556110f0565b600281018054600181018255600091825260209091200180546001600160a01b031916331790555b60408051858152841515602082015233916001600160a01b038816917f525d9e2d299c242ea53495815786d6500280e0e9407ea6cb4954e55806bec3b2910160405180910390a3506001949350505050565b600061114e83336106b3565b9050818110156111ac5760405162461bcd60e51b8152602060048201526024808201527f45524332303a206275726e20616d6f756e74206578636565647320616c6c6f77604482015263616e636560e01b6064820152608401610830565b6111b98333848403612345565b6111c3838361272b565b505050565b600c546001600160a01b031633146111f25760405162461bcd60e51b815260040161083090613406565b60016112006004600a613585565b61120b906001613653565b6112159190613672565b8111156112785760405162461bcd60e51b815260206004820152602b60248201527f5553444345543a206e65772066656520726174696f2065786365656473204d4160448201526a585f4645455f524154494f60a81b6064820152608401610830565b601480549082905560408051828152602081018490527f820cc3995dd03763ec82ef527a57b80bd25d346850b34aa3f1915097e3004e6e910160405180910390a15050565b600c546001600160a01b031633146112e75760405162461bcd60e51b815260040161083090613406565b610c5f6129bf565b60606004805461076790613689565b600c546001600160a01b031633146113285760405162461bcd60e51b815260040161083090613406565b6001600160a01b03811661137e5760405162461bcd60e51b815260206004820181905260248201527f5553444345543a207a65726f2061646472657373206e6f7420616c6c6f7765646044820152606401610830565b601380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f649c5e3d0ed183894196148e193af316452b0037e77d2ff0fef23b7dc722bed090600090a35050565b3360009081526001602090815260408083206001600160a01b0386168452909152812054828110156114525760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610830565b61145f3385858403612345565b5060019392505050565b60006107f7338484612520565b6013546000906001600160a01b031633146114df5760405162461bcd60e51b8152602060048201526024808201527f5553444345543a206e6f6e2d666565436f6c6c6563746f72206e6f7420616c6c6044820152631bddd95960e21b6064820152608401610830565b6016548211156115495760405162461bcd60e51b815260206004820152602f60248201527f5553444345543a2074686520616d6f756e74206578636565647320746865206360448201526e6f6c6c65637461626c65206665657360881b6064820152608401610830565b816016600082825461155b9190613672565b9091555061156c9050303384612a3a565b6013546040518381526001600160a01b03909116907f06c5efeff5c320943d265dc4e5f1af95ad523555ce0c1957e367dda5514572df906020015b60405180910390a2506001919050565b6007546001600160a01b031633146115e15760405162461bcd60e51b815260040161083090613448565b6001600160a01b0381166116465760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610830565b600880546001600160a01b0319166001600160a01b0383169081179091556040517f6ab4d119f23076e8ad491bc65ce85f017fb0591dce08755ba8591059cc51737a90600090a250565b336000908152600b602052604081205460ff166116bf5760405162461bcd60e51b8152600401610830906133c0565b600082116117195760405162461bcd60e51b815260206004820152602160248201527f4d696e7461626c653a207a65726f20616d6f756e74206e6f7420616c6c6f77656044820152601960fa1b6064820152608401610830565b611722336124db565b1580611732575061173233612491565b6117965760405162461bcd60e51b815260206004820152602f60248201527f4d696e7461626c653a2070726f706f73616c20697320617070726f76696e672060448201526e185b99081b9bdd081bdc1c1bdcd959608a1b6064820152608401610830565b336000908152601160205260408120818155906117b66001830182613046565b6117c4600283016000613046565b50503360008181526011602052604090819020849055517f26c331002c95570b5f1f5612efa7e6b6b63241e5722567f03898aa1facf9d812906115a79085815260200190565b610bee6004600a613585565b600080606080600080611827612482565b61185a57611833612c13565b6118525761183f612469565b61184a57600061184d565b60015b611855565b60025b61185d565b60035b600d54600e54600f8054604080516020808402820181019092528281529596506001600160a01b039485169593909416939192601092879285918301828280156118d057602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116118b2575b505050505092508180548060200260200160405190810160405280929190818152602001828054801561192c57602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831161190e575b50505050509150955095509550955095505091939590929450565b6007546001600160a01b031633146119715760405162461bcd60e51b815260040161083090613448565b6001600160a01b03821660009081526009602052604090205460ff16151581151514611a605780156119e1576001600160a01b0382166000908152600960205260408120805460ff19166001908117909155600a8054919290916119d6908490613507565b90915550611a1a9050565b6001600160a01b0382166000908152600960205260408120805460ff19169055600a805460019290611a14908490613672565b90915550505b816001600160a01b03167fd0631e6048b638b1817031b7ab7551128724e4589b906c108dc03e72e8ad0d9d82604051611a57911515815260200190565b60405180910390a25b5050565b600c546001600160a01b03163314611a8e5760405162461bcd60e51b815260040161083090613406565b6001600160a01b038116611aef5760405162461bcd60e51b815260206004820152602260248201527f4d696e7461626c653a207a65726f2061646472657373206e6f7420616c6c6f77604482015261195960f21b6064820152608401610830565b601280546001600160a01b0319166001600160a01b0392909216919091179055565b600c546001600160a01b03163314611b3b5760405162461bcd60e51b815260040161083090613406565b6001600160a01b038316611ba35760405162461bcd60e51b815260206004820152602960248201527f5553444345543a207a65726f2061646472657373206e6f7420616c6c6f776564604482015268103337b9103ab9b2b960b91b6064820152608401610830565b6001611bb16004600a613585565b611bbc906001613653565b611bc69190613672565b821115611c255760405162461bcd60e51b815260206004820152602760248201527f5553444345543a2066656520726174696f2065786365656473204d41585f4645604482015266455f524154494f60c81b6064820152608401610830565b6001600160a01b0383166000908152601560209081526040918290208251808401909352805483526001015460ff1615159082015281611c8a576001600160a01b0384166000908152601560205260408120908155600101805460ff19169055611cb6565b6001600160a01b03841660009081526015602052604090208381556001908101805460ff191690911790555b6001600160a01b0384166000818152601560205260409081902090517f1d73007eef6d01cf5104f0c14f2cef87dfe3921360fea69609e1d6e0f1f2d84891611d299185919082518152602092830151151592810192909252805460408301526001015460ff161515606082015260800190565b60405180910390a250505050565b600c546000906001600160a01b03163314611d645760405162461bcd60e51b815260040161083090613406565b610bc48383612c22565b6007546001600160a01b03163314611d985760405162461bcd60e51b815260040161083090613448565b6001600160a01b0382166000908152600b602052604090205460ff16151581151514611a60578015611ded576001600160a01b0382166000908152600b60205260409020805460ff1916821515179055611a1a565b6001600160a01b0382166000818152600b6020908152604091829020805460ff19169055905183151581527fd0631e6048b638b1817031b7ab7551128724e4589b906c108dc03e72e8ad0d9d9101611a57565b3360009081526009602052604081205460ff16611e6f5760405162461bcd60e51b81526004016108309061332e565b600d546001600160a01b031615801590611e935750600e546001600160a01b031615155b611eaf5760405162461bcd60e51b815260040161083090613374565b600d546001600160a01b03858116911614611f0c5760405162461bcd60e51b815260206004820181905260248201527f41646d696e6973747261626c653a2070726f706f736572206d69736d617463686044820152606401610830565b600e546001600160a01b03848116911614611f695760405162461bcd60e51b815260206004820181905260248201527f41646d696e6973747261626c653a206e657741646d696e206d69736d617463686044820152606401610830565b611fce33600d600201805480602002602001604051908101604052809291908181526020018280548015610fc9576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610fab57505050505061294b565b15801561203d575061203b33600d600301805480602002602001604051908101604052809291908181526020018280548015610fc9576020028201919060005260206000209081546001600160a01b03168152600190910190602001808311610fab57505050505061294b565b155b6120995760405162461bcd60e51b815260206004820152602760248201527f41646d696e6973747261626c653a206475706c69636174656420617070726f76604482015266329030b236b4b760c91b6064820152608401610830565b81156120e657600f80546001810182556000919091527f8d1108e10bcb7c27dddfc02ed9d693a074039d026cf4ea4240b40f7d581ac8020180546001600160a01b03191633179055612129565b601080546001810182556000919091527f1b6847dc741a1b0cd08d278845f9d819d87b734759afb55fe2de5cb82a9ae6720180546001600160a01b031916331790555b336001600160a01b0316836001600160a01b0316856001600160a01b03167f4fb63735613440f50514ebf0d41d7fff1d389d0a42936b7c5e65adf53625d7bf8560405161217a911515815260200190565b60405180910390a45060019392505050565b600d546000906001600160a01b0316158015906121b35750600e546001600160a01b031615155b6121cf5760405162461bcd60e51b815260040161083090613374565b6121d7612482565b156122355760405162461bcd60e51b815260206004820152602860248201527f41646d696e6973747261626c653a2070726f706f73616c20686173206265656e604482015267081bdc1c1bdcd95960c21b6064820152608401610830565b61223d612c13565b6122af5760405162461bcd60e51b815260206004820152603d60248201527f41646d696e6973747261626c653a20617070726f76656420636f756e74206e6f60448201527f74207265616368206d696e20617070726f766520726174696f207965740000006064820152608401610830565b600c8054600e80546001600160a01b03198084166001600160a01b0383811691909117909555600d805482168155911690915591169060006122f2600f82613046565b612300600383016000613046565b5050600c546040516001600160a01b03918216918316907f7e644d79422f17c01e4894b5f4f588d331ebfa28653d42ae832dc59e38c9798f90600090a3600191505090565b6001600160a01b0383166123a75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610830565b6001600160a01b0382166124085760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610830565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600f5460009015158061247d575060105415155b905090565b60105460009061247d90612d37565b6001600160a01b0381166000908152601160205260408120600201546107fb90612d37565b6001600160a01b0381166000908152601160205260408120600101546107fb90612d91565b6001600160a01b0381166000908152601160205260408120600101541515806107fb5750506001600160a01b0316600090815260116020526040902060020154151590565b600081116125805760405162461bcd60e51b815260206004820152602760248201527f5553444345543a206e6f6e2d706f73697469766520616d6f756e74206e6f7420604482015266185b1b1bddd95960ca1b6064820152608401610830565b600061258e6004600a613585565b61259785612dd6565b6125a19084613653565b6125ab919061351f565b90508015612624576125bd8183613507565b6001600160a01b03851660009081526020819052604090205410156126245760405162461bcd60e51b815260206004820152601c60248201527f5553444345543a20696e73756666696369656e742062616c616e6365000000006044820152606401610830565b61262f848484612a3a565b801561269257612640843083612a3a565b80601660008282546126529190613507565b90915550506040518181526001600160a01b038516907f702e2f1dfe86541ed8ba66c4c273be851aa8ab4424c4efd4d1613e1a73aeff5690602001611d29565b50505050565b60055460ff166126e15760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610830565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6001600160a01b03821661278b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610830565b61279782600083612e1d565b6001600160a01b0382166000908152602081905260409020548181101561280b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610830565b6001600160a01b038316600090815260208190526040812083830390556002805484929061283a908490613672565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a36111c3565b6001600160a01b0381166128e55760405162461bcd60e51b815260206004820152602160248201527f4f776e61626c653a207a65726f2061646472657373206e6f7420616c6c6f77656044820152601960fa1b6064820152608401610830565b6007546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b0319166001600160a01b0392909216919091179055565b611a608282612f5a565b6000805b82518110156129b55782818151811061297857634e487b7160e01b600052603260045260246000fd5b60200260200101516001600160a01b0316846001600160a01b031614156129a35760019150506107fb565b806129ad816136c4565b91505061294f565b5060009392505050565b60055460ff1615612a055760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610830565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25861270e3390565b6001600160a01b038316612a9e5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610830565b6001600160a01b038216612b005760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610830565b612b0b838383612e1d565b6001600160a01b03831660009081526020819052604090205481811015612b835760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610830565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290612bba908490613507565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051612c0691815260200190565b60405180910390a3612692565b600f5460009061247d90612d91565b60006001600160a01b038316612c7a5760405162461bcd60e51b815260206004820152601760248201527f3078302061646472657373206e6f7420616c6c6f7765640000000000000000006044820152606401610830565b6001600160a01b038316331415612cd35760405162461bcd60e51b815260206004820152601860248201527f73656c662061646472657373206e6f7420616c6c6f77656400000000000000006044820152606401610830565b6001600160a01b038316600081815260066020908152604091829020805460ff191686151590811790915591519182527f48335238b4855f35377ed80f164e8c6f3c366e54ac00b96a6402d4a9814a03a5910160405180910390a250600192915050565b6000600a5460001415612d4c575060006109b2565b611a0a612d5b6004600a613585565b612d659190613672565b600a546004600a612d769190613585565b612d809085613653565b612d8a919061351f565b1192915050565b6000600a5460001415612da6575060006109b2565b611a0a600a546004600a612dba9190613585565b612dc49085613653565b612dce919061351f565b101592915050565b6001600160a01b03811660009081526015602052604081206001015460ff16612e01576014546107fb565b506001600160a01b031660009081526015602052604090205490565b60055460ff1615612e635760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610830565b33600090815260066020526040902054839060ff16158015612e9e57506001600160a01b03811660009081526006602052604090205460ff16155b612edb5760405162461bcd60e51b815260206004820152600e60248201526d30b1b1b7bab73a10333937bd32b760911b6044820152606401610830565b33600090815260066020526040902054839060ff16158015612f1657506001600160a01b03811660009081526006602052604090205460ff16155b612f535760405162461bcd60e51b815260206004820152600e60248201526d30b1b1b7bab73a10333937bd32b760911b6044820152606401610830565b5050505050565b6001600160a01b038216612fb05760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f2061646472657373006044820152606401610830565b612fbc60008383612e1d565b8060026000828254612fce9190613507565b90915550506001600160a01b03821660009081526020819052604081208054839290612ffb908490613507565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3611a60565b5080546000825590600052602060002090810190610c6b91905b808211156130745760008155600101613060565b5090565b80356001600160a01b03811681146109b257600080fd5b803580151581146109b257600080fd5b6000602082840312156130b0578081fd5b610bc482613078565b600080604083850312156130cb578081fd5b6130d483613078565b91506130e260208401613078565b90509250929050565b6000806000606084860312156130ff578081fd5b61310884613078565b925061311660208501613078565b91506131246040850161308f565b90509250925092565b600080600060608486031215613141578283fd5b61314a84613078565b925061315860208501613078565b9150604084013590509250925092565b6000806040838503121561317a578182fd5b61318383613078565b91506130e26020840161308f565b600080604083850312156131a3578182fd5b6131ac83613078565b946020939093013593505050565b6000806000606084860312156131ce578283fd5b6131d784613078565b9250602084013591506131246040850161308f565b6000602082840312156131fd578081fd5b610bc48261308f565b600060208284031215613217578081fd5b5035919050565b6000815180845260208085019450808401835b838110156132565781516001600160a01b031687529582019590820190600101613231565b509495945050505050565b6004811061327f57634e487b7160e01b600052602160045260246000fd5b9052565b6001600160a01b0386811682528516602082015260a0604082018190526000906132af9083018661321e565b82810360608401526132c1818661321e565b9150506132d16080830184613261565b9695505050505050565b6000602080835283518082850152825b81811015613307578581018301518582016040015282016132eb565b818111156133185783604083870101525b50601f01601f1916929092016040019392505050565b60208082526026908201527f476f7665726e61626c653a2063616c6c6572206973206e6f7420746865206170604082015265383937bb32b960d11b606082015260800190565b6020808252602c908201527f41646d696e6973747261626c653a2070726f706f73616c2061646d696e20646160408201526b1d18481b9bdd08195e1a5cdd60a21b606082015260800190565b60208082526026908201527f476f7665726e61626c653a2063616c6c6572206973206e6f742074686520707260408201526537b837b9b2b960d11b606082015260800190565b60208082526022908201527f41646d696e6973747261626c653a2063616c6c6572206973206e6f742061646d60408201526134b760f11b606082015260800190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526026908201527f4d696e7461626c653a2070726f706f73616c206d696e742064617461206e6f7460408201526508195e1a5cdd60d21b606082015260800190565b6000858252608060208301526134dc608083018661321e565b82810360408401526134ee818661321e565b9150506134fe6060830184613261565b95945050505050565b6000821982111561351a5761351a6136df565b500190565b60008261353a57634e487b7160e01b81526012600452602481fd5b500490565b80825b6001808611613551575061357c565b818704821115613563576135636136df565b8086161561357057918102915b9490941c938002613542565b94509492505050565b6000610bc4600019848460008261359e57506001610bc4565b816135ab57506000610bc4565b81600181146135c157600281146135cb576135f8565b6001915050610bc4565b60ff8411156135dc576135dc6136df565b6001841b9150848211156135f2576135f26136df565b50610bc4565b5060208310610133831016604e8410600b841016171561362b575081810a83811115613626576136266136df565b610bc4565b613638848484600161353f565b80860482111561364a5761364a6136df565b02949350505050565b600081600019048311821515161561366d5761366d6136df565b500290565b600082821015613684576136846136df565b500390565b60028104600182168061369d57607f821691505b602082108114156136be57634e487b7160e01b600052602260045260246000fd5b50919050565b60006000198214156136d8576136d86136df565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212203742198ea44bfb316b9632b97e73b962916868bae1cc2e0b69630700033acd8b64736f6c63430008020033