0x60806040526000805460ff191660011790553480156200001e57600080fd5b506040518060400160405280601681526020017f47656d7320616e6420476f626c696e7320746f6b656e0000000000000000000081525060405180604001604052806003815260200162476e4760e81b81525081600590816200008291906200029b565b5060066200009182826200029b565b5050600780543361010081026001600160a81b0319909216919091176012179091559050620000cd816b019d971e4fe8401e740000006200010a565b6040516001600160a01b038216906000907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908290a3506200038f565b6001600160a01b038216620001655760405162461bcd60e51b815260206004820152601f60248201527f45524332303a206d696e7420746f20746865207a65726f206164647265737300604482015260640160405180910390fd5b806004600082825462000179919062000367565b90915550506001600160a01b03821660009081526002602052604081208054839290620001a890849062000367565b90915550506040518181526001600160a01b038316906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9060200160405180910390a35050565b505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200022257607f821691505b6020821081036200024357634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001f257600081815260208120601f850160051c81016020861015620002725750805b601f850160051c820191505b8181101562000293578281556001016200027e565b505050505050565b81516001600160401b03811115620002b757620002b7620001f7565b620002cf81620002c884546200020d565b8462000249565b602080601f831160018114620003075760008415620002ee5750858301515b600019600386901b1c1916600185901b17855562000293565b600085815260208120601f198616915b82811015620003385788860151825594840194600190910190840162000317565b5085821015620003575787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156200038957634e487b7160e01b600052601160045260246000fd5b92915050565b610fdd806200039f6000396000f3fe608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063b28fc6a311610071578063b28fc6a314610286578063be45fd6214610293578063dd62ed3e146102a6578063f2fde38b146102df578063f46eccc4146102f257600080fd5b80638da5cb5b1461022757806395d89b4114610250578063a457c2d714610258578063a9059cbb1461026b578063a9b9cd1e1461027e57600080fd5b806339509351116100f457806339509351146101ac5780635a3b7e42146101bf5780635d799f87146101e157806370a08231146101f6578063715018a61461021f57600080fd5b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017257806323b872dd14610184578063313ce56714610197575b600080fd5b610139610315565b6040516101469190610c96565b60405180910390f35b61016261015d366004610ccc565b6103a7565b6040519015158152602001610146565b6004545b604051908152602001610146565b610162610192366004610cf6565b6103be565b60075460405160ff9091168152602001610146565b6101626101ba366004610ccc565b610410565b60408051808201909152600681526565726332323360d01b6020820152610139565b6101f46101ef366004610d32565b610447565b005b610176610204366004610d65565b6001600160a01b031660009081526002602052604090205490565b6101f4610567565b60075461010090046001600160a01b03166040516001600160a01b039091168152602001610146565b6101396105e6565b610162610266366004610ccc565b6105f5565b610162610279366004610ccc565b61062c565b6101f461064b565b6000546101629060ff1681565b6101626102a1366004610d80565b6106e3565b6101766102b4366004610d32565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6101f46102ed366004610d65565b610732565b610162610300366004610d65565b60016020526000908152604090205460ff1681565b60606005805461032490610e07565b80601f016020809104026020016040519081016040528092919081815260200182805461035090610e07565b801561039d5780601f106103725761010080835404028352916020019161039d565b820191906000526020600020905b81548152906001019060200180831161038057829003601f168201915b5050505050905090565b60006103b4338484610844565b5060015b92915050565b60006103cb848484610969565b6001600160a01b038416600090815260036020908152604080832033808552925290912054610406918691610401908690610e57565b610844565b5060019392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916103b4918590610401908690610e6a565b60075461010090046001600160a01b0316331461047f5760405162461bcd60e51b815260040161047690610e7d565b60405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156104c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ea9190610eb2565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303816000875af115801561053d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105619190610ecb565b50505050565b60075461010090046001600160a01b031633146105965760405162461bcd60e51b815260040161047690610e7d565b60075460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360078054610100600160a81b0319169055565b60606006805461032490610e07565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916103b4918590610401908690610e57565b604080516000808252602082019092526103b490339085908590610a5d565b60075461010090046001600160a01b0316331461067a5760405162461bcd60e51b815260040161047690610e7d565b60005460ff166106d75760405162461bcd60e51b815260206004820152602260248201527f54686973206973206f6e6c7920616c6c6f77656420696e207365747570206d6f604482015261646560f01b6064820152608401610476565b6000805460ff19169055565b600061072733868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a5d92505050565b506001949350505050565b60075461010090046001600160a01b031633146107615760405162461bcd60e51b815260040161047690610e7d565b6001600160a01b0381161580159061078257506001600160a01b0381163014155b6107dd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610476565b6007546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166108a65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610476565b6001600160a01b0382166109075760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610476565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661098f5760405162461bcd60e51b815260040161047690610eed565b6001600160a01b0382166109b55760405162461bcd60e51b815260040161047690610f33565b6001600160a01b0383166000908152600260205260409020546109d9908290610e57565b6001600160a01b038085166000908152600260205260408082209390935590841681522054610a09908290610e6a565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061095c9085815260200190565b6001600160a01b038416610a835760405162461bcd60e51b815260040161047690610eed565b6001600160a01b038316610aa95760405162461bcd60e51b815260040161047690610f33565b6001600160a01b038416600090815260026020526040902054610acd908390610e57565b6001600160a01b038086166000908152600260205260408082209390935590851681522054610afd908390610e6a565b6001600160a01b038416600081815260026020526040902091909155610b2290610c14565b15610b8a576040516344a1f60160e11b81526001600160a01b03841690638943ec0290610b5790879086908690600401610f77565b600060405180830381600087803b158015610b7157600080fd5b505af1158015610b85573d6000803e3d6000fd5b505050505b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610bcf91815260200190565b60405180910390a37f3ba9136826ac751de05d770d8d34fa4440ada49a5fb0e9aa1678aece66dad97681604051610c069190610c96565b60405180910390a150505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610c4857508115155b949350505050565b6000815180845260005b81811015610c7657602081850181015186830182015201610c5a565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610ca96020830184610c50565b9392505050565b80356001600160a01b0381168114610cc757600080fd5b919050565b60008060408385031215610cdf57600080fd5b610ce883610cb0565b946020939093013593505050565b600080600060608486031215610d0b57600080fd5b610d1484610cb0565b9250610d2260208501610cb0565b9150604084013590509250925092565b60008060408385031215610d4557600080fd5b610d4e83610cb0565b9150610d5c60208401610cb0565b90509250929050565b600060208284031215610d7757600080fd5b610ca982610cb0565b60008060008060608587031215610d9657600080fd5b610d9f85610cb0565b935060208501359250604085013567ffffffffffffffff80821115610dc357600080fd5b818701915087601f830112610dd757600080fd5b813581811115610de657600080fd5b886020828501011115610df857600080fd5b95989497505060200194505050565b600181811c90821680610e1b57607f821691505b602082108103610e3b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156103b8576103b8610e41565b808201808211156103b8576103b8610e41565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215610ec457600080fd5b5051919050565b600060208284031215610edd57600080fd5b81518015158114610ca957600080fd5b60208082526026908201527f4552433232333a207472616e736665722066726f6d20746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526024908201527f4552433232333a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60018060a01b0384168152826020820152606060408201526000610f9e6060830184610c50565b9594505050505056fea264697066735822122093146fc00d4acc001005fb133add4207b2c353cc313b3cc7114c7bdad0e0083264736f6c63430008110033
0x608060405234801561001057600080fd5b506004361061012c5760003560e01c80638da5cb5b116100ad578063b28fc6a311610071578063b28fc6a314610286578063be45fd6214610293578063dd62ed3e146102a6578063f2fde38b146102df578063f46eccc4146102f257600080fd5b80638da5cb5b1461022757806395d89b4114610250578063a457c2d714610258578063a9059cbb1461026b578063a9b9cd1e1461027e57600080fd5b806339509351116100f457806339509351146101ac5780635a3b7e42146101bf5780635d799f87146101e157806370a08231146101f6578063715018a61461021f57600080fd5b806306fdde0314610131578063095ea7b31461014f57806318160ddd1461017257806323b872dd14610184578063313ce56714610197575b600080fd5b610139610315565b6040516101469190610c96565b60405180910390f35b61016261015d366004610ccc565b6103a7565b6040519015158152602001610146565b6004545b604051908152602001610146565b610162610192366004610cf6565b6103be565b60075460405160ff9091168152602001610146565b6101626101ba366004610ccc565b610410565b60408051808201909152600681526565726332323360d01b6020820152610139565b6101f46101ef366004610d32565b610447565b005b610176610204366004610d65565b6001600160a01b031660009081526002602052604090205490565b6101f4610567565b60075461010090046001600160a01b03166040516001600160a01b039091168152602001610146565b6101396105e6565b610162610266366004610ccc565b6105f5565b610162610279366004610ccc565b61062c565b6101f461064b565b6000546101629060ff1681565b6101626102a1366004610d80565b6106e3565b6101766102b4366004610d32565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205490565b6101f46102ed366004610d65565b610732565b610162610300366004610d65565b60016020526000908152604090205460ff1681565b60606005805461032490610e07565b80601f016020809104026020016040519081016040528092919081815260200182805461035090610e07565b801561039d5780601f106103725761010080835404028352916020019161039d565b820191906000526020600020905b81548152906001019060200180831161038057829003601f168201915b5050505050905090565b60006103b4338484610844565b5060015b92915050565b60006103cb848484610969565b6001600160a01b038416600090815260036020908152604080832033808552925290912054610406918691610401908690610e57565b610844565b5060019392505050565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916103b4918590610401908690610e6a565b60075461010090046001600160a01b0316331461047f5760405162461bcd60e51b815260040161047690610e7d565b60405180910390fd5b6040516370a0823160e01b81523060048201526000906001600160a01b038416906370a0823190602401602060405180830381865afa1580156104c6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906104ea9190610eb2565b60405163a9059cbb60e01b81526001600160a01b038481166004830152602482018390529192509084169063a9059cbb906044016020604051808303816000875af115801561053d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906105619190610ecb565b50505050565b60075461010090046001600160a01b031633146105965760405162461bcd60e51b815260040161047690610e7d565b60075460405160009161010090046001600160a01b0316907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0908390a360078054610100600160a81b0319169055565b60606006805461032490610e07565b3360008181526003602090815260408083206001600160a01b038716845290915281205490916103b4918590610401908690610e57565b604080516000808252602082019092526103b490339085908590610a5d565b60075461010090046001600160a01b0316331461067a5760405162461bcd60e51b815260040161047690610e7d565b60005460ff166106d75760405162461bcd60e51b815260206004820152602260248201527f54686973206973206f6e6c7920616c6c6f77656420696e207365747570206d6f604482015261646560f01b6064820152608401610476565b6000805460ff19169055565b600061072733868686868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250610a5d92505050565b506001949350505050565b60075461010090046001600160a01b031633146107615760405162461bcd60e51b815260040161047690610e7d565b6001600160a01b0381161580159061078257506001600160a01b0381163014155b6107dd5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610476565b6007546040516001600160a01b0380841692610100900416907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a3600780546001600160a01b0390921661010002610100600160a81b0319909216919091179055565b6001600160a01b0383166108a65760405162461bcd60e51b8152602060048201526024808201527f45524332303a20617070726f76652066726f6d20746865207a65726f206164646044820152637265737360e01b6064820152608401610476565b6001600160a01b0382166109075760405162461bcd60e51b815260206004820152602260248201527f45524332303a20617070726f766520746f20746865207a65726f206164647265604482015261737360f01b6064820152608401610476565b6001600160a01b0383811660008181526003602090815260408083209487168084529482529182902085905590518481527f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591015b60405180910390a3505050565b6001600160a01b03831661098f5760405162461bcd60e51b815260040161047690610eed565b6001600160a01b0382166109b55760405162461bcd60e51b815260040161047690610f33565b6001600160a01b0383166000908152600260205260409020546109d9908290610e57565b6001600160a01b038085166000908152600260205260408082209390935590841681522054610a09908290610e6a565b6001600160a01b0380841660008181526002602052604090819020939093559151908516907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9061095c9085815260200190565b6001600160a01b038416610a835760405162461bcd60e51b815260040161047690610eed565b6001600160a01b038316610aa95760405162461bcd60e51b815260040161047690610f33565b6001600160a01b038416600090815260026020526040902054610acd908390610e57565b6001600160a01b038086166000908152600260205260408082209390935590851681522054610afd908390610e6a565b6001600160a01b038416600081815260026020526040902091909155610b2290610c14565b15610b8a576040516344a1f60160e11b81526001600160a01b03841690638943ec0290610b5790879086908690600401610f77565b600060405180830381600087803b158015610b7157600080fd5b505af1158015610b85573d6000803e3d6000fd5b505050505b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051610bcf91815260200190565b60405180910390a37f3ba9136826ac751de05d770d8d34fa4440ada49a5fb0e9aa1678aece66dad97681604051610c069190610c96565b60405180910390a150505050565b6000813f7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470818114801590610c4857508115155b949350505050565b6000815180845260005b81811015610c7657602081850181015186830182015201610c5a565b506000602082860101526020601f19601f83011685010191505092915050565b602081526000610ca96020830184610c50565b9392505050565b80356001600160a01b0381168114610cc757600080fd5b919050565b60008060408385031215610cdf57600080fd5b610ce883610cb0565b946020939093013593505050565b600080600060608486031215610d0b57600080fd5b610d1484610cb0565b9250610d2260208501610cb0565b9150604084013590509250925092565b60008060408385031215610d4557600080fd5b610d4e83610cb0565b9150610d5c60208401610cb0565b90509250929050565b600060208284031215610d7757600080fd5b610ca982610cb0565b60008060008060608587031215610d9657600080fd5b610d9f85610cb0565b935060208501359250604085013567ffffffffffffffff80821115610dc357600080fd5b818701915087601f830112610dd757600080fd5b813581811115610de657600080fd5b886020828501011115610df857600080fd5b95989497505060200194505050565b600181811c90821680610e1b57607f821691505b602082108103610e3b57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b818103818111156103b8576103b8610e41565b808201808211156103b8576103b8610e41565b6020808252818101527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604082015260600190565b600060208284031215610ec457600080fd5b5051919050565b600060208284031215610edd57600080fd5b81518015158114610ca957600080fd5b60208082526026908201527f4552433232333a207472616e736665722066726f6d20746865207a65726f206160408201526564647265737360d01b606082015260800190565b60208082526024908201527f4552433232333a207472616e7366657220746f20746865207a65726f206164646040820152637265737360e01b606082015260800190565b60018060a01b0384168152826020820152606060408201526000610f9e6060830184610c50565b9594505050505056fea264697066735822122093146fc00d4acc001005fb133add4207b2c353cc313b3cc7114c7bdad0e0083264736f6c63430008110033