0x60806040523480156200001157600080fd5b506040518060400160405280600681526020016504d4d59204c560d41b8152506040518060400160405280600381526020016204d4c560ec1b815250600082828282600090805190602001906200006a929190620002e5565b50815162000080906001906020850190620002e5565b50600480546001600160a01b03191633908117909155620000a29082620000ae565b50505050505062000381565b6001600160a01b038216620000f55760405162461bcd60e51b8152600401808060200182810382526023815260200180620025c66023913960400191505060405180910390fd5b6200010082620001e4565b6200011c816002546200028360201b620014e51790919060201c565b6002556001600160a01b03821660009081526005602090815260409091205462000151918390620014e562000283821b17901c565b6001600160a01b03831660009081526005602090815260408083209390935560089052205460ff16156200019f576200019b816003546200028360201b620014e51790919060201c565b6003555b6040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60005b6007548110156200027f576000600782815481106200020257fe5b600091825260208220015460408051635fd6196560e01b81526001600160a01b03878116600483015291519190921693508392635fd61965926024808201939182900301818387803b1580156200025857600080fd5b505af11580156200026d573d6000803e3d6000fd5b505060019093019250620001e7915050565b5050565b600082820183811015620002de576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f106200032857805160ff191683800117855562000358565b8280016001018555821562000358579182015b82811115620003585782518255916020019190600101906200033b565b50620003669291506200036a565b5090565b5b808211156200036657600081556001016200036b565b61223580620003916000396000f3fe608060405234801561001057600080fd5b50600436106102275760003560e01c80636228907711610130578063a9059cbb116100b8578063cf456ae71161007c578063cf456ae71461088f578063cfad57a2146108bd578063dd62ed3e146108e3578063dfbaefb114610911578063fb30d9161461091957610227565b8063a9059cbb14610700578063a923fc401461072c578063aa271e1a14610859578063af640d0f1461087f578063c93be6361461088757610227565b80639554381a116100ff5780639554381a1461064a57806395d89b4114610670578063996f11ee146106785780639cb7de4b146106a65780639dc29fac146106d457610227565b806362289077146105d057806370480275146105f657806370a082311461061c578063817b1cd21461064257610227565b806327e235e3116101b357806346ea87af1161018257806346ea87af1461051a57806352cd38d91461054057806355b6ed5c1461055d5780635a47a1a71461058b57806360217267146105aa57610227565b806327e235e314610484578063313ce567146104aa57806340c10f19146104c8578063429b62e5146104f457610227565b80631785f53c116101fa5780631785f53c1461034557806318160ddd1461036b5780631e83409a1461038557806323b872dd146103ab578063276eab4e146103e157610227565b806301e336671461022c57806306fdde0314610264578063095ea7b3146102e157806312d43a5114610321575b600080fd5b6102626004803603606081101561024257600080fd5b506001600160a01b0381358116916020810135909116906040013561093f565b005b61026c6109a5565b6040805160208082528351818301528351919283929083019185019080838360005b838110156102a657818101518382015260200161028e565b50505050905090810190601f1680156102d35780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b61030d600480360360408110156102f757600080fd5b506001600160a01b038135169060200135610a33565b604080519115158252519081900360200190f35b610329610a49565b604080516001600160a01b039092168252519081900360200190f35b6102626004803603602081101561035b57600080fd5b50356001600160a01b0316610a58565b610373610ac6565b60408051918252519081900360200190f35b6102626004803603602081101561039b57600080fd5b50356001600160a01b0316610acc565b61030d600480360360608110156103c157600080fd5b506001600160a01b03813581169160208101359091169060400135610b83565b610262600480360360208110156103f757600080fd5b81019060208101813564010000000081111561041257600080fd5b82018360208201111561042457600080fd5b8035906020019184602083028401116401000000008311171561044657600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550610c1d945050505050565b6103736004803603602081101561049a57600080fd5b50356001600160a01b0316610c7d565b6104b2610c8f565b6040805160ff9092168252519081900360200190f35b610262600480360360408110156104de57600080fd5b506001600160a01b038135169060200135610c94565b61030d6004803603602081101561050a57600080fd5b50356001600160a01b0316610d02565b61030d6004803603602081101561053057600080fd5b50356001600160a01b0316610d17565b6103296004803603602081101561055657600080fd5b5035610d2c565b6103736004803603604081101561057357600080fd5b506001600160a01b0381358116916020013516610d53565b610262600480360360208110156105a157600080fd5b50351515610d70565b610373600480360360208110156105c057600080fd5b50356001600160a01b0316610dd0565b610262600480360360208110156105e657600080fd5b50356001600160a01b0316610e19565b6102626004803603602081101561060c57600080fd5b50356001600160a01b0316610f0c565b6103736004803603602081101561063257600080fd5b50356001600160a01b0316610f7d565b610373610f98565b61030d6004803603602081101561066057600080fd5b50356001600160a01b0316610fb6565b61026c610fcb565b6102626004803603604081101561068e57600080fd5b506001600160a01b0381358116916020013516611025565b610262600480360360408110156106bc57600080fd5b506001600160a01b038135169060200135151561112c565b610262600480360360408110156106ea57600080fd5b506001600160a01b0381351690602001356111a4565b61030d6004803603604081101561071657600080fd5b506001600160a01b038135169060200135611212565b6102626004803603604081101561074257600080fd5b81019060208101813564010000000081111561075d57600080fd5b82018360208201111561076f57600080fd5b8035906020019184600183028401116401000000008311171561079157600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092959493602081019350359150506401000000008111156107e457600080fd5b8201836020820111156107f657600080fd5b8035906020019184600183028401116401000000008311171561081857600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955061121f945050505050565b61030d6004803603602081101561086f57600080fd5b50356001600160a01b0316611293565b61026c6112a8565b6103736112c5565b610262600480360360408110156108a557600080fd5b506001600160a01b03813516906020013515156112cb565b610262600480360360208110156108d357600080fd5b50356001600160a01b0316611343565b610373600480360360408110156108f957600080fd5b506001600160a01b03813581169160200135166113b2565b61030d6113dd565b6102626004803603602081101561092f57600080fd5b50356001600160a01b03166113e6565b6004546001600160a01b0316331461098c576040805162461bcd60e51b815260206004820152601460248201526000805160206120ce833981519152604482015290519081900360640190fd5b6109a06001600160a01b038416838361153f565b505050565b6000805460408051602060026001851615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a2b5780601f10610a0057610100808354040283529160200191610a2b565b820191906000526020600020905b815481529060010190602001808311610a0e57829003601f168201915b505050505081565b6000610a40338484611591565b50600192915050565b6004546001600160a01b031681565b6004546001600160a01b03163314610aa5576040805162461bcd60e51b815260206004820152601460248201526000805160206120ce833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600960205260409020805460ff19169055565b60025481565b60005b600754811015610b7f57600060078281548110610ae857fe5b6000918252602080832090910154604080516310e059a160e11b81523360048201526001600160a01b038881166024830152915191909216945084936321c0b34293604480850194919392918390030190829087803b158015610b4a57600080fd5b505af1158015610b5e573d6000803e3d6000fd5b505050506040513d6020811015610b7457600080fd5b505050600101610acf565b5050565b336000908152600b602052604081205460ff1615610bae57610ba684848461167d565b506001610c16565b6000610bf8836040518060600160405280602c815260200161207c602c91396001600160a01b038816600090815260066020908152604080832033845290915290205491906118a5565b9050610c05853383611591565b610c1085858561167d565b60019150505b9392505050565b6004546001600160a01b03163314610c6a576040805162461bcd60e51b815260206004820152601460248201526000805160206120ce833981519152604482015290519081900360640190fd5b8051610b7f906007906020840190611ed3565b60056020526000908152604090205481565b601281565b336000908152600c602052604090205460ff16610cf8576040805162461bcd60e51b815260206004820152601c60248201527f4d696e7461626c6542617365546f6b656e3a20666f7262696464656e00000000604482015290519081900360640190fd5b610b7f828261193c565b60096020526000908152604090205460ff1681565b600b6020526000908152604090205460ff1681565b60078181548110610d3957fe5b6000918252602090912001546001600160a01b0316905081565b600660209081526000928352604080842090915290825290205481565b6004546001600160a01b03163314610dbd576040805162461bcd60e51b815260206004820152601460248201526000805160206120ce833981519152604482015290519081900360640190fd5b600a805460ff1916911515919091179055565b6001600160a01b03811660009081526008602052604081205460ff1615610df957506000610e14565b506001600160a01b0381166000908152600560205260409020545b919050565b3360009081526009602052604090205460ff16610e6b576040805162461bcd60e51b815260206004820152601460248201526000805160206120ce833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526008602052604090205460ff1615610ec35760405162461bcd60e51b81526004018080602001828103825260228152602001806121406022913960400191505060405180910390fd5b610ecc81611a40565b6001600160a01b0381166000908152600860209081526040808320805460ff191660011790556005909152902054600354610f06916114e5565b60035550565b6004546001600160a01b03163314610f59576040805162461bcd60e51b815260206004820152601460248201526000805160206120ce833981519152604482015290519081900360640190fd5b6001600160a01b03166000908152600960205260409020805460ff19166001179055565b6001600160a01b031660009081526005602052604090205490565b6000610fb1600354600254611ad690919063ffffffff16565b905090565b60086020526000908152604090205460ff1681565b60018054604080516020600284861615610100026000190190941693909304601f81018490048402820184019092528181529291830182828015610a2b5780601f10610a0057610100808354040283529160200191610a2b565b3360009081526009602052604090205460ff16611077576040805162461bcd60e51b815260206004820152601460248201526000805160206120ce833981519152604482015290519081900360640190fd5b60005b6007548110156109a05760006007828154811061109357fe5b6000918252602080832090910154604080516310e059a160e11b81526001600160a01b0389811660048301528881166024830152915191909216945084936321c0b34293604480850194919392918390030190829087803b1580156110f757600080fd5b505af115801561110b573d6000803e3d6000fd5b505050506040513d602081101561112157600080fd5b50505060010161107a565b6004546001600160a01b03163314611179576040805162461bcd60e51b815260206004820152601460248201526000805160206120ce833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600b60205260409020805460ff1916911515919091179055565b336000908152600c602052604090205460ff16611208576040805162461bcd60e51b815260206004820152601c60248201527f4d696e7461626c6542617365546f6b656e3a20666f7262696464656e00000000604482015290519081900360640190fd5b610b7f8282611b18565b6000610a4033848461167d565b6004546001600160a01b0316331461126c576040805162461bcd60e51b815260206004820152601460248201526000805160206120ce833981519152604482015290519081900360640190fd5b815161127f906000906020850190611f38565b5080516109a0906001906020840190611f38565b600c6020526000908152604090205460ff1681565b60408051808201909152600381526204d4c560ec1b602082015290565b60035481565b6004546001600160a01b03163314611318576040805162461bcd60e51b815260206004820152601460248201526000805160206120ce833981519152604482015290519081900360640190fd5b6001600160a01b03919091166000908152600c60205260409020805460ff1916911515919091179055565b6004546001600160a01b03163314611390576040805162461bcd60e51b815260206004820152601460248201526000805160206120ce833981519152604482015290519081900360640190fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b03918216600090815260066020908152604080832093909416825291909152205490565b600a5460ff1681565b3360009081526009602052604090205460ff16611438576040805162461bcd60e51b815260206004820152601460248201526000805160206120ce833981519152604482015290519081900360640190fd5b6001600160a01b03811660009081526008602052604090205460ff166114a5576040805162461bcd60e51b815260206004820152601e60248201527f42617365546f6b656e3a205f6163636f756e74206e6f74206d61726b65640000604482015290519081900360640190fd5b6114ae81611a40565b6001600160a01b0381166000908152600860209081526040808320805460ff191690556005909152902054600354610f0691611ad6565b600082820183811015610c16576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526109a0908490611c43565b6001600160a01b0383166115d65760405162461bcd60e51b81526004018080602001828103825260288152602001806120ee6028913960400191505060405180910390fd5b6001600160a01b03821661161b5760405162461bcd60e51b81526004018080602001828103825260268152602001806120566026913960400191505060405180910390fd5b6001600160a01b03808416600081815260066020908152604080832094871680845294825291829020859055815185815291517f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259281900390910190a3505050565b6001600160a01b0383166116c25760405162461bcd60e51b81526004018080602001828103825260298152602001806121d76029913960400191505060405180910390fd5b6001600160a01b0382166117075760405162461bcd60e51b815260040180806020018281038252602781526020018061200c6027913960400191505060405180910390fd5b600a5460ff161561176057336000908152600b602052604090205460ff166117605760405162461bcd60e51b8152600401808060200182810382526025815260200180611fe76025913960400191505060405180910390fd5b61176983611a40565b61177282611a40565b6117af816040518060600160405280602a8152602001612116602a91396001600160a01b03861660009081526005602052604090205491906118a5565b6001600160a01b0380851660009081526005602052604080822093909355908416815220546117de90826114e5565b6001600160a01b0380841660009081526005602090815260408083209490945591861681526008909152205460ff16156118235760035461181f9082611ad6565b6003555b6001600160a01b03821660009081526008602052604090205460ff16156118555760035461185190826114e5565b6003555b816001600160a01b0316836001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040518082815260200191505060405180910390a3505050565b600081848411156119345760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156118f95781810151838201526020016118e1565b50505050905090810190601f1680156119265780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b6001600160a01b0382166119815760405162461bcd60e51b81526004018080602001828103825260238152602001806120336023913960400191505060405180910390fd5b61198a82611a40565b60025461199790826114e5565b6002556001600160a01b0382166000908152600560205260409020546119bd90826114e5565b6001600160a01b03831660009081526005602090815260408083209390935560089052205460ff16156119fb576003546119f790826114e5565b6003555b6040805182815290516001600160a01b038416916000917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b60005b600754811015610b7f57600060078281548110611a5c57fe5b600091825260208220015460408051635fd6196560e01b81526001600160a01b03878116600483015291519190921693508392635fd61965926024808201939182900301818387803b158015611ab157600080fd5b505af1158015611ac5573d6000803e3d6000fd5b505060019093019250611a43915050565b6000610c1683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f7700008152506118a5565b6001600160a01b038216611b5d5760405162461bcd60e51b81526004018080602001828103825260258152602001806121b26025913960400191505060405180910390fd5b611b6682611a40565b611ba381604051806060016040528060268152602001612162602691396001600160a01b03851660009081526005602052604090205491906118a5565b6001600160a01b038316600090815260056020526040902055600254611bc99082611ad6565b6002556001600160a01b03821660009081526008602052604090205460ff1615611bfe57600354611bfa9082611ad6565b6003555b6040805182815290516000916001600160a01b038516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9181900360200190a35050565b6060611c98826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b0316611cf49092919063ffffffff16565b8051909150156109a057808060200190516020811015611cb757600080fd5b50516109a05760405162461bcd60e51b815260040180806020018281038252602a815260200180612188602a913960400191505060405180910390fd5b6060611d038484600085611d0b565b949350505050565b606082471015611d4c5760405162461bcd60e51b81526004018080602001828103825260268152602001806120a86026913960400191505060405180910390fd5b611d5585611e67565b611da6576040805162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e7472616374000000604482015290519081900360640190fd5b60006060866001600160a01b031685876040518082805190602001908083835b60208310611de55780518252601f199092019160209182019101611dc6565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114611e47576040519150601f19603f3d011682016040523d82523d6000602084013e611e4c565b606091505b5091509150611e5c828286611e6d565b979650505050505050565b3b151590565b60608315611e7c575081610c16565b825115611e8c5782518084602001fd5b60405162461bcd60e51b81526020600482018181528451602484015284518593919283926044019190850190808383600083156118f95781810151838201526020016118e1565b828054828255906000526020600020908101928215611f28579160200282015b82811115611f2857825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190611ef3565b50611f34929150611fb2565b5090565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f10611f7957805160ff1916838001178555611fa6565b82800160010185558215611fa6579182015b82811115611fa6578251825591602001919060010190611f8b565b50611f34929150611fd1565b5b80821115611f345780546001600160a01b0319168155600101611fb3565b5b80821115611f345760008155600101611fd256fe42617365546f6b656e3a206d73672e73656e646572206e6f742077686974656c697374656442617365546f6b656e3a207472616e7366657220746f20746865207a65726f206164647265737342617365546f6b656e3a206d696e7420746f20746865207a65726f206164647265737342617365546f6b656e3a20617070726f766520746f20746865207a65726f206164647265737342617365546f6b656e3a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e6365416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c42617365546f6b656e3a20666f7262696464656e00000000000000000000000042617365546f6b656e3a20617070726f76652066726f6d20746865207a65726f206164647265737342617365546f6b656e3a207472616e7366657220616d6f756e7420657863656564732062616c616e636542617365546f6b656e3a205f6163636f756e7420616c7265616479206d61726b656442617365546f6b656e3a206275726e20616d6f756e7420657863656564732062616c616e63655361666545524332303a204552433230206f7065726174696f6e20646964206e6f74207375636365656442617365546f6b656e3a206275726e2066726f6d20746865207a65726f206164647265737342617365546f6b656e3a207472616e736665722066726f6d20746865207a65726f2061646472657373a2646970667358221220eff74f1bcb4ad775c481104aa192499e35f3f8c3690fb08dd7a4fe4c2b45ff4a64736f6c634300060c003342617365546f6b656e3a206d696e7420746f20746865207a65726f2061646472657373