0x60806040526004361061009d575f3560e01c806370a082311161006257806370a082311461018857806393b1c69c146101b357806395d89b41146101d4578063a9059cbb14610203578063c9567bf914610222578063dd62ed3e14610236575f80fd5b806306fdde03146100a8578063095ea7b3146100f257806318160ddd1461012157806323b872dd14610143578063313ce56714610162575f80fd5b366100a457005b5f80fd5b3480156100b3575f80fd5b506100dc60405180604001604052806009815260200168426574636f696e416960b81b81525081565b6040516100e991906107bf565b60405180910390f35b3480156100fd575f80fd5b5061011161010c366004610825565b61026c565b60405190151581526020016100e9565b34801561012c575f80fd5b506101356102d8565b6040519081526020016100e9565b34801561014e575f80fd5b5061011161015d36600461084d565b6102f4565b34801561016d575f80fd5b50610176601281565b60405160ff90911681526020016100e9565b348015610193575f80fd5b506101356101a2366004610886565b60026020525f908152604090205481565b3480156101be575f80fd5b506101d26101cd36600461089f565b610341565b005b3480156101df575f80fd5b506100dc604051806040016040528060048152602001630910915560e21b81525081565b34801561020e575f80fd5b5061011161021d366004610825565b610393565b34801561022d575f80fd5b506101d26103a6565b348015610241575f80fd5b506101356102503660046108bf565b600360209081525f928352604080842090915290825290205481565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102c69086815260200190565b60405180910390a35060015b92915050565b6102e46012600a6109e4565b6102f190620f42406109f2565b81565b6001600160a01b0383165f908152600360209081526040808320338452909152812080548391908390610328908490610a09565b9091555061033990508484846103ed565b949350505050565b730551a1d248e39a4e1dea18d0ca941a93d64a31bd19330161037a57604080518082019091528281526020018190525f91909155600155565b60405163af53312560e01b815260040160405180910390fd5b5f61039f3384846103ed565b9392505050565b600454600160a81b900460ff16156103bc575f80fd5b730551a1d248e39a4e1dea18d0ca941a93d64a31bd19330161037a576004805460ff60a81b1916600160a81b179055565b6004545f90600160a81b900460ff168061042357506001600160a01b038416730551a1d248e39a4e1dea18d0ca941a93d64a31be145b8061044a57506001600160a01b038316730551a1d248e39a4e1dea18d0ca941a93d64a31be145b610452575f80fd5b600454600160a81b900460ff1615801561047557506004546001600160a01b0316155b801561048057505f82115b156104a157600480546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0384165f90815260026020526040812080548492906104c8908490610a09565b90915550506004546001600160a01b0384811691161480156104f45750600454600160a01b900460ff16155b8015610532575060646105096012600a6109e4565b61051690620f42406109f2565b6105209190610a1c565b305f9081526002602052604090205410155b156106bb576004805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061057d5761057d610a3b565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106105c5576105c5610a3b565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63791ac94760646106056012600a6109e4565b61061290620f42406109f2565b61061c9190610a1c565b5f8430426040518663ffffffff1660e01b8152600401610640959493929190610a4f565b5f604051808303815f87803b158015610657575f80fd5b505af1158015610669573d5f803e3d5ffd5b5050604051730551a1d248e39a4e1dea18d0ca941a93d64a31be92504780156108fc029250905f818181858888f193505050501580156106ab573d5f803e3d5ffd5b50506004805460ff60a01b191690555b6001600160a01b038416301461073a576004545f906064906001600160a01b038781169116146106ed576001546106f0565b5f545b6106fa90856109f2565b6107049190610a1c565b90506107108184610a09565b305f90815260026020526040812080549295508392909190610733908490610abe565b9091555050505b6001600160a01b0383165f9081526002602052604081208054849290610761908490610abe565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107ad91815260200190565b60405180910390a35060019392505050565b5f6020808352835180828501525f5b818110156107ea578581018301518582016040015282016107ce565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610820575f80fd5b919050565b5f8060408385031215610836575f80fd5b61083f8361080a565b946020939093013593505050565b5f805f6060848603121561085f575f80fd5b6108688461080a565b92506108766020850161080a565b9150604084013590509250925092565b5f60208284031215610896575f80fd5b61039f8261080a565b5f80604083850312156108b0575f80fd5b50508035926020909101359150565b5f80604083850312156108d0575f80fd5b6108d98361080a565b91506108e76020840161080a565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561093e57815f1904821115610924576109246108f0565b8085161561093157918102915b93841c9390800290610909565b509250929050565b5f82610954575060016102d2565b8161096057505f6102d2565b816001811461097657600281146109805761099c565b60019150506102d2565b60ff841115610991576109916108f0565b50506001821b6102d2565b5060208310610133831016604e8410600b84101617156109bf575081810a6102d2565b6109c98383610904565b805f19048211156109dc576109dc6108f0565b029392505050565b5f61039f60ff841683610946565b80820281158282048414176102d2576102d26108f0565b818103818111156102d2576102d26108f0565b5f82610a3657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015610a9d5784516001600160a01b031683529383019391830191600101610a78565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156102d2576102d26108f056fea2646970667358221220461c343ded7b7a3ee9d461b9542cb884e5e5adc0ff96da42b666f9406b302af564736f6c63430008140033
0x60c06040525f608081905260a081905280805560015534801562000021575f80fd5b50620000306012600a620001e3565b6200003f90620f4240620001fa565b335f8181526002602090815260408083209490945530825260038152838220737a250d5630b4cf539739df2c5dacb4c659f2488d835290529182205f199055907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef620000ae6012600a620001e3565b620000bd90620f4240620001fa565b60405190815260200160405180910390a362000214565b634e487b7160e01b5f52601160045260245ffd5b600181815b808511156200012857815f19048211156200010c576200010c620000d4565b808516156200011a57918102915b93841c9390800290620000ed565b509250929050565b5f826200014057506001620001dd565b816200014e57505f620001dd565b8160018114620001675760028114620001725762000192565b6001915050620001dd565b60ff841115620001865762000186620000d4565b50506001821b620001dd565b5060208310610133831016604e8410600b8410161715620001b7575081810a620001dd565b620001c38383620000e8565b805f1904821115620001d957620001d9620000d4565b0290505b92915050565b5f620001f360ff84168362000130565b9392505050565b8082028115828204841417620001dd57620001dd620000d4565b610b0780620002225f395ff3fe60806040526004361061009d575f3560e01c806370a082311161006257806370a082311461018857806393b1c69c146101b357806395d89b41146101d4578063a9059cbb14610203578063c9567bf914610222578063dd62ed3e14610236575f80fd5b806306fdde03146100a8578063095ea7b3146100f257806318160ddd1461012157806323b872dd14610143578063313ce56714610162575f80fd5b366100a457005b5f80fd5b3480156100b3575f80fd5b506100dc60405180604001604052806009815260200168426574636f696e416960b81b81525081565b6040516100e991906107bf565b60405180910390f35b3480156100fd575f80fd5b5061011161010c366004610825565b61026c565b60405190151581526020016100e9565b34801561012c575f80fd5b506101356102d8565b6040519081526020016100e9565b34801561014e575f80fd5b5061011161015d36600461084d565b6102f4565b34801561016d575f80fd5b50610176601281565b60405160ff90911681526020016100e9565b348015610193575f80fd5b506101356101a2366004610886565b60026020525f908152604090205481565b3480156101be575f80fd5b506101d26101cd36600461089f565b610341565b005b3480156101df575f80fd5b506100dc604051806040016040528060048152602001630910915560e21b81525081565b34801561020e575f80fd5b5061011161021d366004610825565b610393565b34801561022d575f80fd5b506101d26103a6565b348015610241575f80fd5b506101356102503660046108bf565b600360209081525f928352604080842090915290825290205481565b335f8181526003602090815260408083206001600160a01b038716808552925280832085905551919290917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925906102c69086815260200190565b60405180910390a35060015b92915050565b6102e46012600a6109e4565b6102f190620f42406109f2565b81565b6001600160a01b0383165f908152600360209081526040808320338452909152812080548391908390610328908490610a09565b9091555061033990508484846103ed565b949350505050565b730551a1d248e39a4e1dea18d0ca941a93d64a31bd19330161037a57604080518082019091528281526020018190525f91909155600155565b60405163af53312560e01b815260040160405180910390fd5b5f61039f3384846103ed565b9392505050565b600454600160a81b900460ff16156103bc575f80fd5b730551a1d248e39a4e1dea18d0ca941a93d64a31bd19330161037a576004805460ff60a81b1916600160a81b179055565b6004545f90600160a81b900460ff168061042357506001600160a01b038416730551a1d248e39a4e1dea18d0ca941a93d64a31be145b8061044a57506001600160a01b038316730551a1d248e39a4e1dea18d0ca941a93d64a31be145b610452575f80fd5b600454600160a81b900460ff1615801561047557506004546001600160a01b0316155b801561048057505f82115b156104a157600480546001600160a01b0319166001600160a01b0385161790555b6001600160a01b0384165f90815260026020526040812080548492906104c8908490610a09565b90915550506004546001600160a01b0384811691161480156104f45750600454600160a01b900460ff16155b8015610532575060646105096012600a6109e4565b61051690620f42406109f2565b6105209190610a1c565b305f9081526002602052604090205410155b156106bb576004805460ff60a01b1916600160a01b1790556040805160028082526060820183525f9260208301908036833701905050905030815f8151811061057d5761057d610a3b565b60200260200101906001600160a01b031690816001600160a01b03168152505073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc2816001815181106105c5576105c5610a3b565b6001600160a01b0390921660209283029190910190910152737a250d5630b4cf539739df2c5dacb4c659f2488d63791ac94760646106056012600a6109e4565b61061290620f42406109f2565b61061c9190610a1c565b5f8430426040518663ffffffff1660e01b8152600401610640959493929190610a4f565b5f604051808303815f87803b158015610657575f80fd5b505af1158015610669573d5f803e3d5ffd5b5050604051730551a1d248e39a4e1dea18d0ca941a93d64a31be92504780156108fc029250905f818181858888f193505050501580156106ab573d5f803e3d5ffd5b50506004805460ff60a01b191690555b6001600160a01b038416301461073a576004545f906064906001600160a01b038781169116146106ed576001546106f0565b5f545b6106fa90856109f2565b6107049190610a1c565b90506107108184610a09565b305f90815260026020526040812080549295508392909190610733908490610abe565b9091555050505b6001600160a01b0383165f9081526002602052604081208054849290610761908490610abe565b92505081905550826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516107ad91815260200190565b60405180910390a35060019392505050565b5f6020808352835180828501525f5b818110156107ea578581018301518582016040015282016107ce565b505f604082860101526040601f19601f8301168501019250505092915050565b80356001600160a01b0381168114610820575f80fd5b919050565b5f8060408385031215610836575f80fd5b61083f8361080a565b946020939093013593505050565b5f805f6060848603121561085f575f80fd5b6108688461080a565b92506108766020850161080a565b9150604084013590509250925092565b5f60208284031215610896575f80fd5b61039f8261080a565b5f80604083850312156108b0575f80fd5b50508035926020909101359150565b5f80604083850312156108d0575f80fd5b6108d98361080a565b91506108e76020840161080a565b90509250929050565b634e487b7160e01b5f52601160045260245ffd5b600181815b8085111561093e57815f1904821115610924576109246108f0565b8085161561093157918102915b93841c9390800290610909565b509250929050565b5f82610954575060016102d2565b8161096057505f6102d2565b816001811461097657600281146109805761099c565b60019150506102d2565b60ff841115610991576109916108f0565b50506001821b6102d2565b5060208310610133831016604e8410600b84101617156109bf575081810a6102d2565b6109c98383610904565b805f19048211156109dc576109dc6108f0565b029392505050565b5f61039f60ff841683610946565b80820281158282048414176102d2576102d26108f0565b818103818111156102d2576102d26108f0565b5f82610a3657634e487b7160e01b5f52601260045260245ffd5b500490565b634e487b7160e01b5f52603260045260245ffd5b5f60a082018783526020878185015260a0604085015281875180845260c08601915082890193505f5b81811015610a9d5784516001600160a01b031683529383019391830191600101610a78565b50506001600160a01b03969096166060850152505050608001529392505050565b808201808211156102d2576102d26108f056fea2646970667358221220461c343ded7b7a3ee9d461b9542cb884e5e5adc0ff96da42b666f9406b302af564736f6c63430008140033