0x608060405234801561001057600080fd5b50600436106102115760003560e01c8063715018a611610125578063b4b5ea57116100ad578063cf1be7861161007c578063cf1be786146106b0578063dd62ed3e146106b8578063e7a324dc146106e6578063f1127ed8146106ee578063f2fde38b1461074057610211565b8063b4b5ea57146105fe578063b646c19414610624578063c3cda5201461064a578063c77b5f681461069157610211565b80638da5cb5b116100f45780638da5cb5b1461057957806395d89b4114610581578063a0712d6814610589578063a457c2d7146105a6578063a9059cbb146105d257610211565b8063715018a614610517578063782d6fe11461051f5780637ecebe001461054b578063893d20e81461057157610211565b8063449a52f8116101a85780635c19a95c116101775780635c19a95c146104405780636cf4c88f146104665780636d218e481461048c5780636fcfff45146104b257806370a08231146104f157610211565b8063449a52f8146103945780634cd412d5146103c05780634ef09d79146103c8578063587cde1e146103fe57610211565b806323b872dd116101e457806323b872dd146102f5578063313ce5671461032b578063395093511461034957806342966c681461037557610211565b806306fdde0314610216578063095ea7b31461029357806318160ddd146102d357806320606b70146102ed575b600080fd5b61021e610766565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610258578181015183820152602001610240565b50505050905090810190601f1680156102855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102bf600480360360408110156102a957600080fd5b506001600160a01b0381351690602001356107fc565b604080519115158252519081900360200190f35b6102db61081a565b60408051918252519081900360200190f35b6102db610820565b6102bf6004803603606081101561030b57600080fd5b506001600160a01b03813581169160208101359091169060400135610844565b6103336108cb565b6040805160ff9092168252519081900360200190f35b6102bf6004803603604081101561035f57600080fd5b506001600160a01b0381351690602001356108d4565b6103926004803603602081101561038b57600080fd5b5035610922565b005b610392600480360360408110156103aa57600080fd5b506001600160a01b0381351690602001356109dd565b6102bf610a50565b610392600480360360608110156103de57600080fd5b506001600160a01b03813581169160208101359091169060400135610a5e565b6104246004803603602081101561041457600080fd5b50356001600160a01b0316610ab2565b604080516001600160a01b039092168252519081900360200190f35b6103926004803603602081101561045657600080fd5b50356001600160a01b0316610ad0565b6103926004803603602081101561047c57600080fd5b50356001600160a01b0316610add565b6102bf600480360360208110156104a257600080fd5b50356001600160a01b0316610b2a565b6104d8600480360360208110156104c857600080fd5b50356001600160a01b0316610b37565b6040805163ffffffff9092168252519081900360200190f35b6102db6004803603602081101561050757600080fd5b50356001600160a01b0316610b4f565b610392610b6a565b6102db6004803603604081101561053557600080fd5b506001600160a01b038135169060200135610c0c565b6102db6004803603602081101561056157600080fd5b50356001600160a01b0316610e14565b610424610e26565b610424610e35565b61021e610e44565b6102bf6004803603602081101561059f57600080fd5b5035610ea5565b6102bf600480360360408110156105bc57600080fd5b506001600160a01b038135169060200135610f18565b6102bf600480360360408110156105e857600080fd5b506001600160a01b038135169060200135610f80565b6102db6004803603602081101561061457600080fd5b50356001600160a01b0316610fbc565b6103926004803603602081101561063a57600080fd5b50356001600160a01b0316611020565b610392600480360360c081101561066057600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a0013561106d565b610392600480360360208110156106a757600080fd5b503515156112e0565b610392611352565b6102db600480360360408110156106ce57600080fd5b506001600160a01b038135811691602001351661135d565b6102db611388565b6107206004803603604081101561070457600080fd5b5080356001600160a01b0316906020013563ffffffff166113ac565b6040805163ffffffff909316835260208301919091528051918290030190f35b6103926004803603602081101561075657600080fd5b50356001600160a01b03166113d9565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107f25780601f106107c7576101008083540402835291602001916107f2565b820191906000526020600020905b8154815290600101906020018083116107d557829003601f168201915b5050505050905090565b6000610810610809611552565b8484611556565b5060015b92915050565b60045490565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000610851848484611642565b6108c18461085d611552565b6108bc856040518060600160405280602881526020016120c8602891396001600160a01b038a1660009081526003602052604081209061089b611552565b6001600160a01b031681526020810191909152604001600020549190611794565b611556565b5060019392505050565b60075460ff1690565b60006108106108e1611552565b846108bc85600360006108f2611552565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061182b565b61092a611552565b6000546001600160a01b0390811691161461097a576040805162461bcd60e51b815260206004820181905260248201526000805160206120f0833981519152604482015290519081900360640190fd5b806109b65760405162461bcd60e51b815260040180806020018281038252602d8152602001806121fa602d913960400191505060405180910390fd5b60006109c061081a565b9050808211156109cf57600080fd5b6109d93383611885565b5050565b6109e633610b2a565b610a215760405162461bcd60e51b81526004018080602001828103825260348152602001806122526034913960400191505060405180910390fd5b610a2b8282611975565b6001600160a01b038083166000908152600860205260408120546109d9921683611a5b565b600754610100900460ff1681565b610a6733610b2a565b610aa25760405162461bcd60e51b81526004018080602001828103825260348152602001806122526034913960400191505060405180910390fd5b610aad838383611642565b505050565b6001600160a01b039081166000908152600860205260409020541690565b610ada3382611b98565b50565b610ae633610b2a565b610b215760405162461bcd60e51b81526004018080602001828103825260348152602001806122526034913960400191505060405180910390fd5b610ada81611c2d565b6000610814600183611c6f565b600a6020526000908152604090205463ffffffff1681565b6001600160a01b031660009081526002602052604090205490565b610b72611552565b6000546001600160a01b03908116911614610bc2576040805162461bcd60e51b815260206004820181905260248201526000805160206120f0833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000438210610c4c5760405162461bcd60e51b815260040180806020018281038252602b815260200180612227602b913960400191505060405180910390fd5b6001600160a01b0383166000908152600a602052604090205463ffffffff1680610c7a576000915050610814565b6001600160a01b038416600090815260096020908152604080832063ffffffff600019860181168552925290912054168310610ce9576001600160a01b03841660009081526009602090815260408083206000199490940163ffffffff16835292905220600101549050610814565b6001600160a01b038416600090815260096020908152604080832083805290915290205463ffffffff16831015610d24576000915050610814565b600060001982015b8163ffffffff168163ffffffff161115610ddd57600282820363ffffffff16048103610d56611f88565b506001600160a01b038716600090815260096020908152604080832063ffffffff808616855290835292819020815180830190925280549093168082526001909301549181019190915290871415610db8576020015194506108149350505050565b805163ffffffff16871115610dcf57819350610dd6565b6001820392505b5050610d2c565b506001600160a01b038516600090815260096020908152604080832063ffffffff9094168352929052206001015491505092915050565b600b6020526000908152604090205481565b6000610e30610e35565b905090565b6000546001600160a01b031690565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107f25780601f106107c7576101008083540402835291602001916107f2565b6000610eaf611552565b6000546001600160a01b03908116911614610eff576040805162461bcd60e51b815260206004820181905260248201526000805160206120f0833981519152604482015290519081900360640190fd5b610f10610f0a611552565b83611975565b506001919050565b6000610810610f25611552565b846108bc856040518060600160405280602581526020016122866025913960036000610f4f611552565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611794565b600754600090610100900460ff1615610faa57610fa5610f9e611552565b8484611642565b610810565b610810610fb5611552565b8484610a5e565b6001600160a01b0381166000908152600a602052604081205463ffffffff1680610fe7576000611019565b6001600160a01b038316600090815260096020908152604080832063ffffffff60001986011684529091529020600101545b9392505050565b61102933610b2a565b6110645760405162461bcd60e51b81526004018080602001828103825260348152602001806122526034913960400191505060405180910390fd5b610ada81611cd6565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866611098610766565b805190602001206110a7611d18565b60408051602080820195909552808201939093526060830191909152306080808401919091528151808403909101815260a0830182528051908401207fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60c08401526001600160a01b038b1660e084015261010083018a90526101208084018a9052825180850390910181526101408401835280519085012061190160f01b6101608501526101628401829052610182808501829052835180860390910181526101a285018085528151918701919091206000918290526101c2860180865281905260ff8b166101e287015261020286018a90526102228601899052935192965090949293909260019261024280840193601f198301929081900390910190855afa1580156111da573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661122c5760405162461bcd60e51b815260040180806020018281038252602a815260200180611fc3602a913960400191505060405180910390fd5b6001600160a01b0381166000908152600b60205260409020805460018101909155891461128a5760405162461bcd60e51b81526004018080602001828103825260268152602001806121786026913960400191505060405180910390fd5b874211156112c95760405162461bcd60e51b815260040180806020018281038252602a81526020018061200f602a913960400191505060405180910390fd5b6112d3818b611b98565b505050505b505050505050565b6112e8611552565b6000546001600160a01b03908116911614611338576040805162461bcd60e51b815260206004820181905260248201526000805160206120f0833981519152604482015290519081900360640190fd5b600780549115156101000261ff0019909216919091179055565b61135b33611c2d565b565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b60096020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b6113e1611552565b6000546001600160a01b03908116911614611431576040805162461bcd60e51b815260206004820181905260248201526000805160206120f0833981519152604482015290519081900360640190fd5b6001600160a01b0381166114765760405162461bcd60e51b81526004018080602001828103825260268152602001806120396026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6114db8282611c6f565b1561152d576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b3390565b6001600160a01b03831661159b5760405162461bcd60e51b815260040180806020018281038252602481526020018061219e6024913960400191505060405180910390fd5b6001600160a01b0382166115e05760405162461bcd60e51b815260040180806020018281038252602281526020018061205f6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166116875760405162461bcd60e51b81526004018080602001828103825260258152602001806121536025913960400191505060405180910390fd5b6001600160a01b0382166116cc5760405162461bcd60e51b8152600401808060200182810382526023815260200180611fa06023913960400191505060405180910390fd5b61170981604051806060016040528060268152602001612081602691396001600160a01b0386166000908152600260205260409020549190611794565b6001600160a01b038085166000908152600260205260408082209390935590841681522054611738908261182b565b6001600160a01b0380841660008181526002602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156118235760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156117e85781810151838201526020016117d0565b50505050905090810190601f1680156118155780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611019576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0382166118ca5760405162461bcd60e51b81526004018080602001828103825260218152602001806121326021913960400191505060405180910390fd5b61190781604051806060016040528060228152602001611fed602291396001600160a01b0385166000908152600260205260409020549190611794565b6001600160a01b03831660009081526002602052604090205560045461192d9082611d1c565b6004556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b0382166119d0576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6004546119dd908261182b565b6004556001600160a01b038216600090815260026020526040902054611a03908261182b565b6001600160a01b03831660008181526002602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b816001600160a01b0316836001600160a01b031614158015611a7d5750600081115b15610aad576001600160a01b03831615611b0f576001600160a01b0383166000908152600a602052604081205463ffffffff169081611abd576000611aef565b6001600160a01b038516600090815260096020908152604080832063ffffffff60001987011684529091529020600101545b90506000611afd8285611d1c565b9050611b0b86848484611d5e565b5050505b6001600160a01b03821615610aad576001600160a01b0382166000908152600a602052604081205463ffffffff169081611b4a576000611b7c565b6001600160a01b038416600090815260096020908152604080832063ffffffff60001987011684529091529020600101545b90506000611b8a828561182b565b90506112d885848484611d5e565b6001600160a01b0380831660009081526008602052604081205490911690611bbf84610b4f565b6001600160a01b0385811660008181526008602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611c27828483611a5b565b50505050565b611c38600182611ec3565b6040516001600160a01b038216907fc6e35658c76ecdde40a54f31a91fb7c8615e9893cc0885584b27bb3433270d4690600090a250565b60006001600160a01b038216611cb65760405162461bcd60e51b81526004018080602001828103825260228152602001806121106022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611ce16001826114d1565b6040516001600160a01b038216907f835bddf1ceee4956e4329af9edf018523c1191238187a597453f6020bcadb04290600090a250565b4690565b600061101983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611794565b6000611d82436040518060600160405280603881526020016121c260389139611f2a565b905060008463ffffffff16118015611dcb57506001600160a01b038516600090815260096020908152604080832063ffffffff6000198901811685529252909120548282169116145b15611e08576001600160a01b038516600090815260096020908152604080832063ffffffff60001989011684529091529020600101829055611e79565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600984528681208b8616825284528681209551865490861663ffffffff199182161787559251600196870155908152600a9092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b611ecd8282611c6f565b611f085760405162461bcd60e51b81526004018080602001828103825260218152602001806120a76021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000816401000000008410611f805760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156117e85781810151838201526020016117d0565b509192915050565b60408051808201909152600080825260208201529056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737353686974537761703a3a64656c656761746542795369673a20696e76616c6964207369676e617475726545524332303a206275726e20616d6f756e7420657863656564732062616c616e636553686974537761703a3a64656c656761746542795369673a207369676e617475726520657870697265644f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737353686974537761703a3a64656c656761746542795369673a20696e76616c6964206e6f6e636545524332303a20617070726f76652066726f6d20746865207a65726f206164647265737353686974537761703a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d6265722065786365656473203332206269747353686974537761703a3a6275726e3a206275726e2076616c75652073686f756c64206e6f74206265207a65726f53686974537761703a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e6564417070726f766572526f6c653a2063616c6c657220646f6573206e6f7420686176652074686520417070726f76657220726f6c6545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220301cc0c91be0da607b92c08b42010f2badc698db05aff68f886e95d256d3fcce64736f6c634300060c0033
0x60806040526007805461ff00191690553480156200001c57600080fd5b506040518060400160405280600e81526020016d29b434ba29bbb0b8102a37b5b2b760911b81525060405180604001604052806008815260200167053686974537761760c41b8152506000620000776200010d60201b60201c565b600080546001600160a01b0319166001600160a01b0383169081178255604051929350917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a350620000cc3362000111565b8151620000e190600590602085019062000250565b508051620000f790600690602084019062000250565b50506007805460ff1916601217905550620002ec565b3390565b6200012c8160016200016360201b620014d11790919060201c565b6040516001600160a01b038216907f835bddf1ceee4956e4329af9edf018523c1191238187a597453f6020bcadb04290600090a250565b6200016f8282620001e7565b15620001c2576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b60006001600160a01b038216620002305760405162461bcd60e51b8152600401808060200182810382526022815260200180620025dc6022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200029357805160ff1916838001178555620002c3565b82800160010185558215620002c3579182015b82811115620002c3578251825591602001919060010190620002a6565b50620002d1929150620002d5565b5090565b5b80821115620002d15760008155600101620002d6565b6122e080620002fc6000396000f3fe608060405234801561001057600080fd5b50600436106102115760003560e01c8063715018a611610125578063b4b5ea57116100ad578063cf1be7861161007c578063cf1be786146106b0578063dd62ed3e146106b8578063e7a324dc146106e6578063f1127ed8146106ee578063f2fde38b1461074057610211565b8063b4b5ea57146105fe578063b646c19414610624578063c3cda5201461064a578063c77b5f681461069157610211565b80638da5cb5b116100f45780638da5cb5b1461057957806395d89b4114610581578063a0712d6814610589578063a457c2d7146105a6578063a9059cbb146105d257610211565b8063715018a614610517578063782d6fe11461051f5780637ecebe001461054b578063893d20e81461057157610211565b8063449a52f8116101a85780635c19a95c116101775780635c19a95c146104405780636cf4c88f146104665780636d218e481461048c5780636fcfff45146104b257806370a08231146104f157610211565b8063449a52f8146103945780634cd412d5146103c05780634ef09d79146103c8578063587cde1e146103fe57610211565b806323b872dd116101e457806323b872dd146102f5578063313ce5671461032b578063395093511461034957806342966c681461037557610211565b806306fdde0314610216578063095ea7b31461029357806318160ddd146102d357806320606b70146102ed575b600080fd5b61021e610766565b6040805160208082528351818301528351919283929083019185019080838360005b83811015610258578181015183820152602001610240565b50505050905090810190601f1680156102855780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b6102bf600480360360408110156102a957600080fd5b506001600160a01b0381351690602001356107fc565b604080519115158252519081900360200190f35b6102db61081a565b60408051918252519081900360200190f35b6102db610820565b6102bf6004803603606081101561030b57600080fd5b506001600160a01b03813581169160208101359091169060400135610844565b6103336108cb565b6040805160ff9092168252519081900360200190f35b6102bf6004803603604081101561035f57600080fd5b506001600160a01b0381351690602001356108d4565b6103926004803603602081101561038b57600080fd5b5035610922565b005b610392600480360360408110156103aa57600080fd5b506001600160a01b0381351690602001356109dd565b6102bf610a50565b610392600480360360608110156103de57600080fd5b506001600160a01b03813581169160208101359091169060400135610a5e565b6104246004803603602081101561041457600080fd5b50356001600160a01b0316610ab2565b604080516001600160a01b039092168252519081900360200190f35b6103926004803603602081101561045657600080fd5b50356001600160a01b0316610ad0565b6103926004803603602081101561047c57600080fd5b50356001600160a01b0316610add565b6102bf600480360360208110156104a257600080fd5b50356001600160a01b0316610b2a565b6104d8600480360360208110156104c857600080fd5b50356001600160a01b0316610b37565b6040805163ffffffff9092168252519081900360200190f35b6102db6004803603602081101561050757600080fd5b50356001600160a01b0316610b4f565b610392610b6a565b6102db6004803603604081101561053557600080fd5b506001600160a01b038135169060200135610c0c565b6102db6004803603602081101561056157600080fd5b50356001600160a01b0316610e14565b610424610e26565b610424610e35565b61021e610e44565b6102bf6004803603602081101561059f57600080fd5b5035610ea5565b6102bf600480360360408110156105bc57600080fd5b506001600160a01b038135169060200135610f18565b6102bf600480360360408110156105e857600080fd5b506001600160a01b038135169060200135610f80565b6102db6004803603602081101561061457600080fd5b50356001600160a01b0316610fbc565b6103926004803603602081101561063a57600080fd5b50356001600160a01b0316611020565b610392600480360360c081101561066057600080fd5b506001600160a01b038135169060208101359060408101359060ff6060820135169060808101359060a0013561106d565b610392600480360360208110156106a757600080fd5b503515156112e0565b610392611352565b6102db600480360360408110156106ce57600080fd5b506001600160a01b038135811691602001351661135d565b6102db611388565b6107206004803603604081101561070457600080fd5b5080356001600160a01b0316906020013563ffffffff166113ac565b6040805163ffffffff909316835260208301919091528051918290030190f35b6103926004803603602081101561075657600080fd5b50356001600160a01b03166113d9565b60058054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107f25780601f106107c7576101008083540402835291602001916107f2565b820191906000526020600020905b8154815290600101906020018083116107d557829003601f168201915b5050505050905090565b6000610810610809611552565b8484611556565b5060015b92915050565b60045490565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000610851848484611642565b6108c18461085d611552565b6108bc856040518060600160405280602881526020016120c8602891396001600160a01b038a1660009081526003602052604081209061089b611552565b6001600160a01b031681526020810191909152604001600020549190611794565b611556565b5060019392505050565b60075460ff1690565b60006108106108e1611552565b846108bc85600360006108f2611552565b6001600160a01b03908116825260208083019390935260409182016000908120918c16815292529020549061182b565b61092a611552565b6000546001600160a01b0390811691161461097a576040805162461bcd60e51b815260206004820181905260248201526000805160206120f0833981519152604482015290519081900360640190fd5b806109b65760405162461bcd60e51b815260040180806020018281038252602d8152602001806121fa602d913960400191505060405180910390fd5b60006109c061081a565b9050808211156109cf57600080fd5b6109d93383611885565b5050565b6109e633610b2a565b610a215760405162461bcd60e51b81526004018080602001828103825260348152602001806122526034913960400191505060405180910390fd5b610a2b8282611975565b6001600160a01b038083166000908152600860205260408120546109d9921683611a5b565b600754610100900460ff1681565b610a6733610b2a565b610aa25760405162461bcd60e51b81526004018080602001828103825260348152602001806122526034913960400191505060405180910390fd5b610aad838383611642565b505050565b6001600160a01b039081166000908152600860205260409020541690565b610ada3382611b98565b50565b610ae633610b2a565b610b215760405162461bcd60e51b81526004018080602001828103825260348152602001806122526034913960400191505060405180910390fd5b610ada81611c2d565b6000610814600183611c6f565b600a6020526000908152604090205463ffffffff1681565b6001600160a01b031660009081526002602052604090205490565b610b72611552565b6000546001600160a01b03908116911614610bc2576040805162461bcd60e51b815260206004820181905260248201526000805160206120f0833981519152604482015290519081900360640190fd5b600080546040516001600160a01b03909116907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a3600080546001600160a01b0319169055565b6000438210610c4c5760405162461bcd60e51b815260040180806020018281038252602b815260200180612227602b913960400191505060405180910390fd5b6001600160a01b0383166000908152600a602052604090205463ffffffff1680610c7a576000915050610814565b6001600160a01b038416600090815260096020908152604080832063ffffffff600019860181168552925290912054168310610ce9576001600160a01b03841660009081526009602090815260408083206000199490940163ffffffff16835292905220600101549050610814565b6001600160a01b038416600090815260096020908152604080832083805290915290205463ffffffff16831015610d24576000915050610814565b600060001982015b8163ffffffff168163ffffffff161115610ddd57600282820363ffffffff16048103610d56611f88565b506001600160a01b038716600090815260096020908152604080832063ffffffff808616855290835292819020815180830190925280549093168082526001909301549181019190915290871415610db8576020015194506108149350505050565b805163ffffffff16871115610dcf57819350610dd6565b6001820392505b5050610d2c565b506001600160a01b038516600090815260096020908152604080832063ffffffff9094168352929052206001015491505092915050565b600b6020526000908152604090205481565b6000610e30610e35565b905090565b6000546001600160a01b031690565b60068054604080516020601f60026000196101006001881615020190951694909404938401819004810282018101909252828152606093909290918301828280156107f25780601f106107c7576101008083540402835291602001916107f2565b6000610eaf611552565b6000546001600160a01b03908116911614610eff576040805162461bcd60e51b815260206004820181905260248201526000805160206120f0833981519152604482015290519081900360640190fd5b610f10610f0a611552565b83611975565b506001919050565b6000610810610f25611552565b846108bc856040518060600160405280602581526020016122866025913960036000610f4f611552565b6001600160a01b03908116825260208083019390935260409182016000908120918d16815292529020549190611794565b600754600090610100900460ff1615610faa57610fa5610f9e611552565b8484611642565b610810565b610810610fb5611552565b8484610a5e565b6001600160a01b0381166000908152600a602052604081205463ffffffff1680610fe7576000611019565b6001600160a01b038316600090815260096020908152604080832063ffffffff60001986011684529091529020600101545b9392505050565b61102933610b2a565b6110645760405162461bcd60e51b81526004018080602001828103825260348152602001806122526034913960400191505060405180910390fd5b610ada81611cd6565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a866611098610766565b805190602001206110a7611d18565b60408051602080820195909552808201939093526060830191909152306080808401919091528151808403909101815260a0830182528051908401207fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf60c08401526001600160a01b038b1660e084015261010083018a90526101208084018a9052825180850390910181526101408401835280519085012061190160f01b6101608501526101628401829052610182808501829052835180860390910181526101a285018085528151918701919091206000918290526101c2860180865281905260ff8b166101e287015261020286018a90526102228601899052935192965090949293909260019261024280840193601f198301929081900390910190855afa1580156111da573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b03811661122c5760405162461bcd60e51b815260040180806020018281038252602a815260200180611fc3602a913960400191505060405180910390fd5b6001600160a01b0381166000908152600b60205260409020805460018101909155891461128a5760405162461bcd60e51b81526004018080602001828103825260268152602001806121786026913960400191505060405180910390fd5b874211156112c95760405162461bcd60e51b815260040180806020018281038252602a81526020018061200f602a913960400191505060405180910390fd5b6112d3818b611b98565b505050505b505050505050565b6112e8611552565b6000546001600160a01b03908116911614611338576040805162461bcd60e51b815260206004820181905260248201526000805160206120f0833981519152604482015290519081900360640190fd5b600780549115156101000261ff0019909216919091179055565b61135b33611c2d565b565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b60096020908152600092835260408084209091529082529020805460019091015463ffffffff9091169082565b6113e1611552565b6000546001600160a01b03908116911614611431576040805162461bcd60e51b815260206004820181905260248201526000805160206120f0833981519152604482015290519081900360640190fd5b6001600160a01b0381166114765760405162461bcd60e51b81526004018080602001828103825260268152602001806120396026913960400191505060405180910390fd5b600080546040516001600160a01b03808516939216917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e091a3600080546001600160a01b0319166001600160a01b0392909216919091179055565b6114db8282611c6f565b1561152d576040805162461bcd60e51b815260206004820152601f60248201527f526f6c65733a206163636f756e7420616c72656164792068617320726f6c6500604482015290519081900360640190fd5b6001600160a01b0316600090815260209190915260409020805460ff19166001179055565b3390565b6001600160a01b03831661159b5760405162461bcd60e51b815260040180806020018281038252602481526020018061219e6024913960400191505060405180910390fd5b6001600160a01b0382166115e05760405162461bcd60e51b815260040180806020018281038252602281526020018061205f6022913960400191505060405180910390fd5b6001600160a01b03808416600081815260036020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166116875760405162461bcd60e51b81526004018080602001828103825260258152602001806121536025913960400191505060405180910390fd5b6001600160a01b0382166116cc5760405162461bcd60e51b8152600401808060200182810382526023815260200180611fa06023913960400191505060405180910390fd5b61170981604051806060016040528060268152602001612081602691396001600160a01b0386166000908152600260205260409020549190611794565b6001600160a01b038085166000908152600260205260408082209390935590841681522054611738908261182b565b6001600160a01b0380841660008181526002602090815260409182902094909455805185815290519193928716927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef92918290030190a3505050565b600081848411156118235760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156117e85781810151838201526020016117d0565b50505050905090810190601f1680156118155780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600082820183811015611019576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b6001600160a01b0382166118ca5760405162461bcd60e51b81526004018080602001828103825260218152602001806121326021913960400191505060405180910390fd5b61190781604051806060016040528060228152602001611fed602291396001600160a01b0385166000908152600260205260409020549190611794565b6001600160a01b03831660009081526002602052604090205560045461192d9082611d1c565b6004556040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6001600160a01b0382166119d0576040805162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015290519081900360640190fd5b6004546119dd908261182b565b6004556001600160a01b038216600090815260026020526040902054611a03908261182b565b6001600160a01b03831660008181526002602090815260408083209490945583518581529351929391927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9281900390910190a35050565b816001600160a01b0316836001600160a01b031614158015611a7d5750600081115b15610aad576001600160a01b03831615611b0f576001600160a01b0383166000908152600a602052604081205463ffffffff169081611abd576000611aef565b6001600160a01b038516600090815260096020908152604080832063ffffffff60001987011684529091529020600101545b90506000611afd8285611d1c565b9050611b0b86848484611d5e565b5050505b6001600160a01b03821615610aad576001600160a01b0382166000908152600a602052604081205463ffffffff169081611b4a576000611b7c565b6001600160a01b038416600090815260096020908152604080832063ffffffff60001987011684529091529020600101545b90506000611b8a828561182b565b90506112d885848484611d5e565b6001600160a01b0380831660009081526008602052604081205490911690611bbf84610b4f565b6001600160a01b0385811660008181526008602052604080822080546001600160a01b031916898616908117909155905194955093928616927f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f9190a4611c27828483611a5b565b50505050565b611c38600182611ec3565b6040516001600160a01b038216907fc6e35658c76ecdde40a54f31a91fb7c8615e9893cc0885584b27bb3433270d4690600090a250565b60006001600160a01b038216611cb65760405162461bcd60e51b81526004018080602001828103825260228152602001806121106022913960400191505060405180910390fd5b506001600160a01b03166000908152602091909152604090205460ff1690565b611ce16001826114d1565b6040516001600160a01b038216907f835bddf1ceee4956e4329af9edf018523c1191238187a597453f6020bcadb04290600090a250565b4690565b600061101983836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250611794565b6000611d82436040518060600160405280603881526020016121c260389139611f2a565b905060008463ffffffff16118015611dcb57506001600160a01b038516600090815260096020908152604080832063ffffffff6000198901811685529252909120548282169116145b15611e08576001600160a01b038516600090815260096020908152604080832063ffffffff60001989011684529091529020600101829055611e79565b60408051808201825263ffffffff808416825260208083018681526001600160a01b038a166000818152600984528681208b8616825284528681209551865490861663ffffffff199182161787559251600196870155908152600a9092529390208054928801909116919092161790555b604080518481526020810184905281516001600160a01b038816927fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a724928290030190a25050505050565b611ecd8282611c6f565b611f085760405162461bcd60e51b81526004018080602001828103825260218152602001806120a76021913960400191505060405180910390fd5b6001600160a01b0316600090815260209190915260409020805460ff19169055565b6000816401000000008410611f805760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156117e85781810151838201526020016117d0565b509192915050565b60408051808201909152600080825260208201529056fe45524332303a207472616e7366657220746f20746865207a65726f206164647265737353686974537761703a3a64656c656761746542795369673a20696e76616c6964207369676e617475726545524332303a206275726e20616d6f756e7420657863656564732062616c616e636553686974537761703a3a64656c656761746542795369673a207369676e617475726520657870697265644f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345524332303a20617070726f766520746f20746865207a65726f206164647265737345524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e6365526f6c65733a206163636f756e7420646f6573206e6f74206861766520726f6c6545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e63654f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572526f6c65733a206163636f756e7420697320746865207a65726f206164647265737345524332303a206275726e2066726f6d20746865207a65726f206164647265737345524332303a207472616e736665722066726f6d20746865207a65726f206164647265737353686974537761703a3a64656c656761746542795369673a20696e76616c6964206e6f6e636545524332303a20617070726f76652066726f6d20746865207a65726f206164647265737353686974537761703a3a5f7772697465436865636b706f696e743a20626c6f636b206e756d6265722065786365656473203332206269747353686974537761703a3a6275726e3a206275726e2076616c75652073686f756c64206e6f74206265207a65726f53686974537761703a3a6765745072696f72566f7465733a206e6f74207965742064657465726d696e6564417070726f766572526f6c653a2063616c6c657220646f6573206e6f7420686176652074686520417070726f76657220726f6c6545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220301cc0c91be0da607b92c08b42010f2badc698db05aff68f886e95d256d3fcce64736f6c634300060c0033526f6c65733a206163636f756e7420697320746865207a65726f2061646472657373