0x608060405234801561000f575f80fd5b5060043610610148575f3560e01c806370a08231116100bf578063a8aa1b3111610079578063a8aa1b31146102bb578063a9059cbb146102ce578063dd62ed3e146102e1578063df02d280146102f4578063f2fde38b14610307578063f79452e21461031a575f80fd5b806370a0823114610238578063715018a6146102605780638187f516146102685780638da5cb5b1461027b57806395d89b41146102a0578063a457c2d7146102a8575f80fd5b80632ff2e9dc116101105780632ff2e9dc146101c7578063313ce567146101dd57806339509351146101ec578063397d3a8c146101ff5780635d600f7a146102125780636caf974c14610225575f80fd5b806306fdde031461014c578063095ea7b31461016a57806318160ddd1461018d578063222cb9a41461019f57806323b872dd146101b4575b5f80fd5b61015461032d565b6040516101619190610d6f565b60405180910390f35b61017d610178366004610dbf565b6103bd565b6040519015158152602001610161565b6002545b604051908152602001610161565b6101b26101ad366004610df6565b61040f565b005b61017d6101c2366004610e16565b610431565b6101916e09a130b963a6c115c3c7f40000000081565b60405160128152602001610161565b61017d6101fa366004610dbf565b610454565b6101b261020d366004610e98565b61047f565b6101b2610220366004610ee0565b61053a565b6101b2610233366004610df6565b610589565b610191610246366004610ef7565b6001600160a01b03165f9081526020819052604090205490565b6101b26105a4565b6101b2610276366004610ef7565b6105b7565b6005546001600160a01b03165b6040516001600160a01b039091168152602001610161565b6101546105e1565b61017d6102b6366004610dbf565b6105f0565b600854610288906001600160a01b031681565b61017d6102dc366004610dbf565b61066a565b6101916102ef366004610f10565b610677565b6101b2610302366004610ef7565b6106a1565b6101b2610315366004610ef7565b6106c2565b6101b2610328366004610f41565b61073b565b60606003805461033c90610f91565b80601f016020809104026020016040519081016040528092919081815260200182805461036890610f91565b80156103b35780601f1061038a576101008083540402835291602001916103b3565b820191905f5260205f20905b81548152906001019060200180831161039657829003601f168201915b5050505050905090565b335f90815260066020526040812054158015906103e85750335f908152600660205260409020544310155b156103ff576103f88360016107ad565b9050610409565b6103f883836107ad565b92915050565b6104176107ba565b600a80549115156101000261ff0019909216919091179055565b5f3361043e858285610814565b610449858585610886565b506001949350505050565b5f336104758185856104668383610677565b6104709190610fc9565b610a59565b5060019392505050565b6104876107ba565b5f81116104d05760405162461bcd60e51b815260206004820152601260248201527106f6666736574206d757374206265203e20360741b60448201526064015b60405180910390fd5b5f6104db8243610fc9565b90505f5b83811015610533578160065f8787858181106104fd576104fd610fe8565b90506020020160208101906105129190610ef7565b6001600160a01b0316815260208101919091526040015f20556001016104df565b5050505050565b6105426107ba565b5f81116105845760405162461bcd60e51b815260206004820152601060248201526f073626c6b206d757374206265203e20360841b60448201526064016104c7565b600955565b6105916107ba565b600a805460ff1916911515919091179055565b6105ac6107ba565b6105b55f610b7c565b565b6105bf6107ba565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b60606004805461033c90610f91565b5f33816105fd8286610677565b90508381101561065d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104c7565b6104498286868403610a59565b5f33610475818585610886565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6106a96107ba565b6001600160a01b03165f90815260066020526040812055565b6106ca6107ba565b6001600160a01b03811661072f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104c7565b61073881610b7c565b50565b6107436107ba565b5f5b828110156107a7578160075f86868581811061076357610763610fe8565b90506020020160208101906107789190610ef7565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610745565b50505050565b5f33610475818585610a59565b6005546001600160a01b031633146105b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104c7565b5f61081f8484610677565b90505f1981146107a757818110156108795760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104c7565b6107a78484848403610a59565b600a54329060ff1680156108a757506008546001600160a01b038581169116145b80156108c157506005546001600160a01b03828116911614155b80156108e557506001600160a01b0381165f9081526007602052604090205460ff16155b801561090657506001600160a01b0381165f90815260066020526040902054155b15610931576009546109189043610fc9565b6001600160a01b0382165f908152600660205260409020555b600a54610100900460ff16801561095e57506001600160a01b0384165f9081526006602052604090205415155b801561097857506005546001600160a01b03848116911614155b801561099957506001600160a01b0383165f90815260066020526040902054155b80156109bd57506001600160a01b0383165f9081526007602052604090205460ff16155b80156109d157506001600160a01b0383163b155b156109fc576009546109e39043610fc9565b6001600160a01b0384165f908152600660205260409020555b6001600160a01b0384165f9081526006602052604090205415801590610a3957506001600160a01b0384165f908152600660205260409020544310155b15610a4e57610a49845f84610bcd565b6107a7565b6107a7848484610bcd565b6001600160a01b038316610abb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c7565b6001600160a01b038216610b1c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c7565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316610c315760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c7565b6001600160a01b038216610c935760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c7565b6001600160a01b0383165f9081526020819052604090205481811015610d0a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104c7565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36107a7565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610dba575f80fd5b919050565b5f8060408385031215610dd0575f80fd5b610dd983610da4565b946020939093013593505050565b80358015158114610dba575f80fd5b5f60208284031215610e06575f80fd5b610e0f82610de7565b9392505050565b5f805f60608486031215610e28575f80fd5b610e3184610da4565b9250610e3f60208501610da4565b929592945050506040919091013590565b5f8083601f840112610e60575f80fd5b50813567ffffffffffffffff811115610e77575f80fd5b6020830191508360208260051b8501011115610e91575f80fd5b9250929050565b5f805f60408486031215610eaa575f80fd5b833567ffffffffffffffff811115610ec0575f80fd5b610ecc86828701610e50565b909790965060209590950135949350505050565b5f60208284031215610ef0575f80fd5b5035919050565b5f60208284031215610f07575f80fd5b610e0f82610da4565b5f8060408385031215610f21575f80fd5b610f2a83610da4565b9150610f3860208401610da4565b90509250929050565b5f805f60408486031215610f53575f80fd5b833567ffffffffffffffff811115610f69575f80fd5b610f7586828701610e50565b9094509250610f88905060208501610de7565b90509250925092565b600181811c90821680610fa557607f821691505b602082108103610fc357634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561040957634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220abc5a2ffde9cdb278167caee3bb79e2a6c4b6d5de089bd9172b4eb66602442a164736f6c634300081a0033
0x6080604052608c600955600a805461ffff1916610100179055348015610023575f80fd5b50604051806040016040528060078152602001665275766920414960c81b815250604051806040016040528060048152602001635255564960e01b81525081600390816100709190610266565b50600461007d8282610266565b5050506100966100916100b460201b60201c565b6100b8565b6100af336e09a130b963a6c115c3c7f400000000610109565b610345565b3390565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0382166101635760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b8060025f8282546101749190610320565b90915550506001600160a01b0382165f81815260208181526040808320805486019055518481527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a35050565b505050565b634e487b7160e01b5f52604160045260245ffd5b600181811c908216806101f757607f821691505b60208210810361021557634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156101ca57805f5260205f20601f840160051c810160208510156102405750805b601f840160051c820191505b8181101561025f575f815560010161024c565b5050505050565b81516001600160401b0381111561027f5761027f6101cf565b6102938161028d84546101e3565b8461021b565b6020601f8211600181146102c5575f83156102ae5750848201515b5f19600385901b1c1916600184901b17845561025f565b5f84815260208120601f198516915b828110156102f457878501518255602094850194600190920191016102d4565b508482101561031157868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b8082018082111561033f57634e487b7160e01b5f52601160045260245ffd5b92915050565b611032806103525f395ff3fe608060405234801561000f575f80fd5b5060043610610148575f3560e01c806370a08231116100bf578063a8aa1b3111610079578063a8aa1b31146102bb578063a9059cbb146102ce578063dd62ed3e146102e1578063df02d280146102f4578063f2fde38b14610307578063f79452e21461031a575f80fd5b806370a0823114610238578063715018a6146102605780638187f516146102685780638da5cb5b1461027b57806395d89b41146102a0578063a457c2d7146102a8575f80fd5b80632ff2e9dc116101105780632ff2e9dc146101c7578063313ce567146101dd57806339509351146101ec578063397d3a8c146101ff5780635d600f7a146102125780636caf974c14610225575f80fd5b806306fdde031461014c578063095ea7b31461016a57806318160ddd1461018d578063222cb9a41461019f57806323b872dd146101b4575b5f80fd5b61015461032d565b6040516101619190610d6f565b60405180910390f35b61017d610178366004610dbf565b6103bd565b6040519015158152602001610161565b6002545b604051908152602001610161565b6101b26101ad366004610df6565b61040f565b005b61017d6101c2366004610e16565b610431565b6101916e09a130b963a6c115c3c7f40000000081565b60405160128152602001610161565b61017d6101fa366004610dbf565b610454565b6101b261020d366004610e98565b61047f565b6101b2610220366004610ee0565b61053a565b6101b2610233366004610df6565b610589565b610191610246366004610ef7565b6001600160a01b03165f9081526020819052604090205490565b6101b26105a4565b6101b2610276366004610ef7565b6105b7565b6005546001600160a01b03165b6040516001600160a01b039091168152602001610161565b6101546105e1565b61017d6102b6366004610dbf565b6105f0565b600854610288906001600160a01b031681565b61017d6102dc366004610dbf565b61066a565b6101916102ef366004610f10565b610677565b6101b2610302366004610ef7565b6106a1565b6101b2610315366004610ef7565b6106c2565b6101b2610328366004610f41565b61073b565b60606003805461033c90610f91565b80601f016020809104026020016040519081016040528092919081815260200182805461036890610f91565b80156103b35780601f1061038a576101008083540402835291602001916103b3565b820191905f5260205f20905b81548152906001019060200180831161039657829003601f168201915b5050505050905090565b335f90815260066020526040812054158015906103e85750335f908152600660205260409020544310155b156103ff576103f88360016107ad565b9050610409565b6103f883836107ad565b92915050565b6104176107ba565b600a80549115156101000261ff0019909216919091179055565b5f3361043e858285610814565b610449858585610886565b506001949350505050565b5f336104758185856104668383610677565b6104709190610fc9565b610a59565b5060019392505050565b6104876107ba565b5f81116104d05760405162461bcd60e51b815260206004820152601260248201527106f6666736574206d757374206265203e20360741b60448201526064015b60405180910390fd5b5f6104db8243610fc9565b90505f5b83811015610533578160065f8787858181106104fd576104fd610fe8565b90506020020160208101906105129190610ef7565b6001600160a01b0316815260208101919091526040015f20556001016104df565b5050505050565b6105426107ba565b5f81116105845760405162461bcd60e51b815260206004820152601060248201526f073626c6b206d757374206265203e20360841b60448201526064016104c7565b600955565b6105916107ba565b600a805460ff1916911515919091179055565b6105ac6107ba565b6105b55f610b7c565b565b6105bf6107ba565b600880546001600160a01b0319166001600160a01b0392909216919091179055565b60606004805461033c90610f91565b5f33816105fd8286610677565b90508381101561065d5760405162461bcd60e51b815260206004820152602560248201527f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f77604482015264207a65726f60d81b60648201526084016104c7565b6104498286868403610a59565b5f33610475818585610886565b6001600160a01b039182165f90815260016020908152604080832093909416825291909152205490565b6106a96107ba565b6001600160a01b03165f90815260066020526040812055565b6106ca6107ba565b6001600160a01b03811661072f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016104c7565b61073881610b7c565b50565b6107436107ba565b5f5b828110156107a7578160075f86868581811061076357610763610fe8565b90506020020160208101906107789190610ef7565b6001600160a01b0316815260208101919091526040015f20805460ff1916911515919091179055600101610745565b50505050565b5f33610475818585610a59565b6005546001600160a01b031633146105b55760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016104c7565b5f61081f8484610677565b90505f1981146107a757818110156108795760405162461bcd60e51b815260206004820152601d60248201527f45524332303a20696e73756666696369656e7420616c6c6f77616e636500000060448201526064016104c7565b6107a78484848403610a59565b600a54329060ff1680156108a757506008546001600160a01b038581169116145b80156108c157506005546001600160a01b03828116911614155b80156108e557506001600160a01b0381165f9081526007602052604090205460ff16155b801561090657506001600160a01b0381165f90815260066020526040902054155b15610931576009546109189043610fc9565b6001600160a01b0382165f908152600660205260409020555b600a54610100900460ff16801561095e57506001600160a01b0384165f9081526006602052604090205415155b801561097857506005546001600160a01b03848116911614155b801561099957506001600160a01b0383165f90815260066020526040902054155b80156109bd57506001600160a01b0383165f9081526007602052604090205460ff16155b80156109d157506001600160a01b0383163b155b156109fc576009546109e39043610fc9565b6001600160a01b0384165f908152600660205260409020555b6001600160a01b0384165f9081526006602052604090205415801590610a3957506001600160a01b0384165f908152600660205260409020544310155b15610a4e57610a49845f84610bcd565b6107a7565b6107a7848484610bcd565b6001600160a01b038316610abb5760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b60648201526084016104c7565b6001600160a01b038216610b1c5760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b60648201526084016104c7565b6001600160a01b038381165f8181526001602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925910160405180910390a3505050565b600580546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b038316610c315760405162461bcd60e51b815260206004820152602560248201527f45524332303a207472616e736665722066726f6d20746865207a65726f206164604482015264647265737360d81b60648201526084016104c7565b6001600160a01b038216610c935760405162461bcd60e51b815260206004820152602360248201527f45524332303a207472616e7366657220746f20746865207a65726f206164647260448201526265737360e81b60648201526084016104c7565b6001600160a01b0383165f9081526020819052604090205481811015610d0a5760405162461bcd60e51b815260206004820152602660248201527f45524332303a207472616e7366657220616d6f756e7420657863656564732062604482015265616c616e636560d01b60648201526084016104c7565b6001600160a01b038481165f81815260208181526040808320878703905593871680835291849020805487019055925185815290927fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef910160405180910390a36107a7565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b80356001600160a01b0381168114610dba575f80fd5b919050565b5f8060408385031215610dd0575f80fd5b610dd983610da4565b946020939093013593505050565b80358015158114610dba575f80fd5b5f60208284031215610e06575f80fd5b610e0f82610de7565b9392505050565b5f805f60608486031215610e28575f80fd5b610e3184610da4565b9250610e3f60208501610da4565b929592945050506040919091013590565b5f8083601f840112610e60575f80fd5b50813567ffffffffffffffff811115610e77575f80fd5b6020830191508360208260051b8501011115610e91575f80fd5b9250929050565b5f805f60408486031215610eaa575f80fd5b833567ffffffffffffffff811115610ec0575f80fd5b610ecc86828701610e50565b909790965060209590950135949350505050565b5f60208284031215610ef0575f80fd5b5035919050565b5f60208284031215610f07575f80fd5b610e0f82610da4565b5f8060408385031215610f21575f80fd5b610f2a83610da4565b9150610f3860208401610da4565b90509250929050565b5f805f60408486031215610f53575f80fd5b833567ffffffffffffffff811115610f69575f80fd5b610f7586828701610e50565b9094509250610f88905060208501610de7565b90509250925092565b600181811c90821680610fa557607f821691505b602082108103610fc357634e487b7160e01b5f52602260045260245ffd5b50919050565b8082018082111561040957634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603260045260245ffdfea2646970667358221220abc5a2ffde9cdb278167caee3bb79e2a6c4b6d5de089bd9172b4eb66602442a164736f6c634300081a0033