60a06040526005805460ff60a01b1916600160a01b1790553480156200002457600080fd5b506b033b2e3c9fd0803ce80000006040518060400160405280601b81526020017f43616c76617269613a204475656c73206f6620457465726e69747900000000008152506040518060400160405280600381526020016252494160e81b815250816003908162000095919062000313565b506004620000a4828262000313565b50505060008111620000fd5760405162461bcd60e51b815260206004820152601560248201527f45524332304361707065643a206361702069732030000000000000000000000060448201526064015b60405180910390fd5b608052600580546001600160a01b0319163390811790915560405181906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620001626200015a6005546001600160a01b031690565b600162000175565b6200016f30600162000175565b620003df565b6005546001600160a01b03163314620001d15760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401620000f4565b6001600160a01b03821660009081526009602052604090205481151560ff909116151503620002435760405162461bcd60e51b815260206004820152601d60248201527f417474656d707420746f20736574207468652073616d652076616c75650000006044820152606401620000f4565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200029957607f821691505b602082108103620002ba57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200030e57600081815260208120601f850160051c81016020861015620002e95750805b601f850160051c820191505b818110156200030a57828155600101620002f5565b5050505b505050565b81516001600160401b038111156200032f576200032f6200026e565b620003478162000340845462000284565b84620002c0565b602080601f8311600181146200037f5760008415620003665750858301515b600019600386901b1c1916600185901b1785556200030a565b600085815260208120601f198616915b82811015620003b0578886015182559484019460019091019084016200038f565b5085821015620003cf5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b608051611897620004026000396000818161027d015261126b01526118976000f3fe60806040526004361061016a5760003560e01c806370a08231116100d1578063a457c2d71161008a578063d8c6404b11610064578063d8c6404b1461043a578063dd62ed3e1461045b578063e55648f4146104a1578063f2fde38b146104c157600080fd5b8063a457c2d7146103da578063a9059cbb146103fa578063c2c7c03a1461041a57600080fd5b806370a0823114610316578063715018a61461034c5780638c0b5e22146103615780638da5cb5b1461037d57806395d89b41146103a5578063a0712d68146103ba57600080fd5b8063313ce56711610123578063313ce56714610252578063355274ea1461026e57806336fddb04146102a157806339509351146102c157806342966c68146102e1578063687e6f441461030157600080fd5b806306b091f91461017657806306fdde0314610198578063095ea7b3146101c3578063113f2e9d146101f357806318160ddd1461021357806323b872dd1461023257600080fd5b3661017157005b600080fd5b34801561018257600080fd5b5061019661019136600461155d565b6104e1565b005b3480156101a457600080fd5b506101ad61064a565b6040516101ba9190611587565b60405180910390f35b3480156101cf57600080fd5b506101e36101de36600461155d565b6106dc565b60405190151581526020016101ba565b3480156101ff57600080fd5b5061019661020e3660046115e3565b6106f3565b34801561021f57600080fd5b506002545b6040519081526020016101ba565b34801561023e57600080fd5b506101e361024d36600461161a565b610788565b34801561025e57600080fd5b50604051601281526020016101ba565b34801561027a57600080fd5b507f0000000000000000000000000000000000000000000000000000000000000000610224565b3480156102ad57600080fd5b506101966102bc3660046115e3565b610839565b3480156102cd57600080fd5b506101e36102dc36600461155d565b6108ce565b3480156102ed57600080fd5b506101966102fc366004611656565b61090a565b34801561030d57600080fd5b5061019661096c565b34801561032257600080fd5b5061022461033136600461166f565b6001600160a01b031660009081526020819052604090205490565b34801561035857600080fd5b50610196610a42565b34801561036d57600080fd5b50610224678ac7230489e8000081565b34801561038957600080fd5b506005546040516001600160a01b0390911681526020016101ba565b3480156103b157600080fd5b506101ad610ab6565b3480156103c657600080fd5b506101966103d5366004611656565b610ac5565b3480156103e657600080fd5b506101e36103f536600461155d565b610b38565b34801561040657600080fd5b506101e361041536600461155d565b610bd1565b34801561042657600080fd5b5061019661043536600461168a565b610bde565b34801561044657600080fd5b506005546101e390600160a01b900460ff1681565b34801561046757600080fd5b506102246104763660046116a7565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b3480156104ad57600080fd5b506101966104bc3660046115e3565b610c58565b3480156104cd57600080fd5b506101966104dc36600461166f565b610ced565b6005546001600160a01b031633146105145760405162461bcd60e51b815260040161050b906116da565b60405180910390fd5b6001600160a01b0382166105635760405162461bcd60e51b815260206004820152601660248201527543616e6e6f74206265207a65726f206164647265737360501b604482015260640161050b565b306001600160a01b038316036105b35760405162461bcd60e51b815260206004820152601560248201527443616e6e6f7420626520524941206164647265737360581b604482015260640161050b565b816001600160a01b031663a9059cbb6105d46005546001600160a01b031690565b6040516001600160e01b031960e084901b1681526001600160a01b039091166004820152602481018490526044016020604051808303816000875af1158015610621573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610645919061170f565b505050565b6060600380546106599061172c565b80601f01602080910402602001604051908101604052809291908181526020018280546106859061172c565b80156106d25780601f106106a7576101008083540402835291602001916106d2565b820191906000526020600020905b8154815290600101906020018083116106b557829003601f168201915b5050505050905090565b60006106e9338484610dd8565b5060015b92915050565b6005546001600160a01b0316331461071d5760405162461bcd60e51b815260040161050b906116da565b6001600160a01b03821660009081526007602052604090205481151560ff90911615150361075d5760405162461bcd60e51b815260040161050b90611766565b6001600160a01b03919091166000908152600760205260409020805460ff1916911515919091179055565b6001600160a01b0383166000908152600160209081526040808320338452909152812054600019811461082357828110156108165760405162461bcd60e51b815260206004820152602860248201527f45524332303a207472616e7366657220616d6f756e74206578636565647320616044820152676c6c6f77616e636560c01b606482015260840161050b565b6108238533858403610dd8565b61082e858585610efc565b506001949350505050565b6005546001600160a01b031633146108635760405162461bcd60e51b815260040161050b906116da565b6001600160a01b03821660009081526009602052604090205481151560ff9091161515036108a35760405162461bcd60e51b815260040161050b90611766565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b3360008181526001602090815260408083206001600160a01b038716845290915281205490916106e99185906109059086906117b3565b610dd8565b6005546001600160a01b031633146109345760405162461bcd60e51b815260040161050b906116da565b61093e338261111b565b60405181907fb90306ad06b2a6ff86ddc9327db583062895ef6540e62dc50add009db5b356eb90600090a250565b6005546001600160a01b031633146109965760405162461bcd60e51b815260040161050b906116da565b60006109aa6005546001600160a01b031690565b6001600160a01b03164760405160006040518083038185875af1925050503d80600081146109f4576040519150601f19603f3d011682016040523d82523d6000602084013e6109f9565b606091505b5050905080610a3f5760405162461bcd60e51b81526020600482015260126024820152714661696c656420746f20776974686472617760701b604482015260640161050b565b50565b6005546001600160a01b03163314610a6c5760405162461bcd60e51b815260040161050b906116da565b6005546040516000916001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600580546001600160a01b0319169055565b6060600480546106599061172c565b6005546001600160a01b03163314610aef5760405162461bcd60e51b815260040161050b906116da565b610b0a610b046005546001600160a01b031690565b82611269565b60405181907f07883703ed0e86588a40d76551c92f8a4b329e3bf19765e0e6749473c1a8466590600090a250565b3360009081526001602090815260408083206001600160a01b038616845290915281205482811015610bba5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b606482015260840161050b565b610bc73385858403610dd8565b5060019392505050565b60006106e9338484610efc565b6005546001600160a01b03163314610c085760405162461bcd60e51b815260040161050b906116da565b801515600560149054906101000a900460ff16151503610c3a5760405162461bcd60e51b815260040161050b90611766565b60058054911515600160a01b0260ff60a01b19909216919091179055565b6005546001600160a01b03163314610c825760405162461bcd60e51b815260040161050b906116da565b6001600160a01b03821660009081526006602052604090205481151560ff909116151503610cc25760405162461bcd60e51b815260040161050b90611766565b6001600160a01b03919091166000908152600660205260409020805460ff1916911515919091179055565b6005546001600160a01b03163314610d175760405162461bcd60e51b815260040161050b906116da565b6001600160a01b038116610d7c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161050b565b6005546040516001600160a01b038084169216907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038316610e3a5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b606482015260840161050b565b6001600160a01b038216610e9b5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b606482015260840161050b565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6001600160a01b038316610f225760405162461bcd60e51b815260040161050b906117c6565b6001600160a01b038216610f485760405162461bcd60e51b815260040161050b9061180b565b600554600160a01b900460ff168015610f7a57506001600160a01b03821660009081526009602052604090205460ff16155b8015610f9f57506001600160a01b03831660009081526009602052604090205460ff16155b8015610fe557506001600160a01b03831660009081526006602052604090205460ff1680610fe557506001600160a01b03821660009081526007602052604090205460ff165b156111105780678ac7230489e8000010156110425760405162461bcd60e51b815260206004820152601860248201527f416e746920626f743a20746f6f2062696720616d6f756e740000000000000000604482015260640161050b565b6001600160a01b03831660009081526006602052604081205460ff161561106a57508161106d565b50825b6001600160a01b03811660009081526008602052604090205442116110ea5760405162461bcd60e51b815260206004820152602d60248201527f416e746920626f743a20746f6f206d616e792074726164657320666f7220746860448201526c65206c617374206d696e75746560981b606482015260840161050b565b6110f542603c6112fa565b6001600160a01b039091166000908152600860205260409020555b61064583838361130d565b6001600160a01b03821661117b5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b606482015260840161050b565b6001600160a01b038216600090815260208190526040902054818110156111ef5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b606482015260840161050b565b6001600160a01b038316600090815260208190526040812083830390556002805484929061121e90849061184e565b90915550506040518281526000906001600160a01b038516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a3505050565b7f00000000000000000000000000000000000000000000000000000000000000008161129460025490565b61129e91906117b3565b11156112ec5760405162461bcd60e51b815260206004820152601960248201527f45524332304361707065643a2063617020657863656564656400000000000000604482015260640161050b565b6112f68282611462565b5050565b600061130682846117b3565b9392505050565b6001600160a01b0383166113335760405162461bcd60e51b815260040161050b906117c6565b6001600160a01b0382166113595760405162461bcd60e51b815260040161050b9061180b565b6001600160a01b038316600090815260208190526040902054818110156113d15760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b606482015260840161050b565b6001600160a01b038085166000908152602081905260408082208585039055918516815290812080548492906114089084906117b3565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161145491815260200190565b60405180910390a350505050565b6001600160a01b0382166114b85760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640161050b565b80600260008282546114ca91906117b3565b90915550506001600160a01b038216600090815260208190526040812080548392906114f79084906117b3565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b80356001600160a01b038116811461155857600080fd5b919050565b6000806040838503121561157057600080fd5b61157983611541565b946020939093013593505050565b600060208083528351808285015260005b818110156115b457858101830151858201604001528201611598565b506000604082860101526040601f19601f8301168501019250505092915050565b8015158114610a3f57600080fd5b600080604083850312156115f657600080fd5b6115ff83611541565b9150602083013561160f816115d5565b809150509250929050565b60008060006060848603121561162f57600080fd5b61163884611541565b925061164660208501611541565b9150604084013590509250925092565b60006020828403121561166857600080fd5b5035919050565b60006020828403121561168157600080fd5b61130682611541565b60006020828403121561169c57600080fd5b8135611306816115d5565b600080604083850312156116ba57600080fd5b6116c383611541565b91506116d160208401611541565b90509250929050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561172157600080fd5b8151611306816115d5565b600181811c9082168061174057607f821691505b60208210810361176057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252601d908201527f417474656d707420746f20736574207468652073616d652076616c7565000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b808201808211156106ed576106ed61179d565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b818103818111156106ed576106ed61179d56fea2646970667358221220684d3fbe2a5089e9b8bf715ff7d983c619d1dc51a7dccc74421443ce459ae1c464736f6c63430008110033