0x60806040526004361061037a5760003560e01c806382eefb43116101d1578063c816841b11610102578063e207a92b116100a0578063f1d5f5171161006f578063f1d5f51714610a3b578063f2fde38b14610a5b578063f84ba65d14610a7b578063f872858a14610a9b57600080fd5b8063e207a92b146109c5578063ec28438a146109e5578063ef422a1814610a05578063f0cd1dac14610a2557600080fd5b8063d158272d116100dc578063d158272d14610923578063da00097d14610948578063dc44b6a014610969578063dd62ed3e1461097f57600080fd5b8063c816841b146108bd578063c8607952146108dd578063c867d60b146108f357600080fd5b8063a457c2d71161016f578063b831671911610149578063b831671914610851578063c2d4640e14610867578063c49b9a8014610887578063c5d24189146108a757600080fd5b8063a457c2d7146107f1578063a5d69d1f14610811578063a9059cbb1461083157600080fd5b80638da5cb5b116101ab5780638da5cb5b14610793578063914eb66a146107b157806395d89b41146107c6578063a08e671f146107db57600080fd5b806382eefb431461073757806388790a681461074d5780638b42507f1461076357600080fd5b80633ecad271116102ab5780635d608d671161024957806370a082311161022357806370a08231146106b557806375b08937146106eb5780637d1db4a51461070b578063807c2d9c1461072157600080fd5b80635d608d6714610672578063619e1e361461068957806361a23c691461069f57600080fd5b80634cb80fd5116102855780634cb80fd5146105ec5780635342acb41461060c57806357a5802f1461063c5780635881f3ef1461065257600080fd5b80633ecad2711461057b5780634a74bb02146105ab5780634b06049a146105cc57600080fd5b80632198cf6c116103185780632b112e49116102f25780632b112e4914610504578063313ce56714610519578063395093511461053b5780633b97084a1461055b57600080fd5b80632198cf6c1461049057806323b872dd146104b057806327c8f835146104d057600080fd5b8063095ea7b311610354578063095ea7b3146103f35780631694505e1461042357806318160ddd1461045b5780631870517a1461047057600080fd5b80630432ba341461038657806306fdde03146103af57806308733214146103d157600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039c60145481565b6040519081526020015b60405180910390f35b3480156103bb57600080fd5b506103c4610abc565b6040516103a691906122b9565b3480156103dd57600080fd5b506103f16103ec366004612307565b610b4e565b005b3480156103ff57600080fd5b5061041361040e36600461234b565b610bac565b60405190151581526020016103a6565b34801561042f57600080fd5b50601d54610443906001600160a01b031681565b6040516001600160a01b0390911681526020016103a6565b34801561046757600080fd5b5060185461039c565b34801561047c57600080fd5b506103f161048b366004612307565b610bc3565b34801561049c57600080fd5b506103f16104ab36600461238c565b610c12565b3480156104bc57600080fd5b506104136104cb3660046123c1565b610c67565b3480156104dc57600080fd5b506104437f000000000000000000000000000000000000000000000000000000000000dead81565b34801561051057600080fd5b5061039c610cd2565b34801561052557600080fd5b5060045460405160ff90911681526020016103a6565b34801561054757600080fd5b5061041361055636600461234b565b610d1c565b34801561056757600080fd5b506103f1610576366004612402565b610d52565b34801561058757600080fd5b5061041361059636600461241b565b600b6020526000908152604090205460ff1681565b3480156105b757600080fd5b50601e5461041390600160a81b900460ff1681565b3480156105d857600080fd5b50600554610443906001600160a01b031681565b3480156105f857600080fd5b506103f161060736600461241b565b610d81565b34801561061857600080fd5b5061041361062736600461241b565b60086020526000908152604090205460ff1681565b34801561064857600080fd5b5061039c60125481565b34801561065e57600080fd5b5061044361066d36600461241b565b610dd3565b34801561067e57600080fd5b506103f16000601c55565b34801561069557600080fd5b5061039c60115481565b3480156106ab57600080fd5b5061039c60135481565b3480156106c157600080fd5b5061039c6106d036600461241b565b6001600160a01b031660009081526006602052604090205490565b3480156106f757600080fd5b506103f161070636600461241b565b61110b565b34801561071757600080fd5b5061039c60195481565b34801561072d57600080fd5b5061039c601a5481565b34801561074357600080fd5b5061039c60165481565b34801561075957600080fd5b5061039c600f5481565b34801561076f57600080fd5b5061041361077e36600461241b565b600a6020526000908152604090205460ff1681565b34801561079f57600080fd5b506000546001600160a01b0316610443565b3480156107bd57600080fd5b506103f1611157565b3480156107d257600080fd5b506103c46111cb565b3480156107e757600080fd5b5061039c60175481565b3480156107fd57600080fd5b5061041361080c36600461234b565b6111da565b34801561081d57600080fd5b506103f161082c366004612438565b611229565b34801561083d57600080fd5b5061041361084c36600461234b565b611271565b34801561085d57600080fd5b5061039c600e5481565b34801561087357600080fd5b506103f1610882366004612307565b61127e565b34801561089357600080fd5b506103f16108a2366004612438565b6112cd565b3480156108b357600080fd5b5061039c600d5481565b3480156108c957600080fd5b50601e54610443906001600160a01b031681565b3480156108e957600080fd5b5061039c60105481565b3480156108ff57600080fd5b5061041361090e36600461241b565b60096020526000908152604090205460ff1681565b34801561092f57600080fd5b506004546104439061010090046001600160a01b031681565b34801561095457600080fd5b50601e5461041390600160b01b900460ff1681565b34801561097557600080fd5b5061039c600c5481565b34801561098b57600080fd5b5061039c61099a366004612453565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156109d157600080fd5b506103f16109e036600461241b565b61134f565b3480156109f157600080fd5b506103f1610a00366004612402565b61139d565b348015610a1157600080fd5b506103f1610a2036600461238c565b611453565b348015610a3157600080fd5b5061039c60155481565b348015610a4757600080fd5b506103f1610a56366004612402565b6114a8565b348015610a6757600080fd5b506103f1610a7636600461241b565b6114d7565b348015610a8757600080fd5b506103f1610a9636600461238c565b6115c1565b348015610aa757600080fd5b50601e5461041390600160b81b900460ff1681565b606060028054610acb9061248c565b80601f0160208091040260200160405190810160405280929190818152602001828054610af79061248c565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050905090565b6000546001600160a01b03163314610b815760405162461bcd60e51b8152600401610b78906124c6565b60405180910390fd5b600f83905560108290556011819055610ba481610b9e8585611616565b90611616565b601655505050565b6000610bb9338484611675565b5060015b92915050565b6000546001600160a01b03163314610bed5760405162461bcd60e51b8152600401610b78906124c6565b600c839055600d829055600e819055610c0a81610b9e8585611616565b601555505050565b6000546001600160a01b03163314610c3c5760405162461bcd60e51b8152600401610b78906124c6565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610c74848484611799565b50610cc78433610cc285604051806060016040528060288152602001612673602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611b68565b611675565b5060015b9392505050565b7f000000000000000000000000000000000000000000000000000000000000dead6001600160a01b0316600090815260066020526040812054601854610d1791611ba2565b905090565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610bb9918590610cc29086611616565b6000546001600160a01b03163314610d7c5760405162461bcd60e51b8152600401610b78906124c6565b601b55565b6000546001600160a01b03163314610dab5760405162461bcd60e51b8152600401610b78906124c6565b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b03163314610dfe5760405162461bcd60e51b8152600401610b78906124c6565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6591906124fb565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed691906124fb565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610f21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4591906124fb565b91506001600160a01b03821661109c57806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb791906124fb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102891906124fb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611075573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109991906124fb565b91505b601e80546001600160a01b03199081166001600160a01b038581169182178455601d8054909316948116949094179091556000908152600960209081526040808320805460ff19908116600190811790925594549095168352600b909152902080549091169091179055919050565b6000546001600160a01b031633146111355760405162461bcd60e51b8152600401610b78906124c6565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111815760405162461bcd60e51b8152600401610b78906124c6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060038054610acb9061248c565b6000610bb93384610cc28560405180606001604052806025815260200161269b602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611b68565b6000546001600160a01b031633146112535760405162461bcd60e51b8152600401610b78906124c6565b601e8054911515600160b01b0260ff60b01b19909216919091179055565b6000610cc7338484611799565b6000546001600160a01b031633146112a85760405162461bcd60e51b8152600401610b78906124c6565b6012839055601382905560148190556112c581610b9e8585611616565b601755505050565b6000546001600160a01b031633146112f75760405162461bcd60e51b8152600401610b78906124c6565b601e8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061134490831515815260200190565b60405180910390a150565b6000546001600160a01b031633146113795760405162461bcd60e51b8152600401610b78906124c6565b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b6000546001600160a01b031633146113c75760405162461bcd60e51b8152600401610b78906124c6565b606460185460046113d8919061252e565b6113e29190612545565b81101561144e5760405162461bcd60e51b815260206004820152603460248201527f4d61782077616c6c65742073686f756c64206265206c657373206f7220657571604482015273616c20746f20342520746f74616c537570706c7960601b6064820152608401610b78565b601955565b6000546001600160a01b0316331461147d5760405162461bcd60e51b8152600401610b78906124c6565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146114d25760405162461bcd60e51b8152600401610b78906124c6565b601a55565b6000546001600160a01b031633146115015760405162461bcd60e51b8152600401610b78906124c6565b6001600160a01b0381166115665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b78565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146115eb5760405162461bcd60e51b8152600401610b78906124c6565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000806116238385612567565b905083811015610ccb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b78565b6001600160a01b0383166116d75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b78565b6001600160a01b0382166117385760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b78565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166117ff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b78565b6001600160a01b0383166118615760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b78565b601e54600160a01b900460ff16156118855761187e848484611be4565b9050610ccb565b6001600160a01b0384166000908152600a602052604090205460ff161580156118c757506001600160a01b0383166000908152600a602052604090205460ff16155b1561192f5760195482111561192f5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b78565b30600090815260066020526040902054601b548110801590819061195d5750601e54600160a01b900460ff16155b801561198257506001600160a01b0386166000908152600b602052604090205460ff16155b80156119975750601e54600160a81b900460ff165b156119bd57601e54600160b01b900460ff16156119b457601b5491505b6119bd82611cca565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260069091529190912054611a0f918690611b68565b6001600160a01b038716600090815260066020908152604080832093909355600890529081205460ff1680611a5c57506001600160a01b03861660009081526008602052604090205460ff165b611a7057611a6b878787611e05565b611a72565b845b601e54909150600160b81b900460ff168015611aa757506001600160a01b03861660009081526009602052604090205460ff16155b15611add57601a54611ad282610b9e896001600160a01b031660009081526006602052604090205490565b1115611add57600080fd5b6001600160a01b038616600090815260066020526040902054611b009082611616565b6001600160a01b0380881660008181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b549085815260200190565b60405180910390a360019350505050610ccb565b60008184841115611b8c5760405162461bcd60e51b8152600401610b7891906122b9565b506000611b99848661257a565b95945050505050565b6000610ccb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b68565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611c35918490611b68565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611c649083611616565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cb89086815260200190565b60405180910390a35060019392505050565b601e805460ff60a01b1916600160a01b179055601754601254600091611d0091600291611cfa9182908790611f24565b90611fa6565b90506000611d0e8383611ba2565b9050611d1981611fe8565b6012544790600090611d3990611d30906002611fa6565b60175490611ba2565b90506000611d5b6002611cfa84611cfa60125488611f2490919063ffffffff16565b90506000611d7883611cfa60145487611f2490919063ffffffff16565b90506000611d9082611d8a8786611ba2565b90611ba2565b90508015611db357600454611db39061010090046001600160a01b03168261217b565b8115611dcf57600554611dcf906001600160a01b03168361217b565b600083118015611ddf5750600087115b15611dee57611dee87846121b6565b5050601e805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600b6020526040812054819060ff1615611e4957611e426064611cfa60155486611f2490919063ffffffff16565b9050611ea0565b6001600160a01b0384166000908152600b602052604090205460ff1615611ea0576001601c5410611e8e57611e426064611cfa60165486611f2490919063ffffffff16565b611e9d6064611cfa8582611f24565b90505b8015611f1a5730600090815260066020526040902054611ec09082611616565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f119085815260200190565b60405180910390a35b611b998382611ba2565b600082600003611f3657506000610bbd565b6000611f42838561252e565b905082611f4f8583612545565b14610ccb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b78565b6000610ccb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061228b565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061201d5761201d61258d565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612076573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209a91906124fb565b816001815181106120ad576120ad61258d565b6001600160a01b039283166020918202929092010152601d546120d39130911684611675565b601d5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061210c9085906000908690309042906004016125e7565b600060405180830381600087803b15801561212657600080fd5b505af115801561213a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161216f929190612623565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156121b1573d6000803e3d6000fd5b505050565b601d546121ce9030906001600160a01b031684611675565b601d546001600160a01b031663f305d7198230856000806121f76000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561225f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122849190612644565b5050505050565b600081836122ac5760405162461bcd60e51b8152600401610b7891906122b9565b506000611b998486612545565b600060208083528351808285015260005b818110156122e6578581018301518582016040015282016122ca565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060006060848603121561231c57600080fd5b505081359360208301359350604090920135919050565b6001600160a01b038116811461234857600080fd5b50565b6000806040838503121561235e57600080fd5b823561236981612333565b946020939093013593505050565b8035801515811461238757600080fd5b919050565b6000806040838503121561239f57600080fd5b82356123aa81612333565b91506123b860208401612377565b90509250929050565b6000806000606084860312156123d657600080fd5b83356123e181612333565b925060208401356123f181612333565b929592945050506040919091013590565b60006020828403121561241457600080fd5b5035919050565b60006020828403121561242d57600080fd5b8135610ccb81612333565b60006020828403121561244a57600080fd5b610ccb82612377565b6000806040838503121561246657600080fd5b823561247181612333565b9150602083013561248181612333565b809150509250929050565b600181811c908216806124a057607f821691505b6020821081036124c057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561250d57600080fd5b8151610ccb81612333565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610bbd57610bbd612518565b60008261256257634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610bbd57610bbd612518565b81810381811115610bbd57610bbd612518565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156125dc5781516001600160a01b0316875295820195908201906001016125b7565b509495945050505050565b85815284602082015260a06040820152600061260660a08301866125a3565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061263c60408301846125a3565b949350505050565b60008060006060848603121561265957600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205addc42970e557fb5bb183ce904f08f15ff0b8151a46b6f79f795a8d0236db9164736f6c63430008130033
0x60e0604052600560a090815264534149465560d81b60c052600290620000269082620006a3565b506040805180820190915260048152635341465560e01b6020820152600390620000519082620006a3565b506004805474094f4b46978189e0cc4ec7573eb8519fd2b2979a096001600160a81b0319909116179055600580546001600160a01b03191673094f4b46978189e0cc4ec7573eb8519fd2b2979a17905561dead6080526000600c819055600d819055600e819055600f8190556010819055601181905560128190556013819055601481905560158190556016819055601755620000f16009600a62000882565b62000102906402540be4006200089a565b601855606460185460076200011891906200089a565b620001249190620008b4565b601955601854601a5561271060185460056200014191906200089a565b6200014d9190620008b4565b601b556002601c55601e805462ffffff60a81b19166201000160a81b1790553480156200017957600080fd5b50600080546001600160a01b031916339081178255604051909182917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506000737a250d5630b4cf539739df2c5dacb4c659f2488d9050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000213573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002399190620008d7565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000287573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002ad9190620008d7565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015620002fb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003219190620008d7565b601e80546001600160a01b039283166001600160a01b031991821617909155601d8054928416929091168217905560185430600090815260076020908152604080832094835293905291822055600190600890620003876000546001600160a01b031690565b6001600160a01b0316815260208082019290925260409081016000908120805494151560ff199586161790553081526008909252902080549091166001179055600e54600d54600c54620003e99291620003e291906200058f565b906200058f565b601555601154601054600f54620004079291620003e291906200058f565b601655601454601354601254620004259291620003e291906200058f565b601755600160096000620004416000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055601e549091168152600990925280822080548416600190811790915530835290822080549093168117909255600a90620004b16000546001600160a01b031690565b6001600160a01b03908116825260208083019390935260409182016000908120805495151560ff19968716179055308152600a8452828120805486166001908117909155601e549092168152600b909352908220805490931617909155601854906006906200051d3390565b6001600160a01b03168152602081019190915260400160002055336001600160a01b031660006001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6018546040516200058091815260200190565b60405180910390a35062000918565b6000806200059e838562000902565b905083811015620005f55760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015260640160405180910390fd5b90505b92915050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200062957607f821691505b6020821081036200064a57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200069e57600081815260208120601f850160051c81016020861015620006795750805b601f850160051c820191505b818110156200069a5782815560010162000685565b5050505b505050565b81516001600160401b03811115620006bf57620006bf620005fe565b620006d781620006d0845462000614565b8462000650565b602080601f8311600181146200070f5760008415620006f65750858301515b600019600386901b1c1916600185901b1785556200069a565b600085815260208120601f198616915b8281101562000740578886015182559484019460019091019084016200071f565b50858210156200075f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b80851115620007c6578160001904821115620007aa57620007aa6200076f565b80851615620007b857918102915b93841c93908002906200078a565b509250929050565b600082620007df57506001620005f8565b81620007ee57506000620005f8565b8160018114620008075760028114620008125762000832565b6001915050620005f8565b60ff8411156200082657620008266200076f565b50506001821b620005f8565b5060208310610133831016604e8410600b841016171562000857575081810a620005f8565b62000863838362000785565b80600019048211156200087a576200087a6200076f565b029392505050565b60006200089360ff841683620007ce565b9392505050565b8082028115828204841417620005f857620005f86200076f565b600082620008d257634e487b7160e01b600052601260045260246000fd5b500490565b600060208284031215620008ea57600080fd5b81516001600160a01b0381168114620005f557600080fd5b80820180821115620005f857620005f86200076f565b6080516126f56200093b600039600081816104e20152610cd401526126f56000f3fe60806040526004361061037a5760003560e01c806382eefb43116101d1578063c816841b11610102578063e207a92b116100a0578063f1d5f5171161006f578063f1d5f51714610a3b578063f2fde38b14610a5b578063f84ba65d14610a7b578063f872858a14610a9b57600080fd5b8063e207a92b146109c5578063ec28438a146109e5578063ef422a1814610a05578063f0cd1dac14610a2557600080fd5b8063d158272d116100dc578063d158272d14610923578063da00097d14610948578063dc44b6a014610969578063dd62ed3e1461097f57600080fd5b8063c816841b146108bd578063c8607952146108dd578063c867d60b146108f357600080fd5b8063a457c2d71161016f578063b831671911610149578063b831671914610851578063c2d4640e14610867578063c49b9a8014610887578063c5d24189146108a757600080fd5b8063a457c2d7146107f1578063a5d69d1f14610811578063a9059cbb1461083157600080fd5b80638da5cb5b116101ab5780638da5cb5b14610793578063914eb66a146107b157806395d89b41146107c6578063a08e671f146107db57600080fd5b806382eefb431461073757806388790a681461074d5780638b42507f1461076357600080fd5b80633ecad271116102ab5780635d608d671161024957806370a082311161022357806370a08231146106b557806375b08937146106eb5780637d1db4a51461070b578063807c2d9c1461072157600080fd5b80635d608d6714610672578063619e1e361461068957806361a23c691461069f57600080fd5b80634cb80fd5116102855780634cb80fd5146105ec5780635342acb41461060c57806357a5802f1461063c5780635881f3ef1461065257600080fd5b80633ecad2711461057b5780634a74bb02146105ab5780634b06049a146105cc57600080fd5b80632198cf6c116103185780632b112e49116102f25780632b112e4914610504578063313ce56714610519578063395093511461053b5780633b97084a1461055b57600080fd5b80632198cf6c1461049057806323b872dd146104b057806327c8f835146104d057600080fd5b8063095ea7b311610354578063095ea7b3146103f35780631694505e1461042357806318160ddd1461045b5780631870517a1461047057600080fd5b80630432ba341461038657806306fdde03146103af57806308733214146103d157600080fd5b3661038157005b600080fd5b34801561039257600080fd5b5061039c60145481565b6040519081526020015b60405180910390f35b3480156103bb57600080fd5b506103c4610abc565b6040516103a691906122b9565b3480156103dd57600080fd5b506103f16103ec366004612307565b610b4e565b005b3480156103ff57600080fd5b5061041361040e36600461234b565b610bac565b60405190151581526020016103a6565b34801561042f57600080fd5b50601d54610443906001600160a01b031681565b6040516001600160a01b0390911681526020016103a6565b34801561046757600080fd5b5060185461039c565b34801561047c57600080fd5b506103f161048b366004612307565b610bc3565b34801561049c57600080fd5b506103f16104ab36600461238c565b610c12565b3480156104bc57600080fd5b506104136104cb3660046123c1565b610c67565b3480156104dc57600080fd5b506104437f000000000000000000000000000000000000000000000000000000000000000081565b34801561051057600080fd5b5061039c610cd2565b34801561052557600080fd5b5060045460405160ff90911681526020016103a6565b34801561054757600080fd5b5061041361055636600461234b565b610d1c565b34801561056757600080fd5b506103f1610576366004612402565b610d52565b34801561058757600080fd5b5061041361059636600461241b565b600b6020526000908152604090205460ff1681565b3480156105b757600080fd5b50601e5461041390600160a81b900460ff1681565b3480156105d857600080fd5b50600554610443906001600160a01b031681565b3480156105f857600080fd5b506103f161060736600461241b565b610d81565b34801561061857600080fd5b5061041361062736600461241b565b60086020526000908152604090205460ff1681565b34801561064857600080fd5b5061039c60125481565b34801561065e57600080fd5b5061044361066d36600461241b565b610dd3565b34801561067e57600080fd5b506103f16000601c55565b34801561069557600080fd5b5061039c60115481565b3480156106ab57600080fd5b5061039c60135481565b3480156106c157600080fd5b5061039c6106d036600461241b565b6001600160a01b031660009081526006602052604090205490565b3480156106f757600080fd5b506103f161070636600461241b565b61110b565b34801561071757600080fd5b5061039c60195481565b34801561072d57600080fd5b5061039c601a5481565b34801561074357600080fd5b5061039c60165481565b34801561075957600080fd5b5061039c600f5481565b34801561076f57600080fd5b5061041361077e36600461241b565b600a6020526000908152604090205460ff1681565b34801561079f57600080fd5b506000546001600160a01b0316610443565b3480156107bd57600080fd5b506103f1611157565b3480156107d257600080fd5b506103c46111cb565b3480156107e757600080fd5b5061039c60175481565b3480156107fd57600080fd5b5061041361080c36600461234b565b6111da565b34801561081d57600080fd5b506103f161082c366004612438565b611229565b34801561083d57600080fd5b5061041361084c36600461234b565b611271565b34801561085d57600080fd5b5061039c600e5481565b34801561087357600080fd5b506103f1610882366004612307565b61127e565b34801561089357600080fd5b506103f16108a2366004612438565b6112cd565b3480156108b357600080fd5b5061039c600d5481565b3480156108c957600080fd5b50601e54610443906001600160a01b031681565b3480156108e957600080fd5b5061039c60105481565b3480156108ff57600080fd5b5061041361090e36600461241b565b60096020526000908152604090205460ff1681565b34801561092f57600080fd5b506004546104439061010090046001600160a01b031681565b34801561095457600080fd5b50601e5461041390600160b01b900460ff1681565b34801561097557600080fd5b5061039c600c5481565b34801561098b57600080fd5b5061039c61099a366004612453565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205490565b3480156109d157600080fd5b506103f16109e036600461241b565b61134f565b3480156109f157600080fd5b506103f1610a00366004612402565b61139d565b348015610a1157600080fd5b506103f1610a2036600461238c565b611453565b348015610a3157600080fd5b5061039c60155481565b348015610a4757600080fd5b506103f1610a56366004612402565b6114a8565b348015610a6757600080fd5b506103f1610a7636600461241b565b6114d7565b348015610a8757600080fd5b506103f1610a9636600461238c565b6115c1565b348015610aa757600080fd5b50601e5461041390600160b81b900460ff1681565b606060028054610acb9061248c565b80601f0160208091040260200160405190810160405280929190818152602001828054610af79061248c565b8015610b445780601f10610b1957610100808354040283529160200191610b44565b820191906000526020600020905b815481529060010190602001808311610b2757829003601f168201915b5050505050905090565b6000546001600160a01b03163314610b815760405162461bcd60e51b8152600401610b78906124c6565b60405180910390fd5b600f83905560108290556011819055610ba481610b9e8585611616565b90611616565b601655505050565b6000610bb9338484611675565b5060015b92915050565b6000546001600160a01b03163314610bed5760405162461bcd60e51b8152600401610b78906124c6565b600c839055600d829055600e819055610c0a81610b9e8585611616565b601555505050565b6000546001600160a01b03163314610c3c5760405162461bcd60e51b8152600401610b78906124c6565b6001600160a01b03919091166000908152600960205260409020805460ff1916911515919091179055565b6000610c74848484611799565b50610cc78433610cc285604051806060016040528060288152602001612673602891396001600160a01b038a1660009081526007602090815260408083203384529091529020549190611b68565b611675565b5060015b9392505050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316600090815260066020526040812054601854610d1791611ba2565b905090565b3360008181526007602090815260408083206001600160a01b03871684529091528120549091610bb9918590610cc29086611616565b6000546001600160a01b03163314610d7c5760405162461bcd60e51b8152600401610b78906124c6565b601b55565b6000546001600160a01b03163314610dab5760405162461bcd60e51b8152600401610b78906124c6565b600480546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b600080546001600160a01b03163314610dfe5760405162461bcd60e51b8152600401610b78906124c6565b6000829050806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610e41573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e6591906124fb565b6001600160a01b031663e6a4390530836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015610eb2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610ed691906124fb565b6040516001600160e01b031960e085901b1681526001600160a01b03928316600482015291166024820152604401602060405180830381865afa158015610f21573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f4591906124fb565b91506001600160a01b03821661109c57806001600160a01b031663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f93573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb791906124fb565b6001600160a01b031663c9c6539630836001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611004573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061102891906124fb565b6040516001600160e01b031960e085901b1681526001600160a01b039283166004820152911660248201526044016020604051808303816000875af1158015611075573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061109991906124fb565b91505b601e80546001600160a01b03199081166001600160a01b038581169182178455601d8054909316948116949094179091556000908152600960209081526040808320805460ff19908116600190811790925594549095168352600b909152902080549091169091179055919050565b6000546001600160a01b031633146111355760405162461bcd60e51b8152600401610b78906124c6565b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146111815760405162461bcd60e51b8152600401610b78906124c6565b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b606060038054610acb9061248c565b6000610bb93384610cc28560405180606001604052806025815260200161269b602591393360009081526007602090815260408083206001600160a01b038d1684529091529020549190611b68565b6000546001600160a01b031633146112535760405162461bcd60e51b8152600401610b78906124c6565b601e8054911515600160b01b0260ff60b01b19909216919091179055565b6000610cc7338484611799565b6000546001600160a01b031633146112a85760405162461bcd60e51b8152600401610b78906124c6565b6012839055601382905560148190556112c581610b9e8585611616565b601755505050565b6000546001600160a01b031633146112f75760405162461bcd60e51b8152600401610b78906124c6565b601e8054821515600160a81b0260ff60a81b199091161790556040517f53726dfcaf90650aa7eb35524f4d3220f07413c8d6cb404cc8c18bf5591bc1599061134490831515815260200190565b60405180910390a150565b6000546001600160a01b031633146113795760405162461bcd60e51b8152600401610b78906124c6565b6001600160a01b03166000908152600b60205260409020805460ff19166001179055565b6000546001600160a01b031633146113c75760405162461bcd60e51b8152600401610b78906124c6565b606460185460046113d8919061252e565b6113e29190612545565b81101561144e5760405162461bcd60e51b815260206004820152603460248201527f4d61782077616c6c65742073686f756c64206265206c657373206f7220657571604482015273616c20746f20342520746f74616c537570706c7960601b6064820152608401610b78565b601955565b6000546001600160a01b0316331461147d5760405162461bcd60e51b8152600401610b78906124c6565b6001600160a01b03919091166000908152600860205260409020805460ff1916911515919091179055565b6000546001600160a01b031633146114d25760405162461bcd60e51b8152600401610b78906124c6565b601a55565b6000546001600160a01b031633146115015760405162461bcd60e51b8152600401610b78906124c6565b6001600160a01b0381166115665760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610b78565b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6000546001600160a01b031633146115eb5760405162461bcd60e51b8152600401610b78906124c6565b6001600160a01b03919091166000908152600a60205260409020805460ff1916911515919091179055565b6000806116238385612567565b905083811015610ccb5760405162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006044820152606401610b78565b6001600160a01b0383166116d75760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610b78565b6001600160a01b0382166117385760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610b78565b6001600160a01b0383811660008181526007602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b60006001600160a01b0384166117ff5760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b6064820152608401610b78565b6001600160a01b0383166118615760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b6064820152608401610b78565b601e54600160a01b900460ff16156118855761187e848484611be4565b9050610ccb565b6001600160a01b0384166000908152600a602052604090205460ff161580156118c757506001600160a01b0383166000908152600a602052604090205460ff16155b1561192f5760195482111561192f5760405162461bcd60e51b815260206004820152602860248201527f5472616e7366657220616d6f756e74206578636565647320746865206d6178546044820152673c20b6b7bab73a1760c11b6064820152608401610b78565b30600090815260066020526040902054601b548110801590819061195d5750601e54600160a01b900460ff16155b801561198257506001600160a01b0386166000908152600b602052604090205460ff16155b80156119975750601e54600160a81b900460ff165b156119bd57601e54600160b01b900460ff16156119b457601b5491505b6119bd82611cca565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b038916600090815260069091529190912054611a0f918690611b68565b6001600160a01b038716600090815260066020908152604080832093909355600890529081205460ff1680611a5c57506001600160a01b03861660009081526008602052604090205460ff165b611a7057611a6b878787611e05565b611a72565b845b601e54909150600160b81b900460ff168015611aa757506001600160a01b03861660009081526009602052604090205460ff16155b15611add57601a54611ad282610b9e896001600160a01b031660009081526006602052604090205490565b1115611add57600080fd5b6001600160a01b038616600090815260066020526040902054611b009082611616565b6001600160a01b0380881660008181526006602052604090819020939093559151908916907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611b549085815260200190565b60405180910390a360019350505050610ccb565b60008184841115611b8c5760405162461bcd60e51b8152600401610b7891906122b9565b506000611b99848661257a565b95945050505050565b6000610ccb83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611b68565b6040805180820182526014815273496e73756666696369656e742042616c616e636560601b6020808301919091526001600160a01b0386166000908152600690915291822054611c35918490611b68565b6001600160a01b038086166000908152600660205260408082209390935590851681522054611c649083611616565b6001600160a01b0380851660008181526006602052604090819020939093559151908616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611cb89086815260200190565b60405180910390a35060019392505050565b601e805460ff60a01b1916600160a01b179055601754601254600091611d0091600291611cfa9182908790611f24565b90611fa6565b90506000611d0e8383611ba2565b9050611d1981611fe8565b6012544790600090611d3990611d30906002611fa6565b60175490611ba2565b90506000611d5b6002611cfa84611cfa60125488611f2490919063ffffffff16565b90506000611d7883611cfa60145487611f2490919063ffffffff16565b90506000611d9082611d8a8786611ba2565b90611ba2565b90508015611db357600454611db39061010090046001600160a01b03168261217b565b8115611dcf57600554611dcf906001600160a01b03168361217b565b600083118015611ddf5750600087115b15611dee57611dee87846121b6565b5050601e805460ff60a01b19169055505050505050565b6001600160a01b0383166000908152600b6020526040812054819060ff1615611e4957611e426064611cfa60155486611f2490919063ffffffff16565b9050611ea0565b6001600160a01b0384166000908152600b602052604090205460ff1615611ea0576001601c5410611e8e57611e426064611cfa60165486611f2490919063ffffffff16565b611e9d6064611cfa8582611f24565b90505b8015611f1a5730600090815260066020526040902054611ec09082611616565b30600081815260066020526040908190209290925590516001600160a01b038716907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90611f119085815260200190565b60405180910390a35b611b998382611ba2565b600082600003611f3657506000610bbd565b6000611f42838561252e565b905082611f4f8583612545565b14610ccb5760405162461bcd60e51b815260206004820152602160248201527f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f6044820152607760f81b6064820152608401610b78565b6000610ccb83836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f00000000000081525061228b565b604080516002808252606082018352600092602083019080368337019050509050308160008151811061201d5761201d61258d565b6001600160a01b03928316602091820292909201810191909152601d54604080516315ab88c960e31b81529051919093169263ad5c46489260048083019391928290030181865afa158015612076573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061209a91906124fb565b816001815181106120ad576120ad61258d565b6001600160a01b039283166020918202929092010152601d546120d39130911684611675565b601d5460405163791ac94760e01b81526001600160a01b039091169063791ac9479061210c9085906000908690309042906004016125e7565b600060405180830381600087803b15801561212657600080fd5b505af115801561213a573d6000803e3d6000fd5b505050507f32cde87eb454f3a0b875ab23547023107cfad454363ec88ba5695e2c24aa52a7828260405161216f929190612623565b60405180910390a15050565b6040516001600160a01b0383169082156108fc029083906000818181858888f193505050501580156121b1573d6000803e3d6000fd5b505050565b601d546121ce9030906001600160a01b031684611675565b601d546001600160a01b031663f305d7198230856000806121f76000546001600160a01b031690565b60405160e088901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094526044840192909252606483015290911660848201524260a482015260c40160606040518083038185885af115801561225f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122849190612644565b5050505050565b600081836122ac5760405162461bcd60e51b8152600401610b7891906122b9565b506000611b998486612545565b600060208083528351808285015260005b818110156122e6578581018301518582016040015282016122ca565b506000604082860101526040601f19601f8301168501019250505092915050565b60008060006060848603121561231c57600080fd5b505081359360208301359350604090920135919050565b6001600160a01b038116811461234857600080fd5b50565b6000806040838503121561235e57600080fd5b823561236981612333565b946020939093013593505050565b8035801515811461238757600080fd5b919050565b6000806040838503121561239f57600080fd5b82356123aa81612333565b91506123b860208401612377565b90509250929050565b6000806000606084860312156123d657600080fd5b83356123e181612333565b925060208401356123f181612333565b929592945050506040919091013590565b60006020828403121561241457600080fd5b5035919050565b60006020828403121561242d57600080fd5b8135610ccb81612333565b60006020828403121561244a57600080fd5b610ccb82612377565b6000806040838503121561246657600080fd5b823561247181612333565b9150602083013561248181612333565b809150509250929050565b600181811c908216806124a057607f821691505b6020821081036124c057634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60006020828403121561250d57600080fd5b8151610ccb81612333565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610bbd57610bbd612518565b60008261256257634e487b7160e01b600052601260045260246000fd5b500490565b80820180821115610bbd57610bbd612518565b81810381811115610bbd57610bbd612518565b634e487b7160e01b600052603260045260246000fd5b600081518084526020808501945080840160005b838110156125dc5781516001600160a01b0316875295820195908201906001016125b7565b509495945050505050565b85815284602082015260a06040820152600061260660a08301866125a3565b6001600160a01b0394909416606083015250608001529392505050565b82815260406020820152600061263c60408301846125a3565b949350505050565b60008060006060848603121561265957600080fd5b835192506020840151915060408401519050925092509256fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa26469706673582212205addc42970e557fb5bb183ce904f08f15ff0b8151a46b6f79f795a8d0236db9164736f6c63430008130033