60806040526200000e620000fe565b6200001b90600a62000490565b6200002d90653f231a70b80062000588565b6006553480156200003d57600080fd5b506040805180820182526007808252665465737420303160c81b6020808401828152855180870190965292855284015281519192916200008091600391620002e1565b50805162000096906004906020840190620002e1565b50506005805460ff1916905550620000b7620000b162000103565b62000107565b6101f46007819055600855600654620000d290339062000161565b600980546001600160a01b031916731e82ebc2c4c82902ef8b9f3b7746fa6ebfcf25f4179055620005fd565b601290565b3390565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b038216620001935760405162461bcd60e51b81526004016200018a90620003e8565b60405180910390fd5b620001a16000838362000223565b8060026000828254620001b5919062000428565b90915550506001600160a01b038216600081815260208190526040808220805485019055517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90620002099085906200041f565b60405180910390a36200021f60008383620002a7565b5050565b6200022d620002ac565b6001600160a01b0383166000908152600b602052604090205460ff161580156200027057506001600160a01b0382166000908152600b602052604090205460ff16155b6200028f5760405162461bcd60e51b81526004016200018a90620003b1565b620002a7838383620002a760201b620008cc1760201c565b505050565b620002b6620002d8565b15620002d65760405162461bcd60e51b81526004016200018a9062000387565b565b60055460ff1690565b828054620002ef90620005aa565b90600052602060002090601f0160209004810192826200031357600085556200035e565b82601f106200032e57805160ff19168380011785556200035e565b828001600101855582156200035e579182015b828111156200035e57825182559160200191906001019062000341565b506200036c92915062000370565b5090565b5b808211156200036c576000815560010162000371565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b60208082526014908201527f5472616e7366657220626c61636b6c6973746564000000000000000000000000604082015260600190565b6020808252601f908201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604082015260600190565b90815260200190565b600082198211156200043e576200043e620005e7565b500190565b80825b600180861162000457575062000487565b8187048211156200046c576200046c620005e7565b808616156200047a57918102915b9490941c93800262000446565b94509492505050565b6000620004a460001960ff851684620004ab565b9392505050565b600082620004bc57506001620004a4565b81620004cb57506000620004a4565b8160018114620004e45760028114620004ef5762000523565b6001915050620004a4565b60ff841115620005035762000503620005e7565b6001841b9150848211156200051c576200051c620005e7565b50620004a4565b5060208310610133831016604e8410600b84101617156200055b575081810a83811115620005555762000555620005e7565b620004a4565b6200056a848484600162000443565b8086048211156200057f576200057f620005e7565b02949350505050565b6000816000190483118215151615620005a557620005a5620005e7565b500290565b600281046001821680620005bf57607f821691505b60208210811415620005e157634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b6114ec806200060d6000396000f3fe608060405234801561001057600080fd5b50600436106101805760003560e01c806306fdde0314610185578063095ea7b3146101a357806318160ddd146101c357806323b872dd146101d8578063313ce567146101eb57806339509351146102005780633f4ba83a14610213578063404e51291461021d57806342966c68146102305780634f7041a5146102435780635c975abb1461024b5780636e8be6931461025357806370a082311461025b578063715018a61461026e57806379cc6790146102765780638456cb59146102895780638cd09d50146102915780638da5cb5b146102a457806390d49b9d146102b957806395d89b41146102cc578063a457c2d7146102d4578063a9059cbb146102e7578063cc1776d3146102fa578063d12e733214610302578063d936547e14610315578063dbac26e914610328578063dc1052e21461033b578063dd62ed3e1461034e578063e204298114610361578063f25f4b5614610374578063f2fde38b1461037c578063f59c37081461038f575b600080fd5b61018d6103a2565b60405161019a9190611004565b60405180910390f35b6101b66101b1366004610f57565b610434565b60405161019a9190610ff9565b6101cb610456565b60405161019a91906113d2565b6101b66101e6366004610ee6565b61045c565b6101f361048a565b60405161019a91906113db565b6101b661020e366004610f57565b61048f565b61021b6104bb565b005b61021b61022b366004610f21565b6104cd565b61021b61023e366004610f9c565b610500565b6101cb610514565b6101b661051a565b6101cb610523565b6101cb610269366004610e9a565b610529565b61021b610548565b61021b610284366004610f57565b61055a565b61021b61057a565b61021b61029f366004610f9c565b61058a565b6102ac610597565b60405161019a9190610fcc565b61021b6102c7366004610e9a565b6105ab565b61018d6105d5565b6101b66102e2366004610f57565b6105e4565b6101b66102f5366004610f57565b610635565b6101cb61064d565b6101b6610310366004610e9a565b610653565b6101b6610323366004610e9a565b610668565b6101b6610336366004610e9a565b61067d565b61021b610349366004610f9c565b610692565b6101cb61035c366004610eb4565b61069f565b61021b61036f366004610eb4565b6106ca565b6102ac610853565b61021b61038a366004610e9a565b610862565b61021b61039d366004610f21565b610899565b6060600380546103b190611457565b80601f01602080910402602001604051908101604052809291908181526020018280546103dd90611457565b801561042a5780601f106103ff5761010080835404028352916020019161042a565b820191906000526020600020905b81548152906001019060200180831161040d57829003601f168201915b5050505050905090565b60008061043f6108d1565b905061044c8185856108d5565b5060019392505050565b60025490565b6000806104676108d1565b9050610474858285610989565b61047f8585856109cd565b506001949350505050565b601290565b60008061049a6108d1565b905061044c8185856104ac858961069f565b6104b691906113e9565b6108d5565b6104c3610a9d565b6104cb610adc565b565b6104d5610a9d565b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b61051161050b6108d1565b82610b2e565b50565b60085481565b60055460ff1690565b61271081565b6001600160a01b0381166000908152602081905260409020545b919050565b610550610a9d565b6104cb6000610c05565b61056c826105666108d1565b83610989565b6105768282610b2e565b5050565b610582610a9d565b6104cb610c5f565b610592610a9d565b600755565b60055461010090046001600160a01b031690565b6105b3610a9d565b600980546001600160a01b0319166001600160a01b0392909216919091179055565b6060600480546103b190611457565b6000806105ef6108d1565b905060006105fd828661069f565b9050838110156106285760405162461bcd60e51b815260040161061f9061138d565b60405180910390fd5b61047f82868684036108d5565b6000806106406108d1565b905061044c8185856109cd565b60075481565b600a6020526000908152604090205460ff1681565b600c6020526000908152604090205460ff1681565b600b6020526000908152604090205460ff1681565b61069a610a9d565b600855565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205490565b6106d2610a9d565b6001600160a01b0382163014156106fb5760405162461bcd60e51b815260040161061f9061120f565b6040516370a0823160e01b81526000906001600160a01b038416906370a082319061072a903090600401610fcc565b60206040518083038186803b15801561074257600080fd5b505afa158015610756573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061077a9190610fb4565b9050600061078730610529565b11156107cd57816001600160a01b03166108fc6107a330610529565b6040518115909202916000818181858888f193505050501580156107cb573d6000803e3d6000fd5b505b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb906107fb9085908590600401610fe0565b602060405180830381600087803b15801561081557600080fd5b505af1158015610829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061084d9190610f80565b50505050565b6009546001600160a01b031681565b61086a610a9d565b6001600160a01b0381166108905760405162461bcd60e51b815260040161061f9061110a565b61051181610c05565b6108a1610a9d565b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b505050565b3390565b6001600160a01b0383166108fb5760405162461bcd60e51b815260040161061f90611349565b6001600160a01b0382166109215760405162461bcd60e51b815260040161061f90611150565b6001600160a01b0380841660008181526001602090815260408083209487168084529490915290819020849055517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259061097c9085906113d2565b60405180910390a3505050565b6000610995848461069f565b9050600019811461084d57818110156109c05760405162461bcd60e51b815260040161061f90611192565b61084d84848484036108d5565b6109d5610c9d565b60006008541180156109f157506009546001600160a01b031615155b15610a54576000610a19612710610a1360085485610cc290919063ffffffff16565b90610cd5565b90506000610a278383610ce1565b600954909150610a429086906001600160a01b031684610ced565b610a4d858583610ced565b50506108cc565b6000600754118015610a7057506009546001600160a01b031615155b15610a92576000610a19612710610a1360075485610cc290919063ffffffff16565b6108cc838383610ced565b610aa56108d1565b6001600160a01b0316610ab6610597565b6001600160a01b0316146104cb5760405162461bcd60e51b815260040161061f9061128e565b610ae4610dee565b6005805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa610b176108d1565b604051610b249190610fcc565b60405180910390a1565b6001600160a01b038216610b545760405162461bcd60e51b815260040161061f906112c3565b610b6082600083610e12565b6001600160a01b03821660009081526020819052604090205481811015610b995760405162461bcd60e51b815260040161061f906110c8565b6001600160a01b0383166000818152602081905260408082208585039055600280548690039055519091907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610bf19086906113d2565b60405180910390a36108cc836000846108cc565b600580546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b610c67610c9d565b6005805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258610b176108d1565b610ca561051a565b156104cb5760405162461bcd60e51b815260040161061f90611236565b6000610cce8284611421565b9392505050565b6000610cce8284611401565b6000610cce8284611440565b6001600160a01b038316610d135760405162461bcd60e51b815260040161061f90611304565b6001600160a01b038216610d395760405162461bcd60e51b815260040161061f90611057565b610d44838383610e12565b6001600160a01b03831660009081526020819052604090205481811015610d7d5760405162461bcd60e51b815260040161061f906111c9565b6001600160a01b0380851660008181526020819052604080822086860390559286168082529083902080548601905591517fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef90610ddb9086906113d2565b60405180910390a361084d8484846108cc565b610df661051a565b6104cb5760405162461bcd60e51b815260040161061f9061109a565b610e1a610c9d565b6001600160a01b0383166000908152600b602052604090205460ff16158015610e5c57506001600160a01b0382166000908152600b602052604090205460ff16155b610e785760405162461bcd60e51b815260040161061f90611260565b6108cc8383836108cc565b80356001600160a01b038116811461054357600080fd5b600060208284031215610eab578081fd5b610cce82610e83565b60008060408385031215610ec6578081fd5b610ecf83610e83565b9150610edd60208401610e83565b90509250929050565b600080600060608486031215610efa578081fd5b610f0384610e83565b9250610f1160208501610e83565b9150604084013590509250925092565b60008060408385031215610f33578182fd5b610f3c83610e83565b91506020830135610f4c816114a8565b809150509250929050565b60008060408385031215610f69578182fd5b610f7283610e83565b946020939093013593505050565b600060208284031215610f91578081fd5b8151610cce816114a8565b600060208284031215610fad578081fd5b5035919050565b600060208284031215610fc5578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b901515815260200190565b6000602080835283518082850152825b8181101561103057858101830151858201604001528201611014565b818111156110415783604083870101525b50601f01601f1916929092016040019392505050565b60208082526023908201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526014908201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b604082015260600190565b60208082526022908201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604082015261636560f01b606082015260800190565b60208082526026908201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526022908201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604082015261737360f01b606082015260800190565b6020808252601d908201527f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000604082015260600190565b60208082526026908201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604082015265616c616e636560d01b606082015260800190565b6020808252600d908201526c24b73b30b634b2103a37b5b2b760991b604082015260600190565b60208082526010908201526f14185d5cd8589b194e881c185d5cd95960821b604082015260600190565b602080825260149082015273151c985b9cd9995c88189b1858dadb1a5cdd195960621b604082015260600190565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b60208082526021908201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736040820152607360f81b606082015260800190565b60208082526025908201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604082015264647265737360d81b606082015260800190565b60208082526024908201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60208082526025908201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604082015264207a65726f60d81b606082015260800190565b90815260200190565b60ff91909116815260200190565b600082198211156113fc576113fc611492565b500190565b60008261141c57634e487b7160e01b81526012600452602481fd5b500490565b600081600019048311821515161561143b5761143b611492565b500290565b60008282101561145257611452611492565b500390565b60028104600182168061146b57607f821691505b6020821081141561148c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b801515811461051157600080fdfea2646970667358221220b8fddcc36735f22b4ff0dbbc07f534cbc4b1513ae7b43cbcd9eb4e4fdf8c7e9664736f6c63430008010033