0x60806040523480156200001157600080fd5b50604051620011113803806200111183398101604081905262000034916200012d565b6040518060400160405280600a8152602001692ab9b2102a32ba3432b960b11b815250604051806040016040528060048152602001631554d11560e21b815250816003908162000085919062000204565b50600462000094828262000204565b505050620000b1620000ab620000d760201b60201c565b620000db565b600680546001600160a01b0319166001600160a01b0392909216919091179055620002d0565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000602082840312156200014057600080fd5b81516001600160a01b03811681146200015857600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200018a57607f821691505b602082108103620001ab57634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001ff57600081815260208120601f850160051c81016020861015620001da5750805b601f850160051c820191505b81811015620001fb57828155600101620001e6565b5050505b505050565b81516001600160401b038111156200022057620002206200015f565b620002388162000231845462000175565b84620001b1565b602080601f831160018114620002705760008415620002575750858301515b600019600386901b1c1916600185901b178555620001fb565b600085815260208120601f198616915b82811015620002a15788860151825594840194600190910190840162000280565b5085821015620002c05787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b610e3180620002e06000396000f3fe608060405234801561001057600080fd5b50600436106101215760003560e01c806370a08231116100ad578063a457c2d711610071578063a457c2d71461025a578063a9059cbb1461026d578063dd62ed3e14610280578063e78cea9214610293578063f2fde38b146102a657600080fd5b806370a08231146101e9578063715018a61461021257806379cc67901461021a5780638da5cb5b1461022d57806395d89b411461025257600080fd5b8063313ce567116100f4578063313ce5671461018c578063395093511461019b57806340c10f19146101ae57806342966c68146101c3578063645c8a4b146101d657600080fd5b806306fdde0314610126578063095ea7b31461014457806318160ddd1461016757806323b872dd14610179575b600080fd5b61012e6102b9565b60405161013b9190610c14565b60405180910390f35b610157610152366004610c7e565b61034b565b604051901515815260200161013b565b6002545b60405190815260200161013b565b610157610187366004610ca8565b610365565b6040516006815260200161013b565b6101576101a9366004610c7e565b610389565b6101c16101bc366004610c7e565b6103ab565b005b6101c16101d1366004610ce4565b61042f565b6101c16101e4366004610cfd565b61043c565b61016b6101f7366004610cfd565b6001600160a01b031660009081526020819052604090205490565b6101c1610466565b6101c1610228366004610c7e565b61047a565b6005546001600160a01b03165b6040516001600160a01b03909116815260200161013b565b61012e6104ed565b610157610268366004610c7e565b6104fc565b61015761027b366004610c7e565b610577565b61016b61028e366004610d1f565b610585565b60065461023a906001600160a01b031681565b6101c16102b4366004610cfd565b6105b0565b6060600380546102c890610d52565b80601f01602080910402602001604051908101604052809291908181526020018280546102f490610d52565b80156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b5050505050905090565b600033610359818585610626565b60019150505b92915050565b60003361037385828561074b565b61037e8585856107c5565b506001949350505050565b60003361035981858561039c8383610585565b6103a69190610d8c565b610626565b6006546001600160a01b031633146103de5760405162461bcd60e51b81526004016103d590610dad565b60405180910390fd5b6103e88282610969565b604080516001600160a01b0384168152602081018390527f0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d412139688591015b60405180910390a15050565b6104393382610a29565b50565b610444610b53565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b61046e610b53565b6104786000610bad565b565b6006546001600160a01b031633146104a45760405162461bcd60e51b81526004016103d590610dad565b6104ae8282610bff565b604080516001600160a01b0384168152602081018390527fcc16f5dbb4873280815c1ee09dbd06736cffcc184412cf7a71a0fdb75d397ca59101610423565b6060600480546102c890610d52565b6000338161050a8286610585565b90508381101561056a5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016103d5565b61037e8286868403610626565b6000336103598185856107c5565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6105b8610b53565b6001600160a01b03811661061d5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016103d5565b61043981610bad565b6001600160a01b0383166106885760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016103d5565b6001600160a01b0382166106e95760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016103d5565b6001600160a01b0383811660008181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b60006107578484610585565b905060001981146107bf57818110156107b25760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016103d5565b6107bf8484848403610626565b50505050565b6001600160a01b0383166108295760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016103d5565b6001600160a01b03821661088b5760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016103d5565b6001600160a01b038316600090815260208190526040902054818110156109035760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016103d5565b6001600160a01b03848116600081815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36107bf565b6001600160a01b0382166109bf5760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f20616464726573730060448201526064016103d5565b80600260008282546109d19190610d8c565b90915550506001600160a01b038216600081815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35b5050565b6001600160a01b038216610a895760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103d5565b6001600160a01b03821660009081526020819052604090205481811015610afd5760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103d5565b6001600160a01b0383166000818152602081815260408083208686039055600280548790039055518581529192917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910161073e565b6005546001600160a01b031633146104785760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016103d5565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610c0a82338361074b565b610a258282610a29565b600060208083528351808285015260005b81811015610c4157858101830151858201604001528201610c25565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610c7957600080fd5b919050565b60008060408385031215610c9157600080fd5b610c9a83610c62565b946020939093013593505050565b600080600060608486031215610cbd57600080fd5b610cc684610c62565b9250610cd460208501610c62565b9150604084013590509250925092565b600060208284031215610cf657600080fd5b5035919050565b600060208284031215610d0f57600080fd5b610d1882610c62565b9392505050565b60008060408385031215610d3257600080fd5b610d3b83610c62565b9150610d4960208401610c62565b90509250929050565b600181811c90821680610d6657607f821691505b602082108103610d8657634e487b7160e01b600052602260045260246000fd5b50919050565b8082018082111561035f57634e487b7160e01b600052601160045260246000fd5b6020808252602e908201527f555344543a206f6e6c7920746865206272696467652063616e2074726967676560408201526d722074686973206d6574686f642160901b60608201526080019056fea2646970667358221220d427edfc50e59b7ed4fe8c1592f3e5b890e5ab274d0b67b84e096e73beb6585264736f6c6343000812003300000000000000000000000054bc6c67ef11e1204ea8434c77e49e3645884dbc