0x60806040523480156200001157600080fd5b50604051620018e8380380620018e88339810160408190526200003491620001be565b6002620000428682620002ef565b506003620000518582620002ef565b5060048390556200006483600a620004d0565b620000709083620004e5565b6000818155600a80546001600160a01b0319908116339081178355600b80546001600160a01b0388811691909416179055835260086020526040808420859055915491519116927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91620000e691815260200190565b60405180910390a35050505050620004ff565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200012157600080fd5b81516001600160401b03808211156200013e576200013e620000f9565b604051601f8301601f19908116603f01168101908282118183101715620001695762000169620000f9565b816040528381526020925086838588010111156200018657600080fd5b600091505b83821015620001aa57858201830151818301840152908201906200018b565b600093810190920192909252949350505050565b600080600080600060a08688031215620001d757600080fd5b85516001600160401b0380821115620001ef57600080fd5b620001fd89838a016200010f565b965060208801519150808211156200021457600080fd5b5062000223888289016200010f565b6040880151606089015160808a0151929750909550935090506001600160a01b03811681146200025257600080fd5b809150509295509295909350565b600181811c908216806200027557607f821691505b6020821081036200029657634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620002ea57600081815260208120601f850160051c81016020861015620002c55750805b601f850160051c820191505b81811015620002e657828155600101620002d1565b5050505b505050565b81516001600160401b038111156200030b576200030b620000f9565b62000323816200031c845462000260565b846200029c565b602080601f8311600181146200035b5760008415620003425750858301515b600019600386901b1c1916600185901b178555620002e6565b600085815260208120601f198616915b828110156200038c578886015182559484019460019091019084016200036b565b5085821015620003ab5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600181815b8085111562000412578160001904821115620003f657620003f6620003bb565b808516156200040457918102915b93841c9390800290620003d6565b509250929050565b6000826200042b57506001620004ca565b816200043a57506000620004ca565b81600181146200045357600281146200045e576200047e565b6001915050620004ca565b60ff841115620004725762000472620003bb565b50506001821b620004ca565b5060208310610133831016604e8410600b8410161715620004a3575081810a620004ca565b620004af8383620003d1565b8060001904821115620004c657620004c6620003bb565b0290505b92915050565b6000620004de83836200041a565b9392505050565b8082028115828204841417620004ca57620004ca620003bb565b6113d9806200050f6000396000f3fe608060405234801561001057600080fd5b50600436106101165760003560e01c80636381c167116100a25780638da5cb5b116100715780638da5cb5b1461024157806395d89b4114610254578063a9059cbb1461025c578063d51de9e51461026f578063dd62ed3e1461028257600080fd5b80636381c167146101f557806370a08231146101fd578063715018a6146102265780637647b90d1461022e57600080fd5b806318160ddd116100e957806318160ddd1461019a57806323b872dd146101b1578063313ce567146101c457806334278776146101cd578063488c79d9146101e057600080fd5b806306fdde031461011b578063095ea7b314610139578063095f35131461015c5780630a88303914610187575b600080fd5b6101236102bb565b6040516101309190610eed565b60405180910390f35b61014c610147366004610f52565b610349565b6040519015158152602001610130565b60015461016f906001600160a01b031681565b6040516001600160a01b039091168152602001610130565b61014c610195366004610f7c565b6103b6565b6101a360005481565b604051908152602001610130565b61014c6101bf366004610f97565b6103fd565b6101a360045481565b61014c6101db36600461110b565b6105cf565b6101f36101ee3660046111a4565b610781565b005b6101a3600181565b6101a361020b366004610f7c565b6001600160a01b031660009081526008602052604090205490565b6101f361084e565b61014c61023c3660046111e9565b6108b4565b600a5461016f906001600160a01b031681565b6101236108f2565b61014c61026a366004610f52565b6108ff565b6101f361027d366004610f52565b610a2b565b6101a3610290366004611225565b6001600160a01b03918216600090815260056020908152604080832093909416825291909152205490565b600280546102c890611258565b80601f01602080910402602001604051908101604052809291908181526020018280546102f490611258565b80156103415780601f1061031657610100808354040283529160200191610341565b820191906000526020600020905b81548152906001019060200180831161032457829003601f168201915b505050505081565b3360008181526005602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906103a49086815260200190565b60405180910390a35060015b92915050565b600b546000906001600160a01b031633146103ec5760405162461bcd60e51b81526004016103e390611292565b60405180910390fd5b6103f582610aba565b90505b919050565b6000836001600160a01b0316836001600160a01b03160361041d57600080fd5b6001600160a01b03831661043057600080fd5b6001600160a01b03841660009081526008602052604090205482111561045557600080fd5b6001600160a01b038416600090815260056020908152604080832033845290915290205482111561048557600080fd5b61048f8484610afb565b6001600160a01b03841660009081526009602052604081205443036104c85760646104bb6001856112df565b6104c591906112f6565b90505b6104d28382610b97565b92506104de8582610bb3565b6001600160a01b0385166000908152600860205260409020546105019084610b97565b6001600160a01b0380871660009081526008602052604080822093909355908616815220546105309084610d05565b6001600160a01b03808616600090815260086020908152604080832094909455918816815260058252828120338252909152205461056e9084610b97565b6001600160a01b0386811660008181526005602090815260408083203384528252918290209490945551868152918716929091600080516020611384833981519152910160405180910390a36105c384610d24565b50600195945050505050565b600b546000906001600160a01b031633146105fc5760405162461bcd60e51b81526004016103e390611292565b60008460008151811061061157610611611318565b6020026020010151118015610640575060008360008151811061063657610636611318565b6020026020010151115b156107765760005b855181101561077457600154865161069d916001600160a01b03169088908490811061067657610676611318565b602002602001015187848151811061069057610690611318565b6020026020010151610d84565b50826001600160a01b031663f6b911bc8783815181106106bf576106bf611318565b6020026020010151600160009054906101000a90046001600160a01b03168785815181106106ef576106ef611318565b60209081029190910101516040516001600160e01b031960e086901b1681526001600160a01b0393841660048201529290911660248301526044820152606401600060405180830381600087803b15801561074957600080fd5b505af115801561075d573d6000803e3d6000fd5b50505050808061076c9061132e565b915050610648565b505b506001949350505050565b600b546001600160a01b031633146107ab5760405162461bcd60e51b81526004016103e390611292565b60005b82518110156108495760006107dc8483815181106107ce576107ce611318565b602002602001015184610dcb565b905082156107f257806107ee8161132e565b9150505b806006600086858151811061080957610809611318565b60200260200101516001600160a01b03166001600160a01b03168152602001908152602001600020819055505080806108419061132e565b9150506107ae565b505050565b600a546001600160a01b031633146108a85760405162461bcd60e51b815260206004820152601760248201527f43616c6c6572206973206e6f7420746865206f776e657200000000000000000060448201526064016103e3565b6108b26000610e27565b565b600b546000906001600160a01b031633146108e15760405162461bcd60e51b81526004016103e390611292565b6108eb8383610e79565b9392505050565b600380546102c890611258565b60006001600160a01b03831661091457600080fd5b336001600160a01b0384160361092957600080fd5b3360009081526008602052604090205482111561094557600080fd5b61094f3384610afb565b33600090815260096020526040812054430361097f5760646109726001856112df565b61097c91906112f6565b90505b6109898382610b97565b92506109953382610bb3565b336000908152600860205260409020546109af9084610b97565b33600090815260086020526040808220929092556001600160a01b038616815220546109db9084610d05565b6001600160a01b03851660008181526008602052604090819020929092559051339060008051602061138483398151915290610a1a9087815260200190565b60405180910390a361077684610d24565b600b546001600160a01b03163314610a555760405162461bcd60e51b81526004016103e390611292565b6001600160a01b03821660009081526006602052604090205415610a7857600080fd5b6000610a848383610dcb565b90508115610a9a5780610a968161132e565b9150505b6001600160a01b0390921660009081526006602052604090209190915550565b6001546000906001600160a01b03808416911603610ad757600080fd5b50600180546001600160a01b0319166001600160a01b039290921691909117815590565b6001600160a01b03821660009081526006602052604090205415610b93576001600160a01b03821660009081526007602052604090205460ff1680610b5857506001600160a01b03811660009081526007602052604090205460ff165b15610b61575050565b6001600160a01b038216600090815260066020526040902054600a90610b89906103e8610ed5565b10610b9357600080fd5b5050565b600082821115610ba957610ba9611347565b6108eb828461135d565b6001600160a01b038216610c135760405162461bcd60e51b815260206004820152602160248201527f45524332303a206275726e2066726f6d20746865207a65726f206164647265736044820152607360f81b60648201526084016103e3565b6001600160a01b038216600090815260086020526040902054811115610c865760405162461bcd60e51b815260206004820152602260248201527f45524332303a206275726e20616d6f756e7420657863656564732062616c616e604482015261636560f01b60648201526084016103e3565b6001600160a01b038216600090815260086020526040902054610ca99082610b97565b6001600160a01b03831660009081526008602052604081209190915554610cd09082610b97565b60009081556040518281526001600160a01b038416906000805160206113848339815191529060200160405180910390a35050565b600080610d128385611370565b9050838110156108eb576108eb611347565b6001600160a01b03811660009081526007602052604081205460ff16158015610d5b57506001546001600160a01b03838116911614155b15610d7c576001600160a01b03821660009081526009602052604090204390555b506001919050565b6000826001600160a01b0316846001600160a01b031660008051602061138483398151915284604051610db991815260200190565b60405180910390a35060019392505050565b6000811580610df057506001600160a01b038316600090815260086020526040902054155b15610dfd575060006103b0565b6001600160a01b038316600090815260086020526040902054610e209083610ed5565b90506103b0565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6001600160a01b03821660009081526007602052604081205482151560ff909116151503610ea657600080fd5b506001600160a01b0382166000908152600760205260409020805482151560ff19909116179055600192915050565b60006064610ee383856112df565b6108eb91906112f6565b600060208083528351808285015260005b81811015610f1a57858101830151858201604001528201610efe565b506000604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b03811681146103f857600080fd5b60008060408385031215610f6557600080fd5b610f6e83610f3b565b946020939093013593505050565b600060208284031215610f8e57600080fd5b6108eb82610f3b565b600080600060608486031215610fac57600080fd5b610fb584610f3b565b9250610fc360208501610f3b565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561101257611012610fd3565b604052919050565b600067ffffffffffffffff82111561103457611034610fd3565b5060051b60200190565b600082601f83011261104f57600080fd5b8135602061106461105f8361101a565b610fe9565b82815260059290921b8401810191818101908684111561108357600080fd5b8286015b848110156110a55761109881610f3b565b8352918301918301611087565b509695505050505050565b600082601f8301126110c157600080fd5b813560206110d161105f8361101a565b82815260059290921b840181019181810190868411156110f057600080fd5b8286015b848110156110a557803583529183019183016110f4565b6000806000806080858703121561112157600080fd5b843567ffffffffffffffff8082111561113957600080fd5b6111458883890161103e565b9550602087013591508082111561115b57600080fd5b611167888389016110b0565b9450604087013591508082111561117d57600080fd5b5061118a878288016110b0565b92505061119960608601610f3b565b905092959194509250565b600080604083850312156111b757600080fd5b823567ffffffffffffffff8111156111ce57600080fd5b6111da8582860161103e565b95602094909401359450505050565b600080604083850312156111fc57600080fd5b61120583610f3b565b91506020830135801515811461121a57600080fd5b809150509250929050565b6000806040838503121561123857600080fd5b61124183610f3b565b915061124f60208401610f3b565b90509250929050565b600181811c9082168061126c57607f821691505b60208210810361128c57634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526017908201527f43616c6c6572206973206e6f7420746865204f776e6572000000000000000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176103b0576103b06112c9565b60008261131357634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b600060018201611340576113406112c9565b5060010190565b634e487b7160e01b600052600160045260246000fd5b818103818111156103b0576103b06112c9565b808201808211156103b0576103b06112c956feddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa26469706673582212202a083287f6c94b4c48bec2a7a7665d096efb9ad1b64f71840238d1911c43ba8464736f6c6343000812003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000000000000000000000000000000000000000000012000000000000000000000000000000000000000000000000000000003b9aca0000000000000000000000000053b93fa23584ee55eb2e3a62ffa09ee1b2bf221f000000000000000000000000000000000000000000000000000000000000000b4d65747269632e7465636800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000064d65747269630000000000000000000000000000000000000000000000000000