<?php
"2013-06-12 11:25:44 [INFO] There are no objectives on the scoreboard" ,
"2013-06-12 11:42:27 [INFO] [Server] Hi, how are you?" ,
"2013-06-12 11:43:40 [INFO] Usage: /scoreboard objectives <list|add|remove|setdisplay>" ,
"2013-06-12 11:57:51 [INFO] /scoreboard objectives add <name> <criteriaType> [display name ...]" ,
"2013-06-12 11:57:59 [INFO] Added new objective 'test' successfully" ,
"2013-06-12 11:58:16 [INFO] Showing 3 objective(s) on scoreboard" ,
"2013-06-12 11:58:16 [INFO] - test: displays as 'test' and is type 'dummy'" ,
"2013-06-12 11:58:16 [INFO] - anothertest: displays as 'anothertest' and is type 'dummy'" ,
"2013-06-12 11:58:16 [INFO] - yetanothertest: displays as 'yetanothertestwithanothername' and is type 'dummy'" ,
"2013-06-12 11:58:16 [INFO] Showing 4 objective(s) on scoreboard" ,
"2013-06-12 11:58:16 [INFO] - test: displays as 'test' and is type 'dummy'" ,
"2013-06-12 11:58:16 [INFO] - anothertest: displays as 'anothertest' and is type 'dummy'" ,
"2013-06-12 11:58:16 [INFO] - yetanothertest: displays as 'yetanothertestwithanothername' and is type 'dummy'" ,
"2013-06-12 11:58:17 [INFO] [Server] Dude, stop doing that!" ,
) ;
$datePattern = '\d{4}-\d{2}-\d{2}' ;
$timePattern = '\d{2}:\d{2}:\d{2}' ;
$headerPattern = $datePattern . ' ' . $timePattern . ' \[INFO] ' ;
$showingPattern = $headerPattern
. 'Showing \d+ objective\(s\) on scoreboard' ;
$messagePattern = $headerPattern
. "- [^:]+: displays as '[^']*' and is type '[^']*'" ;
while ( $i -- ) {
$msg = $arr [ $i ] ;
for ( $j = $i + 1 ; $j < $max ; $j ++ ) {
$nextMsg = $arr [ $j ] ;
$result [ ] = $nextMsg ;
}
else {
break ;
}
}
$results [ $i ] = $result ;
}
}
PD9waHAKCiRhcnIgPSBhcnJheSgKICAiMjAxMy0wNi0xMiAxMToyNTo0NCBbSU5GT10gVGhlcmUgYXJlIG5vIG9iamVjdGl2ZXMgb24gdGhlIHNjb3JlYm9hcmQiLAogICIyMDEzLTA2LTEyIDExOjQyOjI3IFtJTkZPXSBbU2VydmVyXSBIaSwgaG93IGFyZSB5b3U/IiwKICAiMjAxMy0wNi0xMiAxMTo0Mzo0MCBbSU5GT10gVXNhZ2U6IC9zY29yZWJvYXJkIG9iamVjdGl2ZXMgPGxpc3R8YWRkfHJlbW92ZXxzZXRkaXNwbGF5PiIsCiAgIjIwMTMtMDYtMTIgMTE6NTc6NTEgW0lORk9dIC9zY29yZWJvYXJkIG9iamVjdGl2ZXMgYWRkIDxuYW1lPiA8Y3JpdGVyaWFUeXBlPiBbZGlzcGxheSBuYW1lIC4uLl0iLAogICIyMDEzLTA2LTEyIDExOjU3OjU5IFtJTkZPXSBBZGRlZCBuZXcgb2JqZWN0aXZlICd0ZXN0JyBzdWNjZXNzZnVsbHkiLAogICIyMDEzLTA2LTEyIDExOjU4OjE2IFtJTkZPXSBTaG93aW5nIDMgb2JqZWN0aXZlKHMpIG9uIHNjb3JlYm9hcmQiLAogICIyMDEzLTA2LTEyIDExOjU4OjE2IFtJTkZPXSAtIHRlc3Q6IGRpc3BsYXlzIGFzICd0ZXN0JyBhbmQgaXMgdHlwZSAnZHVtbXknIiwKICAiMjAxMy0wNi0xMiAxMTo1ODoxNiBbSU5GT10gLSBhbm90aGVydGVzdDogZGlzcGxheXMgYXMgJ2Fub3RoZXJ0ZXN0JyBhbmQgaXMgdHlwZSAnZHVtbXknIiwKICAiMjAxMy0wNi0xMiAxMTo1ODoxNiBbSU5GT10gLSB5ZXRhbm90aGVydGVzdDogZGlzcGxheXMgYXMgJ3lldGFub3RoZXJ0ZXN0d2l0aGFub3RoZXJuYW1lJyBhbmQgaXMgdHlwZSAnZHVtbXknIiwKICAiMjAxMy0wNi0xMiAxMTo1ODoxNiBbSU5GT10gU2hvd2luZyA0IG9iamVjdGl2ZShzKSBvbiBzY29yZWJvYXJkIiwKICAiMjAxMy0wNi0xMiAxMTo1ODoxNiBbSU5GT10gLSB0ZXN0OiBkaXNwbGF5cyBhcyAndGVzdCcgYW5kIGlzIHR5cGUgJ2R1bW15JyIsCiAgIjIwMTMtMDYtMTIgMTE6NTg6MTYgW0lORk9dIC0gYW5vdGhlcnRlc3Q6IGRpc3BsYXlzIGFzICdhbm90aGVydGVzdCcgYW5kIGlzIHR5cGUgJ2R1bW15JyIsCiAgIjIwMTMtMDYtMTIgMTE6NTg6MTYgW0lORk9dIC0geWV0YW5vdGhlcnRlc3Q6IGRpc3BsYXlzIGFzICd5ZXRhbm90aGVydGVzdHdpdGhhbm90aGVybmFtZScgYW5kIGlzIHR5cGUgJ2R1bW15JyIsICAKICAiMjAxMy0wNi0xMiAxMTo1ODoxNyBbSU5GT10gW1NlcnZlcl0gRHVkZSwgc3RvcCBkb2luZyB0aGF0ISIsCik7CgoKJGRhdGVQYXR0ZXJuID0gJ1xkezR9LVxkezJ9LVxkezJ9JzsKJHRpbWVQYXR0ZXJuID0gJ1xkezJ9OlxkezJ9OlxkezJ9JzsKJGhlYWRlclBhdHRlcm4gPSAkZGF0ZVBhdHRlcm4gLiAnICcgLiAkdGltZVBhdHRlcm4gLiAnIFxbSU5GT10gJzsKJHNob3dpbmdQYXR0ZXJuID0gJGhlYWRlclBhdHRlcm4gCiAgICAuICdTaG93aW5nIFxkKyBvYmplY3RpdmVcKHNcKSBvbiBzY29yZWJvYXJkJzsKJG1lc3NhZ2VQYXR0ZXJuID0gJGhlYWRlclBhdHRlcm4gCiAgICAuICItIFteOl0rOiBkaXNwbGF5cyBhcyAnW14nXSonIGFuZCBpcyB0eXBlICdbXiddKiciOwogCiRyZXN1bHRzID0gYXJyYXkoKTsKCiRpID0gJG1heCA9IGNvdW50KCRhcnIpOwp3aGlsZSAoJGktLSkgewogICRtc2cgPSAkYXJyWyRpXTsKICBpZiAocHJlZ19tYXRjaCgiL14kc2hvd2luZ1BhdHRlcm4vIiwgJG1zZykpIHsKICAgICRyZXN1bHQgPSBhcnJheSgkbXNnKTsKICAgIGZvciAoJGogPSAkaSArIDE7ICRqIDwgJG1heDsgJGorKykgewogICAgICAkbmV4dE1zZyA9ICRhcnJbJGpdOwogICAgICBpZiAocHJlZ19tYXRjaCgiL14kbWVzc2FnZVBhdHRlcm4vIiwgJG5leHRNc2cpKSB7CiAgICAgICAgJHJlc3VsdFtdID0gJG5leHRNc2c7CiAgICAgIH0KICAgICAgZWxzZSB7CiAgICAgICAgYnJlYWs7CiAgICAgIH0KICAgIH0KICAgICRyZXN1bHRzWyRpXSA9ICRyZXN1bHQ7CiAgfQp9CnZhcl9kdW1wKCRyZXN1bHRzKTs=