60806040523480156200001157600080fd5b5060408051808201825260078152664d616e6369756d60c81b6020808301918252835180850190945260048452634d414e4360e01b9084015281519192916200005d9160039162000345565b5080516200007390600490602084019062000345565b50506005805460ff19169055506200008b33620000b9565b620000b3620000a760055461010090046001600160a01b031690565b6402540be40062000113565b6200044f565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b0382166200016f5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064015b60405180910390fd5b6200017d600083836200020a565b8060026000828254620001919190620003eb565b90915550506001600160a01b03821660009081526020819052604081208054839290620001c0908490620003eb565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b60055460ff1615620002525760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640162000166565b6001600160a01b03831660009081526006602052604090205460ff1615620002bd5760405162461bcd60e51b815260206004820152601b60248201527f46726f6d206164647265737320697320626c61636b6c69737465640000000000604482015260640162000166565b6001600160a01b03821660009081526006602052604090205460ff1615620003285760405162461bcd60e51b815260206004820152601960248201527f546f206164647265737320697320626c61636b6c697374656400000000000000604482015260640162000166565b620003408383836200034060201b620009d01760201c565b505050565b828054620003539062000412565b90600052602060002090601f016020900481019282620003775760008555620003c2565b82601f106200039257805160ff1916838001178555620003c2565b82800160010185558215620003c2579182015b82811115620003c2578251825591602001919060010190620003a5565b50620003d0929150620003d4565b5090565b5b80821115620003d05760008155600101620003d5565b600082198211156200040d57634e487b7160e01b600052601160045260246000fd5b500190565b600181811c908216806200042757607f821691505b602082108114156200044957634e487b7160e01b600052602260045260246000fd5b50919050565b611333806200045f6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80635c975abb116100c3578063a457c2d71161007c578063a457c2d7146102ac578063a9059cbb146102bf578063ca73419e146102d2578063dd62ed3e146102e5578063f2c816ae146102f8578063f2fde38b1461030b57600080fd5b80635c975abb1461024a57806370a0823114610255578063715018a61461027e5780638456cb59146102865780638da5cb5b1461028e57806395d89b41146102a457600080fd5b8063313ce56711610115578063313ce567146101e357806332258794146101f2578063338d6c301461020557806335e82f3a1461021a578063395093511461022d5780633f4ba83a1461024057600080fd5b806306fdde0314610152578063095ea7b31461017057806318160ddd146101935780631e55a376146101a557806323b872dd146101d0575b600080fd5b61015a61031e565b6040516101679190610fcc565b60405180910390f35b61018361017e366004611038565b6103b0565b6040519015158152602001610167565b6002545b604051908152602001610167565b6101b86101b3366004611062565b6103c8565b6040516001600160a01b039091168152602001610167565b6101836101de36600461107b565b6103f2565b60405160028152602001610167565b6101836102003660046110cd565b610416565b61020d6104a2565b6040516101679190611192565b6101836102283660046111df565b610503565b61018361023b366004611038565b61063a565b61024861065c565b005b60055460ff16610183565b6101976102633660046111df565b6001600160a01b031660009081526020819052604090205490565b610248610696565b6102486106d0565b60055461010090046001600160a01b03166101b8565b61015a610708565b6101836102ba366004611038565b610717565b6101836102cd366004611038565b610792565b6101836102e03660046110cd565b6107a0565b6101976102f3366004611201565b61081d565b6101836103063660046111df565b610848565b6102486103193660046111df565b61092f565b60606003805461032d90611234565b80601f016020809104026020016040519081016040528092919081815260200182805461035990611234565b80156103a65780601f1061037b576101008083540402835291602001916103a6565b820191906000526020600020905b81548152906001019060200180831161038957829003601f168201915b5050505050905090565b6000336103be8185856109d5565b5060019392505050565b600781815481106103d857600080fd5b6000918252602090912001546001600160a01b0316905081565b600033610400858285610af9565b61040b858585610b73565b506001949350505050565b6005546000906001600160a01b036101009091041633146104525760405162461bcd60e51b815260040161044990611269565b60405180910390fd5b60005b825181101561049c576104808382815181106104735761047361129e565b6020026020010151610503565b1561048a57600191505b80610494816112ca565b915050610455565b50919050565b606060078054806020026020016040519081016040528092919081815260200182805480156103a657602002820191906000526020600020905b81546001600160a01b031681526001909101906020018083116104dc575050505050905090565b6005546000906001600160a01b036101009091041633146105365760405162461bcd60e51b815260040161044990611269565b6001600160a01b03821660009081526006602052604090205460ff1615610635576001600160a01b0382166000908152600660205260408120805460ff191690555b6007548110156105f357600781815481106105955761059561129e565b6000918252602090912001546001600160a01b03848116911614156105e157600781815481106105c7576105c761129e565b600091825260209091200180546001600160a01b03191690555b806105eb816112ca565b915050610578565b506040516001600160a01b03831681527fb9b02d6ef3069c468ac99865bad0d84ec0cf34671cb26053e5e47d415ae17564906020015b60405180910390a15060015b919050565b6000336103be81858561064d838361081d565b61065791906112e5565b6109d5565b6005546001600160a01b0361010090910416331461068c5760405162461bcd60e51b815260040161044990611269565b610694610d4c565b565b6005546001600160a01b036101009091041633146106c65760405162461bcd60e51b815260040161044990611269565b6106946000610ddf565b6005546001600160a01b036101009091041633146107005760405162461bcd60e51b815260040161044990611269565b610694610e39565b60606004805461032d90611234565b60003381610725828661081d565b9050838110156107855760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b6064820152608401610449565b61040b82868684036109d5565b6000336103be818585610b73565b6005546000906001600160a01b036101009091041633146107d35760405162461bcd60e51b815260040161044990611269565b60005b825181101561049c576108018382815181106107f4576107f461129e565b6020026020010151610848565b1561080b57600191505b80610815816112ca565b9150506107d6565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6005546000906001600160a01b0361010090910416331461087b5760405162461bcd60e51b815260040161044990611269565b6001600160a01b03821660009081526006602052604090205460ff16610635576007805460018082019092557fa66cc928b5edb82af9bd49922954155ab7b0942694bea4ce44661d9a8736c6880180546001600160a01b0319166001600160a01b038516908117909155600081815260066020908152604091829020805460ff1916909417909355519081527fee71faa2d1e96ac74ee4023d6ffa8abfa43b7648f51e3dbd8ec561823e9df1329101610629565b6005546001600160a01b0361010090910416331461095f5760405162461bcd60e51b815260040161044990611269565b6001600160a01b0381166109c45760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610449565b6109cd81610ddf565b50565b505050565b6001600160a01b038316610a375760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610449565b6001600160a01b038216610a985760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610449565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b6000610b05848461081d565b90506000198114610b6d5781811015610b605760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e63650000006044820152606401610449565b610b6d84848484036109d5565b50505050565b6001600160a01b038316610bd75760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610449565b6001600160a01b038216610c395760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610449565b610c44838383610eb4565b6001600160a01b03831660009081526020819052604090205481811015610cbc5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b6064820152608401610449565b6001600160a01b03808516600090815260208190526040808220858503905591851681529081208054849290610cf39084906112e5565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610d3f91815260200190565b60405180910390a3610b6d565b60055460ff16610d955760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b6044820152606401610449565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60055460ff1615610e7f5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610449565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610dc23390565b60055460ff1615610efa5760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b6044820152606401610449565b6001600160a01b03831660009081526006602052604090205460ff1615610f635760405162461bcd60e51b815260206004820152601b60248201527f46726f6d206164647265737320697320626c61636b6c697374656400000000006044820152606401610449565b6001600160a01b03821660009081526006602052604090205460ff16156109d05760405162461bcd60e51b815260206004820152601960248201527f546f206164647265737320697320626c61636b6c6973746564000000000000006044820152606401610449565b600060208083528351808285015260005b81811015610ff957858101830151858201604001528201610fdd565b8181111561100b576000604083870101525b50601f01601f1916929092016040019392505050565b80356001600160a01b038116811461063557600080fd5b6000806040838503121561104b57600080fd5b61105483611021565b946020939093013593505050565b60006020828403121561107457600080fd5b5035919050565b60008060006060848603121561109057600080fd5b61109984611021565b92506110a760208501611021565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600060208083850312156110e057600080fd5b823567ffffffffffffffff808211156110f857600080fd5b818501915085601f83011261110c57600080fd5b81358181111561111e5761111e6110b7565b8060051b604051601f19603f83011681018181108582111715611143576111436110b7565b60405291825284820192508381018501918883111561116157600080fd5b938501935b828510156111865761117785611021565b84529385019392850192611166565b98975050505050505050565b6020808252825182820181905260009190848201906040850190845b818110156111d35783516001600160a01b0316835292840192918401916001016111ae565b50909695505050505050565b6000602082840312156111f157600080fd5b6111fa82611021565b9392505050565b6000806040838503121561121457600080fd5b61121d83611021565b915061122b60208401611021565b90509250929050565b600181811c9082168061124857607f821691505b6020821081141561049c57634e487b7160e01b600052602260045260246000fd5b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156112de576112de6112b4565b5060010190565b600082198211156112f8576112f86112b4565b50019056fea264697066735822122047e8be35deb6a5b0da4c1fdddb7f12c067ac6e439eb7ecd5512e559f8722ceb064736f6c634300080b0033