From f939399ae60b99d0a10b9a7ace7cce259fc0a241 Mon Sep 17 00:00:00 2001 From: Daigo Moriwaki Date: Sat, 8 May 2010 13:58:49 +0900 Subject: [PATCH 1/1] Added a benchmark program. ex: time ruby1.9.1 benchmark.rb csa/wdoor+floodgate-900-0+gps_normal+gps_l+20100507120007.csa 10 --- test/benchmark.rb | 137 ++++++ ...dgate-900-0+gps_normal+gps_l+20100507120007.csa | 493 +++++++++++++++++++++ 2 files changed, 630 insertions(+) create mode 100644 test/benchmark.rb create mode 100644 test/csa/wdoor+floodgate-900-0+gps_normal+gps_l+20100507120007.csa diff --git a/test/benchmark.rb b/test/benchmark.rb new file mode 100644 index 0000000..f2067b0 --- /dev/null +++ b/test/benchmark.rb @@ -0,0 +1,137 @@ +#!/usr/bin/ruby + +require 'socket' + +class BenchPlayer + def initialize(game_name, name, sente) + @game_name = game_name + @name = "%s_%s" % [game_name, name] + @turn_mark = sente ? "+" : "-" + @nmoves = 0 + end + attr_reader :nmoves + + def connect + port = 4000 + @socket = TCPSocket.open("localhost", port) + @socket.sync = true + @message = "" + reader + end + + def reader + Thread.new do + loop do + if r = select([@socket], nil, nil, 10) + str = r[0].first.gets + if %r!^[\+\-]\d{4}\w{2},T\d+$! =~ str + @nmoves += 1 + end + @message << str + else + raise "timed out" + end + end + end + end + + def wait(reg) + loop do + break if reg =~ @message + sleep 0.1 + end + end + + def wait_nmoves(n) + loop do + break if @nmoves == n + sleep 0.01 + end + end + + def login + @socket.puts "LOGIN #{@name} dummy x1" + wait %r!^LOGIN! + end + + def game + @socket.puts "%%GAME #{@game_name}-1500-0 #{@turn_mark}" + end + + def agree + @socket.puts "AGREE" + end + + def move(m) + @socket.puts m + end + + def toryo + @socket.puts "%TORYO" + end + + def logout + @socket.puts "LOGOUT" + end + +end + +class BenchGame + def initialize(game_name, csa) + @game_name = game_name + @csa = csa + @p1 = BenchPlayer.new(@game_name, "bp1", true) + @p2 = BenchPlayer.new(@game_name, "bp2", false) + end + + def each_player + [@p1, @p2].each {|player| yield player} + end + + def start + each_player {|player| player.connect} + each_player {|player| player.login} + each_player {|player| player.game} + each_player {|player| player.wait %r!^END Game_Summary!} + each_player {|player| player.agree} + each_player {|player| player.wait %r!^START:!} + turn = true # black + nmoves = 0 + @csa.each_line do |line| + case line + when /^\+\d{4}\w{2}/ + @p1.wait_nmoves nmoves + @p1.move $& + turn = false + nmoves += 1 + when /^\-\d{4}\w{2}/ + @p2.wait_nmoves nmoves + @p2.move $& + turn = true + nmoves += 1 + when /^%TORYO/ + turn ? @p1.toryo : @p2.toryo + end + end + each_player {|player| player.logout} + end +end + + +if __FILE__ == $0 + filepath = ARGV.shift || File.join(File.dirname(__FILE__), "csa", "wdoor+floodgate-900-0+gps_normal+gps_l+20100507120007.csa") + csa = File.open(filepath){|f| f.read} + + nclients = ARGV.shift || 1 + nclients = nclients.to_i + threads = [] + nclients.times do |i| + threads << Thread.new do + game = BenchGame.new("b#{i}", csa) + game.start + end + end + threads.each {|t| t.join} + +end + diff --git a/test/csa/wdoor+floodgate-900-0+gps_normal+gps_l+20100507120007.csa b/test/csa/wdoor+floodgate-900-0+gps_normal+gps_l+20100507120007.csa new file mode 100644 index 0000000..d742e6d --- /dev/null +++ b/test/csa/wdoor+floodgate-900-0+gps_normal+gps_l+20100507120007.csa @@ -0,0 +1,493 @@ +V2 +N+gps_normal +N-gps_l +$EVENT:wdoor+floodgate-900-0+gps_normal+gps_l+20100507120007 +$START_TIME:2010/05/07 12:00:00 +P1-KY-KE-GI-KI-OU-KI-GI-KE-KY +P2 * -HI * * * * * -KA * +P3-FU-FU-FU-FU-FU-FU-FU-FU-FU +P4 * * * * * * * * * +P5 * * * * * * * * * +P6 * * * * * * * * * +P7+FU+FU+FU+FU+FU+FU+FU+FU+FU +P8 * +KA * * * * * +HI * +P9+KY+KE+GI+KI+OU+KI+GI+KE+KY ++ +'rating:gps_normal+e293220e3f8a3e59f79f6b0efffaa931:gps_l+1dadf572b9a37a29d77f3eb2f812f6f4 ++7776FU +T1 +'** 0 +-3334FU +T1 ++2726FU +T1 +'** 0 +-4344FU +T1 ++3948GI +T1 +'** 0 +-8232HI +T1 ++2625FU +T1 +'** 0 +-2233KA +T1 ++5968OU +T1 +'** 0 +-3142GI +T1 ++6878OU +T1 +'** 0 +-5162OU +T9 +'** 267 +8877KA -6272OU +7888OU -7282OU +9998KY -9192KY +5756FU -8291OU +4857GI -4243GI +8899OU ++5756FU +T1 +'** 0 +-6272OU +T1 ++4958KI +T1 +'** 0 +-4152KI +T1 ++9796FU +T1 +'** 0 +-7282OU +T9 +'** 128 +8786FU -9192KY +7887OU -8291OU +7978GI -7182GI +4857GI -4243GI +5766GI -6171KI +8879KA ++4857GI +T1 +'** 0 +-9394FU +T1 ++8877KA +T1 +'** 0 +-7172GI +T1 ++7888OU +T1 +'** 0 +-4243GI +T1 ++9998KY +T1 +'** 0 +-3435FU +T12 +'** 44 +8899OU -3342KA +2826HI -3234HI +1716FU -5354FU +7988GI -2133KE +1615FU -6364FU +6979KI ++8899OU +T1 +'** 0 +-3342KA +T15 +'** 46 +2826HI -4215KA +2616HI -1542KA +7988GI -1314FU +5768GI -3234HI +7766KA -2133KE +6979KI ++6766FU +T29 +'** -34 -5354FU +7988GI -3536FU +3736FU -4264KA +4746FU -3236HI +0037FU -3634HI +6979KI -6442KA +5867KI -2133KE +-3536FU +T11 +'** -58 +3736FU -3236HI +0037FU -3635HI +5746GI -3534HI +7988GI -2133KE +6979KI -5354FU +6665FU ++3736FU +T11 +'** -31 -3236HI +0037FU -3634HI +7988GI -5354FU +5867KI -2133KE +6979KI -6364FU +1716FU -5263KI %PASS -4445FU +-3236HI +T7 +'** -26 +0037FU -3634HI +7988GI -6364FU +6979KI -5354FU +5867KI -2133KE +4746FU -1314FU +1716FU ++0037FU +T16 +'** -33 -3634HI +7988GI -2133KE +5867KI -6364FU +6979KI -5354FU +7786KA -0036FU +3736FU -3436HI +0037FU -3634HI +1716FU +-3634HI +T3 +'** 18 +7988GI -5354FU +6979KI -2133KE +6665FU -4253KA +5868KI -0036FU +3736FU -3436HI +0037FU ++7988GI +T21 +'** -34 -6364FU +6979KI -2133KE +5867KI -5354FU +1716FU -1314FU +4746FU -5263KI +2838HI -7374FU +3736FU -3325KE +-2133KE +T1 +'** -28 +6979KI -5354FU +5867KI -4445FU +6665FU -6364FU +6564FU -4264KA +0065FU ++6979KI +T38 +'** -46 -6364FU +4746FU -5354FU +5847KI -5263KI +3736FU -1314FU +1716FU -7374FU +7759KA -8173KE +2838HI -3325KE +-3435HI +T1 +'** -254 +2524FU -2324FU +5868KI -3345KE +5746GI -3525HI +2825HI -2425FU +6878KI ++7786KA +T10 +'** -162 -3525HI +2825HI -3325KE +0028HI -2324FU +5859KI %PASS %PASS +-3525HI +T15 +'** -656 +2825HI -3325KE +5868KI -0028HI +6878KI -2829RY +5768GI -2919RY +0041HI -2537NK +4111RY ++2825HI +T22 +'** -250 -3325KE +0028HI -2324FU +5748GI -1314FU +2826HI -4233KA +1716FU -4445FU +5867KI -0049HI +2628HI -3344KA +-3325KE +T1 +'** -656 +5868KI -0028HI +6878KI -2829RY +5768GI -2537NK +0041HI -2919RY +4111RY ++0028HI +T16 +'** -253 -2324FU +5748GI -0038FU +3736FU -4445FU +1716FU -4233KA +8677KA -4344GI +5859KI -6364FU +-2324FU +T34 +'** -650 +5748GI -8384FU +3736FU -7283GI +8668KA -6172KI +6665FU -5354FU +5867KI %PASS %PASS ++5748GI +T1 +'** -240 -1314FU +4746FU -8384FU +6665FU -7283GI +5868KI -4354GI +6564FU -6364FU +8664KA -5263KI +-8384FU +T42 +'** -711 +8668KA -7283GI +1716FU -6172KI +6857KA -0038FU +4859GI -5354FU +2826HI -3839TO +5739KA ++2826HI +T11 +'** -246 -7283GI +5868KI -8485FU +8677KA -2537NK +2937KE +-7283GI +T42 +'** -763 +8668KA -5354FU +5859KI -0038FU +2628HI -6172KI +5969KI -4445FU +6824KA -4224KA +2825HI ++2628HI +T1 +'** -287 -0038FU +6665FU -6172KI +8677KA %PASS %PASS +-6172KI +T42 +'** -785 +6665FU -8485FU +8677KA -7374FU +3736FU -5354FU +5655FU -5455FU +7755KA -8173KE +5867KI ++4746FU +T19 +'** -284 -8485FU +8668KA -5354FU +1716FU -5262KI +3736FU -1314FU +5867KI -4334GI %PASS -4445FU +-7374FU +T30 +'** -914 +8668KA -8173KE +6665FU -7365KE +5655FU -8485FU +4645FU -4445FU +5867KI -4344GI +6756KI ++5859KI +T9 +'** -301 -4334GI +5958KI -8173KE +5867KI -0049HI %PASS -3435GI +8668KA -0036FU +-0038FU +T7 +'** -914 +5969KI -8173KE +3736FU -8485FU +8668KA -5354FU +6978KI -0049HI +6857KA ++5958KI +T13 +'** -541 -3839TO +4839GI -2537NK +2937KE -0036FU +8659KA -0049HI +2838HI -4946RY +-8485FU +T7 +'** -906 +8677KA -5354FU +2838HI -0049HI +3839HI -4939RY +4839GI -0049HI +3938GI ++8668KA +T25 +'** -300 -5354FU +3736FU %PASS +6857KA -8586FU +8786FU -4286KA +0087FU -8642KA %PASS -0086FU +-5354FU +T30 +'** -875 +3736FU -4253KA +2838HI -0027HI +0028FU -2726RY +4847GI -0037FU +3848HI -8173KE +6877KA ++3736FU +T1 +'** -437 -7475FU +7675FU -4275KA +6857KA -5455FU +4645FU -5556FU +5724KA -7564KA +2825HI -6419UM +-4253KA +T11 +'** -875 +2838HI -0027HI +0028FU -2726RY +4847GI -0037FU +3848HI -8173KE +6877KA ++6665FU +T9 +'** -250 -5262KI +4645FU -4445FU +6824KA -8586FU +8786FU -0087FU +8887GI -5344KA +-5362KA +T9 +'** -814 +2838HI -0027HI +0028FU -2726RY +6877KA -6284KA +5867KI -0037FU +4837GI ++6857KA +T9 +'** -268 -8173KE +4645FU -3839TO +4839GI -7365KE +5746KA -6273KA +4673UM -8273OU +-6273KA +T8 +'** -827 +2838HI -0027HI +0028FU -0037FU +2937KE -2537NK +4837GI -2725RY +5867KI ++8977KE +T8 +'** -409 -8586FU +8786FU -4445FU +0026FU -7346KA +5746KA -4546FU +2625FU -3839TO +-8586FU +T23 +'** -726 +8786FU -4445FU +7785KE -7346KA +5746KA -4546FU +0033KA -0084FU +3324UM ++8786FU +T22 +'** -584 -4445FU +3635FU -0087FU +8887GI -7346KA +5746KA -4546FU +0057KA -0049HI +5746KA -0073KA +-3839TO +T10 +'** -676 +4839GI -0084FU +3948GI -5455FU +5655FU -7355KA +5867KI -0049HI +0056FU ++4839GI +T19 +'** -300 -0087FU +8887GI -0049HI +3938GI -7346KA +5746KA -4946RY +3847GI -4645RY +0046FU -4534RY +0022KA +-5455FU +T4 +'** -732 +7785KE -7362KA +5655FU -0084FU +0026FU -8485FU +8685FU -6273KA +2625FU ++7785KE +T23 +'** -456 -7351KA +5766KA -4354GI +0023FU -0084FU +2322TO -8485FU +8685FU -0086KE +8887GI -8698NK +-7362KA +T21 +'** -855 +5766KA -4354GI +9695FU -9495FU +0092FU -8292OU +0026FU -0084FU +9895KY -0094FU +0093FU ++5766KA +T9 +'** -481 -5556FU +0026FU -0087FU +8887GI -0049HI +0059FU -0084FU +2625FU -8485FU +-4354GI +T12 +'** -848 +0026FU -0084FU +2625FU -8485FU +8685FU -5556FU +0084KE -7273KI +2524FU ++0026FU +T28 +'** -522 -0087FU +8887GI -0049HI +9989OU -2537NK +2937KE -5556FU +6564FU -6364FU +0063FU -5263KI +-0084FU +T1 +'** -1016 +2625FU -5556FU +8593NK -8193KE +2524FU -0027FU +2827HI -5465GI +6655KA ++2625FU +T7 +'** -709 -5556FU +2827HI -8485FU +8685FU -5465GI +6655KA -6273KA +5573UM -7273KI +-5556FU +T9 +'** -1066 +8593NK -8193KE +3948GI -6273KA +7989KI -0069HI +6644KA -7346KA +2827HI ++2827HI +T10 +'** -439 -8485FU +8685FU -5465GI +6655KA -6273KA +5573UM -7273KI +8584FU -8384GI +0085FU +-8485FU +T11 +'** -1275 +8685FU -5465GI +6655KA -6273KA +5544KA -7346KA +2747HI -4679UM +8879GI ++8685FU +T8 +'** -690 -5465GI +6655KA -7273KI +8584FU -8384GI +0085FU -8493GI +2524FU -0086FU +0084KE -6576GI +-5465GI +T13 +'** -1313 +6655KA -6273KA +5544KA -6576GI +0053FU -5262KI +4411UM -0086FU +0084KY ++6655KA +T1 +'** -693 -6273KA +5573UM -7273KI +8584FU -8372GI +0021KA -6566GI +0065KE -7384KI +-6273KA +T11 +'** -1301 +5573UM -8173KE +3948GI -0086FU +0053FU -5253KI +0084KE -7271KI +0042KA ++5573UM +T2 +'** -859 -7273KI +0053FU -5253KI +0031KA -0049KA +2728HI -5657TO +5857KI -4976UM +-8173KE +T22 +'** -1291 +3948GI -6576GI +8584FU -8384GI +0034KA -5262KI +3443UM ++8584FU +T17 +'** -899 -8384GI +0083FU -7283KI +0053FU -5253KI +0042KA -0049KA +4253UM -4958UM +-8384GI +T22 +'** -1447 +3948GI -0049KA +0061KA -5262KI +6172UM -8272OU +2787HI ++0083FU +T1 +'** -1109 -8283OU +0034KA -5253KI +0054FU -5354KI +3461UM -0066KE +5859KI -6576GI +-8283OU +T7 +'** -1977 +3948GI -0049KA +0034KA -4958UM +3452UM -5848UM +2787HI ++0053FU +T1 +'** -1362 -5253KI +0042KA -0049KA +2728HI -5364KI +4264UM -6364FU +-5253KI +T5 +'** -2212 +2524FU -0086FU +0042KA -0052HI +4253UM -5253HI +5868KI ++0042KA +T16 +'** -1993 -5364KI +2524FU -0086KE +0087KE -6576GI +4231UM %PASS +-0064KA +T10 +'** -2288 +2524FU -0086FU +2767HI -0087KE +9989OU -8779NK +8879GI ++3948GI +T10 +'** -1678 -0086KE +0068KE -8698NK +9998OU -0087FU +2787HI -0086KY +-0086FU +T8 +'** -2261 +9989OU -0087KE +7969KI -6576GI +4251UM -0021HI +5142UM ++9989OU +T20 +'** -2253 -6576GI +0068KE -7687NG +8887GI -8687TO +2787HI -0086GI +8786HI -0077KE +-0066KE +T1 +'** -2273 +5868KI -6576GI +2524FU -0049HI +4253UM -6453KA +0059KI -4929RY +2729HI ++5859KI +T20 +'** -2115 -6446KA +4253UM -4679UM +8879GI -0087HI +0088KI -8727RY +2937KE -8687TO +-6576GI +T13 +'** -2424 +0068KE -7687GI +2767HI -8788NG +7988KI -0087GI +6766HI -8788NG +8988OU ++4224UM +T6 +'** -2475 -0087HI +2787HI -8687TO +0081HI -0082FU +8191RY -8788TO +7988KI -0087HI +-0026FU +T5 +'** -2724 +2747HI -8687TO +8887GI -7687NG +4787HI -0076GI +8747HI ++2747HI +T14 +'** -2702 -8687TO +8887GI -7687NG +4787HI -0076GI +8737HI -2627TO +3727HI -0087HI +-8687TO +T16 +'** -2654 +8887GI -7687NG +4787HI -0076GI +8747HI -0088FU +7988KI -0087FU +4787HI ++8887GI +T10 +'** -2675 -7687GI +4787HI -0086FU +8788HI -0077GI +0076GI -7788NG +-7687NG +T3 +'** -2660 +4787HI -0076GI +8747HI -0088FU +7988KI -0087FU +4787HI -0086FU +8747HI ++4787HI +T9 +'** -2993 -0086GI +8747HI -0087FU +0078FU -0088HI +7988KI -8788TO +8988OU -0087FU +8879OU +-0076GI +T14 +'** -2651 +8747HI -0088FU +7988KI -0087FU +4787HI -7687NG +8887KI ++8737HI +T6 +'** -3071 -0088FU +7988KI -0087FU +3787HI -7687GI +8887KI -5657TO +4857GI +-0086FU +T2 +'** -2666 +0088FU -0028HI +0077FU -2627TO +3747HI ++0088GI +T12 +'** -2034 -8687TO +8887GI -0077HI +3777HI -7677NG +0088FU -0086FU +0081HI -0082HI +-8687TO +T3 +'** -2518 +8887GI -2627TO +3727HI -7687NG +2787HI -0076GI +8727HI ++8887GI +T13 +'** -2490 -7687NG +3787HI -0076GI +8747HI -0088FU +7988KI -0087FU +4787HI -7687NG +8887KI +-2627TO +T1 +'** -2466 +3727HI -7687NG +2787HI -0086FU +8747HI -0087GI +0088FU -8798NG ++3727HI +T11 +'** -2340 -7687GI +2787HI -0086FU +8737HI -0087GI +0088FU -0078HI +0068GI -7879RY +-7687NG +T1 +'** -2443 +2787HI -0076GI +8747HI -0088FU +7988KI -0087FU +4787HI -7687NG ++2787HI +T13 +'** -2621 -0086GI +8737HI -0088FU +8988OU -7385KE +0065KE -8577NK +3777HI -0087FU +-0076GI +T1 +'** -2364 +8784HI -8384OU +0085FU -8485OU +5968KI -0088FU +8988OU ++8727HI +T7 +'** -2625 -0088FU +7988KI -0087FU +2787HI -7687GI +8887KI -0078HI +-0088FU +T4 +'** -2568 +7988KI -0087FU +2787HI -7687NG +8887KI -0088FU +8988OU ++8988OU +T8 +'** -4481 -0087FU +8899OU -0078HI +5969KI -7848RY +0058FU -0088GI +7988KI -8788TO +-0086FU +T3 +'** -2866 +0099KE -5657TO +2757HI -7365KE +5968KI -0049HI ++0099KE +T5 +'** -2978 -8687TO +9987KE -0086FU +0078GI -6678NK +7978KI -8687TO +7887KI -7687NG +2787HI +-8687TO +T4 +'** -2889 +9987KE -0086FU +0078GI -6678NK +7978KI -8687TO ++2787HI +T1 +'** -2771 -7687NG +9987KE -7385KE +0076GI -0077HI +0078FU -7776RY +0077GI +-7687NG +T6 +'** -2611 +9987KE -0086FU +0076GI -0028HI +0065FU -8687TO +8887OU ++9987KE +T1 +'** -3526 -7385KE +8899OU -0086FU +0076GI -8687TO +7687GI -5657TO +4857GI +-0086FU +T3 +'** -2769 +0076GI -8687TO +7687GI -0067KE +7968KI -6759NK ++0076GI +T1 +'** -3971 -8687TO +7687GI -0067KE +7969KI -6759NK +4859GI -0028HI +0068GI +-8687TO +T2 +'** -2930 +7687GI -0075KE +0076GI -7587NK +7687GI ++7687GI +T3 +'** -3796 -0067KE +0068GI -6779NK +6879GI -7385KE +0089KE -0067HI +0077FU -5657TO +-0075KE +T1 +'** -2638 +0076GI -7587NK +7687GI -0067HI +0077FU ++0076GI +T4 +'** -3541 -7587NK +7687GI -7385KE +0089KE -0086GI +8786GI -6486KA +0087GI -8659UM +-7587NK +T1 +'** -2775 +7687GI -7385KE +5968KI -0097GI +8899OU ++7687GI +T3 +'** -4675 -0067HI +0077KE -0097GI +9897KY -6497UM +8897OU -0099HI +9788OU +-7385KE +T1 +'** -2760 +0078FU -0097GI +8899OU -9786NG ++0089KE +T2 +'** -3643 -0067HI +0077FU -0027HI +2937KE +-0067HI +T5 +'** -2945 +0086FU -0077GI +8899OU -7786NG +8786GI ++0077FU +T1 +'** -5843 -0097GI +9897KY -6497UM +8997KE -8577NK +8899OU -7787NK +-8577NK +T2 +'** -3222 +8977KE -0086FU +0099KE -8687TO +9987KE ++8977KE +T3 +'** -5081 -0086FU +8786GI -6486KA +0078FU -0076GI +8889OU -7677NG +-0086FU +T1 +'** -865423 +8786GI -6486KA +0095KE -9495FU ++8786GI +T3 +'** -372054 -6486KA +0078FU -8677UM +7877FU -0086GI +-6486KA +T3 +'** -865461 +0095KE -9495FU ++0075KE +T2 +'** -373923 -8475GI +-8475GI +T5 +'** -867073 +0084FU -8393OU +7785KE -9392OU +8483TO -7283KI +8593NK -9293OU ++0084FU +T1 +'** -373429 -8382OU +-8393OU +T5 +'** -867650 +7785KE -9384OU +2451UM -8485OU +5195UM -8695KA +0086FU -7586GI ++7785KE +T1 +'** -376835 -9384OU +2451UM -8485OU +5195UM -9495FU +-9384OU +T1 +'** -867688 +2451UM -8485OU +5195UM -8695KA +0086FU -7586GI ++2451UM +T1 +'** -377670 -0073GI +5173UM -7273KI +7978KI -6678NK +-8485OU +T4 +'** -867725 +5195UM -8695KA +0086FU -7586GI ++5195UM +T1 +'** -377635 -9495FU +-8695KA +T2 +'** -867763 +0086FU -7586GI ++0086FU +T1 +'** -377742 -9586KA +-7586GI +T1 ++7978KI +T1 +'** -488281 -6678NK +-0076KE +T1 +%TORYO +'P1-KY * * * * * * * -KY +'P2 * * -KI * * * * * * +'P3 * * * -FU-KI * * * -FU +'P4-FU * -FU * * -FU * * * +'P5-KA-OU * * * * * +FU * +'P6+FU-GI-KE-KE-FU+FU+FU * * +'P7 * * * -HI * * * * +FU +'P8+KY+OU+KI * * +GI * * * +'P9 * * * * +KI * * +KE+KY +'P+00FU00FU00FU00FU00FU +'P-00FU00FU00GI00GI00HI00KA00KE +'+ +'summary:toryo:gps_normal lose:gps_l win +'$END_TIME:2010/05/07 12:21:52 -- 2.11.0