608060405234801561001057600080fd5b5061001961001e565b6100dd565b600054610100900460ff161561008a5760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff908116146100db576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b611329806100ec6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c8063715018a6116100ad578063a9059cbb11610071578063a9059cbb1461024b578063c18e27341461025e578063d5adcbe014610271578063dd62ed3e14610284578063f2fde38b146102975761012c565b8063715018a6146101ff5780638da5cb5b1461020757806395d89b4114610222578063981b24d01461022a578063a457c2d7146102385761012c565b806339509351116100f457806339509351146101a65780634cd88b76146101b95780634ee2cd7e146101ce5780635c975abb146101e157806370a08231146101ec5761012c565b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017257806323b872dd14610184578063313ce56714610197575b600080fd5b6101396102aa565b6040516101469190611198565b60405180910390f35b61016261015d3660046110ac565b61033c565b6040519015158152602001610146565b6067545b604051908152602001610146565b610162610192366004611019565b610354565b60405160128152602001610146565b6101626101b43660046110ac565b610378565b6101cc6101c736600461111f565b61039a565b005b6101766101dc3660046110ac565b6104cc565b60975460ff16610162565b6101766101fa366004610fc6565b610517565b6101cc610536565b6033546040516001600160a01b039091168152602001610146565b61013961054a565b6101766101dc366004611180565b6101626102463660046110ac565b610559565b6101626102593660046110ac565b6105d4565b61016261026c3660046110d5565b6105e2565b61016261027f366004611054565b61066a565b610176610292366004610fe7565b6106e5565b6101cc6102a5366004610fc6565b610710565b6060606880546102b9906112a2565b80601f01602080910402602001604051908101604052809291908181526020018280546102e5906112a2565b80156103325780601f1061030757610100808354040283529160200191610332565b820191906000526020600020905b81548152906001019060200180831161031557829003601f168201915b5050505050905090565b60003361034a818585610789565b5060019392505050565b6000336103628582856108ad565b61036d858585610927565b506001949350505050565b60003361034a81858561038b83836106e5565b610395919061127e565b610789565b600054610100900460ff16158080156103ba5750600054600160ff909116105b806103d45750303b1580156103d4575060005460ff166001145b61043c5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b6000805460ff19166001179055801561045f576000805461ff0019166101001790555b610467610ad8565b6104718383610b07565b610479610b3c565b610481610b63565b80156104c7576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b505050565b60405162461bcd60e51b815260206004820152601e60248201527f536e617073686f742066756e6374696f6e616c6974792072656d6f76656400006044820152600090606401610433565b6001600160a01b0381166000908152606560205260409020545b919050565b61053e610b92565b6105486000610bec565b565b6060606980546102b9906112a2565b6000338161056782866106e5565b9050838110156105c75760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610433565b61036d8286868403610789565b60003361034a818585610927565b60008082116106035760405162461bcd60e51b8152600401610433906111eb565b338360005b8181101561065d57600087878381811061063257634e487b7160e01b600052603260045260246000fd5b90506020020160208101906106479190610fc6565b9050610654848288610927565b50600101610608565b5060019695505050505050565b600080821161068b5760405162461bcd60e51b8152600401610433906111eb565b8260005b8181101561065d5760008686838181106106b957634e487b7160e01b600052603260045260246000fd5b90506020020160208101906106ce9190610fc6565b90506106db888287610354565b505060010161068f565b6001600160a01b03918216600090815260666020908152604080832093909416825291909152205490565b610718610b92565b6001600160a01b03811661077d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610433565b61078681610bec565b50565b6001600160a01b0383166107eb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610433565b6001600160a01b03821661084c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610433565b6001600160a01b0383811660008181526066602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006108b984846106e5565b9050600019811461092157818110156109145760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610433565b6109218484848403610789565b50505050565b6001600160a01b03831661098b5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610433565b6001600160a01b0382166109ed5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610433565b6001600160a01b03831660009081526065602052604090205481811015610a655760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610433565b6001600160a01b0380851660008181526065602052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ac59086815260200190565b60405180910390a3610921848484610c3e565b600054610100900460ff16610aff5760405162461bcd60e51b815260040161043390611233565b610548610c59565b600054610100900460ff16610b2e5760405162461bcd60e51b815260040161043390611233565b610b388282610c89565b5050565b600054610100900460ff166105485760405162461bcd60e51b815260040161043390611233565b600054610100900460ff16610b8a5760405162461bcd60e51b815260040161043390611233565b610548610cd7565b6033546001600160a01b031633146105485760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610433565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382163014156104c7576104c78282610d0a565b600054610100900460ff16610c805760405162461bcd60e51b815260040161043390611233565b61054833610bec565b600054610100900460ff16610cb05760405162461bcd60e51b815260040161043390611233565b8151610cc3906068906020850190610e45565b5080516104c7906069906020840190610e45565b600054610100900460ff16610cfe5760405162461bcd60e51b815260040161043390611233565b6097805460ff19169055565b6001600160a01b038216610d6a5760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b6064820152608401610433565b6001600160a01b03821660009081526065602052604090205481811015610dde5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b6064820152608401610433565b6001600160a01b03831660008181526065602090815260408083208686039055606780548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36104c783600084610c3e565b828054610e51906112a2565b90600052602060002090601f016020900481019282610e735760008555610eb9565b82601f10610e8c57805160ff1916838001178555610eb9565b82800160010185558215610eb9579182015b82811115610eb9578251825591602001919060010190610e9e565b50610ec5929150610ec9565b5090565b5b80821115610ec55760008155600101610eca565b80356001600160a01b038116811461053157600080fd5b60008083601f840112610f06578081fd5b50813567ffffffffffffffff811115610f1d578182fd5b6020830191508360208260051b8501011115610f3857600080fd5b9250929050565b600082601f830112610f4f578081fd5b813567ffffffffffffffff80821115610f6a57610f6a6112dd565b604051601f8301601f19908116603f01168101908282118183101715610f9257610f926112dd565b81604052838152866020858801011115610faa578485fd5b8360208701602083013792830160200193909352509392505050565b600060208284031215610fd7578081fd5b610fe082610ede565b9392505050565b60008060408385031215610ff9578081fd5b61100283610ede565b915061101060208401610ede565b90509250929050565b60008060006060848603121561102d578081fd5b61103684610ede565b925061104460208501610ede565b9150604084013590509250925092565b60008060008060608587031215611069578081fd5b61107285610ede565b9350602085013567ffffffffffffffff81111561108d578182fd5b61109987828801610ef5565b9598909750949560400135949350505050565b600080604083850312156110be578182fd5b6110c783610ede565b946020939093013593505050565b6000806000604084860312156110e9578283fd5b833567ffffffffffffffff8111156110ff578384fd5b61110b86828701610ef5565b909790965060209590950135949350505050565b60008060408385031215611131578182fd5b823567ffffffffffffffff80821115611148578384fd5b61115486838701610f3f565b93506020850135915080821115611169578283fd5b5061117685828601610f3f565b9150509250929050565b600060208284031215611191578081fd5b5035919050565b6000602080835283518082850152825b818110156111c4578581018301518582016040015282016111a8565b818111156111d55783604083870101525b50601f01601f1916929092016040019392505050565b60208082526028908201527f4d656f77546f6b656e3a20616d6f756e74206d75737420626520677265617465604082015267072207468616e20360c41b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6000821982111561129d57634e487b7160e01b81526011600452602481fd5b500190565b600181811c908216806112b657607f821691505b602082108114156112d757634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fdfea2646970667358221220e706889488cd9cf204d5a19032fb55e828024db68876b7784ca974d3b3f9868064736f6c63430008030033