Damnit again

Former-commit-id: b394f26caf0df7d113ac4cc7dacc9c544af6897f
master
bel 2019-06-21 18:12:31 -06:00
commit 90a31495c9
32 changed files with 3464 additions and 0 deletions

36
config/config.go Normal file
View File

@ -0,0 +1,36 @@
package config
import (
"fmt"
"local/storage"
"sync"
)
var config Config
var lock = &sync.RWMutex{}
type Config struct {
db string
DB storage.DB
Port string
Addr string
Username string
Password string
DefaultNamespace string
}
func Values() Config {
lock.RLock()
defer lock.RUnlock()
return config
}
func (c Config) String() string {
return fmt.Sprintf(
"port:%v db:%v addr:%v user:*** pass:*** ns:%s",
c.Port,
c.db,
c.Addr,
c.DefaultNamespace,
)
}

41
config/new.go Normal file
View File

@ -0,0 +1,41 @@
package config
import (
"local/args"
"local/storage"
"os"
)
func New() error {
as := args.NewArgSet()
as.Append(args.STRING, "addr", "address/path to database/file", "")
as.Append(args.STRING, "user", "username to database", "")
as.Append(args.STRING, "pass", "password to database", "")
as.Append(args.STRING, "port", "port to listen on", "33419")
as.Append(args.STRING, "db", "database type code", storage.MAP.String())
as.Append(args.STRING, "ns", "namespace", storage.DefaultNamespace)
if err := as.Parse(); err != nil {
return err
}
config = Config{
db: as.Get("db").GetString(),
Addr: as.Get("addr").GetString(),
Username: as.Get("user").GetString(),
Password: as.Get("pass").GetString(),
Port: as.Get("port").GetString(),
DefaultNamespace: as.Get("ns").GetString(),
}
storage.DefaultNamespace = config.DefaultNamespace
DB, err := storage.New(storage.TypeFromString(config.db), config.Addr, config.Username, config.Password)
config.DB = DB
return err
}
func orEnv(def, key string, keys ...string) string {
for _, key := range append(keys, key) {
if v, ok := os.LookupEnv(key); ok {
return v
}
}
return def
}

40
config/new_test.go Normal file
View File

@ -0,0 +1,40 @@
package config
import (
"os"
"testing"
)
func TestNew(t *testing.T) {
invalidEnv := "&&&&&&"
keys := []string{
"DB",
"DATABASE",
"ADDR",
"PATH",
"USER",
"USERNAME",
"PASS",
"PASSWORD",
}
was := make(map[string]string)
for _, k := range keys {
v, ok := os.LookupEnv(k)
if !ok {
v = invalidEnv
}
was[k] = v
}
defer func() {
for k, v := range was {
if v != invalidEnv {
os.Setenv(k, v)
} else {
os.Unsetenv(k)
}
}
}()
if err := New(); err != nil {
t.Fatal(err)
}
}

553
copart/.log Normal file
View File

@ -0,0 +1,553 @@
2019/06/14 13:44:33 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:32.100278808 -0600 MDT m=+549.472307556] == [bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:33.649979402 -0600 MDT m=+551.022008143])
2019/06/14 13:44:34 Blocking empty list...
2019/06/14 13:44:34 true = ([bid:$4,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:33.263653682 -0600 MDT m=+550.635682442] == [bid:$4,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:34.853057112 -0600 MDT m=+552.225085858])
2019/06/14 13:44:35 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:33.649979402 -0600 MDT m=+551.022008143] == [bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:35.209579405 -0600 MDT m=+552.581608152])
2019/06/14 13:44:35 Blocking empty list...
2019/06/14 13:44:36 Blocking empty list...
2019/06/14 13:44:36 true = ([bid:$4,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:34.853057112 -0600 MDT m=+552.225085858] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:36.442979544 -0600 MDT m=+553.815008292])
2019/06/14 13:44:36 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:35.209579405 -0600 MDT m=+552.581608152] == [bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:36.765530586 -0600 MDT m=+554.137559334])
2019/06/14 13:44:37 Blocking empty list...
2019/06/14 13:44:37 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:36.442979544 -0600 MDT m=+553.815008292] == [bid:$4,700 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:37.998799546 -0600 MDT m=+555.370828308])
2019/06/14 13:44:38 Blocking empty list...
2019/06/14 13:44:38 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:36.765530586 -0600 MDT m=+554.137559334] == [bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:38.309365279 -0600 MDT m=+555.681394016])
2019/06/14 13:44:39 Blocking empty list...
2019/06/14 13:44:39 true = ([bid:$4,700 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:37.998799546 -0600 MDT m=+555.370828308] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:39.632325485 -0600 MDT m=+557.004354235])
2019/06/14 13:44:39 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:38.309365279 -0600 MDT m=+555.681394016] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:39.876272196 -0600 MDT m=+557.248300968])
2019/06/14 13:44:40 Blocking empty list...
2019/06/14 13:44:41 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:39.632325485 -0600 MDT m=+557.004354235] == [bid:$4,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:41.210836371 -0600 MDT m=+558.582865114])
2019/06/14 13:44:41 Blocking empty list...
2019/06/14 13:44:41 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:39.876272196 -0600 MDT m=+557.248300968] == [bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:41.434892417 -0600 MDT m=+558.806921162])
2019/06/14 13:44:42 Blocking empty list...
2019/06/14 13:44:42 true = ([bid:$4,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:41.210836371 -0600 MDT m=+558.582865114] == [bid:$4,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:42.800903683 -0600 MDT m=+560.172932419])
2019/06/14 13:44:42 true = ([bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:41.434892417 -0600 MDT m=+558.806921162] == [bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:42.975489596 -0600 MDT m=+560.347518332])
2019/06/14 13:44:43 Blocking empty list...
2019/06/14 13:44:44 Blocking empty list...
2019/06/14 13:44:44 true = ([bid:$4,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:42.800903683 -0600 MDT m=+560.172932419] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:44.383681507 -0600 MDT m=+561.755710284])
2019/06/14 13:44:44 true = ([bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:42.975489596 -0600 MDT m=+560.347518332] == [bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:44.533291771 -0600 MDT m=+561.905320516])
2019/06/14 13:44:45 Blocking empty list...
2019/06/14 13:44:46 Blocking empty list...
2019/06/14 13:44:46 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:44.383681507 -0600 MDT m=+561.755710284] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:46.651673699 -0600 MDT m=+564.023702462])
2019/06/14 13:44:46 true = ([bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:44.533291771 -0600 MDT m=+561.905320516] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:46.71137253 -0600 MDT m=+564.083401292])
2019/06/14 13:44:47 Blocking empty list...
2019/06/14 13:44:48 Blocking empty list...
2019/06/14 13:44:49 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:46.651673699 -0600 MDT m=+564.023702462] == [bid:$5,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:49.04381699 -0600 MDT m=+566.415845754])
2019/06/14 13:44:49 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:46.71137253 -0600 MDT m=+564.083401292] == [bid:$800 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:49.075309089 -0600 MDT m=+566.447337833])
2019/06/14 13:44:49 Blocking empty list...
2019/06/14 13:44:50 Blocking empty list...
2019/06/14 13:44:50 true = ([bid:$5,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:49.04381699 -0600 MDT m=+566.415845754] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:50.626495561 -0600 MDT m=+567.998524315])
2019/06/14 13:44:50 true = ([bid:$800 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:49.075309089 -0600 MDT m=+566.447337833] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:50.637091128 -0600 MDT m=+568.009119874])
2019/06/14 13:44:51 Blocking empty list...
2019/06/14 13:44:52 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:50.637091128 -0600 MDT m=+568.009119874] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:52.201787818 -0600 MDT m=+569.573816555])
2019/06/14 13:44:52 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:50.626495561 -0600 MDT m=+567.998524315] == [bid:$5,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:52.210615356 -0600 MDT m=+569.582644106])
2019/06/14 13:44:52 Blocking empty list...
2019/06/14 13:44:53 Blocking empty list...
2019/06/14 13:44:53 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:52.201787818 -0600 MDT m=+569.573816555] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:53.785375027 -0600 MDT m=+571.157403770])
2019/06/14 13:44:53 true = ([bid:$5,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:52.210615356 -0600 MDT m=+569.582644106] == [bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:53.794478475 -0600 MDT m=+571.166507235])
2019/06/14 13:44:54 Blocking empty list...
2019/06/14 13:44:55 Blocking empty list...
2019/06/14 13:44:55 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:53.785375027 -0600 MDT m=+571.157403770] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:55.341663372 -0600 MDT m=+572.713692125])
2019/06/14 13:44:55 true = ([bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:53.794478475 -0600 MDT m=+571.166507235] == [bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:55.347619414 -0600 MDT m=+572.719648150])
2019/06/14 13:44:56 Blocking empty list...
2019/06/14 13:44:56 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:55.341663372 -0600 MDT m=+572.713692125] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:56.887273765 -0600 MDT m=+574.259302513])
2019/06/14 13:44:56 true = ([bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:55.347619414 -0600 MDT m=+572.719648150] == [bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:56.894005011 -0600 MDT m=+574.266033759])
2019/06/14 13:44:57 Blocking empty list...
2019/06/14 13:44:58 Blocking empty list...
2019/06/14 13:44:58 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:56.887273765 -0600 MDT m=+574.259302513] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:58.467862845 -0600 MDT m=+575.839891596])
2019/06/14 13:44:58 true = ([bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:56.894005011 -0600 MDT m=+574.266033759] == [bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:58.467875669 -0600 MDT m=+575.839904419])
2019/06/14 13:44:59 Blocking empty list...
2019/06/14 13:45:00 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:58.467862845 -0600 MDT m=+575.839891596] == [bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:00.029947727 -0600 MDT m=+577.401976473])
2019/06/14 13:45:00 true = ([bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:58.467875669 -0600 MDT m=+575.839904419] == [bid:$6,000 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:00.033625382 -0600 MDT m=+577.405654118])
2019/06/14 13:45:00 Blocking empty list...
2019/06/14 13:45:01 Blocking empty list...
2019/06/14 13:45:01 true = ([bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:00.029947727 -0600 MDT m=+577.401976473] == [bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:01.617679613 -0600 MDT m=+578.989708348])
2019/06/14 13:45:01 true = ([bid:$6,000 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:00.033625382 -0600 MDT m=+577.405654118] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:01.626412103 -0600 MDT m=+578.998440838])
2019/06/14 13:45:02 Blocking empty list...
2019/06/14 13:45:03 true = ([bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:01.617679613 -0600 MDT m=+578.989708348] == [bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:03.182911975 -0600 MDT m=+580.554940742])
2019/06/14 13:45:03 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:01.626412103 -0600 MDT m=+578.998440838] == [bid:$6,100 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:03.199787677 -0600 MDT m=+580.571816439])
2019/06/14 13:45:03 Blocking empty list...
2019/06/14 13:45:04 Blocking empty list...
2019/06/14 13:45:04 true = ([bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:03.182911975 -0600 MDT m=+580.554940742] == [bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:04.746031495 -0600 MDT m=+582.118060242])
2019/06/14 13:45:04 true = ([bid:$6,100 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:03.199787677 -0600 MDT m=+580.571816439] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:04.767179705 -0600 MDT m=+582.139208448])
2019/06/14 13:45:05 Blocking empty list...
2019/06/14 13:45:06 Blocking empty list...
2019/06/14 13:45:06 true = ([bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:04.746031495 -0600 MDT m=+582.118060242] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:06.310545892 -0600 MDT m=+583.682574636])
2019/06/14 13:45:06 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:04.767179705 -0600 MDT m=+582.139208448] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:06.335166826 -0600 MDT m=+583.707195567])
2019/06/14 13:45:07 Blocking empty list...
2019/06/14 13:45:07 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:06.310545892 -0600 MDT m=+583.682574636] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:07.883620143 -0600 MDT m=+585.255648901])
2019/06/14 13:45:07 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:06.335166826 -0600 MDT m=+583.707195567] == [bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:07.907584605 -0600 MDT m=+585.279613340])
2019/06/14 13:45:08 Blocking empty list...
2019/06/14 13:45:09 Blocking empty list...
2019/06/14 13:45:09 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:07.883620143 -0600 MDT m=+585.255648901] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:09.45518732 -0600 MDT m=+586.827216080])
2019/06/14 13:45:09 true = ([bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:07.907584605 -0600 MDT m=+585.279613340] == [bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:09.4663536 -0600 MDT m=+586.838382341])
2019/06/14 13:45:10 Blocking empty list...
2019/06/14 13:45:11 Blocking empty list...
2019/06/14 13:45:11 true = ([bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:09.4663536 -0600 MDT m=+586.838382341] == [bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:11.714388541 -0600 MDT m=+589.086417329])
2019/06/14 13:45:11 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:09.45518732 -0600 MDT m=+586.827216080] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:11.744893291 -0600 MDT m=+589.116922050])
2019/06/14 13:45:12 Blocking empty list...
2019/06/14 13:45:13 Blocking empty list...
2019/06/14 13:45:13 true = ([bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:11.714388541 -0600 MDT m=+589.086417329] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:13.45008916 -0600 MDT m=+590.822117920])
2019/06/14 13:45:13 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:11.744893291 -0600 MDT m=+589.116922050] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:13.467717253 -0600 MDT m=+590.839745995])
2019/06/14 13:45:14 Blocking empty list...
2019/06/14 13:45:15 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:13.45008916 -0600 MDT m=+590.822117920] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:15.028250727 -0600 MDT m=+592.400279501])
2019/06/14 13:45:15 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:13.467717253 -0600 MDT m=+590.839745995] == [bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:15.029365652 -0600 MDT m=+592.401394387])
2019/06/14 13:45:15 Blocking empty list...
2019/06/14 13:45:16 Blocking empty list...
2019/06/14 13:45:16 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:15.028250727 -0600 MDT m=+592.400279501] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:16.574778848 -0600 MDT m=+593.946807598])
2019/06/14 13:45:16 true = ([bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:15.029365652 -0600 MDT m=+592.401394387] == [bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:16.581757004 -0600 MDT m=+593.953785791])
2019/06/14 13:45:17 Blocking empty list...
2019/06/14 13:45:18 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:16.574778848 -0600 MDT m=+593.946807598] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:18.148148234 -0600 MDT m=+595.520177008])
2019/06/14 13:45:18 true = ([bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:16.581757004 -0600 MDT m=+593.953785791] == [bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:18.157707579 -0600 MDT m=+595.529736321])
2019/06/14 13:45:18 Blocking empty list...
2019/06/14 13:45:19 Blocking empty list...
2019/06/14 13:45:19 true = ([bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:18.157707579 -0600 MDT m=+595.529736321] == [bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:19.727213553 -0600 MDT m=+597.099242300])
2019/06/14 13:45:19 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:18.148148234 -0600 MDT m=+595.520177008] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:19.732192656 -0600 MDT m=+597.104221399])
2019/06/14 13:45:20 Blocking empty list...
2019/06/14 13:45:21 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:19.732192656 -0600 MDT m=+597.104221399] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:21.300980036 -0600 MDT m=+598.673008782])
2019/06/14 13:45:21 Blocking empty list...
2019/06/14 13:45:21 true = ([bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:19.727213553 -0600 MDT m=+597.099242300] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:21.307722352 -0600 MDT m=+598.679751090])
2019/06/14 13:45:22 Blocking empty list...
2019/06/14 13:45:23 Blocking empty list...
2019/06/14 13:45:23 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:21.300980036 -0600 MDT m=+598.673008782] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:23.379902263 -0600 MDT m=+600.751931031])
2019/06/14 13:45:23 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:21.307722352 -0600 MDT m=+598.679751090] == [bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:23.392826934 -0600 MDT m=+600.764855701])
2019/06/14 13:45:24 Blocking empty list...
2019/06/14 13:45:25 Blocking empty list...
2019/06/14 13:45:25 true = ([bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:23.392826934 -0600 MDT m=+600.764855701] == [bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:25.71438718 -0600 MDT m=+603.086415961])
2019/06/14 13:45:25 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:23.379902263 -0600 MDT m=+600.751931031] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:25.759869463 -0600 MDT m=+603.131898219])
2019/06/14 13:45:26 Blocking empty list...
2019/06/14 13:45:27 Blocking empty list...
2019/06/14 13:45:27 true = ([bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:25.71438718 -0600 MDT m=+603.086415961] == [bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:27.748442664 -0600 MDT m=+605.120471419])
2019/06/14 13:45:27 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:25.759869463 -0600 MDT m=+603.131898219] == [bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:27.762685583 -0600 MDT m=+605.134714377])
2019/06/14 13:45:28 Blocking empty list...
2019/06/14 13:45:29 Blocking empty list...
2019/06/14 13:45:29 true = ([bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:27.762685583 -0600 MDT m=+605.134714377] == [bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:29.693781661 -0600 MDT m=+607.065810420])
2019/06/14 13:45:29 true = ([bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:27.748442664 -0600 MDT m=+605.120471419] == [bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:29.7037451 -0600 MDT m=+607.075773851])
2019/06/14 13:45:30 Blocking empty list...
2019/06/14 13:45:31 Blocking empty list...
2019/06/14 13:45:31 true = ([bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:29.7037451 -0600 MDT m=+607.075773851] == [bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:31.581812917 -0600 MDT m=+608.953841681])
2019/06/14 13:45:31 true = ([bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:29.693781661 -0600 MDT m=+607.065810420] == [bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:31.603363109 -0600 MDT m=+608.975391926])
2019/06/14 13:45:32 Blocking empty list...
2019/06/14 13:45:33 true = ([bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:31.581812917 -0600 MDT m=+608.953841681] == [bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:33.129003954 -0600 MDT m=+610.501032706])
2019/06/14 13:45:33 true = ([bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:31.603363109 -0600 MDT m=+608.975391926] == [bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:33.154188308 -0600 MDT m=+610.526217074])
2019/06/14 13:45:33 Blocking empty list...
2019/06/14 13:45:34 Blocking empty list...
2019/06/14 13:45:34 true = ([bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:33.129003954 -0600 MDT m=+610.501032706] == [bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:34.698293537 -0600 MDT m=+612.070322308])
2019/06/14 13:45:34 true = ([bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:33.154188308 -0600 MDT m=+610.526217074] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:34.740571037 -0600 MDT m=+612.112599799])
2019/06/14 13:45:35 Blocking empty list...
2019/06/14 13:45:36 Blocking empty list...
2019/06/14 13:45:36 true = ([bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:34.698293537 -0600 MDT m=+612.070322308] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:36.670375341 -0600 MDT m=+614.042404108])
2019/06/14 13:45:36 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:34.740571037 -0600 MDT m=+612.112599799] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:36.714017157 -0600 MDT m=+614.086045966])
2019/06/14 13:45:37 Blocking empty list...
2019/06/14 13:45:38 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:36.670375341 -0600 MDT m=+614.042404108] == [bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:38.247777676 -0600 MDT m=+615.619806410])
2019/06/14 13:45:38 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:36.714017157 -0600 MDT m=+614.086045966] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:38.270868543 -0600 MDT m=+615.642897295])
2019/06/14 13:45:38 Blocking empty list...
2019/06/14 13:45:39 Blocking empty list...
2019/06/14 13:45:39 true = ([bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:38.247777676 -0600 MDT m=+615.619806410] == [bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:39.820522402 -0600 MDT m=+617.192551139])
2019/06/14 13:45:39 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:38.270868543 -0600 MDT m=+615.642897295] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:39.840696355 -0600 MDT m=+617.212725106])
2019/06/14 13:45:40 Blocking empty list...
2019/06/14 13:45:41 Blocking empty list...
2019/06/14 13:45:41 true = ([bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:39.820522402 -0600 MDT m=+617.192551139] == [bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:41.865548025 -0600 MDT m=+619.237576784])
2019/06/14 13:45:41 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:39.840696355 -0600 MDT m=+617.212725106] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:41.87975323 -0600 MDT m=+619.251782000])
2019/06/14 13:45:42 Blocking empty list...
2019/06/14 13:45:43 Blocking empty list...
2019/06/14 13:45:44 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:41.87975323 -0600 MDT m=+619.251782000] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:44.12899537 -0600 MDT m=+621.501024149])
2019/06/14 13:45:44 true = ([bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:41.865548025 -0600 MDT m=+619.237576784] == [bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:44.160166521 -0600 MDT m=+621.532195282])
2019/06/14 13:45:44 Blocking empty list...
2019/06/14 13:45:45 Blocking empty list...
2019/06/14 13:45:45 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:44.12899537 -0600 MDT m=+621.501024149] == [bid:Next Item on title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:45.698231339 -0600 MDT m=+623.070260115])
2019/06/14 13:45:45 true = ([bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:44.160166521 -0600 MDT m=+621.532195282] == [bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:45.730591096 -0600 MDT m=+623.102619832])
2019/06/14 13:45:46 Blocking empty list...
2019/06/14 13:45:47 true = ([bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:45.730591096 -0600 MDT m=+623.102619832] == [bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:47.300433357 -0600 MDT m=+624.672462125])
2019/06/14 13:45:47 Blocking empty list...
2019/06/14 13:45:47 DETAIL 8 6
2019/06/14 13:45:47 false = ([bid:Next Item on title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:45.698231339 -0600 MDT m=+623.070260115] == [bid:$950 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:47.326540361 -0600 MDT m=+624.698569101])
2019/06/14 13:45:47 DETAIL 8 6
2019/06/14 13:45:47 TOP
2019/06/14 13:45:47 C [bid:$950 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:47.970680447 -0600 MDT m=+625.342709201]
2019/06/14 13:45:48 Blocking empty list...
2019/06/14 13:45:48 true = ([bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:47.300433357 -0600 MDT m=+624.672462125] == [bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:48.875565095 -0600 MDT m=+626.247593841])
2019/06/14 13:45:49 Blocking empty list...
2019/06/14 13:45:49 true = ([bid:$950 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:47.970680447 -0600 MDT m=+625.342709201] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:49.530146108 -0600 MDT m=+626.902174848])
2019/06/14 13:45:50 Blocking empty list...
2019/06/14 13:45:50 true = ([bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:48.875565095 -0600 MDT m=+626.247593841] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:50.441141654 -0600 MDT m=+627.813170424])
2019/06/14 13:45:51 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:49.530146108 -0600 MDT m=+626.902174848] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:51.092703578 -0600 MDT m=+628.464732312])
2019/06/14 13:45:51 Blocking empty list...
2019/06/14 13:45:52 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:50.441141654 -0600 MDT m=+627.813170424] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:52.014105523 -0600 MDT m=+629.386134268])
2019/06/14 13:45:52 Blocking empty list...
2019/06/14 13:45:52 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:51.092703578 -0600 MDT m=+628.464732312] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:52.666563883 -0600 MDT m=+630.038592628])
2019/06/14 13:45:53 Blocking empty list...
2019/06/14 13:45:53 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:52.014105523 -0600 MDT m=+629.386134268] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:53.557551959 -0600 MDT m=+630.929580695])
2019/06/14 13:45:54 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:52.666563883 -0600 MDT m=+630.038592628] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:54.239611178 -0600 MDT m=+631.611639922])
2019/06/14 13:45:54 Blocking empty list...
2019/06/14 13:45:55 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:53.557551959 -0600 MDT m=+630.929580695] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:55.114075035 -0600 MDT m=+632.486103788])
2019/06/14 13:45:55 Blocking empty list...
2019/06/14 13:45:55 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:54.239611178 -0600 MDT m=+631.611639922] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:55.804221548 -0600 MDT m=+633.176250310])
2019/06/14 13:45:56 Blocking empty list...
2019/06/14 13:45:56 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:55.114075035 -0600 MDT m=+632.486103788] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:56.706568281 -0600 MDT m=+634.078597042])
2019/06/14 13:45:57 Blocking empty list...
2019/06/14 13:45:57 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:55.804221548 -0600 MDT m=+633.176250310] == [bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:57.361048223 -0600 MDT m=+634.733076974])
2019/06/14 13:45:58 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:56.706568281 -0600 MDT m=+634.078597042] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:58.261410026 -0600 MDT m=+635.633438778])
2019/06/14 13:45:58 Blocking empty list...
2019/06/14 13:45:58 true = ([bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:57.361048223 -0600 MDT m=+634.733076974] == [bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:58.912388766 -0600 MDT m=+636.284417514])
2019/06/14 13:45:59 Blocking empty list...
2019/06/14 13:45:59 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:58.261410026 -0600 MDT m=+635.633438778] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:59.82282752 -0600 MDT m=+637.194856272])
2019/06/14 13:46:00 Blocking empty list...
2019/06/14 13:46:00 true = ([bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:58.912388766 -0600 MDT m=+636.284417514] == [bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:00.465703716 -0600 MDT m=+637.837732454])
2019/06/14 13:46:01 Blocking empty list...
2019/06/14 13:46:01 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:59.82282752 -0600 MDT m=+637.194856272] == [bid:Bonus title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:01.397741474 -0600 MDT m=+638.769770221])
2019/06/14 13:46:02 true = ([bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:00.465703716 -0600 MDT m=+637.837732454] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:02.023624181 -0600 MDT m=+639.395652927])
2019/06/14 13:46:02 Blocking empty list...
2019/06/14 13:46:03 true = ([bid:Bonus title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:01.397741474 -0600 MDT m=+638.769770221] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:03.006045999 -0600 MDT m=+640.378074735])
2019/06/14 13:46:03 Blocking empty list...
2019/06/14 13:46:03 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:02.023624181 -0600 MDT m=+639.395652927] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:03.58135933 -0600 MDT m=+640.953388064])
2019/06/14 13:46:04 Blocking empty list...
2019/06/14 13:46:04 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:03.006045999 -0600 MDT m=+640.378074735] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:04.578964932 -0600 MDT m=+641.950993680])
2019/06/14 13:46:05 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:03.58135933 -0600 MDT m=+640.953388064] == [bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:05.140126563 -0600 MDT m=+642.512155309])
2019/06/14 13:46:05 Blocking empty list...
2019/06/14 13:46:06 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:04.578964932 -0600 MDT m=+641.950993680] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:06.178025052 -0600 MDT m=+643.550053786])
2019/06/14 13:46:06 Blocking empty list...
2019/06/14 13:46:06 true = ([bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:05.140126563 -0600 MDT m=+642.512155309] == [bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:06.697389814 -0600 MDT m=+644.069418561])
2019/06/14 13:46:07 Blocking empty list...
2019/06/14 13:46:07 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:06.178025052 -0600 MDT m=+643.550053786] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:07.780702876 -0600 MDT m=+645.152731610])
2019/06/14 13:46:08 true = ([bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:06.697389814 -0600 MDT m=+644.069418561] == [bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:08.248101491 -0600 MDT m=+645.620130237])
2019/06/14 13:46:08 Blocking empty list...
2019/06/14 13:46:09 Blocking empty list...
2019/06/14 13:46:09 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:07.780702876 -0600 MDT m=+645.152731610] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:09.386820437 -0600 MDT m=+646.758849193])
2019/06/14 13:46:09 true = ([bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:08.248101491 -0600 MDT m=+645.620130237] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:09.818455714 -0600 MDT m=+647.190484458])
2019/06/14 13:46:10 Blocking empty list...
2019/06/14 13:46:10 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:09.386820437 -0600 MDT m=+646.758849193] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:10.971483398 -0600 MDT m=+648.343512143])
2019/06/14 13:46:11 Blocking empty list...
2019/06/14 13:46:11 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:09.818455714 -0600 MDT m=+647.190484458] == [bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:11.378239494 -0600 MDT m=+648.750268245])
2019/06/14 13:46:12 Blocking empty list...
2019/06/14 13:46:12 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:10.971483398 -0600 MDT m=+648.343512143] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:12.537834103 -0600 MDT m=+649.909862840])
2019/06/14 13:46:12 true = ([bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:11.378239494 -0600 MDT m=+648.750268245] == [bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:12.921818006 -0600 MDT m=+650.293846777])
2019/06/14 13:46:13 Blocking empty list...
2019/06/14 13:46:14 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:12.537834103 -0600 MDT m=+649.909862840] == [bid:Next Item on title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:14.115315236 -0600 MDT m=+651.487343970])
2019/06/14 13:46:14 Blocking empty list...
2019/06/14 13:46:14 true = ([bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:12.921818006 -0600 MDT m=+650.293846777] == [bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:14.471067849 -0600 MDT m=+651.843096596])
2019/06/14 13:46:15 Blocking empty list...
2019/06/14 13:46:15 DETAIL FRONT END REAR END
2019/06/14 13:46:15 false = ([bid:Next Item on title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:14.115315236 -0600 MDT m=+651.487343970] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:15.765589239 -0600 MDT m=+653.137617986])
2019/06/14 13:46:15 DETAIL SIDE N/A
2019/06/14 13:46:15 TOP
2019/06/14 13:46:16 true = ([bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:14.471067849 -0600 MDT m=+651.843096596] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:16.02007468 -0600 MDT m=+653.392103448])
2019/06/14 13:46:16 Blocking empty list...
2019/06/14 13:46:16 C [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:16.390025771 -0600 MDT m=+653.762054512]
2019/06/14 13:46:17 Blocking empty list...
2019/06/14 13:46:17 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:16.02007468 -0600 MDT m=+653.392103448] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:17.651753355 -0600 MDT m=+655.023782106])
2019/06/14 13:46:17 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:16.390025771 -0600 MDT m=+653.762054512] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:17.945675122 -0600 MDT m=+655.317703865])
2019/06/14 13:46:18 Blocking empty list...
2019/06/14 13:46:19 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:17.651753355 -0600 MDT m=+655.023782106] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:19.255879024 -0600 MDT m=+656.627907787])
2019/06/14 13:46:19 Blocking empty list...
2019/06/14 13:46:19 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:17.945675122 -0600 MDT m=+655.317703865] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:19.503173988 -0600 MDT m=+656.875202744])
2019/06/14 13:46:20 Blocking empty list...
2019/06/14 13:46:20 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:19.255879024 -0600 MDT m=+656.627907787] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:20.879860426 -0600 MDT m=+658.251889173])
2019/06/14 13:46:21 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:19.503173988 -0600 MDT m=+656.875202744] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:21.074419533 -0600 MDT m=+658.446448280])
2019/06/14 13:46:21 Blocking empty list...
2019/06/14 13:46:22 Blocking empty list...
2019/06/14 13:46:22 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:20.879860426 -0600 MDT m=+658.251889173] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:22.472975892 -0600 MDT m=+659.845004657])
2019/06/14 13:46:22 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:21.074419533 -0600 MDT m=+658.446448280] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:22.638350764 -0600 MDT m=+660.010379508])
2019/06/14 13:46:23 Blocking empty list...
2019/06/14 13:46:24 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:22.472975892 -0600 MDT m=+659.845004657] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:24.039286396 -0600 MDT m=+661.411315153])
2019/06/14 13:46:24 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:22.638350764 -0600 MDT m=+660.010379508] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:24.210076006 -0600 MDT m=+661.582104749])
2019/06/14 13:46:24 Blocking empty list...
2019/06/14 13:46:25 Blocking empty list...
2019/06/14 13:46:25 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:24.039286396 -0600 MDT m=+661.411315153] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:25.623141495 -0600 MDT m=+662.995170232])
2019/06/14 13:46:25 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:24.210076006 -0600 MDT m=+661.582104749] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:25.77105872 -0600 MDT m=+663.143087460])
2019/06/14 13:46:26 Blocking empty list...
2019/06/14 13:46:27 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:25.623141495 -0600 MDT m=+662.995170232] == [bid:Bonus title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:27.217110188 -0600 MDT m=+664.589138960])
2019/06/14 13:46:27 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:25.77105872 -0600 MDT m=+663.143087460] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:27.316556146 -0600 MDT m=+664.688584889])
2019/06/14 13:46:27 Blocking empty list...
2019/06/14 13:46:28 Blocking empty list...
2019/06/14 13:46:28 true = ([bid:Bonus title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:27.217110188 -0600 MDT m=+664.589138960] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:28.804421116 -0600 MDT m=+666.176449864])
2019/06/14 13:46:28 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:27.316556146 -0600 MDT m=+664.688584889] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:28.874885439 -0600 MDT m=+666.246914183])
2019/06/14 13:46:29 Blocking empty list...
2019/06/14 13:46:30 Blocking empty list...
2019/06/14 13:46:30 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:28.804421116 -0600 MDT m=+666.176449864] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:30.378302778 -0600 MDT m=+667.750331525])
2019/06/14 13:46:30 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:28.874885439 -0600 MDT m=+666.246914183] == [bid:Bonus title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:30.430949455 -0600 MDT m=+667.802978198])
2019/06/14 13:46:31 Blocking empty list...
2019/06/14 13:46:31 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:30.378302778 -0600 MDT m=+667.750331525] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:31.953632384 -0600 MDT m=+669.325661131])
2019/06/14 13:46:31 true = ([bid:Bonus title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:30.430949455 -0600 MDT m=+667.802978198] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:31.996367484 -0600 MDT m=+669.368396221])
2019/06/14 13:46:32 Blocking empty list...
2019/06/14 13:46:33 Blocking empty list...
2019/06/14 13:46:33 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:31.953632384 -0600 MDT m=+669.325661131] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:33.521086939 -0600 MDT m=+670.893115677])
2019/06/14 13:46:33 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:31.996367484 -0600 MDT m=+669.368396221] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:33.571119989 -0600 MDT m=+670.943148735])
2019/06/14 13:46:34 Blocking empty list...
2019/06/14 13:46:35 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:33.521086939 -0600 MDT m=+670.893115677] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:35.111873847 -0600 MDT m=+672.483902604])
2019/06/14 13:46:35 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:33.571119989 -0600 MDT m=+670.943148735] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:35.140044919 -0600 MDT m=+672.512073682])
2019/06/14 13:46:35 Blocking empty list...
2019/06/14 13:46:36 Blocking empty list...
2019/06/14 13:46:36 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:35.111873847 -0600 MDT m=+672.483902604] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:36.691188678 -0600 MDT m=+674.063217431])
2019/06/14 13:46:36 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:35.140044919 -0600 MDT m=+672.512073682] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:36.72922032 -0600 MDT m=+674.101249074])
2019/06/14 13:46:37 Blocking empty list...
2019/06/14 13:46:38 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:36.691188678 -0600 MDT m=+674.063217431] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:38.271432569 -0600 MDT m=+675.643461305])
2019/06/14 13:46:38 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:36.72922032 -0600 MDT m=+674.101249074] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:38.298540491 -0600 MDT m=+675.670569229])
2019/06/14 13:46:38 Blocking empty list...
2019/06/14 13:46:39 Blocking empty list...
2019/06/14 13:46:39 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:38.271432569 -0600 MDT m=+675.643461305] == [bid:Next Item on title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:39.854917796 -0600 MDT m=+677.226946542])
2019/06/14 13:46:39 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:38.298540491 -0600 MDT m=+675.670569229] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:39.86269596 -0600 MDT m=+677.234724702])
2019/06/14 13:46:40 Blocking empty list...
2019/06/14 13:46:41 Blocking empty list...
2019/06/14 13:46:41 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:39.86269596 -0600 MDT m=+677.234724702] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:41.421462137 -0600 MDT m=+678.793490880])
2019/06/14 13:46:41 DETAIL 2.0L 4 4.8L 8
2019/06/14 13:46:41 false = ([bid:Next Item on title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:39.854917796 -0600 MDT m=+677.226946542] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:41.444806466 -0600 MDT m=+678.816835202])
2019/06/14 13:46:41 DETAIL $2,316 $5,782
2019/06/14 13:46:41 TOP
2019/06/14 13:46:42 C [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:42.058019248 -0600 MDT m=+679.430047994]
2019/06/14 13:46:42 Blocking empty list...
2019/06/14 13:46:42 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:41.421462137 -0600 MDT m=+678.793490880] == [bid:Sold on title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:42.978837839 -0600 MDT m=+680.350866588])
2019/06/14 13:46:43 Blocking empty list...
2019/06/14 13:46:43 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:42.058019248 -0600 MDT m=+679.430047994] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:43.652922025 -0600 MDT m=+681.024950771])
2019/06/14 13:46:44 stale element reference: stale element reference: element is not attached to the page document
(Session info: chrome=75.0.3770.80)
2019/06/14 13:46:44 Blocking empty list...
2019/06/14 13:46:45 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:43.652922025 -0600 MDT m=+681.024950771] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:45.212745952 -0600 MDT m=+682.584774692])
2019/06/14 13:46:45 Blocking empty list...
2019/06/14 13:46:46 Blocking empty list...
2019/06/14 13:46:46 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:45.212745952 -0600 MDT m=+682.584774692] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:46.779907351 -0600 MDT m=+684.151936105])
2019/06/14 13:46:47 Blocking empty list...
2019/06/14 13:46:48 Blocking empty list...
2019/06/14 13:46:48 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:46.779907351 -0600 MDT m=+684.151936105] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:48.37493185 -0600 MDT m=+685.746960593])
2019/06/14 13:46:49 Blocking empty list...
2019/06/14 13:46:50 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:48.37493185 -0600 MDT m=+685.746960593] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:50.006089325 -0600 MDT m=+687.378118062])
2019/06/14 13:46:50 Blocking empty list...
2019/06/14 13:46:51 Blocking empty list...
2019/06/14 13:46:51 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:50.006089325 -0600 MDT m=+687.378118062] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:51.571964801 -0600 MDT m=+688.943993546])
2019/06/14 13:46:52 Blocking empty list...
2019/06/14 13:46:53 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:51.571964801 -0600 MDT m=+688.943993546] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:53.168928243 -0600 MDT m=+690.540956989])
2019/06/14 13:46:53 Blocking empty list...
2019/06/14 13:46:54 Blocking empty list...
2019/06/14 13:46:54 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:53.168928243 -0600 MDT m=+690.540956989] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:54.746981537 -0600 MDT m=+692.119010284])
2019/06/14 13:46:55 Blocking empty list...
2019/06/14 13:46:56 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:54.746981537 -0600 MDT m=+692.119010284] == [bid:Sold! title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:56.312143023 -0600 MDT m=+693.684171758])
2019/06/14 13:46:56 Blocking empty list...
2019/06/14 13:46:57 Blocking empty list...
2019/06/14 13:46:57 DETAIL 107,847 - Actual 157,979 - Exempt
2019/06/14 13:46:57 false = ([bid:Sold! title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:56.312143023 -0600 MDT m=+693.684171758] == [bid:Next Item on title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:57.92401858 -0600 MDT m=+695.296047330])
2019/06/14 13:46:57 DETAIL 107,847 - Actual 157,979 - Exempt
2019/06/14 13:46:58 TOP
2019/06/14 13:46:58 Blocking empty list...
2019/06/14 13:46:58 C [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:46:58.636284949 -0600 MDT m=+696.008313695]
2019/06/14 13:46:59 Blocking empty list...
2019/06/14 13:47:00 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:46:58.636284949 -0600 MDT m=+696.008313695] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:00.228379187 -0600 MDT m=+697.600407934])
2019/06/14 13:47:00 Blocking empty list...
2019/06/14 13:47:01 Blocking empty list...
2019/06/14 13:47:01 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:00.228379187 -0600 MDT m=+697.600407934] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:01.828705581 -0600 MDT m=+699.200734322])
2019/06/14 13:47:02 Blocking empty list...
2019/06/14 13:47:03 Blocking empty list...
2019/06/14 13:47:03 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:01.828705581 -0600 MDT m=+699.200734322] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:03.404720678 -0600 MDT m=+700.776749424])
2019/06/14 13:47:04 Blocking empty list...
2019/06/14 13:47:04 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:03.404720678 -0600 MDT m=+700.776749424] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:04.995027354 -0600 MDT m=+702.367056092])
2019/06/14 13:47:05 Blocking empty list...
2019/06/14 13:47:06 Blocking empty list...
2019/06/14 13:47:06 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:04.995027354 -0600 MDT m=+702.367056092] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:06.553799294 -0600 MDT m=+703.925828028])
2019/06/14 13:47:07 Blocking empty list...
2019/06/14 13:47:08 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:06.553799294 -0600 MDT m=+703.925828028] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:08.135736901 -0600 MDT m=+705.507765668])
2019/06/14 13:47:08 Blocking empty list...
2019/06/14 13:47:09 Blocking empty list...
2019/06/14 13:47:09 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:08.135736901 -0600 MDT m=+705.507765668] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:09.740053433 -0600 MDT m=+707.112082171])
2019/06/14 13:47:10 Blocking empty list...
2019/06/14 13:47:11 Blocking empty list...
2019/06/14 13:47:11 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:09.740053433 -0600 MDT m=+707.112082171] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:11.355342645 -0600 MDT m=+708.727371404])
2019/06/14 13:47:12 Blocking empty list...
2019/06/14 13:47:12 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:11.355342645 -0600 MDT m=+708.727371404] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:12.953509692 -0600 MDT m=+710.325538426])
2019/06/14 13:47:13 Blocking empty list...
2019/06/14 13:47:14 Blocking empty list...
2019/06/14 13:47:14 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:12.953509692 -0600 MDT m=+710.325538426] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:14.544215968 -0600 MDT m=+711.916244711])
2019/06/14 13:47:15 Blocking empty list...
2019/06/14 13:47:16 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:14.544215968 -0600 MDT m=+711.916244711] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:16.111428829 -0600 MDT m=+713.483457570])
2019/06/14 13:47:16 Blocking empty list...
2019/06/14 13:47:17 Blocking empty list...
2019/06/14 13:47:17 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:16.111428829 -0600 MDT m=+713.483457570] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:17.744188889 -0600 MDT m=+715.116217639])
2019/06/14 13:47:18 Blocking empty list...
2019/06/14 13:47:19 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:17.744188889 -0600 MDT m=+715.116217639] == [bid:Next Item on title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:19.31997218 -0600 MDT m=+716.692000915])
2019/06/14 13:47:19 Blocking empty list...
2019/06/14 13:47:20 Blocking empty list...
2019/06/14 13:47:20 DETAIL $24,039 $7,664
2019/06/14 13:47:20 false = ([bid:Next Item on title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:19.31997218 -0600 MDT m=+716.692000915] == [bid:$7,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:20.975960694 -0600 MDT m=+718.347989437])
2019/06/14 13:47:20 DETAIL BLACK BLUE
2019/06/14 13:47:21 TOP
2019/06/14 13:47:21 Blocking empty list...
2019/06/14 13:47:21 C [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:21.632839693 -0600 MDT m=+719.004868430]
2019/06/14 13:47:22 Blocking empty list...
2019/06/14 13:47:23 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:21.632839693 -0600 MDT m=+719.004868430] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:23.246285645 -0600 MDT m=+720.618314400])
2019/06/14 13:47:23 Blocking empty list...
2019/06/14 13:47:24 Blocking empty list...
2019/06/14 13:47:24 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:23.246285645 -0600 MDT m=+720.618314400] == [bid:$8,000 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:24.857513644 -0600 MDT m=+722.229542387])
2019/06/14 13:47:25 Blocking empty list...
2019/06/14 13:47:26 Blocking empty list...
2019/06/14 13:47:26 true = ([bid:$8,000 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:24.857513644 -0600 MDT m=+722.229542387] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:26.442221476 -0600 MDT m=+723.814250212])
2019/06/14 13:47:27 Blocking empty list...
2019/06/14 13:47:27 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:26.442221476 -0600 MDT m=+723.814250212] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:27.9990393 -0600 MDT m=+725.371068068])
2019/06/14 13:47:28 Blocking empty list...
2019/06/14 13:47:29 Blocking empty list...
2019/06/14 13:47:29 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:27.9990393 -0600 MDT m=+725.371068068] == [bid:$8,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:29.61021549 -0600 MDT m=+726.982244236])
2019/06/14 13:47:30 Blocking empty list...
2019/06/14 13:47:31 true = ([bid:$8,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:29.61021549 -0600 MDT m=+726.982244236] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:31.217544509 -0600 MDT m=+728.589573280])
2019/06/14 13:47:31 Blocking empty list...
2019/06/14 13:47:32 Blocking empty list...
2019/06/14 13:47:32 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:31.217544509 -0600 MDT m=+728.589573280] == [bid:$8,400 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:32.789748968 -0600 MDT m=+730.161777737])
2019/06/14 13:47:33 Blocking empty list...
2019/06/14 13:47:34 Blocking empty list...
2019/06/14 13:47:34 true = ([bid:$8,400 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:32.789748968 -0600 MDT m=+730.161777737] == [bid:$8,400 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:34.359088515 -0600 MDT m=+731.731117253])
2019/06/14 13:47:35 Blocking empty list...
2019/06/14 13:47:36 Blocking empty list...
2019/06/14 13:47:36 true = ([bid:$8,400 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:34.359088515 -0600 MDT m=+731.731117253] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:36.560628194 -0600 MDT m=+733.932656950])
2019/06/14 13:47:37 Blocking empty list...
2019/06/14 13:47:38 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:36.560628194 -0600 MDT m=+733.932656950] == [bid:$8,600 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:38.175551491 -0600 MDT m=+735.547580230])
2019/06/14 13:47:38 Blocking empty list...
2019/06/14 13:47:39 Blocking empty list...
2019/06/14 13:47:39 true = ([bid:$8,600 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:38.175551491 -0600 MDT m=+735.547580230] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:39.73534806 -0600 MDT m=+737.107376830])
2019/06/14 13:47:40 Blocking empty list...
2019/06/14 13:47:41 Blocking empty list...
2019/06/14 13:47:41 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:39.73534806 -0600 MDT m=+737.107376830] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:41.333835964 -0600 MDT m=+738.705864712])
2019/06/14 13:47:42 Blocking empty list...
2019/06/14 13:47:42 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:41.333835964 -0600 MDT m=+738.705864712] == [bid:$8,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:42.926327488 -0600 MDT m=+740.298356250])
2019/06/14 13:47:43 Blocking empty list...
2019/06/14 13:47:44 Blocking empty list...
2019/06/14 13:47:44 true = ([bid:$8,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:42.926327488 -0600 MDT m=+740.298356250] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:44.493785479 -0600 MDT m=+741.865814216])
2019/06/14 13:47:45 Blocking empty list...
2019/06/14 13:47:46 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:44.493785479 -0600 MDT m=+741.865814216] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:46.092736556 -0600 MDT m=+743.464765324])
2019/06/14 13:47:46 Blocking empty list...
2019/06/14 13:47:47 Blocking empty list...
2019/06/14 13:47:47 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:46.092736556 -0600 MDT m=+743.464765324] == [bid:$9,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:47.67597531 -0600 MDT m=+745.048004045])
2019/06/14 13:47:48 Blocking empty list...
2019/06/14 13:47:49 true = ([bid:$9,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:47.67597531 -0600 MDT m=+745.048004045] == [bid:$9,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:49.283213406 -0600 MDT m=+746.655242158])
2019/06/14 13:47:49 Blocking empty list...
2019/06/14 13:47:50 Blocking empty list...
2019/06/14 13:47:50 true = ([bid:$9,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:49.283213406 -0600 MDT m=+746.655242158] == [bid:$9,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:50.867335397 -0600 MDT m=+748.239364160])
2019/06/14 13:47:51 Blocking empty list...
2019/06/14 13:47:52 Blocking empty list...
2019/06/14 13:47:52 true = ([bid:$9,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:50.867335397 -0600 MDT m=+748.239364160] == [bid:$9,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:52.436153467 -0600 MDT m=+749.808182224])
2019/06/14 13:47:53 Blocking empty list...
2019/06/14 13:47:54 true = ([bid:$9,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:52.436153467 -0600 MDT m=+749.808182224] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:54.03762827 -0600 MDT m=+751.409657021])
2019/06/14 13:47:54 Blocking empty list...
2019/06/14 13:47:55 Blocking empty list...
2019/06/14 13:47:55 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:54.03762827 -0600 MDT m=+751.409657021] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:55.599953643 -0600 MDT m=+752.971982388])
2019/06/14 13:47:56 Blocking empty list...
2019/06/14 13:47:57 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:55.599953643 -0600 MDT m=+752.971982388] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:57.206392983 -0600 MDT m=+754.578421720])
2019/06/14 13:47:57 Blocking empty list...
2019/06/14 13:47:58 Blocking empty list...
2019/06/14 13:47:58 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:57.206392983 -0600 MDT m=+754.578421720] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:58.788865612 -0600 MDT m=+756.160894358])
2019/06/14 13:47:59 Blocking empty list...
2019/06/14 13:48:00 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:58.788865612 -0600 MDT m=+756.160894358] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:00.334639215 -0600 MDT m=+757.706667963])
2019/06/14 13:48:00 Blocking empty list...
2019/06/14 13:48:01 Blocking empty list...
2019/06/14 13:48:01 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:00.334639215 -0600 MDT m=+757.706667963] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:01.910710068 -0600 MDT m=+759.282738803])
2019/06/14 13:48:02 Blocking empty list...
2019/06/14 13:48:03 Blocking empty list...
2019/06/14 13:48:03 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:01.910710068 -0600 MDT m=+759.282738803] == [bid:$9,600 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:03.504547263 -0600 MDT m=+760.876576007])
2019/06/14 13:48:04 Blocking empty list...
2019/06/14 13:48:05 true = ([bid:$9,600 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:03.504547263 -0600 MDT m=+760.876576007] == [bid:$9,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:05.075648795 -0600 MDT m=+762.447677531])
2019/06/14 13:48:05 Blocking empty list...
2019/06/14 13:48:06 Blocking empty list...
2019/06/14 13:48:06 true = ([bid:$9,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:05.075648795 -0600 MDT m=+762.447677531] == [bid:$9,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:06.677601587 -0600 MDT m=+764.049630333])
2019/06/14 13:48:07 Blocking empty list...
2019/06/14 13:48:08 true = ([bid:$9,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:06.677601587 -0600 MDT m=+764.049630333] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:08.243314838 -0600 MDT m=+765.615343582])
2019/06/14 13:48:08 Blocking empty list...
2019/06/14 13:48:09 Blocking empty list...
2019/06/14 13:48:09 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:08.243314838 -0600 MDT m=+765.615343582] == [bid:$9,800 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:09.816861858 -0600 MDT m=+767.188890627])
2019/06/14 13:48:10 Blocking empty list...
2019/06/14 13:48:11 Blocking empty list...
2019/06/14 13:48:11 true = ([bid:$9,800 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:09.816861858 -0600 MDT m=+767.188890627] == [bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:11.401970852 -0600 MDT m=+768.773999592])
2019/06/14 13:48:12 Blocking empty list...
2019/06/14 13:48:13 Blocking empty list...
2019/06/14 13:48:13 true = ([bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:11.401970852 -0600 MDT m=+768.773999592] == [bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:13.385943303 -0600 MDT m=+770.757972044])
2019/06/14 13:48:14 Blocking empty list...
2019/06/14 13:48:15 true = ([bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:13.385943303 -0600 MDT m=+770.757972044] == [bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:15.010900934 -0600 MDT m=+772.382929685])
2019/06/14 13:48:15 Blocking empty list...
2019/06/14 13:48:16 Blocking empty list...
2019/06/14 13:48:16 true = ([bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:15.010900934 -0600 MDT m=+772.382929685] == [bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:16.582646794 -0600 MDT m=+773.954675536])
2019/06/14 13:48:17 Blocking empty list...
2019/06/14 13:48:18 true = ([bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:16.582646794 -0600 MDT m=+773.954675536] == [bid:$10,000 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:18.158918859 -0600 MDT m=+775.530947603])
2019/06/14 13:48:18 Blocking empty list...
2019/06/14 13:48:19 Blocking empty list...
2019/06/14 13:48:19 true = ([bid:$10,000 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:18.158918859 -0600 MDT m=+775.530947603] == [bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:19.762418285 -0600 MDT m=+777.134447038])
2019/06/14 13:48:20 Blocking empty list...
2019/06/14 13:48:21 Blocking empty list...
2019/06/14 13:48:21 true = ([bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:19.762418285 -0600 MDT m=+777.134447038] == [bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:21.358132544 -0600 MDT m=+778.730161288])
2019/06/14 13:48:22 Blocking empty list...
2019/06/14 13:48:22 true = ([bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:21.358132544 -0600 MDT m=+778.730161288] == [bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:22.960404858 -0600 MDT m=+780.332433601])
2019/06/14 13:48:23 Blocking empty list...
2019/06/14 13:48:24 Blocking empty list...
2019/06/14 13:48:24 true = ([bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:22.960404858 -0600 MDT m=+780.332433601] == [bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:24.549422086 -0600 MDT m=+781.921450823])
2019/06/14 13:48:25 Blocking empty list...
2019/06/14 13:48:26 true = ([bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:24.549422086 -0600 MDT m=+781.921450823] == [bid:$10,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:26.125843233 -0600 MDT m=+783.497871975])
2019/06/14 13:48:26 Blocking empty list...
2019/06/14 13:48:27 Blocking empty list...
2019/06/14 13:48:27 true = ([bid:$10,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:26.125843233 -0600 MDT m=+783.497871975] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:27.690221589 -0600 MDT m=+785.062250326])
2019/06/14 13:48:28 Blocking empty list...
2019/06/14 13:48:29 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:27.690221589 -0600 MDT m=+785.062250326] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:29.264012162 -0600 MDT m=+786.636040912])
2019/06/14 13:48:29 Blocking empty list...
2019/06/14 13:48:30 Blocking empty list...
2019/06/14 13:48:30 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:29.264012162 -0600 MDT m=+786.636040912] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:30.816621488 -0600 MDT m=+788.188650236])
2019/06/14 13:48:31 Blocking empty list...
2019/06/14 13:48:32 Blocking empty list...
2019/06/14 13:48:33 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:30.816621488 -0600 MDT m=+788.188650236] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:33.096096709 -0600 MDT m=+790.468125473])
2019/06/14 13:48:33 Blocking empty list...
2019/06/14 13:48:34 Blocking empty list...
2019/06/14 13:48:34 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:33.096096709 -0600 MDT m=+790.468125473] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:34.681657183 -0600 MDT m=+792.053685940])
2019/06/14 13:48:35 Blocking empty list...
2019/06/14 13:48:36 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:34.681657183 -0600 MDT m=+792.053685940] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:36.241164634 -0600 MDT m=+793.613193386])
2019/06/14 13:48:36 Blocking empty list...
2019/06/14 13:48:37 Blocking empty list...
2019/06/14 13:48:37 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:36.241164634 -0600 MDT m=+793.613193386] == [bid:Bonus title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:37.85757393 -0600 MDT m=+795.229602667])
2019/06/14 13:48:38 Blocking empty list...
2019/06/14 13:48:39 Blocking empty list...
2019/06/14 13:48:39 true = ([bid:Bonus title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:37.85757393 -0600 MDT m=+795.229602667] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:39.441577958 -0600 MDT m=+796.813606720])
2019/06/14 13:48:40 Blocking empty list...
2019/06/14 13:48:41 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:39.441577958 -0600 MDT m=+796.813606720] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:41.061072437 -0600 MDT m=+798.433101174])
2019/06/14 13:48:41 Blocking empty list...
2019/06/14 13:48:42 Blocking empty list...
2019/06/14 13:48:42 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:41.061072437 -0600 MDT m=+798.433101174] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:42.682457336 -0600 MDT m=+800.054486086])
2019/06/14 13:48:43 Blocking empty list...
2019/06/14 13:48:44 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:42.682457336 -0600 MDT m=+800.054486086] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:44.256806707 -0600 MDT m=+801.628835462])
2019/06/14 13:48:44 Blocking empty list...
2019/06/14 13:48:45 Blocking empty list...
2019/06/14 13:48:45 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:44.256806707 -0600 MDT m=+801.628835462] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:45.967221097 -0600 MDT m=+803.339249831])
2019/06/14 13:48:46 Blocking empty list...
2019/06/14 13:48:47 Blocking empty list...
2019/06/14 13:48:47 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:45.967221097 -0600 MDT m=+803.339249831] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:47.517339333 -0600 MDT m=+804.889368069])
2019/06/14 13:48:48 Blocking empty list...
2019/06/14 13:48:48 parse watched
2019/06/14 13:48:49 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:47.517339333 -0600 MDT m=+804.889368069] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:49.118780967 -0600 MDT m=+806.490809704])
2019/06/14 13:48:49 Blocking empty list...
2019/06/14 13:48:50 parse watched
2019/06/14 13:48:50 Blocking empty list...
2019/06/14 13:48:50 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:49.118780967 -0600 MDT m=+806.490809704] == [bid:Next Item on title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:50.667028521 -0600 MDT m=+808.039057254])
2019/06/14 13:48:51 Blocking empty list...
2019/06/14 13:48:51 parse watched
2019/06/14 13:48:52 DETAIL $7,689 $24,039
2019/06/14 13:48:52 false = ([bid:Next Item on title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:50.667028521 -0600 MDT m=+808.039057254] == [bid:$1,650 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:52.297679181 -0600 MDT m=+809.669707932])
2019/06/14 13:48:52 DETAIL 1.8L 4 3.6L 6
2019/06/14 13:48:52 Blocking empty list...
2019/06/14 13:48:52 TOP
2019/06/14 13:48:52 parse watched
2019/06/14 13:48:52 C [bid:$1,650 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:52.994021004 -0600 MDT m=+810.366049754]
2019/06/14 13:48:53 Blocking empty list...
2019/06/14 13:48:54 parse watched
2019/06/14 13:48:54 Blocking empty list...
2019/06/14 13:48:54 true = ([bid:$1,650 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:52.994021004 -0600 MDT m=+810.366049754] == [bid:Bid title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:54.583269582 -0600 MDT m=+811.955298323])
2019/06/14 13:48:55 Blocking empty list...
2019/06/14 13:48:55 parse watched
2019/06/14 13:48:56 true = ([bid:Bid title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:54.583269582 -0600 MDT m=+811.955298323] == [bid:$1,700 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:56.181033887 -0600 MDT m=+813.553062652])
2019/06/14 13:48:56 Blocking empty list...
2019/06/14 13:48:57 parse watched
2019/06/14 13:48:57 Blocking empty list...
2019/06/14 13:48:57 true = ([bid:$1,700 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:56.181033887 -0600 MDT m=+813.553062652] == [bid:$1,800 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:57.784934977 -0600 MDT m=+815.156963727])
2019/06/14 13:48:58 Blocking empty list...
2019/06/14 13:48:58 parse watched
2019/06/14 13:48:59 Blocking empty list...
2019/06/14 13:48:59 true = ([bid:$1,800 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:57.784934977 -0600 MDT m=+815.156963727] == [bid:$1,850 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:59.373646279 -0600 MDT m=+816.745675026])
2019/06/14 13:49:00 Blocking empty list...
2019/06/14 13:49:00 parse watched
2019/06/14 13:49:00 true = ([bid:$1,850 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:59.373646279 -0600 MDT m=+816.745675026] == [bid:$1,900 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:49:00.956853996 -0600 MDT m=+818.328882743])
2019/06/14 13:49:01 Blocking empty list...
2019/06/14 13:49:02 parse watched
2019/06/14 13:49:02 Blocking empty list...
2019/06/14 13:49:02 true = ([bid:$1,900 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:49:00.956853996 -0600 MDT m=+818.328882743] == [bid:Bid title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:49:02.537892071 -0600 MDT m=+819.909920818])
2019/06/14 13:49:03 Blocking empty list...
2019/06/14 13:49:03 stale element reference: stale element reference: element is not attached to the page document
(Session info: chrome=75.0.3770.80)
2019/06/14 13:49:04 Blocking empty list...
2019/06/14 13:49:05 Blocking empty list...
2019/06/14 13:49:06 Blocking empty list...

132
copart/auction/.auction.go Normal file
View File

@ -0,0 +1,132 @@
package auction
import (
"encoding/json"
"local/sandbox/selenium/copart/copart/browser"
"local/sandbox/selenium/copart/copart/config"
"log"
"time"
"github.com/tebeka/selenium"
)
type Auction struct {
browser *browser.Browser
cars []*Car
stop bool
stopped bool
}
func New(url string) (*Auction, error) {
b, err := browser.New()
if err != nil {
b.Close()
return nil, err
}
if err := b.Get(url); err != nil {
b.Close()
return nil, err
}
var elems []selenium.WebElement
deadline := time.Now().Add(time.Second * 10) // TODO ctx configurable and load more later
for deadline.After(time.Now()) {
time.Sleep(time.Second)
elems, err = b.Driver.FindElements("xpath", "//iframe")
if err != nil {
b.Close()
return nil, err
}
if len(elems) > 0 {
break
}
}
if time.Now().After(deadline) {
b.Close()
return nil, b.Close()
}
url, err = elems[0].GetAttribute("src")
if err != nil {
b.Close()
return nil, err
}
if err := b.Get(url); err != nil {
b.Close()
return nil, err
}
return &Auction{
browser: b,
cars: []*Car{},
}, nil
}
func (a *Auction) Start() error {
log.Println("START", a.stop)
go func() {
defer func() {
a.stopped = true
}()
for !a.stop {
log.Println("TOP")
c := NewCar()
if err := c.Parse(a.browser.Driver); err != nil {
log.Println(err)
return
}
log.Println("C", c)
for !a.stop {
time.Sleep(time.Second)
d := NewCar()
if err := d.Parse(a.browser.Driver); err != nil {
log.Println(err)
return
}
log.Printf("%v = (%v == %v)", c.Equals(d), c.String(), d.String())
if !c.Equals(d) {
break
}
c = d
}
b, err := c.Encode()
if err != nil {
log.Println(err)
return
}
if err := config.Values().DB.Set(c.String(), b); err != nil {
log.Println(err)
return
}
var list []string
if b, err := config.Values().DB.Get("LIST"); err != nil {
log.Println(err)
return
} else if err := json.Unmarshal(b, &list); err != nil {
log.Println(err)
return
} else {
list = append(list, c.String())
b, _ := json.Marshal(list)
if err := config.Values().DB.Set("LIST", b); err != nil {
log.Println(err)
return
}
}
}
}()
return nil
}
func (a *Auction) Stop() error {
if a == nil {
return nil
}
a.stop = true
for !a.stopped {
time.Sleep(time.Second)
}
if a.browser == nil || a.browser.Driver == nil {
return nil
}
return a.browser.Driver.Close()
}

222
copart/auction/auction.go Normal file
View File

@ -0,0 +1,222 @@
package auction
import (
"context"
"encoding/json"
"errors"
"local/sandbox/selenium/copart/copart/browser"
"local/sandbox/selenium/copart/copart/config"
"local/storage"
"log"
"strconv"
"strings"
"time"
)
type Auction struct {
browser *browser.Browser
cars chan *Car
ctx context.Context
can context.CancelFunc
routines chan struct{}
}
func New(b *browser.Browser, url string) (*Auction, error) {
if err := b.Get(url); err != nil {
b.Close()
return nil, err
}
ctx, can := context.WithTimeout(context.Background(), time.Second*10)
defer can()
var elem WebElement
for err := ctx.Err(); err == nil; err = ctx.Err() {
elem, err = b.Driver.FindElement("xpath", "//iframe")
if err == nil {
break
}
time.Sleep(time.Second)
}
if err := ctx.Err(); err != nil {
b.Close()
return nil, err
}
iframeURL, err := elem.GetAttribute("src")
if err != nil {
b.Close()
return nil, err
} else if iframeURL == "" {
b.Close()
return nil, errors.New("auction iframe has no src")
}
if err := b.Get(iframeURL); err != nil {
b.Close()
return nil, err
}
ctx, can = context.WithCancel(context.Background())
return &Auction{
browser: b,
cars: make(chan *Car),
ctx: ctx,
can: can,
routines: make(chan struct{}, 5),
}, nil
}
func (a *Auction) Start() error {
go a.parseCars()
a.routines <- struct{}{}
go a.saveCars()
a.routines <- struct{}{}
return nil
}
func (a *Auction) parseCars() error {
log.Printf("[parseCars] starting")
defer func() {
if err := recover(); err != nil {
log.Println("[parseCars] recover:", err)
}
log.Printf("[parseCars] stopping")
close(a.cars)
a.can()
a.routines <- struct{}{}
}()
for err := a.ctx.Err(); err == nil; err = a.ctx.Err() {
c, err := a.nextCar()
if err != nil {
panic(err)
}
log.Printf("[parseCars] found car %v", c.String())
if !strings.Contains(c.Bid, "$") {
continue
}
if b, _ := c.MarshalJSON(); strings.Contains(strings.ToLower(string(b)), ", hi") {
continue
} else if strings.Contains(strings.ToLower(string(b)), "guam") {
continue
} else if len(c.Title) < 4 {
continue
} else if v, err := strconv.Atoi(c.Title[:4]); err != nil {
continue
} else if v+5 < time.Now().Year() {
continue
}
select {
case a.cars <- c:
case <-a.ctx.Done():
panic(a.ctx.Err())
}
}
return a.ctx.Err()
}
func (a *Auction) nextCar() (*Car, error) {
c := NewCar()
if err := c.Parse(a.browser.Driver); err != nil {
if !strings.Contains(err.Error(), "stale element") {
return nil, err
} else {
return a.nextCar()
}
}
for err := a.ctx.Err(); err == nil; err = a.ctx.Err() {
time.Sleep(time.Second * 2)
d := NewCar()
if err := d.Parse(a.browser.Driver); err != nil {
if !strings.Contains(err.Error(), "stale element") {
return nil, err
}
}
if !c.Equals(d) {
return c, nil
}
if d.Bid != "" {
c = d
}
}
return nil, a.ctx.Err()
}
func (a *Auction) saveCars() error {
log.Printf("[saveCars] starting")
defer func() {
if err := recover(); err != nil {
log.Println("[saveCars] recover:", err)
}
log.Printf("[saveCars] stopping")
a.can()
a.routines <- struct{}{}
}()
for err := a.ctx.Err(); err == nil; err = a.ctx.Err() {
select {
case <-a.ctx.Done():
panic(a.ctx.Err())
case c := <-a.cars:
go func(d *Car) {
if d == nil {
return
}
log.Printf("[saveCars] saving %v", d.String())
if err := a.saveCar(d); err != nil {
log.Printf("[saveCars] err: %v", err)
}
}(c)
}
}
return a.ctx.Err()
}
func (a *Auction) saveCar(c *Car) error {
db := config.Values().DB
b, err := c.Encode()
if err != nil {
return err
}
if err := db.Set(c.String(), b); err != nil {
return err
}
var list []string
b, err = db.Get("LIST")
if err == storage.ErrNotFound {
b = []byte("[]")
} else if err != nil {
return err
}
if err := json.Unmarshal(b, &list); err != nil {
return err
}
list = append([]string{c.String()}, list...)
if b, err := json.Marshal(list); err != nil {
return err
} else if err := db.Set("LIST", b); err != nil {
return err
}
return nil
}
func (a *Auction) Stop() error {
l := len(a.routines)
a.can()
ctx, can := context.WithTimeout(context.Background(), time.Second*5)
defer can()
for i := 0; i < 2*l; i++ {
select {
case <-a.routines:
case <-ctx.Done():
}
}
if len(a.routines) > 0 {
return errors.New("not all routines exited")
}
return nil
}

View File

@ -0,0 +1,185 @@
package auction
import (
"context"
"crypto/rand"
"fmt"
"local/sandbox/selenium/copart/copart/browser"
"local/sandbox/selenium/copart/copart/config"
"math/big"
"net/url"
"os"
"strings"
"sync"
"testing"
"time"
)
func randStr() string {
n := 3
letters := "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"
k := big.NewInt(int64(len(letters)))
b := make([]byte, n)
for i := 0; i < n; i++ {
j, _ := rand.Int(rand.Reader, k)
b[i] = letters[int(j.Int64())]
}
return string(b)
}
func randomAuctionBody() []browser.MockElement {
return []browser.MockElement{browser.MockElement{
Attrs: map[string]string{
"src": "anything",
},
Ret: map[string][]browser.MockElement{
"//bidding-dialer-refactor": []browser.MockElement{browser.MockElement{
Ret: map[string][]browser.MockElement{
"text": []browser.MockElement{browser.MockElement{
Txt: "$bid" + randStr(),
}},
},
}},
"//lot-details-primary-refactored": []browser.MockElement{browser.MockElement{
Ret: map[string][]browser.MockElement{
"label": []browser.MockElement{browser.MockElement{
Txt: "label" + randStr(),
Ret: map[string][]browser.MockElement{
"../div[1]": []browser.MockElement{browser.MockElement{
Txt: "value" + randStr(),
}},
},
}},
},
}},
"//lot-details-secondary-refactored": []browser.MockElement{browser.MockElement{
Ret: map[string][]browser.MockElement{
"label": []browser.MockElement{browser.MockElement{
Txt: "label" + randStr(),
Ret: map[string][]browser.MockElement{
"../div[1]": []browser.MockElement{browser.MockElement{
Txt: "value" + randStr(),
}},
},
}},
},
}},
"//ngx-carousel": []browser.MockElement{browser.MockElement{
Ret: map[string][]browser.MockElement{
"ngx-item": []browser.MockElement{},
},
}},
"//lot-header": []browser.MockElement{browser.MockElement{
Ret: map[string][]browser.MockElement{
"section": []browser.MockElement{browser.MockElement{
Ret: map[string][]browser.MockElement{
"div": []browser.MockElement{browser.MockElement{
Ret: map[string][]browser.MockElement{
"div": []browser.MockElement{browser.MockElement{
Txt: "title" + randStr(),
}},
},
}},
},
}},
},
}},
"//widget-header-sale": []browser.MockElement{browser.MockElement{
Ret: map[string][]browser.MockElement{
".//div[@class=\"watchlist\"]": []browser.MockElement{},
},
}},
},
}}
}
func mockAuction() (*Auction, context.CancelFunc) {
m := &sync.Map{}
r := randomAuctionBody()
m.Store("body", r)
go func() {
time.Sleep(time.Second * 2)
m.Store("//iframe", r)
}()
driver := browser.NewMockDriver(m)
ctx, can := context.WithCancel(context.Background())
go func() {
for ctx.Err() == nil {
time.Sleep(time.Millisecond * 100)
m.Store("body", randomAuctionBody())
}
}()
return &Auction{
browser: &browser.Browser{Driver: driver},
cars: make(chan *Car),
ctx: ctx,
can: can,
routines: make(chan struct{}, 5),
}, can
}
func TestNewAuction(t *testing.T) {
a, can := mockAuction()
defer can()
b := a.browser
if _, err := New(b, "any"); err != nil {
t.Fatal(err)
}
}
func TestAuctionStartStop(t *testing.T) {
a, can := mockAuction()
defer can()
if err := a.Start(); err != nil {
t.Fatal(err)
}
if len(a.routines) != 2 {
t.Fatal("not 2 routines")
}
if err := a.Stop(); err != nil {
t.Fatal(err)
}
}
func TestAuctionSaveCar(t *testing.T) {
os.Args = []string{"a", "-db", "map"}
config.New()
a, can := mockAuction()
defer can()
c := NewCar()
c.Bid = "123"
c.Title = "abc"
c.Details = map[string]string{
"x": "y",
}
c.Images = []*Image{&Image{Src: &url.URL{Host: "img"}}}
d := NewCar()
if err := a.saveCar(c); err != nil {
t.Fatal(err)
}
if b, err := config.Values().DB.Get("LIST"); err != nil {
t.Fatal(err)
} else if !strings.Contains(string(b), c.String()) {
t.Fatal("list does not contain new car")
}
if b, err := config.Values().DB.Get(c.String()); err != nil {
t.Fatal(err)
} else if err := d.Decode(b); err != nil {
t.Fatal(err)
} else if !c.Equals(d) {
t.Fatal("saved car != fetched car")
}
}
func TestAuctionNextCar(t *testing.T) {
os.Args = []string{"a", "-db", "map"}
config.New()
a, can := mockAuction()
defer can()
if c, err := a.nextCar(); err != nil {
t.Fatal(err)
} else if c == nil || fmt.Sprintf("%v", *c) == fmt.Sprintf("%v", Car{}) {
t.Fatal("parsed car is nil")
}
}

251
copart/auction/car.go Normal file
View File

@ -0,0 +1,251 @@
package auction
import (
"bytes"
"encoding/gob"
"encoding/json"
"errors"
"fmt"
"net/url"
"strings"
"time"
)
type Car struct {
Bid string
Details map[string]string
Images []*Image
Title string
Watched bool
TS time.Time
}
type CarOption func(*Car)
func NewCar(options ...CarOption) *Car {
c := &Car{
Details: map[string]string{},
Images: []*Image{},
}
c.parseTS(nil)
for _, opt := range options {
opt(c)
}
return c
}
func (c *Car) MarshalJSON() ([]byte, error) {
m := map[string]interface{}{}
m["bid"] = c.Bid
m["details"] = c.Details
m["images"] = c.Images
m["title"] = c.Title
m["TS"] = c.TS.Format("2006-01-02")
return json.Marshal(m)
}
func (c *Car) Encode() ([]byte, error) {
buff := bytes.NewBuffer(nil)
enc := gob.NewEncoder(buff)
err := enc.Encode(c)
return buff.Bytes(), err
}
func (c *Car) Decode(b []byte) error {
buff := bytes.NewBuffer(b)
enc := gob.NewDecoder(buff)
return enc.Decode(c)
}
func (c *Car) Copy() *Car {
d := *c
return &d
}
func (c *Car) Equals(d *Car) bool {
if c == d {
return true
}
if d == nil && c != nil {
return false
}
if c == nil && d != nil {
return false
}
for k, v := range c.Details {
if w, ok := d.Details[k]; ok && w != v {
return false
}
}
for k, v := range c.Details {
if w, ok := c.Details[k]; ok && w != v {
return false
}
}
if c.Title != d.Title {
return false
}
return true
}
func (c *Car) String() string {
return fmt.Sprintf(
"[bid:%v title:%v watched:%v images:%v when:%v]",
c.Bid,
c.Title,
c.Watched,
len(c.Images),
c.TS,
)
}
func (c *Car) Parse(wd WebDriver) error {
we, err := wd.FindElement("tag name", "body")
if err != nil {
return err
}
do := []func(WebElement) error{
c.parseTitle,
c.parseBid,
c.parseWatched,
c.parseImages,
c.parseDetails,
c.parseTS,
}
for _, d := range do {
if err := d(we); err != nil {
return err
}
}
return nil
}
func (c *Car) parseTS(WebElement) error {
c.TS = time.Now()
return nil
}
func (c *Car) parseBid(wd WebElement) error {
elem := waitForXPath(wd, "//bidding-dialer-refactor")
elem, err := elem.FindElement("tag name", "text")
if err != nil {
return err
}
text, err := elem.Text()
if err != nil {
return err
}
if strings.Contains(text, "$") {
c.Bid = text
}
return nil
}
func (c *Car) parseDetails(wd WebElement) error {
details := make(map[string]string)
elems, err := wd.FindElements("tag name", "perfect-scrollbar")
if err != nil {
return err
}
if len(elems) > 2 {
elems = elems[:2]
}
for _, elem := range elems {
labels, err := elem.FindElements("tag name", "label")
if err != nil {
return err
}
for _, label := range labels {
ltext, err := label.Text()
if err != nil {
return err
}
if ltext == "" {
continue
}
value, err := label.FindElement("xpath", "../div[1]")
if err != nil {
return err
}
vtext, err := value.Text()
if err != nil {
return err
}
details[ltext] = vtext
}
}
if len(details) > 0 {
c.Details = details
}
return nil
}
func (c *Car) parseImages(wd WebElement) error {
elem := waitForXPath(wd, "//ngx-carousel")
elems, err := elem.FindElements("tag name", "ngx-item")
if err != nil {
return err
}
if len(elems) == 0 {
return err
}
images := make([]*Image, 0)
for _, elem := range elems {
elems, err := elem.FindElements("tag name", "img")
if err != nil {
return err
}
for _, img := range elems {
attr, err := img.GetAttribute("src")
if err != nil {
return err
}
url, err := url.Parse(attr)
if err != nil {
return err
}
images = append(images, NewImage(url))
}
}
c.Images = images
return nil
}
func (c *Car) parseTitle(wd WebElement) error {
elem := waitForXPath(wd, "//lot-header")
elem = followTags(elem, "section", "div", "div")
if elem == nil {
return errors.New("not found")
}
text, err := elem.Text()
if err != nil {
return err
}
c.Title = text
return nil
}
func (c *Car) parseWatched(wd WebElement) error {
elem := waitForXPath(wd, "//widget-header-sale")
elems, err := elem.FindElements("tag name", ".//div[@class=\"watchlist\"]")
if err != nil {
return err
}
c.Watched = len(elems) > 0
return nil
}

View File

@ -0,0 +1,36 @@
package auction
import "testing"
func TestCar(t *testing.T) {
c := NewCar()
c.Title = "title"
c.Bid = "bid"
c.Watched = true
c.Details = map[string]string{"a": "b"}
d := c.Copy()
if !c.Equals(d) {
t.Errorf("equals failed post copy")
}
c.Details = map[string]string{"a": "c"}
if c.Equals(d) {
t.Errorf("equals passes post edit")
}
t.Log(c.String())
b, err := c.Encode()
if err != nil {
t.Fatal(err)
}
e := NewCar()
if err := e.Decode(b); err != nil {
t.Fatal(err)
}
if !c.Equals(e) {
t.Fatalf("decoded != encoded: %v vs %v", c, e)
}
if _, err := c.MarshalJSON(); err != nil {
t.Fatal(err)
}
}

39
copart/auction/image.go Normal file
View File

@ -0,0 +1,39 @@
package auction
import (
"encoding/json"
"io/ioutil"
"net/http"
"net/url"
"os"
)
type Image struct {
Raw []byte
Src *url.URL
}
func NewImage(url *url.URL) *Image {
return &Image{
Src: url,
}
}
func (img *Image) MarshalJSON() ([]byte, error) {
return json.Marshal(img.Src.String())
}
func (img *Image) Fetch() error {
resp, err := http.Get(img.Src.String())
if err != nil {
return err
}
defer resp.Body.Close()
Raw, err := ioutil.ReadAll(resp.Body)
img.Raw = Raw
return err
}
func (img *Image) Save(path string) error {
return ioutil.WriteFile(path, img.Raw, os.ModePerm)
}

231
copart/auction/today.go Normal file
View File

@ -0,0 +1,231 @@
package auction
import (
"context"
"local/sandbox/selenium/copart/copart/browser"
"local/sandbox/selenium/copart/copart/config"
"local/storage"
"log"
"os"
"strings"
"syscall"
"time"
"golang.org/x/time/rate"
)
type Today struct {
today *browser.Browser
Auctions []*Auction
ctx context.Context
can context.CancelFunc
routines chan struct{}
sigc chan os.Signal
}
func NewToday(sigc chan os.Signal) (*Today, error) {
today, err := today()
if err != nil {
today.Close()
return nil, err
}
if _, err := config.Values().DB.Get("LIST"); err == storage.ErrNotFound {
if err := config.Values().DB.Set("LIST", []byte("[]")); err != nil {
today.Close()
return nil, err
}
} else if err != nil {
today.Close()
return nil, err
}
deadline := time.Now()
deadline = deadline.Add(time.Hour * 24)
deadline = deadline.Add(time.Duration(-1*time.Now().Hour()) * time.Hour)
ctx, can := context.WithDeadline(context.Background(), deadline)
return &Today{
today: today,
Auctions: make([]*Auction, 0),
ctx: ctx,
can: can,
routines: make(chan struct{}, 10),
sigc: sigc,
}, nil
}
func today() (*browser.Browser, error) {
today, err := browser.New()
if err != nil {
return today, err
}
if err := today.Get("https://www.copart.com/todaysAuction/"); err != nil {
return today, err
}
return today, nil
}
func (t *Today) Start() error {
ch := make(chan string)
go t.watchAuctionList(ch)
t.routines <- struct{}{}
go t.startAuctions(ch)
t.routines <- struct{}{}
return t.ctx.Err()
}
func (t *Today) watchAuctionList(ch chan string) {
log.Printf("[watchAuctionList] starting")
defer func() {
if err := recover(); err != nil {
log.Println("[watchAuctionList] recover:", err)
}
log.Printf("[watchAuctionList] stopping")
t.routines <- struct{}{}
t.Stop()
}()
found := make(map[string]struct{})
retryCD := 3
for err := t.ctx.Err(); err == nil; err = t.ctx.Err() {
elems, err := t.today.Driver.FindElements("link text", "Join Auction")
if err != nil {
panic(err)
}
log.Printf("[watchAuctionList] found %v", len(elems))
for _, elem := range elems {
url, err := elem.GetAttribute("href")
if err != nil {
panic(err)
}
key := time.Now().Format("2006-01-02") + url
if _, ok := found[key]; ok {
log.Printf("[watchAuctionList] skipping %v", url)
continue
}
found[key] = struct{}{}
log.Printf("[watchAuctionList] sending %v", len(url))
ch <- url
}
log.Printf("[watchAuctionList] blocking 5 minutes")
select {
case <-t.ctx.Done():
panic(t.ctx.Err())
case <-time.After(time.Minute * 5):
retryCD -= 1
if retryCD == 0 {
retryCD = 3
for {
if t.ctx.Err() != nil {
panic(t.ctx.Err())
}
err := t.today.Driver.Refresh()
if err == nil {
break
}
if strings.Contains(err.Error(), "timeout") {
select {
case <-time.After(time.Second * 15):
case <-t.ctx.Done():
panic(t.ctx.Err())
}
}
}
}
}
}
}
func (t *Today) startAuctions(ch chan string) {
log.Printf("[startAuctions] starting")
defer func() {
if err := recover(); err != nil {
log.Println("[startAuctions] recover:", err)
}
log.Printf("[startAuctions] stopping")
t.routines <- struct{}{}
t.Stop()
}()
limiter := rate.NewLimiter(rate.Every(time.Second*15), 1)
for {
select {
case <-t.ctx.Done():
panic(t.ctx.Err())
case url := <-ch:
if err := limiter.Wait(t.ctx); err != nil {
panic(err)
}
log.Printf("[startAuctions] spawning %v", url)
b, err := browser.New()
if err != nil {
time.Sleep(time.Second * 15)
if err := limiter.Wait(t.ctx); err != nil {
panic(err)
}
b, err = browser.New()
if err != nil {
panic(err)
}
}
a, err := New(b, url)
if a != nil {
t.Auctions = append(t.Auctions, a)
}
if err != nil {
log.Println("[startAuctions] failed to New:", err)
} else if err := a.Start(); err != nil {
log.Println("[startAuctions] failed to New().Start:", err)
} else {
log.Printf("[startAuctions] spawned %v", url)
}
}
}
}
func (t *Today) Stop() error {
last := make(chan error)
if t == nil {
return nil
}
l := len(t.routines)
t.can()
ctx, can := context.WithTimeout(context.Background(), time.Second*10)
defer can()
for i := 0; i < l*2; i++ {
select {
case <-t.routines:
case <-ctx.Done():
select {
case last <- ctx.Err():
default:
}
}
}
for _, a := range t.Auctions {
go func() {
if err := a.Stop(); err != nil {
select {
case last <- err:
case <-time.After(time.Second * 5):
}
}
}()
}
if err := t.today.Driver.Close(); err != nil {
select {
case last <- err:
default:
}
}
var err error
select {
case err = <-last:
case <-time.After(time.Second * 5):
}
select {
case t.sigc <- syscall.SIGHUP:
default:
}
return err
}

View File

@ -0,0 +1,46 @@
package auction
import (
"local/sandbox/selenium/copart/copart/browser"
"time"
"github.com/tebeka/selenium"
)
type WebDriver interface {
browser.WebDriver
}
type WebElement interface {
selenium.WebElement
}
func waitForXPath(wd WebElement, path string) selenium.WebElement {
var we selenium.WebElement
test := func() bool {
v, err := wd.FindElements("xpath", path)
if err != nil {
return false
}
if len(v) < 1 {
return false
}
we = v[0]
return true
}
for !test() {
time.Sleep(1)
}
return we
}
func followTags(wd WebElement, tag ...string) selenium.WebElement {
for _, t := range tag {
var err error
wd, err = wd.FindElement("tag name", t)
if err != nil {
return nil
}
}
return wd
}

71
copart/browser/browser.go Normal file
View File

@ -0,0 +1,71 @@
package browser
import (
"fmt"
"strings"
"time"
"github.com/tebeka/selenium"
)
type WebDriver interface {
Get(string) error
Quit() error
Close() error
FindElement(string, string) (selenium.WebElement, error)
FindElements(string, string) ([]selenium.WebElement, error)
Refresh() error
}
type WebElement interface {
FindElement(string, string) (selenium.WebElement, error)
FindElements(string, string) ([]selenium.WebElement, error)
Text() (string, error)
GetAttribute(string) (string, error)
}
type Browser struct {
Driver WebDriver
}
func New() (*Browser, error) {
var Driver selenium.WebDriver
var err error
caps := selenium.Capabilities{"browserName": "chrome"}
//caps := selenium.Capabilities{"browserName": "firefox"}
for i := 0; i < 5; i++ {
Driver, err = selenium.NewRemote(caps, fmt.Sprintf("http://localhost:%v/wd/hub", 4444))
if err != nil {
if strings.Contains(err.Error(), "connection refused") {
time.Sleep(time.Second * time.Duration(i+1))
continue
}
if strings.Contains(err.Error(), "timeout") {
time.Sleep(time.Second * time.Duration(i+1))
continue
}
return nil, err
}
}
return &Browser{
Driver: Driver,
}, err
}
func (b *Browser) Get(addr string) error {
return b.Driver.Get(addr)
}
func (b *Browser) Close() error {
if b == nil || b.Driver == nil {
return nil
}
if err := b.Driver.Close(); err != nil {
return err
}
if err := b.Driver.Quit(); err != nil {
return err
}
return nil
}

View File

@ -0,0 +1,25 @@
package browser
import (
"testing"
)
func TestNew(t *testing.T) {
browser, err := New()
if err != nil {
t.Fatal(err)
}
defer browser.Close()
if err := browser.Driver.Get("https://www.google.com"); err != nil {
t.Fatal(err)
}
elem, err := browser.Driver.FindElement("tag name", "body")
if err != nil {
t.Fatal(err)
}
if elem == nil {
t.Fatal(err)
}
}

View File

@ -0,0 +1,91 @@
package browser
import (
"errors"
"local/storage"
"sync"
"github.com/tebeka/selenium"
)
type MockDriver struct {
Ret *sync.Map
}
var notImpl = errors.New("not impl")
func (wd MockDriver) Quit() error { return nil }
func (wd MockDriver) Close() error { return nil }
func (wd MockDriver) Get(string) error { return nil }
func (wd MockDriver) GetCookies() ([]selenium.Cookie, error) { return []selenium.Cookie{}, nil }
func (wd MockDriver) GetCookie(string) (selenium.Cookie, error) { return selenium.Cookie{}, nil }
func (wd MockDriver) AddCookie(*selenium.Cookie) error { return nil }
func (wd MockDriver) FindElement(_ string, key string) (selenium.WebElement, error) {
v, err := wd.FindElements("", key)
if err != nil {
return nil, err
}
return v[0], nil
}
func (wd MockDriver) FindElements(_ string, key string) ([]selenium.WebElement, error) {
we := []selenium.WebElement{}
if v, ok := wd.Ret.Load(key); ok {
w, _ := v.([]MockElement)
for i := range w {
we = append(we, w[i])
}
return we, nil
}
return nil, storage.ErrNotFound
}
type MockElement struct {
selenium.WebElement
Ret map[string][]MockElement
Txt string
Attrs map[string]string
}
func (we MockElement) FindElement(_ string, key string) (selenium.WebElement, error) {
v, err := we.FindElements("", key)
if err != nil {
return nil, err
}
return v[0], nil
}
func (we MockElement) FindElements(_ string, key string) ([]selenium.WebElement, error) {
elems := []selenium.WebElement{}
if v, ok := we.Ret[key]; ok {
for i := range v {
elems = append(elems, v[i])
}
return elems, nil
}
return nil, storage.ErrNotFound
}
func (we MockElement) Text() (string, error) { return we.Txt, nil }
func (we MockElement) GetAttribute(key string) (string, error) {
v, _ := we.Attrs[key]
return v, nil
}
func (we MockElement) Click() error { return notImpl }
func (we MockElement) SendKeys(keys string) error { return notImpl }
func (we MockElement) Submit() error { return notImpl }
func (we MockElement) Clear() error { return notImpl }
func (we MockElement) MoveTo(int, int) error { return notImpl }
func (we MockElement) TagName() (string, error) { return "", notImpl }
func (we MockElement) IsSelected() (bool, error) { return false, notImpl }
func (we MockElement) IsEnabled() (bool, error) { return false, notImpl }
func (we MockElement) IsDisplayed() (bool, error) { return false, notImpl }
func (we MockElement) Location() (*selenium.Point, error) { return nil, notImpl }
func (we MockElement) LocationInView() (*selenium.Point, error) { return nil, notImpl }
func (we MockElement) Size() (*selenium.Size, error) { return nil, notImpl }
func (we MockElement) CSSProperty(name string) (string, error) { return "", notImpl }
func (we MockElement) Screenshot(bool) ([]byte, error) { return nil, notImpl }
func NewMockDriver(elements *sync.Map) *MockDriver {
return &MockDriver{
Ret: elements,
}
}

View File

@ -0,0 +1,17 @@
package browser
import (
"testing"
"github.com/tebeka/selenium"
)
func TestMockSeleniumInterfaces(t *testing.T) {
var wd WebDriver
wd = MockDriver{}
var we selenium.WebElement
we = MockElement{}
t.Log(wd, we)
}

84
copart/endpoint_test.go Normal file
View File

@ -0,0 +1,84 @@
package copart
import (
"bytes"
"fmt"
"io/ioutil"
"local/router"
"net/http"
"net/http/httptest"
"os/exec"
"path"
"runtime"
"strings"
"testing"
"time"
)
func StartServer() *http.Server {
_, filename, _, _ := runtime.Caller(0)
dir := path.Dir(filename)
html := path.Join(dir, "testdata", "sample_auction_live.html")
b, _ := ioutil.ReadFile(html)
handler := func(w http.ResponseWriter, r *http.Request) {
w.Write(b)
}
s := router.New()
s.Add(router.Wildcard, handler)
s.Add("/", handler)
port := getPort()
cmd := exec.Command("bash", "-c", `ifconfig en0 | grep -o '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*' | head -n 1`)
out := bytes.NewBuffer(nil)
cmd.Stdout = out
if err := cmd.Run(); err != nil {
panic(err)
}
if len(out.Bytes()) < 1 {
cmd := exec.Command("bash", "-c", `ifconfig eno1 | grep -o '[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*\.[0-9][0-9]*' | head -n 1`)
cmd.Stdout = out
if err := cmd.Run(); err != nil {
panic(err)
}
}
url := fmt.Sprintf("http://%s:%s", strings.TrimSpace(string(out.Bytes())), port)
srv := &http.Server{
Addr: ":" + port,
Handler: s,
}
go func() {
if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
panic(err)
}
}()
for {
if _, err := http.Get(url); err == nil {
break
}
time.Sleep(time.Millisecond * 250)
}
srv.Addr = url
return srv
}
func getPort() string {
s := httptest.NewServer(nil)
s.Close()
time.Sleep(time.Millisecond * 2500)
seg := strings.Split(s.URL, ":")
return seg[len(seg)-1]
}
func TestStartServer(t *testing.T) {
s := StartServer()
defer s.Close()
resp, _ := http.Get(s.Addr)
b, _ := ioutil.ReadAll(resp.Body)
if len(b) < 1 {
t.Fatalf("failed to start fake auction server")
}
}

BIN
copart/out2.db Normal file

Binary file not shown.

90
copart/selenium_test.go Normal file
View File

@ -0,0 +1,90 @@
package copart
import (
"encoding/json"
"local/sandbox/selenium/copart/copart/auction"
"local/sandbox/selenium/copart/copart/browser"
"local/sandbox/selenium/copart/copart/config"
"log"
"os"
"testing"
"time"
)
func TestSelenium(t *testing.T) {
s := StartServer()
defer s.Close()
log.Printf("started faux auctions on %s", s.Addr)
b, err := browser.New()
if err != nil {
t.Fatal(err)
}
log.Println("made browser", s.Addr)
if err := b.Get(s.Addr); err != nil {
t.Fatal(err)
}
log.Printf("navigated to %s", s.Addr)
c := auction.NewCar()
if err := c.Parse(b.Driver); err != nil {
t.Fatal(err)
}
log.Printf("parsed car %s", c.String())
log.Println(c.Details)
}
func TestReal(t *testing.T) {
os.Args = []string{
"a",
"-addr",
"./out2.db",
"-db",
"map",
}
if err := config.New(); err != nil {
t.Fatal(err)
}
log.Println("Creating today...")
today, err := auction.NewToday()
if err != nil {
t.Fatal(err)
}
log.Println("Starting today...")
if err := today.Start(); err != nil {
t.Fatal(err)
}
for {
log.Println("Blocking empty list...")
time.Sleep(time.Second)
var list []string
if b, err := config.Values().DB.Get("LIST"); err != nil {
t.Fatal(err)
} else if err := json.Unmarshal(b, &list); err != nil {
t.Fatal(err)
} else if len(list) < 2 {
continue
} else {
log.Println("Dumping from list...")
for _, id := range list {
c := auction.NewCar()
if b, err := config.Values().DB.Get(id); err != nil {
t.Fatal(err)
} else if err := c.Decode(b); err != nil {
t.Fatal(err)
} else {
log.Println(c.String())
}
}
break
}
}
if err := today.Stop(); err != nil {
t.Fatal(err)
}
}

BIN
copart/testdata/bolt.db vendored Normal file

Binary file not shown.

106
copart/testdata/fix.go vendored Normal file
View File

@ -0,0 +1,106 @@
package main
import (
"bufio"
"encoding/json"
"fmt"
"local/sandbox/selenium/copart/copart/auction"
"local/storage"
"log"
"net/url"
"os"
"regexp"
"strings"
"time"
)
func main() {
storage.DefaultNamespace = "namespace"
s, err := storage.New(storage.BOLT, "./bolt.db")
if err != nil {
panic(err)
}
log.Println(s)
f, err := os.Open("./log2")
if err != nil {
panic(err)
}
defer f.Close()
list := []string{}
scn := bufio.NewScanner(f)
for scn.Scan() {
line := scn.Text()
if strings.Contains(line, "true = ") {
continue
}
m := regexp.MustCompile("\\[[^\\]]+\\]").FindAllString(line, 2)[1]
between := func(l, a, b string) string {
form := fmt.Sprintf("%s:[^(%s)]*%s", a, b, b)
c := regexp.MustCompile(form).FindString(l)
c = strings.TrimPrefix(c, fmt.Sprintf("%s:", a))
c = strings.TrimSuffix(c, fmt.Sprintf("%s", b))
return strings.TrimSpace(c)
}
bid := between(m, "bid", "title")
title := between(m, "title", "watched")
when := between(m, "when", "\\]")
when = regexp.MustCompile(":[0-9][0-9]\\.[0-9].*$").ReplaceAllString(when, "")
c := auction.NewCar()
c.Bid = bid
c.Title = title
c.TS, _ = time.Parse("2006-01-02 15:04", regexp.MustCompile(":[0-9][0-9]\\.[0-9].*$").ReplaceAllString(when, ""))
c.Details = map[string]string{
"Year": strings.Split(title, " ")[0],
}
c.Images = []*auction.Image{}
srcs := []string{}
if strings.Contains(c.Title, "CHEVROLET") {
srcs = []string{
"https://cs.copart.com/v1/AUTH_svc.pdoc00001/PIX133/eb332bcb-4d51-422c-a317-8bfb3729f368.JPG",
"https://cs.copart.com/v1/AUTH_svc.pdoc00001/PIX133/fb3ac542-bb52-4554-98a9-3979fed5edb1.JPG",
"https://cs.copart.com/v1/AUTH_svc.pdoc00001/PIX133/5c974805-c917-495a-8481-5e697a46ac25.JPG",
}
} else if strings.Contains(c.Title, "YUKON") {
srcs = []string{
"https://cs.copart.com/v1/AUTH_svc.pdoc00001/PIX145/c64e1510-9e81-4128-a285-e4cc45036670.JPG",
"https://cs.copart.com/v1/AUTH_svc.pdoc00001/PIX145/1ef2b374-5245-458c-a540-11ed1ea81f9b.JPG",
}
} else if strings.Contains(c.Title, "JEEP") {
srcs = []string{
"https://cs.copart.com/v1/AUTH_svc.pdoc00001/PIX137/8c9d27d3-3642-499c-86de-0bee685e116e.JPG",
"https://cs.copart.com/v1/AUTH_svc.pdoc00001/PIX137/d7b160cc-c171-473d-851f-c92bf3a58ee6.JPG",
}
} else if strings.Contains(c.Title, "HONDA") {
srcs = []string{
"https://cs.copart.com/v1/AUTH_svc.pdoc00001/PIX133/c9504579-3f31-4278-b020-2b1b37867c82.JPG",
}
} else if strings.Contains(c.Title, "MAZDA 3") {
srcs = []string{
"https://cs.copart.com/v1/AUTH_svc.pdoc00001/PIX133/fbc946db-bb03-4624-b8d4-b7723722c0d5.JPG",
"https://cs.copart.com/v1/AUTH_svc.pdoc00001/PIX133/3892e997-ca0c-4270-86cb-94b98cdfd28e.JPG",
"https://cs.copart.com/v1/AUTH_svc.pdoc00001/PIX133/3bee196b-219f-4b6b-b8cf-9d2797ab5113.JPG",
}
}
for _, src := range srcs {
u, _ := url.Parse(src)
c.Images = append(c.Images, &auction.Image{Src: u})
}
log.Println(c)
if b, err := c.Encode(); err != nil {
panic(err)
} else if err := s.Set(c.String(), b); err != nil {
panic(err)
}
list = append(list, c.String())
}
if err := scn.Err(); err != nil {
panic(err)
}
b, _ := json.Marshal(list)
if err := s.Set("LIST", b); err != nil {
panic(err)
}
}

553
copart/testdata/log vendored Normal file
View File

@ -0,0 +1,553 @@
2019/06/14 13:44:33 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:32.100278808 -0600 MDT m=+549.472307556] == [bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:33.649979402 -0600 MDT m=+551.022008143])
2019/06/14 13:44:34 Blocking empty list...
2019/06/14 13:44:34 true = ([bid:$4,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:33.263653682 -0600 MDT m=+550.635682442] == [bid:$4,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:34.853057112 -0600 MDT m=+552.225085858])
2019/06/14 13:44:35 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:33.649979402 -0600 MDT m=+551.022008143] == [bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:35.209579405 -0600 MDT m=+552.581608152])
2019/06/14 13:44:35 Blocking empty list...
2019/06/14 13:44:36 Blocking empty list...
2019/06/14 13:44:36 true = ([bid:$4,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:34.853057112 -0600 MDT m=+552.225085858] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:36.442979544 -0600 MDT m=+553.815008292])
2019/06/14 13:44:36 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:35.209579405 -0600 MDT m=+552.581608152] == [bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:36.765530586 -0600 MDT m=+554.137559334])
2019/06/14 13:44:37 Blocking empty list...
2019/06/14 13:44:37 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:36.442979544 -0600 MDT m=+553.815008292] == [bid:$4,700 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:37.998799546 -0600 MDT m=+555.370828308])
2019/06/14 13:44:38 Blocking empty list...
2019/06/14 13:44:38 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:36.765530586 -0600 MDT m=+554.137559334] == [bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:38.309365279 -0600 MDT m=+555.681394016])
2019/06/14 13:44:39 Blocking empty list...
2019/06/14 13:44:39 true = ([bid:$4,700 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:37.998799546 -0600 MDT m=+555.370828308] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:39.632325485 -0600 MDT m=+557.004354235])
2019/06/14 13:44:39 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:38.309365279 -0600 MDT m=+555.681394016] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:39.876272196 -0600 MDT m=+557.248300968])
2019/06/14 13:44:40 Blocking empty list...
2019/06/14 13:44:41 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:39.632325485 -0600 MDT m=+557.004354235] == [bid:$4,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:41.210836371 -0600 MDT m=+558.582865114])
2019/06/14 13:44:41 Blocking empty list...
2019/06/14 13:44:41 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:39.876272196 -0600 MDT m=+557.248300968] == [bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:41.434892417 -0600 MDT m=+558.806921162])
2019/06/14 13:44:42 Blocking empty list...
2019/06/14 13:44:42 true = ([bid:$4,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:41.210836371 -0600 MDT m=+558.582865114] == [bid:$4,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:42.800903683 -0600 MDT m=+560.172932419])
2019/06/14 13:44:42 true = ([bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:41.434892417 -0600 MDT m=+558.806921162] == [bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:42.975489596 -0600 MDT m=+560.347518332])
2019/06/14 13:44:43 Blocking empty list...
2019/06/14 13:44:44 Blocking empty list...
2019/06/14 13:44:44 true = ([bid:$4,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:42.800903683 -0600 MDT m=+560.172932419] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:44.383681507 -0600 MDT m=+561.755710284])
2019/06/14 13:44:44 true = ([bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:42.975489596 -0600 MDT m=+560.347518332] == [bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:44.533291771 -0600 MDT m=+561.905320516])
2019/06/14 13:44:45 Blocking empty list...
2019/06/14 13:44:46 Blocking empty list...
2019/06/14 13:44:46 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:44.383681507 -0600 MDT m=+561.755710284] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:46.651673699 -0600 MDT m=+564.023702462])
2019/06/14 13:44:46 true = ([bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:44.533291771 -0600 MDT m=+561.905320516] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:46.71137253 -0600 MDT m=+564.083401292])
2019/06/14 13:44:47 Blocking empty list...
2019/06/14 13:44:48 Blocking empty list...
2019/06/14 13:44:49 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:46.651673699 -0600 MDT m=+564.023702462] == [bid:$5,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:49.04381699 -0600 MDT m=+566.415845754])
2019/06/14 13:44:49 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:46.71137253 -0600 MDT m=+564.083401292] == [bid:$800 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:49.075309089 -0600 MDT m=+566.447337833])
2019/06/14 13:44:49 Blocking empty list...
2019/06/14 13:44:50 Blocking empty list...
2019/06/14 13:44:50 true = ([bid:$5,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:49.04381699 -0600 MDT m=+566.415845754] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:50.626495561 -0600 MDT m=+567.998524315])
2019/06/14 13:44:50 true = ([bid:$800 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:49.075309089 -0600 MDT m=+566.447337833] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:50.637091128 -0600 MDT m=+568.009119874])
2019/06/14 13:44:51 Blocking empty list...
2019/06/14 13:44:52 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:50.637091128 -0600 MDT m=+568.009119874] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:52.201787818 -0600 MDT m=+569.573816555])
2019/06/14 13:44:52 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:50.626495561 -0600 MDT m=+567.998524315] == [bid:$5,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:52.210615356 -0600 MDT m=+569.582644106])
2019/06/14 13:44:52 Blocking empty list...
2019/06/14 13:44:53 Blocking empty list...
2019/06/14 13:44:53 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:52.201787818 -0600 MDT m=+569.573816555] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:53.785375027 -0600 MDT m=+571.157403770])
2019/06/14 13:44:53 true = ([bid:$5,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:52.210615356 -0600 MDT m=+569.582644106] == [bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:53.794478475 -0600 MDT m=+571.166507235])
2019/06/14 13:44:54 Blocking empty list...
2019/06/14 13:44:55 Blocking empty list...
2019/06/14 13:44:55 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:53.785375027 -0600 MDT m=+571.157403770] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:55.341663372 -0600 MDT m=+572.713692125])
2019/06/14 13:44:55 true = ([bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:53.794478475 -0600 MDT m=+571.166507235] == [bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:55.347619414 -0600 MDT m=+572.719648150])
2019/06/14 13:44:56 Blocking empty list...
2019/06/14 13:44:56 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:55.341663372 -0600 MDT m=+572.713692125] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:56.887273765 -0600 MDT m=+574.259302513])
2019/06/14 13:44:56 true = ([bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:55.347619414 -0600 MDT m=+572.719648150] == [bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:56.894005011 -0600 MDT m=+574.266033759])
2019/06/14 13:44:57 Blocking empty list...
2019/06/14 13:44:58 Blocking empty list...
2019/06/14 13:44:58 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:56.887273765 -0600 MDT m=+574.259302513] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:58.467862845 -0600 MDT m=+575.839891596])
2019/06/14 13:44:58 true = ([bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:56.894005011 -0600 MDT m=+574.266033759] == [bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:58.467875669 -0600 MDT m=+575.839904419])
2019/06/14 13:44:59 Blocking empty list...
2019/06/14 13:45:00 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:58.467862845 -0600 MDT m=+575.839891596] == [bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:00.029947727 -0600 MDT m=+577.401976473])
2019/06/14 13:45:00 true = ([bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:58.467875669 -0600 MDT m=+575.839904419] == [bid:$6,000 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:00.033625382 -0600 MDT m=+577.405654118])
2019/06/14 13:45:00 Blocking empty list...
2019/06/14 13:45:01 Blocking empty list...
2019/06/14 13:45:01 true = ([bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:00.029947727 -0600 MDT m=+577.401976473] == [bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:01.617679613 -0600 MDT m=+578.989708348])
2019/06/14 13:45:01 true = ([bid:$6,000 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:00.033625382 -0600 MDT m=+577.405654118] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:01.626412103 -0600 MDT m=+578.998440838])
2019/06/14 13:45:02 Blocking empty list...
2019/06/14 13:45:03 true = ([bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:01.617679613 -0600 MDT m=+578.989708348] == [bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:03.182911975 -0600 MDT m=+580.554940742])
2019/06/14 13:45:03 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:01.626412103 -0600 MDT m=+578.998440838] == [bid:$6,100 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:03.199787677 -0600 MDT m=+580.571816439])
2019/06/14 13:45:03 Blocking empty list...
2019/06/14 13:45:04 Blocking empty list...
2019/06/14 13:45:04 true = ([bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:03.182911975 -0600 MDT m=+580.554940742] == [bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:04.746031495 -0600 MDT m=+582.118060242])
2019/06/14 13:45:04 true = ([bid:$6,100 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:03.199787677 -0600 MDT m=+580.571816439] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:04.767179705 -0600 MDT m=+582.139208448])
2019/06/14 13:45:05 Blocking empty list...
2019/06/14 13:45:06 Blocking empty list...
2019/06/14 13:45:06 true = ([bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:04.746031495 -0600 MDT m=+582.118060242] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:06.310545892 -0600 MDT m=+583.682574636])
2019/06/14 13:45:06 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:04.767179705 -0600 MDT m=+582.139208448] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:06.335166826 -0600 MDT m=+583.707195567])
2019/06/14 13:45:07 Blocking empty list...
2019/06/14 13:45:07 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:06.310545892 -0600 MDT m=+583.682574636] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:07.883620143 -0600 MDT m=+585.255648901])
2019/06/14 13:45:07 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:06.335166826 -0600 MDT m=+583.707195567] == [bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:07.907584605 -0600 MDT m=+585.279613340])
2019/06/14 13:45:08 Blocking empty list...
2019/06/14 13:45:09 Blocking empty list...
2019/06/14 13:45:09 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:07.883620143 -0600 MDT m=+585.255648901] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:09.45518732 -0600 MDT m=+586.827216080])
2019/06/14 13:45:09 true = ([bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:07.907584605 -0600 MDT m=+585.279613340] == [bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:09.4663536 -0600 MDT m=+586.838382341])
2019/06/14 13:45:10 Blocking empty list...
2019/06/14 13:45:11 Blocking empty list...
2019/06/14 13:45:11 true = ([bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:09.4663536 -0600 MDT m=+586.838382341] == [bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:11.714388541 -0600 MDT m=+589.086417329])
2019/06/14 13:45:11 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:09.45518732 -0600 MDT m=+586.827216080] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:11.744893291 -0600 MDT m=+589.116922050])
2019/06/14 13:45:12 Blocking empty list...
2019/06/14 13:45:13 Blocking empty list...
2019/06/14 13:45:13 true = ([bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:11.714388541 -0600 MDT m=+589.086417329] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:13.45008916 -0600 MDT m=+590.822117920])
2019/06/14 13:45:13 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:11.744893291 -0600 MDT m=+589.116922050] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:13.467717253 -0600 MDT m=+590.839745995])
2019/06/14 13:45:14 Blocking empty list...
2019/06/14 13:45:15 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:13.45008916 -0600 MDT m=+590.822117920] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:15.028250727 -0600 MDT m=+592.400279501])
2019/06/14 13:45:15 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:13.467717253 -0600 MDT m=+590.839745995] == [bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:15.029365652 -0600 MDT m=+592.401394387])
2019/06/14 13:45:15 Blocking empty list...
2019/06/14 13:45:16 Blocking empty list...
2019/06/14 13:45:16 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:15.028250727 -0600 MDT m=+592.400279501] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:16.574778848 -0600 MDT m=+593.946807598])
2019/06/14 13:45:16 true = ([bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:15.029365652 -0600 MDT m=+592.401394387] == [bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:16.581757004 -0600 MDT m=+593.953785791])
2019/06/14 13:45:17 Blocking empty list...
2019/06/14 13:45:18 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:16.574778848 -0600 MDT m=+593.946807598] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:18.148148234 -0600 MDT m=+595.520177008])
2019/06/14 13:45:18 true = ([bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:16.581757004 -0600 MDT m=+593.953785791] == [bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:18.157707579 -0600 MDT m=+595.529736321])
2019/06/14 13:45:18 Blocking empty list...
2019/06/14 13:45:19 Blocking empty list...
2019/06/14 13:45:19 true = ([bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:18.157707579 -0600 MDT m=+595.529736321] == [bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:19.727213553 -0600 MDT m=+597.099242300])
2019/06/14 13:45:19 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:18.148148234 -0600 MDT m=+595.520177008] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:19.732192656 -0600 MDT m=+597.104221399])
2019/06/14 13:45:20 Blocking empty list...
2019/06/14 13:45:21 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:19.732192656 -0600 MDT m=+597.104221399] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:21.300980036 -0600 MDT m=+598.673008782])
2019/06/14 13:45:21 Blocking empty list...
2019/06/14 13:45:21 true = ([bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:19.727213553 -0600 MDT m=+597.099242300] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:21.307722352 -0600 MDT m=+598.679751090])
2019/06/14 13:45:22 Blocking empty list...
2019/06/14 13:45:23 Blocking empty list...
2019/06/14 13:45:23 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:21.300980036 -0600 MDT m=+598.673008782] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:23.379902263 -0600 MDT m=+600.751931031])
2019/06/14 13:45:23 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:21.307722352 -0600 MDT m=+598.679751090] == [bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:23.392826934 -0600 MDT m=+600.764855701])
2019/06/14 13:45:24 Blocking empty list...
2019/06/14 13:45:25 Blocking empty list...
2019/06/14 13:45:25 true = ([bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:23.392826934 -0600 MDT m=+600.764855701] == [bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:25.71438718 -0600 MDT m=+603.086415961])
2019/06/14 13:45:25 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:23.379902263 -0600 MDT m=+600.751931031] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:25.759869463 -0600 MDT m=+603.131898219])
2019/06/14 13:45:26 Blocking empty list...
2019/06/14 13:45:27 Blocking empty list...
2019/06/14 13:45:27 true = ([bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:25.71438718 -0600 MDT m=+603.086415961] == [bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:27.748442664 -0600 MDT m=+605.120471419])
2019/06/14 13:45:27 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:25.759869463 -0600 MDT m=+603.131898219] == [bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:27.762685583 -0600 MDT m=+605.134714377])
2019/06/14 13:45:28 Blocking empty list...
2019/06/14 13:45:29 Blocking empty list...
2019/06/14 13:45:29 true = ([bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:27.762685583 -0600 MDT m=+605.134714377] == [bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:29.693781661 -0600 MDT m=+607.065810420])
2019/06/14 13:45:29 true = ([bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:27.748442664 -0600 MDT m=+605.120471419] == [bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:29.7037451 -0600 MDT m=+607.075773851])
2019/06/14 13:45:30 Blocking empty list...
2019/06/14 13:45:31 Blocking empty list...
2019/06/14 13:45:31 true = ([bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:29.7037451 -0600 MDT m=+607.075773851] == [bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:31.581812917 -0600 MDT m=+608.953841681])
2019/06/14 13:45:31 true = ([bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:29.693781661 -0600 MDT m=+607.065810420] == [bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:31.603363109 -0600 MDT m=+608.975391926])
2019/06/14 13:45:32 Blocking empty list...
2019/06/14 13:45:33 true = ([bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:31.581812917 -0600 MDT m=+608.953841681] == [bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:33.129003954 -0600 MDT m=+610.501032706])
2019/06/14 13:45:33 true = ([bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:31.603363109 -0600 MDT m=+608.975391926] == [bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:33.154188308 -0600 MDT m=+610.526217074])
2019/06/14 13:45:33 Blocking empty list...
2019/06/14 13:45:34 Blocking empty list...
2019/06/14 13:45:34 true = ([bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:33.129003954 -0600 MDT m=+610.501032706] == [bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:34.698293537 -0600 MDT m=+612.070322308])
2019/06/14 13:45:34 true = ([bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:33.154188308 -0600 MDT m=+610.526217074] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:34.740571037 -0600 MDT m=+612.112599799])
2019/06/14 13:45:35 Blocking empty list...
2019/06/14 13:45:36 Blocking empty list...
2019/06/14 13:45:36 true = ([bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:34.698293537 -0600 MDT m=+612.070322308] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:36.670375341 -0600 MDT m=+614.042404108])
2019/06/14 13:45:36 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:34.740571037 -0600 MDT m=+612.112599799] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:36.714017157 -0600 MDT m=+614.086045966])
2019/06/14 13:45:37 Blocking empty list...
2019/06/14 13:45:38 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:36.670375341 -0600 MDT m=+614.042404108] == [bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:38.247777676 -0600 MDT m=+615.619806410])
2019/06/14 13:45:38 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:36.714017157 -0600 MDT m=+614.086045966] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:38.270868543 -0600 MDT m=+615.642897295])
2019/06/14 13:45:38 Blocking empty list...
2019/06/14 13:45:39 Blocking empty list...
2019/06/14 13:45:39 true = ([bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:38.247777676 -0600 MDT m=+615.619806410] == [bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:39.820522402 -0600 MDT m=+617.192551139])
2019/06/14 13:45:39 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:38.270868543 -0600 MDT m=+615.642897295] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:39.840696355 -0600 MDT m=+617.212725106])
2019/06/14 13:45:40 Blocking empty list...
2019/06/14 13:45:41 Blocking empty list...
2019/06/14 13:45:41 true = ([bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:39.820522402 -0600 MDT m=+617.192551139] == [bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:41.865548025 -0600 MDT m=+619.237576784])
2019/06/14 13:45:41 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:39.840696355 -0600 MDT m=+617.212725106] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:41.87975323 -0600 MDT m=+619.251782000])
2019/06/14 13:45:42 Blocking empty list...
2019/06/14 13:45:43 Blocking empty list...
2019/06/14 13:45:44 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:41.87975323 -0600 MDT m=+619.251782000] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:44.12899537 -0600 MDT m=+621.501024149])
2019/06/14 13:45:44 true = ([bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:41.865548025 -0600 MDT m=+619.237576784] == [bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:44.160166521 -0600 MDT m=+621.532195282])
2019/06/14 13:45:44 Blocking empty list...
2019/06/14 13:45:45 Blocking empty list...
2019/06/14 13:45:45 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:44.12899537 -0600 MDT m=+621.501024149] == [bid:Next Item on title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:45.698231339 -0600 MDT m=+623.070260115])
2019/06/14 13:45:45 true = ([bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:44.160166521 -0600 MDT m=+621.532195282] == [bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:45.730591096 -0600 MDT m=+623.102619832])
2019/06/14 13:45:46 Blocking empty list...
2019/06/14 13:45:47 true = ([bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:45.730591096 -0600 MDT m=+623.102619832] == [bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:47.300433357 -0600 MDT m=+624.672462125])
2019/06/14 13:45:47 Blocking empty list...
2019/06/14 13:45:47 DETAIL 8 6
2019/06/14 13:45:47 false = ([bid:Next Item on title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:45.698231339 -0600 MDT m=+623.070260115] == [bid:$950 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:47.326540361 -0600 MDT m=+624.698569101])
2019/06/14 13:45:47 DETAIL 8 6
2019/06/14 13:45:47 TOP
2019/06/14 13:45:47 C [bid:$950 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:47.970680447 -0600 MDT m=+625.342709201]
2019/06/14 13:45:48 Blocking empty list...
2019/06/14 13:45:48 true = ([bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:47.300433357 -0600 MDT m=+624.672462125] == [bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:48.875565095 -0600 MDT m=+626.247593841])
2019/06/14 13:45:49 Blocking empty list...
2019/06/14 13:45:49 true = ([bid:$950 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:47.970680447 -0600 MDT m=+625.342709201] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:49.530146108 -0600 MDT m=+626.902174848])
2019/06/14 13:45:50 Blocking empty list...
2019/06/14 13:45:50 true = ([bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:48.875565095 -0600 MDT m=+626.247593841] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:50.441141654 -0600 MDT m=+627.813170424])
2019/06/14 13:45:51 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:49.530146108 -0600 MDT m=+626.902174848] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:51.092703578 -0600 MDT m=+628.464732312])
2019/06/14 13:45:51 Blocking empty list...
2019/06/14 13:45:52 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:50.441141654 -0600 MDT m=+627.813170424] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:52.014105523 -0600 MDT m=+629.386134268])
2019/06/14 13:45:52 Blocking empty list...
2019/06/14 13:45:52 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:51.092703578 -0600 MDT m=+628.464732312] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:52.666563883 -0600 MDT m=+630.038592628])
2019/06/14 13:45:53 Blocking empty list...
2019/06/14 13:45:53 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:52.014105523 -0600 MDT m=+629.386134268] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:53.557551959 -0600 MDT m=+630.929580695])
2019/06/14 13:45:54 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:52.666563883 -0600 MDT m=+630.038592628] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:54.239611178 -0600 MDT m=+631.611639922])
2019/06/14 13:45:54 Blocking empty list...
2019/06/14 13:45:55 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:53.557551959 -0600 MDT m=+630.929580695] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:55.114075035 -0600 MDT m=+632.486103788])
2019/06/14 13:45:55 Blocking empty list...
2019/06/14 13:45:55 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:54.239611178 -0600 MDT m=+631.611639922] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:55.804221548 -0600 MDT m=+633.176250310])
2019/06/14 13:45:56 Blocking empty list...
2019/06/14 13:45:56 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:55.114075035 -0600 MDT m=+632.486103788] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:56.706568281 -0600 MDT m=+634.078597042])
2019/06/14 13:45:57 Blocking empty list...
2019/06/14 13:45:57 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:55.804221548 -0600 MDT m=+633.176250310] == [bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:57.361048223 -0600 MDT m=+634.733076974])
2019/06/14 13:45:58 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:56.706568281 -0600 MDT m=+634.078597042] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:58.261410026 -0600 MDT m=+635.633438778])
2019/06/14 13:45:58 Blocking empty list...
2019/06/14 13:45:58 true = ([bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:57.361048223 -0600 MDT m=+634.733076974] == [bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:58.912388766 -0600 MDT m=+636.284417514])
2019/06/14 13:45:59 Blocking empty list...
2019/06/14 13:45:59 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:58.261410026 -0600 MDT m=+635.633438778] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:59.82282752 -0600 MDT m=+637.194856272])
2019/06/14 13:46:00 Blocking empty list...
2019/06/14 13:46:00 true = ([bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:58.912388766 -0600 MDT m=+636.284417514] == [bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:00.465703716 -0600 MDT m=+637.837732454])
2019/06/14 13:46:01 Blocking empty list...
2019/06/14 13:46:01 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:59.82282752 -0600 MDT m=+637.194856272] == [bid:Bonus title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:01.397741474 -0600 MDT m=+638.769770221])
2019/06/14 13:46:02 true = ([bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:00.465703716 -0600 MDT m=+637.837732454] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:02.023624181 -0600 MDT m=+639.395652927])
2019/06/14 13:46:02 Blocking empty list...
2019/06/14 13:46:03 true = ([bid:Bonus title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:01.397741474 -0600 MDT m=+638.769770221] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:03.006045999 -0600 MDT m=+640.378074735])
2019/06/14 13:46:03 Blocking empty list...
2019/06/14 13:46:03 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:02.023624181 -0600 MDT m=+639.395652927] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:03.58135933 -0600 MDT m=+640.953388064])
2019/06/14 13:46:04 Blocking empty list...
2019/06/14 13:46:04 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:03.006045999 -0600 MDT m=+640.378074735] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:04.578964932 -0600 MDT m=+641.950993680])
2019/06/14 13:46:05 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:03.58135933 -0600 MDT m=+640.953388064] == [bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:05.140126563 -0600 MDT m=+642.512155309])
2019/06/14 13:46:05 Blocking empty list...
2019/06/14 13:46:06 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:04.578964932 -0600 MDT m=+641.950993680] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:06.178025052 -0600 MDT m=+643.550053786])
2019/06/14 13:46:06 Blocking empty list...
2019/06/14 13:46:06 true = ([bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:05.140126563 -0600 MDT m=+642.512155309] == [bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:06.697389814 -0600 MDT m=+644.069418561])
2019/06/14 13:46:07 Blocking empty list...
2019/06/14 13:46:07 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:06.178025052 -0600 MDT m=+643.550053786] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:07.780702876 -0600 MDT m=+645.152731610])
2019/06/14 13:46:08 true = ([bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:06.697389814 -0600 MDT m=+644.069418561] == [bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:08.248101491 -0600 MDT m=+645.620130237])
2019/06/14 13:46:08 Blocking empty list...
2019/06/14 13:46:09 Blocking empty list...
2019/06/14 13:46:09 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:07.780702876 -0600 MDT m=+645.152731610] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:09.386820437 -0600 MDT m=+646.758849193])
2019/06/14 13:46:09 true = ([bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:08.248101491 -0600 MDT m=+645.620130237] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:09.818455714 -0600 MDT m=+647.190484458])
2019/06/14 13:46:10 Blocking empty list...
2019/06/14 13:46:10 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:09.386820437 -0600 MDT m=+646.758849193] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:10.971483398 -0600 MDT m=+648.343512143])
2019/06/14 13:46:11 Blocking empty list...
2019/06/14 13:46:11 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:09.818455714 -0600 MDT m=+647.190484458] == [bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:11.378239494 -0600 MDT m=+648.750268245])
2019/06/14 13:46:12 Blocking empty list...
2019/06/14 13:46:12 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:10.971483398 -0600 MDT m=+648.343512143] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:12.537834103 -0600 MDT m=+649.909862840])
2019/06/14 13:46:12 true = ([bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:11.378239494 -0600 MDT m=+648.750268245] == [bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:12.921818006 -0600 MDT m=+650.293846777])
2019/06/14 13:46:13 Blocking empty list...
2019/06/14 13:46:14 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:12.537834103 -0600 MDT m=+649.909862840] == [bid:Next Item on title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:14.115315236 -0600 MDT m=+651.487343970])
2019/06/14 13:46:14 Blocking empty list...
2019/06/14 13:46:14 true = ([bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:12.921818006 -0600 MDT m=+650.293846777] == [bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:14.471067849 -0600 MDT m=+651.843096596])
2019/06/14 13:46:15 Blocking empty list...
2019/06/14 13:46:15 DETAIL FRONT END REAR END
2019/06/14 13:46:15 false = ([bid:Next Item on title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:14.115315236 -0600 MDT m=+651.487343970] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:15.765589239 -0600 MDT m=+653.137617986])
2019/06/14 13:46:15 DETAIL SIDE N/A
2019/06/14 13:46:15 TOP
2019/06/14 13:46:16 true = ([bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:14.471067849 -0600 MDT m=+651.843096596] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:16.02007468 -0600 MDT m=+653.392103448])
2019/06/14 13:46:16 Blocking empty list...
2019/06/14 13:46:16 C [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:16.390025771 -0600 MDT m=+653.762054512]
2019/06/14 13:46:17 Blocking empty list...
2019/06/14 13:46:17 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:16.02007468 -0600 MDT m=+653.392103448] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:17.651753355 -0600 MDT m=+655.023782106])
2019/06/14 13:46:17 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:16.390025771 -0600 MDT m=+653.762054512] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:17.945675122 -0600 MDT m=+655.317703865])
2019/06/14 13:46:18 Blocking empty list...
2019/06/14 13:46:19 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:17.651753355 -0600 MDT m=+655.023782106] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:19.255879024 -0600 MDT m=+656.627907787])
2019/06/14 13:46:19 Blocking empty list...
2019/06/14 13:46:19 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:17.945675122 -0600 MDT m=+655.317703865] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:19.503173988 -0600 MDT m=+656.875202744])
2019/06/14 13:46:20 Blocking empty list...
2019/06/14 13:46:20 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:19.255879024 -0600 MDT m=+656.627907787] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:20.879860426 -0600 MDT m=+658.251889173])
2019/06/14 13:46:21 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:19.503173988 -0600 MDT m=+656.875202744] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:21.074419533 -0600 MDT m=+658.446448280])
2019/06/14 13:46:21 Blocking empty list...
2019/06/14 13:46:22 Blocking empty list...
2019/06/14 13:46:22 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:20.879860426 -0600 MDT m=+658.251889173] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:22.472975892 -0600 MDT m=+659.845004657])
2019/06/14 13:46:22 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:21.074419533 -0600 MDT m=+658.446448280] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:22.638350764 -0600 MDT m=+660.010379508])
2019/06/14 13:46:23 Blocking empty list...
2019/06/14 13:46:24 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:22.472975892 -0600 MDT m=+659.845004657] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:24.039286396 -0600 MDT m=+661.411315153])
2019/06/14 13:46:24 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:22.638350764 -0600 MDT m=+660.010379508] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:24.210076006 -0600 MDT m=+661.582104749])
2019/06/14 13:46:24 Blocking empty list...
2019/06/14 13:46:25 Blocking empty list...
2019/06/14 13:46:25 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:24.039286396 -0600 MDT m=+661.411315153] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:25.623141495 -0600 MDT m=+662.995170232])
2019/06/14 13:46:25 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:24.210076006 -0600 MDT m=+661.582104749] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:25.77105872 -0600 MDT m=+663.143087460])
2019/06/14 13:46:26 Blocking empty list...
2019/06/14 13:46:27 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:25.623141495 -0600 MDT m=+662.995170232] == [bid:Bonus title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:27.217110188 -0600 MDT m=+664.589138960])
2019/06/14 13:46:27 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:25.77105872 -0600 MDT m=+663.143087460] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:27.316556146 -0600 MDT m=+664.688584889])
2019/06/14 13:46:27 Blocking empty list...
2019/06/14 13:46:28 Blocking empty list...
2019/06/14 13:46:28 true = ([bid:Bonus title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:27.217110188 -0600 MDT m=+664.589138960] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:28.804421116 -0600 MDT m=+666.176449864])
2019/06/14 13:46:28 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:27.316556146 -0600 MDT m=+664.688584889] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:28.874885439 -0600 MDT m=+666.246914183])
2019/06/14 13:46:29 Blocking empty list...
2019/06/14 13:46:30 Blocking empty list...
2019/06/14 13:46:30 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:28.804421116 -0600 MDT m=+666.176449864] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:30.378302778 -0600 MDT m=+667.750331525])
2019/06/14 13:46:30 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:28.874885439 -0600 MDT m=+666.246914183] == [bid:Bonus title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:30.430949455 -0600 MDT m=+667.802978198])
2019/06/14 13:46:31 Blocking empty list...
2019/06/14 13:46:31 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:30.378302778 -0600 MDT m=+667.750331525] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:31.953632384 -0600 MDT m=+669.325661131])
2019/06/14 13:46:31 true = ([bid:Bonus title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:30.430949455 -0600 MDT m=+667.802978198] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:31.996367484 -0600 MDT m=+669.368396221])
2019/06/14 13:46:32 Blocking empty list...
2019/06/14 13:46:33 Blocking empty list...
2019/06/14 13:46:33 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:31.953632384 -0600 MDT m=+669.325661131] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:33.521086939 -0600 MDT m=+670.893115677])
2019/06/14 13:46:33 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:31.996367484 -0600 MDT m=+669.368396221] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:33.571119989 -0600 MDT m=+670.943148735])
2019/06/14 13:46:34 Blocking empty list...
2019/06/14 13:46:35 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:33.521086939 -0600 MDT m=+670.893115677] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:35.111873847 -0600 MDT m=+672.483902604])
2019/06/14 13:46:35 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:33.571119989 -0600 MDT m=+670.943148735] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:35.140044919 -0600 MDT m=+672.512073682])
2019/06/14 13:46:35 Blocking empty list...
2019/06/14 13:46:36 Blocking empty list...
2019/06/14 13:46:36 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:35.111873847 -0600 MDT m=+672.483902604] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:36.691188678 -0600 MDT m=+674.063217431])
2019/06/14 13:46:36 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:35.140044919 -0600 MDT m=+672.512073682] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:36.72922032 -0600 MDT m=+674.101249074])
2019/06/14 13:46:37 Blocking empty list...
2019/06/14 13:46:38 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:36.691188678 -0600 MDT m=+674.063217431] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:38.271432569 -0600 MDT m=+675.643461305])
2019/06/14 13:46:38 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:36.72922032 -0600 MDT m=+674.101249074] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:38.298540491 -0600 MDT m=+675.670569229])
2019/06/14 13:46:38 Blocking empty list...
2019/06/14 13:46:39 Blocking empty list...
2019/06/14 13:46:39 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:38.271432569 -0600 MDT m=+675.643461305] == [bid:Next Item on title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:39.854917796 -0600 MDT m=+677.226946542])
2019/06/14 13:46:39 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:38.298540491 -0600 MDT m=+675.670569229] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:39.86269596 -0600 MDT m=+677.234724702])
2019/06/14 13:46:40 Blocking empty list...
2019/06/14 13:46:41 Blocking empty list...
2019/06/14 13:46:41 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:39.86269596 -0600 MDT m=+677.234724702] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:41.421462137 -0600 MDT m=+678.793490880])
2019/06/14 13:46:41 DETAIL 2.0L 4 4.8L 8
2019/06/14 13:46:41 false = ([bid:Next Item on title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:39.854917796 -0600 MDT m=+677.226946542] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:41.444806466 -0600 MDT m=+678.816835202])
2019/06/14 13:46:41 DETAIL $2,316 $5,782
2019/06/14 13:46:41 TOP
2019/06/14 13:46:42 C [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:42.058019248 -0600 MDT m=+679.430047994]
2019/06/14 13:46:42 Blocking empty list...
2019/06/14 13:46:42 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:41.421462137 -0600 MDT m=+678.793490880] == [bid:Sold on title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:42.978837839 -0600 MDT m=+680.350866588])
2019/06/14 13:46:43 Blocking empty list...
2019/06/14 13:46:43 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:42.058019248 -0600 MDT m=+679.430047994] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:43.652922025 -0600 MDT m=+681.024950771])
2019/06/14 13:46:44 stale element reference: stale element reference: element is not attached to the page document
(Session info: chrome=75.0.3770.80)
2019/06/14 13:46:44 Blocking empty list...
2019/06/14 13:46:45 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:43.652922025 -0600 MDT m=+681.024950771] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:45.212745952 -0600 MDT m=+682.584774692])
2019/06/14 13:46:45 Blocking empty list...
2019/06/14 13:46:46 Blocking empty list...
2019/06/14 13:46:46 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:45.212745952 -0600 MDT m=+682.584774692] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:46.779907351 -0600 MDT m=+684.151936105])
2019/06/14 13:46:47 Blocking empty list...
2019/06/14 13:46:48 Blocking empty list...
2019/06/14 13:46:48 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:46.779907351 -0600 MDT m=+684.151936105] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:48.37493185 -0600 MDT m=+685.746960593])
2019/06/14 13:46:49 Blocking empty list...
2019/06/14 13:46:50 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:48.37493185 -0600 MDT m=+685.746960593] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:50.006089325 -0600 MDT m=+687.378118062])
2019/06/14 13:46:50 Blocking empty list...
2019/06/14 13:46:51 Blocking empty list...
2019/06/14 13:46:51 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:50.006089325 -0600 MDT m=+687.378118062] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:51.571964801 -0600 MDT m=+688.943993546])
2019/06/14 13:46:52 Blocking empty list...
2019/06/14 13:46:53 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:51.571964801 -0600 MDT m=+688.943993546] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:53.168928243 -0600 MDT m=+690.540956989])
2019/06/14 13:46:53 Blocking empty list...
2019/06/14 13:46:54 Blocking empty list...
2019/06/14 13:46:54 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:53.168928243 -0600 MDT m=+690.540956989] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:54.746981537 -0600 MDT m=+692.119010284])
2019/06/14 13:46:55 Blocking empty list...
2019/06/14 13:46:56 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:54.746981537 -0600 MDT m=+692.119010284] == [bid:Sold! title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:56.312143023 -0600 MDT m=+693.684171758])
2019/06/14 13:46:56 Blocking empty list...
2019/06/14 13:46:57 Blocking empty list...
2019/06/14 13:46:57 DETAIL 107,847 - Actual 157,979 - Exempt
2019/06/14 13:46:57 false = ([bid:Sold! title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:56.312143023 -0600 MDT m=+693.684171758] == [bid:Next Item on title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:57.92401858 -0600 MDT m=+695.296047330])
2019/06/14 13:46:57 DETAIL 107,847 - Actual 157,979 - Exempt
2019/06/14 13:46:58 TOP
2019/06/14 13:46:58 Blocking empty list...
2019/06/14 13:46:58 C [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:46:58.636284949 -0600 MDT m=+696.008313695]
2019/06/14 13:46:59 Blocking empty list...
2019/06/14 13:47:00 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:46:58.636284949 -0600 MDT m=+696.008313695] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:00.228379187 -0600 MDT m=+697.600407934])
2019/06/14 13:47:00 Blocking empty list...
2019/06/14 13:47:01 Blocking empty list...
2019/06/14 13:47:01 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:00.228379187 -0600 MDT m=+697.600407934] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:01.828705581 -0600 MDT m=+699.200734322])
2019/06/14 13:47:02 Blocking empty list...
2019/06/14 13:47:03 Blocking empty list...
2019/06/14 13:47:03 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:01.828705581 -0600 MDT m=+699.200734322] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:03.404720678 -0600 MDT m=+700.776749424])
2019/06/14 13:47:04 Blocking empty list...
2019/06/14 13:47:04 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:03.404720678 -0600 MDT m=+700.776749424] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:04.995027354 -0600 MDT m=+702.367056092])
2019/06/14 13:47:05 Blocking empty list...
2019/06/14 13:47:06 Blocking empty list...
2019/06/14 13:47:06 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:04.995027354 -0600 MDT m=+702.367056092] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:06.553799294 -0600 MDT m=+703.925828028])
2019/06/14 13:47:07 Blocking empty list...
2019/06/14 13:47:08 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:06.553799294 -0600 MDT m=+703.925828028] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:08.135736901 -0600 MDT m=+705.507765668])
2019/06/14 13:47:08 Blocking empty list...
2019/06/14 13:47:09 Blocking empty list...
2019/06/14 13:47:09 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:08.135736901 -0600 MDT m=+705.507765668] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:09.740053433 -0600 MDT m=+707.112082171])
2019/06/14 13:47:10 Blocking empty list...
2019/06/14 13:47:11 Blocking empty list...
2019/06/14 13:47:11 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:09.740053433 -0600 MDT m=+707.112082171] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:11.355342645 -0600 MDT m=+708.727371404])
2019/06/14 13:47:12 Blocking empty list...
2019/06/14 13:47:12 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:11.355342645 -0600 MDT m=+708.727371404] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:12.953509692 -0600 MDT m=+710.325538426])
2019/06/14 13:47:13 Blocking empty list...
2019/06/14 13:47:14 Blocking empty list...
2019/06/14 13:47:14 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:12.953509692 -0600 MDT m=+710.325538426] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:14.544215968 -0600 MDT m=+711.916244711])
2019/06/14 13:47:15 Blocking empty list...
2019/06/14 13:47:16 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:14.544215968 -0600 MDT m=+711.916244711] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:16.111428829 -0600 MDT m=+713.483457570])
2019/06/14 13:47:16 Blocking empty list...
2019/06/14 13:47:17 Blocking empty list...
2019/06/14 13:47:17 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:16.111428829 -0600 MDT m=+713.483457570] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:17.744188889 -0600 MDT m=+715.116217639])
2019/06/14 13:47:18 Blocking empty list...
2019/06/14 13:47:19 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:17.744188889 -0600 MDT m=+715.116217639] == [bid:Next Item on title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:19.31997218 -0600 MDT m=+716.692000915])
2019/06/14 13:47:19 Blocking empty list...
2019/06/14 13:47:20 Blocking empty list...
2019/06/14 13:47:20 DETAIL $24,039 $7,664
2019/06/14 13:47:20 false = ([bid:Next Item on title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:19.31997218 -0600 MDT m=+716.692000915] == [bid:$7,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:20.975960694 -0600 MDT m=+718.347989437])
2019/06/14 13:47:20 DETAIL BLACK BLUE
2019/06/14 13:47:21 TOP
2019/06/14 13:47:21 Blocking empty list...
2019/06/14 13:47:21 C [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:21.632839693 -0600 MDT m=+719.004868430]
2019/06/14 13:47:22 Blocking empty list...
2019/06/14 13:47:23 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:21.632839693 -0600 MDT m=+719.004868430] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:23.246285645 -0600 MDT m=+720.618314400])
2019/06/14 13:47:23 Blocking empty list...
2019/06/14 13:47:24 Blocking empty list...
2019/06/14 13:47:24 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:23.246285645 -0600 MDT m=+720.618314400] == [bid:$8,000 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:24.857513644 -0600 MDT m=+722.229542387])
2019/06/14 13:47:25 Blocking empty list...
2019/06/14 13:47:26 Blocking empty list...
2019/06/14 13:47:26 true = ([bid:$8,000 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:24.857513644 -0600 MDT m=+722.229542387] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:26.442221476 -0600 MDT m=+723.814250212])
2019/06/14 13:47:27 Blocking empty list...
2019/06/14 13:47:27 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:26.442221476 -0600 MDT m=+723.814250212] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:27.9990393 -0600 MDT m=+725.371068068])
2019/06/14 13:47:28 Blocking empty list...
2019/06/14 13:47:29 Blocking empty list...
2019/06/14 13:47:29 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:27.9990393 -0600 MDT m=+725.371068068] == [bid:$8,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:29.61021549 -0600 MDT m=+726.982244236])
2019/06/14 13:47:30 Blocking empty list...
2019/06/14 13:47:31 true = ([bid:$8,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:29.61021549 -0600 MDT m=+726.982244236] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:31.217544509 -0600 MDT m=+728.589573280])
2019/06/14 13:47:31 Blocking empty list...
2019/06/14 13:47:32 Blocking empty list...
2019/06/14 13:47:32 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:31.217544509 -0600 MDT m=+728.589573280] == [bid:$8,400 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:32.789748968 -0600 MDT m=+730.161777737])
2019/06/14 13:47:33 Blocking empty list...
2019/06/14 13:47:34 Blocking empty list...
2019/06/14 13:47:34 true = ([bid:$8,400 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:32.789748968 -0600 MDT m=+730.161777737] == [bid:$8,400 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:34.359088515 -0600 MDT m=+731.731117253])
2019/06/14 13:47:35 Blocking empty list...
2019/06/14 13:47:36 Blocking empty list...
2019/06/14 13:47:36 true = ([bid:$8,400 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:34.359088515 -0600 MDT m=+731.731117253] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:36.560628194 -0600 MDT m=+733.932656950])
2019/06/14 13:47:37 Blocking empty list...
2019/06/14 13:47:38 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:36.560628194 -0600 MDT m=+733.932656950] == [bid:$8,600 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:38.175551491 -0600 MDT m=+735.547580230])
2019/06/14 13:47:38 Blocking empty list...
2019/06/14 13:47:39 Blocking empty list...
2019/06/14 13:47:39 true = ([bid:$8,600 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:38.175551491 -0600 MDT m=+735.547580230] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:39.73534806 -0600 MDT m=+737.107376830])
2019/06/14 13:47:40 Blocking empty list...
2019/06/14 13:47:41 Blocking empty list...
2019/06/14 13:47:41 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:39.73534806 -0600 MDT m=+737.107376830] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:41.333835964 -0600 MDT m=+738.705864712])
2019/06/14 13:47:42 Blocking empty list...
2019/06/14 13:47:42 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:41.333835964 -0600 MDT m=+738.705864712] == [bid:$8,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:42.926327488 -0600 MDT m=+740.298356250])
2019/06/14 13:47:43 Blocking empty list...
2019/06/14 13:47:44 Blocking empty list...
2019/06/14 13:47:44 true = ([bid:$8,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:42.926327488 -0600 MDT m=+740.298356250] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:44.493785479 -0600 MDT m=+741.865814216])
2019/06/14 13:47:45 Blocking empty list...
2019/06/14 13:47:46 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:44.493785479 -0600 MDT m=+741.865814216] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:46.092736556 -0600 MDT m=+743.464765324])
2019/06/14 13:47:46 Blocking empty list...
2019/06/14 13:47:47 Blocking empty list...
2019/06/14 13:47:47 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:46.092736556 -0600 MDT m=+743.464765324] == [bid:$9,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:47.67597531 -0600 MDT m=+745.048004045])
2019/06/14 13:47:48 Blocking empty list...
2019/06/14 13:47:49 true = ([bid:$9,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:47.67597531 -0600 MDT m=+745.048004045] == [bid:$9,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:49.283213406 -0600 MDT m=+746.655242158])
2019/06/14 13:47:49 Blocking empty list...
2019/06/14 13:47:50 Blocking empty list...
2019/06/14 13:47:50 true = ([bid:$9,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:49.283213406 -0600 MDT m=+746.655242158] == [bid:$9,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:50.867335397 -0600 MDT m=+748.239364160])
2019/06/14 13:47:51 Blocking empty list...
2019/06/14 13:47:52 Blocking empty list...
2019/06/14 13:47:52 true = ([bid:$9,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:50.867335397 -0600 MDT m=+748.239364160] == [bid:$9,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:52.436153467 -0600 MDT m=+749.808182224])
2019/06/14 13:47:53 Blocking empty list...
2019/06/14 13:47:54 true = ([bid:$9,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:52.436153467 -0600 MDT m=+749.808182224] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:54.03762827 -0600 MDT m=+751.409657021])
2019/06/14 13:47:54 Blocking empty list...
2019/06/14 13:47:55 Blocking empty list...
2019/06/14 13:47:55 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:54.03762827 -0600 MDT m=+751.409657021] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:55.599953643 -0600 MDT m=+752.971982388])
2019/06/14 13:47:56 Blocking empty list...
2019/06/14 13:47:57 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:55.599953643 -0600 MDT m=+752.971982388] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:57.206392983 -0600 MDT m=+754.578421720])
2019/06/14 13:47:57 Blocking empty list...
2019/06/14 13:47:58 Blocking empty list...
2019/06/14 13:47:58 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:57.206392983 -0600 MDT m=+754.578421720] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:58.788865612 -0600 MDT m=+756.160894358])
2019/06/14 13:47:59 Blocking empty list...
2019/06/14 13:48:00 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:58.788865612 -0600 MDT m=+756.160894358] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:00.334639215 -0600 MDT m=+757.706667963])
2019/06/14 13:48:00 Blocking empty list...
2019/06/14 13:48:01 Blocking empty list...
2019/06/14 13:48:01 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:00.334639215 -0600 MDT m=+757.706667963] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:01.910710068 -0600 MDT m=+759.282738803])
2019/06/14 13:48:02 Blocking empty list...
2019/06/14 13:48:03 Blocking empty list...
2019/06/14 13:48:03 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:01.910710068 -0600 MDT m=+759.282738803] == [bid:$9,600 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:03.504547263 -0600 MDT m=+760.876576007])
2019/06/14 13:48:04 Blocking empty list...
2019/06/14 13:48:05 true = ([bid:$9,600 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:03.504547263 -0600 MDT m=+760.876576007] == [bid:$9,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:05.075648795 -0600 MDT m=+762.447677531])
2019/06/14 13:48:05 Blocking empty list...
2019/06/14 13:48:06 Blocking empty list...
2019/06/14 13:48:06 true = ([bid:$9,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:05.075648795 -0600 MDT m=+762.447677531] == [bid:$9,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:06.677601587 -0600 MDT m=+764.049630333])
2019/06/14 13:48:07 Blocking empty list...
2019/06/14 13:48:08 true = ([bid:$9,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:06.677601587 -0600 MDT m=+764.049630333] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:08.243314838 -0600 MDT m=+765.615343582])
2019/06/14 13:48:08 Blocking empty list...
2019/06/14 13:48:09 Blocking empty list...
2019/06/14 13:48:09 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:08.243314838 -0600 MDT m=+765.615343582] == [bid:$9,800 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:09.816861858 -0600 MDT m=+767.188890627])
2019/06/14 13:48:10 Blocking empty list...
2019/06/14 13:48:11 Blocking empty list...
2019/06/14 13:48:11 true = ([bid:$9,800 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:09.816861858 -0600 MDT m=+767.188890627] == [bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:11.401970852 -0600 MDT m=+768.773999592])
2019/06/14 13:48:12 Blocking empty list...
2019/06/14 13:48:13 Blocking empty list...
2019/06/14 13:48:13 true = ([bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:11.401970852 -0600 MDT m=+768.773999592] == [bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:13.385943303 -0600 MDT m=+770.757972044])
2019/06/14 13:48:14 Blocking empty list...
2019/06/14 13:48:15 true = ([bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:13.385943303 -0600 MDT m=+770.757972044] == [bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:15.010900934 -0600 MDT m=+772.382929685])
2019/06/14 13:48:15 Blocking empty list...
2019/06/14 13:48:16 Blocking empty list...
2019/06/14 13:48:16 true = ([bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:15.010900934 -0600 MDT m=+772.382929685] == [bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:16.582646794 -0600 MDT m=+773.954675536])
2019/06/14 13:48:17 Blocking empty list...
2019/06/14 13:48:18 true = ([bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:16.582646794 -0600 MDT m=+773.954675536] == [bid:$10,000 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:18.158918859 -0600 MDT m=+775.530947603])
2019/06/14 13:48:18 Blocking empty list...
2019/06/14 13:48:19 Blocking empty list...
2019/06/14 13:48:19 true = ([bid:$10,000 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:18.158918859 -0600 MDT m=+775.530947603] == [bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:19.762418285 -0600 MDT m=+777.134447038])
2019/06/14 13:48:20 Blocking empty list...
2019/06/14 13:48:21 Blocking empty list...
2019/06/14 13:48:21 true = ([bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:19.762418285 -0600 MDT m=+777.134447038] == [bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:21.358132544 -0600 MDT m=+778.730161288])
2019/06/14 13:48:22 Blocking empty list...
2019/06/14 13:48:22 true = ([bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:21.358132544 -0600 MDT m=+778.730161288] == [bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:22.960404858 -0600 MDT m=+780.332433601])
2019/06/14 13:48:23 Blocking empty list...
2019/06/14 13:48:24 Blocking empty list...
2019/06/14 13:48:24 true = ([bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:22.960404858 -0600 MDT m=+780.332433601] == [bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:24.549422086 -0600 MDT m=+781.921450823])
2019/06/14 13:48:25 Blocking empty list...
2019/06/14 13:48:26 true = ([bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:24.549422086 -0600 MDT m=+781.921450823] == [bid:$10,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:26.125843233 -0600 MDT m=+783.497871975])
2019/06/14 13:48:26 Blocking empty list...
2019/06/14 13:48:27 Blocking empty list...
2019/06/14 13:48:27 true = ([bid:$10,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:26.125843233 -0600 MDT m=+783.497871975] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:27.690221589 -0600 MDT m=+785.062250326])
2019/06/14 13:48:28 Blocking empty list...
2019/06/14 13:48:29 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:27.690221589 -0600 MDT m=+785.062250326] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:29.264012162 -0600 MDT m=+786.636040912])
2019/06/14 13:48:29 Blocking empty list...
2019/06/14 13:48:30 Blocking empty list...
2019/06/14 13:48:30 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:29.264012162 -0600 MDT m=+786.636040912] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:30.816621488 -0600 MDT m=+788.188650236])
2019/06/14 13:48:31 Blocking empty list...
2019/06/14 13:48:32 Blocking empty list...
2019/06/14 13:48:33 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:30.816621488 -0600 MDT m=+788.188650236] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:33.096096709 -0600 MDT m=+790.468125473])
2019/06/14 13:48:33 Blocking empty list...
2019/06/14 13:48:34 Blocking empty list...
2019/06/14 13:48:34 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:33.096096709 -0600 MDT m=+790.468125473] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:34.681657183 -0600 MDT m=+792.053685940])
2019/06/14 13:48:35 Blocking empty list...
2019/06/14 13:48:36 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:34.681657183 -0600 MDT m=+792.053685940] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:36.241164634 -0600 MDT m=+793.613193386])
2019/06/14 13:48:36 Blocking empty list...
2019/06/14 13:48:37 Blocking empty list...
2019/06/14 13:48:37 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:36.241164634 -0600 MDT m=+793.613193386] == [bid:Bonus title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:37.85757393 -0600 MDT m=+795.229602667])
2019/06/14 13:48:38 Blocking empty list...
2019/06/14 13:48:39 Blocking empty list...
2019/06/14 13:48:39 true = ([bid:Bonus title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:37.85757393 -0600 MDT m=+795.229602667] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:39.441577958 -0600 MDT m=+796.813606720])
2019/06/14 13:48:40 Blocking empty list...
2019/06/14 13:48:41 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:39.441577958 -0600 MDT m=+796.813606720] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:41.061072437 -0600 MDT m=+798.433101174])
2019/06/14 13:48:41 Blocking empty list...
2019/06/14 13:48:42 Blocking empty list...
2019/06/14 13:48:42 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:41.061072437 -0600 MDT m=+798.433101174] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:42.682457336 -0600 MDT m=+800.054486086])
2019/06/14 13:48:43 Blocking empty list...
2019/06/14 13:48:44 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:42.682457336 -0600 MDT m=+800.054486086] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:44.256806707 -0600 MDT m=+801.628835462])
2019/06/14 13:48:44 Blocking empty list...
2019/06/14 13:48:45 Blocking empty list...
2019/06/14 13:48:45 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:44.256806707 -0600 MDT m=+801.628835462] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:45.967221097 -0600 MDT m=+803.339249831])
2019/06/14 13:48:46 Blocking empty list...
2019/06/14 13:48:47 Blocking empty list...
2019/06/14 13:48:47 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:45.967221097 -0600 MDT m=+803.339249831] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:47.517339333 -0600 MDT m=+804.889368069])
2019/06/14 13:48:48 Blocking empty list...
2019/06/14 13:48:48 parse watched
2019/06/14 13:48:49 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:47.517339333 -0600 MDT m=+804.889368069] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:49.118780967 -0600 MDT m=+806.490809704])
2019/06/14 13:48:49 Blocking empty list...
2019/06/14 13:48:50 parse watched
2019/06/14 13:48:50 Blocking empty list...
2019/06/14 13:48:50 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:49.118780967 -0600 MDT m=+806.490809704] == [bid:Next Item on title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:50.667028521 -0600 MDT m=+808.039057254])
2019/06/14 13:48:51 Blocking empty list...
2019/06/14 13:48:51 parse watched
2019/06/14 13:48:52 DETAIL $7,689 $24,039
2019/06/14 13:48:52 false = ([bid:Next Item on title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:50.667028521 -0600 MDT m=+808.039057254] == [bid:$1,650 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:52.297679181 -0600 MDT m=+809.669707932])
2019/06/14 13:48:52 DETAIL 1.8L 4 3.6L 6
2019/06/14 13:48:52 Blocking empty list...
2019/06/14 13:48:52 TOP
2019/06/14 13:48:52 parse watched
2019/06/14 13:48:52 C [bid:$1,650 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:52.994021004 -0600 MDT m=+810.366049754]
2019/06/14 13:48:53 Blocking empty list...
2019/06/14 13:48:54 parse watched
2019/06/14 13:48:54 Blocking empty list...
2019/06/14 13:48:54 true = ([bid:$1,650 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:52.994021004 -0600 MDT m=+810.366049754] == [bid:Bid title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:54.583269582 -0600 MDT m=+811.955298323])
2019/06/14 13:48:55 Blocking empty list...
2019/06/14 13:48:55 parse watched
2019/06/14 13:48:56 true = ([bid:Bid title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:54.583269582 -0600 MDT m=+811.955298323] == [bid:$1,700 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:56.181033887 -0600 MDT m=+813.553062652])
2019/06/14 13:48:56 Blocking empty list...
2019/06/14 13:48:57 parse watched
2019/06/14 13:48:57 Blocking empty list...
2019/06/14 13:48:57 true = ([bid:$1,700 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:56.181033887 -0600 MDT m=+813.553062652] == [bid:$1,800 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:57.784934977 -0600 MDT m=+815.156963727])
2019/06/14 13:48:58 Blocking empty list...
2019/06/14 13:48:58 parse watched
2019/06/14 13:48:59 Blocking empty list...
2019/06/14 13:48:59 true = ([bid:$1,800 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:57.784934977 -0600 MDT m=+815.156963727] == [bid:$1,850 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:59.373646279 -0600 MDT m=+816.745675026])
2019/06/14 13:49:00 Blocking empty list...
2019/06/14 13:49:00 parse watched
2019/06/14 13:49:00 true = ([bid:$1,850 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:59.373646279 -0600 MDT m=+816.745675026] == [bid:$1,900 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:49:00.956853996 -0600 MDT m=+818.328882743])
2019/06/14 13:49:01 Blocking empty list...
2019/06/14 13:49:02 parse watched
2019/06/14 13:49:02 Blocking empty list...
2019/06/14 13:49:02 true = ([bid:$1,900 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:49:00.956853996 -0600 MDT m=+818.328882743] == [bid:Bid title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:49:02.537892071 -0600 MDT m=+819.909920818])
2019/06/14 13:49:03 Blocking empty list...
2019/06/14 13:49:03 stale element reference: stale element reference: element is not attached to the page document
(Session info: chrome=75.0.3770.80)
2019/06/14 13:49:04 Blocking empty list...
2019/06/14 13:49:05 Blocking empty list...
2019/06/14 13:49:06 Blocking empty list...

242
copart/testdata/log2 vendored Normal file
View File

@ -0,0 +1,242 @@
2019/06/14 13:44:33 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:32.100278808 -0600 MDT m=+549.472307556] == [bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:33.649979402 -0600 MDT m=+551.022008143])
2019/06/14 13:44:34 true = ([bid:$4,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:33.263653682 -0600 MDT m=+550.635682442] == [bid:$4,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:34.853057112 -0600 MDT m=+552.225085858])
2019/06/14 13:44:35 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:33.649979402 -0600 MDT m=+551.022008143] == [bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:35.209579405 -0600 MDT m=+552.581608152])
2019/06/14 13:44:36 true = ([bid:$4,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:34.853057112 -0600 MDT m=+552.225085858] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:36.442979544 -0600 MDT m=+553.815008292])
2019/06/14 13:44:36 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:35.209579405 -0600 MDT m=+552.581608152] == [bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:36.765530586 -0600 MDT m=+554.137559334])
2019/06/14 13:44:37 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:36.442979544 -0600 MDT m=+553.815008292] == [bid:$4,700 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:37.998799546 -0600 MDT m=+555.370828308])
2019/06/14 13:44:38 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:36.765530586 -0600 MDT m=+554.137559334] == [bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:38.309365279 -0600 MDT m=+555.681394016])
2019/06/14 13:44:39 true = ([bid:$4,700 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:37.998799546 -0600 MDT m=+555.370828308] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:39.632325485 -0600 MDT m=+557.004354235])
2019/06/14 13:44:39 true = ([bid:$750 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:38.309365279 -0600 MDT m=+555.681394016] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:39.876272196 -0600 MDT m=+557.248300968])
2019/06/14 13:44:41 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:39.632325485 -0600 MDT m=+557.004354235] == [bid:$4,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:41.210836371 -0600 MDT m=+558.582865114])
2019/06/14 13:44:41 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:39.876272196 -0600 MDT m=+557.248300968] == [bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:41.434892417 -0600 MDT m=+558.806921162])
2019/06/14 13:44:42 true = ([bid:$4,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:41.210836371 -0600 MDT m=+558.582865114] == [bid:$4,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:42.800903683 -0600 MDT m=+560.172932419])
2019/06/14 13:44:42 true = ([bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:41.434892417 -0600 MDT m=+558.806921162] == [bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:42.975489596 -0600 MDT m=+560.347518332])
2019/06/14 13:44:44 true = ([bid:$4,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:42.800903683 -0600 MDT m=+560.172932419] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:44.383681507 -0600 MDT m=+561.755710284])
2019/06/14 13:44:44 true = ([bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:42.975489596 -0600 MDT m=+560.347518332] == [bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:44.533291771 -0600 MDT m=+561.905320516])
2019/06/14 13:44:46 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:44.383681507 -0600 MDT m=+561.755710284] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:46.651673699 -0600 MDT m=+564.023702462])
2019/06/14 13:44:46 true = ([bid:$775 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:44.533291771 -0600 MDT m=+561.905320516] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:46.71137253 -0600 MDT m=+564.083401292])
2019/06/14 13:44:49 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:46.651673699 -0600 MDT m=+564.023702462] == [bid:$5,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:49.04381699 -0600 MDT m=+566.415845754])
2019/06/14 13:44:49 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:46.71137253 -0600 MDT m=+564.083401292] == [bid:$800 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:49.075309089 -0600 MDT m=+566.447337833])
2019/06/14 13:44:50 true = ([bid:$5,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:49.04381699 -0600 MDT m=+566.415845754] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:50.626495561 -0600 MDT m=+567.998524315])
2019/06/14 13:44:50 true = ([bid:$800 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:49.075309089 -0600 MDT m=+566.447337833] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:50.637091128 -0600 MDT m=+568.009119874])
2019/06/14 13:44:52 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:50.637091128 -0600 MDT m=+568.009119874] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:52.201787818 -0600 MDT m=+569.573816555])
2019/06/14 13:44:52 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:50.626495561 -0600 MDT m=+567.998524315] == [bid:$5,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:52.210615356 -0600 MDT m=+569.582644106])
2019/06/14 13:44:53 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:52.201787818 -0600 MDT m=+569.573816555] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:53.785375027 -0600 MDT m=+571.157403770])
2019/06/14 13:44:53 true = ([bid:$5,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:52.210615356 -0600 MDT m=+569.582644106] == [bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:53.794478475 -0600 MDT m=+571.166507235])
2019/06/14 13:44:55 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:53.785375027 -0600 MDT m=+571.157403770] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:55.341663372 -0600 MDT m=+572.713692125])
2019/06/14 13:44:55 true = ([bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:53.794478475 -0600 MDT m=+571.166507235] == [bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:55.347619414 -0600 MDT m=+572.719648150])
2019/06/14 13:44:56 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:55.341663372 -0600 MDT m=+572.713692125] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:56.887273765 -0600 MDT m=+574.259302513])
2019/06/14 13:44:56 true = ([bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:55.347619414 -0600 MDT m=+572.719648150] == [bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:56.894005011 -0600 MDT m=+574.266033759])
2019/06/14 13:44:58 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:56.887273765 -0600 MDT m=+574.259302513] == [bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:58.467862845 -0600 MDT m=+575.839891596])
2019/06/14 13:44:58 true = ([bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:56.894005011 -0600 MDT m=+574.266033759] == [bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:58.467875669 -0600 MDT m=+575.839904419])
2019/06/14 13:45:00 true = ([bid:$825 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:44:58.467862845 -0600 MDT m=+575.839891596] == [bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:00.029947727 -0600 MDT m=+577.401976473])
2019/06/14 13:45:00 true = ([bid:$5,900 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:44:58.467875669 -0600 MDT m=+575.839904419] == [bid:$6,000 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:00.033625382 -0600 MDT m=+577.405654118])
2019/06/14 13:45:01 true = ([bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:00.029947727 -0600 MDT m=+577.401976473] == [bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:01.617679613 -0600 MDT m=+578.989708348])
2019/06/14 13:45:01 true = ([bid:$6,000 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:00.033625382 -0600 MDT m=+577.405654118] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:01.626412103 -0600 MDT m=+578.998440838])
2019/06/14 13:45:03 true = ([bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:01.617679613 -0600 MDT m=+578.989708348] == [bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:03.182911975 -0600 MDT m=+580.554940742])
2019/06/14 13:45:03 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:01.626412103 -0600 MDT m=+578.998440838] == [bid:$6,100 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:03.199787677 -0600 MDT m=+580.571816439])
2019/06/14 13:45:04 true = ([bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:03.182911975 -0600 MDT m=+580.554940742] == [bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:04.746031495 -0600 MDT m=+582.118060242])
2019/06/14 13:45:04 true = ([bid:$6,100 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:03.199787677 -0600 MDT m=+580.571816439] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:04.767179705 -0600 MDT m=+582.139208448])
2019/06/14 13:45:06 true = ([bid:$850 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:04.746031495 -0600 MDT m=+582.118060242] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:06.310545892 -0600 MDT m=+583.682574636])
2019/06/14 13:45:06 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:04.767179705 -0600 MDT m=+582.139208448] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:06.335166826 -0600 MDT m=+583.707195567])
2019/06/14 13:45:07 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:06.310545892 -0600 MDT m=+583.682574636] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:07.883620143 -0600 MDT m=+585.255648901])
2019/06/14 13:45:07 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:06.335166826 -0600 MDT m=+583.707195567] == [bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:07.907584605 -0600 MDT m=+585.279613340])
2019/06/14 13:45:09 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:07.883620143 -0600 MDT m=+585.255648901] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:09.45518732 -0600 MDT m=+586.827216080])
2019/06/14 13:45:09 true = ([bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:07.907584605 -0600 MDT m=+585.279613340] == [bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:09.4663536 -0600 MDT m=+586.838382341])
2019/06/14 13:45:11 true = ([bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:09.4663536 -0600 MDT m=+586.838382341] == [bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:11.714388541 -0600 MDT m=+589.086417329])
2019/06/14 13:45:11 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:09.45518732 -0600 MDT m=+586.827216080] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:11.744893291 -0600 MDT m=+589.116922050])
2019/06/14 13:45:13 true = ([bid:$6,400 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:11.714388541 -0600 MDT m=+589.086417329] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:13.45008916 -0600 MDT m=+590.822117920])
2019/06/14 13:45:13 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:11.744893291 -0600 MDT m=+589.116922050] == [bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:13.467717253 -0600 MDT m=+590.839745995])
2019/06/14 13:45:15 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:13.45008916 -0600 MDT m=+590.822117920] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:15.028250727 -0600 MDT m=+592.400279501])
2019/06/14 13:45:15 true = ([bid:$875 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:13.467717253 -0600 MDT m=+590.839745995] == [bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:15.029365652 -0600 MDT m=+592.401394387])
2019/06/14 13:45:16 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:15.028250727 -0600 MDT m=+592.400279501] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:16.574778848 -0600 MDT m=+593.946807598])
2019/06/14 13:45:16 true = ([bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:15.029365652 -0600 MDT m=+592.401394387] == [bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:16.581757004 -0600 MDT m=+593.953785791])
2019/06/14 13:45:18 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:16.574778848 -0600 MDT m=+593.946807598] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:18.148148234 -0600 MDT m=+595.520177008])
2019/06/14 13:45:18 true = ([bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:16.581757004 -0600 MDT m=+593.953785791] == [bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:18.157707579 -0600 MDT m=+595.529736321])
2019/06/14 13:45:19 true = ([bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:18.157707579 -0600 MDT m=+595.529736321] == [bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:19.727213553 -0600 MDT m=+597.099242300])
2019/06/14 13:45:19 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:18.148148234 -0600 MDT m=+595.520177008] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:19.732192656 -0600 MDT m=+597.104221399])
2019/06/14 13:45:21 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:19.732192656 -0600 MDT m=+597.104221399] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:21.300980036 -0600 MDT m=+598.673008782])
2019/06/14 13:45:21 true = ([bid:$900 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:19.727213553 -0600 MDT m=+597.099242300] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:21.307722352 -0600 MDT m=+598.679751090])
2019/06/14 13:45:23 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:21.300980036 -0600 MDT m=+598.673008782] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:23.379902263 -0600 MDT m=+600.751931031])
2019/06/14 13:45:23 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:21.307722352 -0600 MDT m=+598.679751090] == [bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:23.392826934 -0600 MDT m=+600.764855701])
2019/06/14 13:45:25 true = ([bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:23.392826934 -0600 MDT m=+600.764855701] == [bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:25.71438718 -0600 MDT m=+603.086415961])
2019/06/14 13:45:25 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:23.379902263 -0600 MDT m=+600.751931031] == [bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:25.759869463 -0600 MDT m=+603.131898219])
2019/06/14 13:45:27 true = ([bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:25.71438718 -0600 MDT m=+603.086415961] == [bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:27.748442664 -0600 MDT m=+605.120471419])
2019/06/14 13:45:27 true = ([bid:$6,500 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:25.759869463 -0600 MDT m=+603.131898219] == [bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:27.762685583 -0600 MDT m=+605.134714377])
2019/06/14 13:45:29 true = ([bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:27.762685583 -0600 MDT m=+605.134714377] == [bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:29.693781661 -0600 MDT m=+607.065810420])
2019/06/14 13:45:29 true = ([bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:27.748442664 -0600 MDT m=+605.120471419] == [bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:29.7037451 -0600 MDT m=+607.075773851])
2019/06/14 13:45:31 true = ([bid:$925 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:29.7037451 -0600 MDT m=+607.075773851] == [bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:31.581812917 -0600 MDT m=+608.953841681])
2019/06/14 13:45:31 true = ([bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:29.693781661 -0600 MDT m=+607.065810420] == [bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:31.603363109 -0600 MDT m=+608.975391926])
2019/06/14 13:45:33 true = ([bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:31.581812917 -0600 MDT m=+608.953841681] == [bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:33.129003954 -0600 MDT m=+610.501032706])
2019/06/14 13:45:33 true = ([bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:31.603363109 -0600 MDT m=+608.975391926] == [bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:33.154188308 -0600 MDT m=+610.526217074])
2019/06/14 13:45:34 true = ([bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:33.129003954 -0600 MDT m=+610.501032706] == [bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:34.698293537 -0600 MDT m=+612.070322308])
2019/06/14 13:45:34 true = ([bid:$6,600 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:33.154188308 -0600 MDT m=+610.526217074] == [bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:34.740571037 -0600 MDT m=+612.112599799])
2019/06/14 13:45:36 true = ([bid:$950 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:34.698293537 -0600 MDT m=+612.070322308] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:36.670375341 -0600 MDT m=+614.042404108])
2019/06/14 13:45:36 true = ([bid:Bid title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:34.740571037 -0600 MDT m=+612.112599799] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:36.714017157 -0600 MDT m=+614.086045966])
2019/06/14 13:45:38 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:36.670375341 -0600 MDT m=+614.042404108] == [bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:38.247777676 -0600 MDT m=+615.619806410])
2019/06/14 13:45:38 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:36.714017157 -0600 MDT m=+614.086045966] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:38.270868543 -0600 MDT m=+615.642897295])
2019/06/14 13:45:39 true = ([bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:38.247777676 -0600 MDT m=+615.619806410] == [bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:39.820522402 -0600 MDT m=+617.192551139])
2019/06/14 13:45:39 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:38.270868543 -0600 MDT m=+615.642897295] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:39.840696355 -0600 MDT m=+617.212725106])
2019/06/14 13:45:41 true = ([bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:39.820522402 -0600 MDT m=+617.192551139] == [bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:41.865548025 -0600 MDT m=+619.237576784])
2019/06/14 13:45:41 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:39.840696355 -0600 MDT m=+617.212725106] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:41.87975323 -0600 MDT m=+619.251782000])
2019/06/14 13:45:44 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:41.87975323 -0600 MDT m=+619.251782000] == [bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:44.12899537 -0600 MDT m=+621.501024149])
2019/06/14 13:45:44 true = ([bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:41.865548025 -0600 MDT m=+619.237576784] == [bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:44.160166521 -0600 MDT m=+621.532195282])
2019/06/14 13:45:45 true = ([bid:$6,800 title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:44.12899537 -0600 MDT m=+621.501024149] == [bid:Next Item on title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:45.698231339 -0600 MDT m=+623.070260115])
2019/06/14 13:45:45 true = ([bid:$975 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:44.160166521 -0600 MDT m=+621.532195282] == [bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:45.730591096 -0600 MDT m=+623.102619832])
2019/06/14 13:45:47 true = ([bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:45.730591096 -0600 MDT m=+623.102619832] == [bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:47.300433357 -0600 MDT m=+624.672462125])
2019/06/14 13:45:47 false = ([bid:Next Item on title:2015 LEXUS RC 350 watched:false images:4 when:2019-06-14 13:45:45.698231339 -0600 MDT m=+623.070260115] == [bid:$950 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:47.326540361 -0600 MDT m=+624.698569101])
2019/06/14 13:45:48 true = ([bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:47.300433357 -0600 MDT m=+624.672462125] == [bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:48.875565095 -0600 MDT m=+626.247593841])
2019/06/14 13:45:49 true = ([bid:$950 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:47.970680447 -0600 MDT m=+625.342709201] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:49.530146108 -0600 MDT m=+626.902174848])
2019/06/14 13:45:50 true = ([bid:$1,000 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:48.875565095 -0600 MDT m=+626.247593841] == [bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:50.441141654 -0600 MDT m=+627.813170424])
2019/06/14 13:45:51 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:49.530146108 -0600 MDT m=+626.902174848] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:51.092703578 -0600 MDT m=+628.464732312])
2019/06/14 13:45:52 true = ([bid:Bid title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:50.441141654 -0600 MDT m=+627.813170424] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:52.014105523 -0600 MDT m=+629.386134268])
2019/06/14 13:45:52 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:51.092703578 -0600 MDT m=+628.464732312] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:52.666563883 -0600 MDT m=+630.038592628])
2019/06/14 13:45:53 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:52.014105523 -0600 MDT m=+629.386134268] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:53.557551959 -0600 MDT m=+630.929580695])
2019/06/14 13:45:54 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:52.666563883 -0600 MDT m=+630.038592628] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:54.239611178 -0600 MDT m=+631.611639922])
2019/06/14 13:45:55 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:53.557551959 -0600 MDT m=+630.929580695] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:55.114075035 -0600 MDT m=+632.486103788])
2019/06/14 13:45:55 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:54.239611178 -0600 MDT m=+631.611639922] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:55.804221548 -0600 MDT m=+633.176250310])
2019/06/14 13:45:56 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:55.114075035 -0600 MDT m=+632.486103788] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:56.706568281 -0600 MDT m=+634.078597042])
2019/06/14 13:45:57 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:55.804221548 -0600 MDT m=+633.176250310] == [bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:57.361048223 -0600 MDT m=+634.733076974])
2019/06/14 13:45:58 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:56.706568281 -0600 MDT m=+634.078597042] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:58.261410026 -0600 MDT m=+635.633438778])
2019/06/14 13:45:58 true = ([bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:57.361048223 -0600 MDT m=+634.733076974] == [bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:58.912388766 -0600 MDT m=+636.284417514])
2019/06/14 13:45:59 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:58.261410026 -0600 MDT m=+635.633438778] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:59.82282752 -0600 MDT m=+637.194856272])
2019/06/14 13:46:00 true = ([bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:45:58.912388766 -0600 MDT m=+636.284417514] == [bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:00.465703716 -0600 MDT m=+637.837732454])
2019/06/14 13:46:01 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:45:59.82282752 -0600 MDT m=+637.194856272] == [bid:Bonus title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:01.397741474 -0600 MDT m=+638.769770221])
2019/06/14 13:46:02 true = ([bid:$1,300 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:00.465703716 -0600 MDT m=+637.837732454] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:02.023624181 -0600 MDT m=+639.395652927])
2019/06/14 13:46:03 true = ([bid:Bonus title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:01.397741474 -0600 MDT m=+638.769770221] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:03.006045999 -0600 MDT m=+640.378074735])
2019/06/14 13:46:03 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:02.023624181 -0600 MDT m=+639.395652927] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:03.58135933 -0600 MDT m=+640.953388064])
2019/06/14 13:46:04 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:03.006045999 -0600 MDT m=+640.378074735] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:04.578964932 -0600 MDT m=+641.950993680])
2019/06/14 13:46:05 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:03.58135933 -0600 MDT m=+640.953388064] == [bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:05.140126563 -0600 MDT m=+642.512155309])
2019/06/14 13:46:06 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:04.578964932 -0600 MDT m=+641.950993680] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:06.178025052 -0600 MDT m=+643.550053786])
2019/06/14 13:46:06 true = ([bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:05.140126563 -0600 MDT m=+642.512155309] == [bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:06.697389814 -0600 MDT m=+644.069418561])
2019/06/14 13:46:07 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:06.178025052 -0600 MDT m=+643.550053786] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:07.780702876 -0600 MDT m=+645.152731610])
2019/06/14 13:46:08 true = ([bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:06.697389814 -0600 MDT m=+644.069418561] == [bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:08.248101491 -0600 MDT m=+645.620130237])
2019/06/14 13:46:09 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:07.780702876 -0600 MDT m=+645.152731610] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:09.386820437 -0600 MDT m=+646.758849193])
2019/06/14 13:46:09 true = ([bid:$1,400 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:08.248101491 -0600 MDT m=+645.620130237] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:09.818455714 -0600 MDT m=+647.190484458])
2019/06/14 13:46:10 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:09.386820437 -0600 MDT m=+646.758849193] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:10.971483398 -0600 MDT m=+648.343512143])
2019/06/14 13:46:11 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:09.818455714 -0600 MDT m=+647.190484458] == [bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:11.378239494 -0600 MDT m=+648.750268245])
2019/06/14 13:46:12 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:10.971483398 -0600 MDT m=+648.343512143] == [bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:12.537834103 -0600 MDT m=+649.909862840])
2019/06/14 13:46:12 true = ([bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:11.378239494 -0600 MDT m=+648.750268245] == [bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:12.921818006 -0600 MDT m=+650.293846777])
2019/06/14 13:46:14 true = ([bid:$1,050 title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:12.537834103 -0600 MDT m=+649.909862840] == [bid:Next Item on title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:14.115315236 -0600 MDT m=+651.487343970])
2019/06/14 13:46:14 true = ([bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:12.921818006 -0600 MDT m=+650.293846777] == [bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:14.471067849 -0600 MDT m=+651.843096596])
2019/06/14 13:46:15 false = ([bid:Next Item on title:2008 NISSAN ALTIMA 2.5 watched:false images:4 when:2019-06-14 13:46:14.115315236 -0600 MDT m=+651.487343970] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:15.765589239 -0600 MDT m=+653.137617986])
2019/06/14 13:46:16 true = ([bid:$1,500 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:14.471067849 -0600 MDT m=+651.843096596] == [bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:16.02007468 -0600 MDT m=+653.392103448])
2019/06/14 13:46:17 true = ([bid:Bid title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:16.02007468 -0600 MDT m=+653.392103448] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:17.651753355 -0600 MDT m=+655.023782106])
2019/06/14 13:46:17 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:16.390025771 -0600 MDT m=+653.762054512] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:17.945675122 -0600 MDT m=+655.317703865])
2019/06/14 13:46:19 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:17.651753355 -0600 MDT m=+655.023782106] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:19.255879024 -0600 MDT m=+656.627907787])
2019/06/14 13:46:19 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:17.945675122 -0600 MDT m=+655.317703865] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:19.503173988 -0600 MDT m=+656.875202744])
2019/06/14 13:46:20 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:19.255879024 -0600 MDT m=+656.627907787] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:20.879860426 -0600 MDT m=+658.251889173])
2019/06/14 13:46:21 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:19.503173988 -0600 MDT m=+656.875202744] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:21.074419533 -0600 MDT m=+658.446448280])
2019/06/14 13:46:22 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:20.879860426 -0600 MDT m=+658.251889173] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:22.472975892 -0600 MDT m=+659.845004657])
2019/06/14 13:46:22 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:21.074419533 -0600 MDT m=+658.446448280] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:22.638350764 -0600 MDT m=+660.010379508])
2019/06/14 13:46:24 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:22.472975892 -0600 MDT m=+659.845004657] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:24.039286396 -0600 MDT m=+661.411315153])
2019/06/14 13:46:24 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:22.638350764 -0600 MDT m=+660.010379508] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:24.210076006 -0600 MDT m=+661.582104749])
2019/06/14 13:46:25 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:24.039286396 -0600 MDT m=+661.411315153] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:25.623141495 -0600 MDT m=+662.995170232])
2019/06/14 13:46:25 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:24.210076006 -0600 MDT m=+661.582104749] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:25.77105872 -0600 MDT m=+663.143087460])
2019/06/14 13:46:27 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:25.623141495 -0600 MDT m=+662.995170232] == [bid:Bonus title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:27.217110188 -0600 MDT m=+664.589138960])
2019/06/14 13:46:27 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:25.77105872 -0600 MDT m=+663.143087460] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:27.316556146 -0600 MDT m=+664.688584889])
2019/06/14 13:46:28 true = ([bid:Bonus title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:27.217110188 -0600 MDT m=+664.589138960] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:28.804421116 -0600 MDT m=+666.176449864])
2019/06/14 13:46:28 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:27.316556146 -0600 MDT m=+664.688584889] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:28.874885439 -0600 MDT m=+666.246914183])
2019/06/14 13:46:30 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:28.804421116 -0600 MDT m=+666.176449864] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:30.378302778 -0600 MDT m=+667.750331525])
2019/06/14 13:46:30 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:28.874885439 -0600 MDT m=+666.246914183] == [bid:Bonus title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:30.430949455 -0600 MDT m=+667.802978198])
2019/06/14 13:46:31 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:30.378302778 -0600 MDT m=+667.750331525] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:31.953632384 -0600 MDT m=+669.325661131])
2019/06/14 13:46:31 true = ([bid:Bonus title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:30.430949455 -0600 MDT m=+667.802978198] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:31.996367484 -0600 MDT m=+669.368396221])
2019/06/14 13:46:33 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:31.953632384 -0600 MDT m=+669.325661131] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:33.521086939 -0600 MDT m=+670.893115677])
2019/06/14 13:46:33 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:31.996367484 -0600 MDT m=+669.368396221] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:33.571119989 -0600 MDT m=+670.943148735])
2019/06/14 13:46:35 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:33.521086939 -0600 MDT m=+670.893115677] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:35.111873847 -0600 MDT m=+672.483902604])
2019/06/14 13:46:35 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:33.571119989 -0600 MDT m=+670.943148735] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:35.140044919 -0600 MDT m=+672.512073682])
2019/06/14 13:46:36 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:35.111873847 -0600 MDT m=+672.483902604] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:36.691188678 -0600 MDT m=+674.063217431])
2019/06/14 13:46:36 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:35.140044919 -0600 MDT m=+672.512073682] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:36.72922032 -0600 MDT m=+674.101249074])
2019/06/14 13:46:38 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:36.691188678 -0600 MDT m=+674.063217431] == [bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:38.271432569 -0600 MDT m=+675.643461305])
2019/06/14 13:46:38 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:36.72922032 -0600 MDT m=+674.101249074] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:38.298540491 -0600 MDT m=+675.670569229])
2019/06/14 13:46:39 true = ([bid:$1,550 title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:38.271432569 -0600 MDT m=+675.643461305] == [bid:Next Item on title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:39.854917796 -0600 MDT m=+677.226946542])
2019/06/14 13:46:39 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:38.298540491 -0600 MDT m=+675.670569229] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:39.86269596 -0600 MDT m=+677.234724702])
2019/06/14 13:46:41 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:39.86269596 -0600 MDT m=+677.234724702] == [bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:41.421462137 -0600 MDT m=+678.793490880])
2019/06/14 13:46:41 false = ([bid:Next Item on title:2007 CHEVROLET SILVERADO C1500 CLASSIC watched:false images:4 when:2019-06-14 13:46:39.854917796 -0600 MDT m=+677.226946542] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:41.444806466 -0600 MDT m=+678.816835202])
2019/06/14 13:46:42 true = ([bid:$15,000 title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:41.421462137 -0600 MDT m=+678.793490880] == [bid:Sold on title:2016 GMC YUKON XL DENALI watched:false images:4 when:2019-06-14 13:46:42.978837839 -0600 MDT m=+680.350866588])
2019/06/14 13:46:43 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:42.058019248 -0600 MDT m=+679.430047994] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:43.652922025 -0600 MDT m=+681.024950771])
2019/06/14 13:46:45 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:43.652922025 -0600 MDT m=+681.024950771] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:45.212745952 -0600 MDT m=+682.584774692])
2019/06/14 13:46:46 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:45.212745952 -0600 MDT m=+682.584774692] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:46.779907351 -0600 MDT m=+684.151936105])
2019/06/14 13:46:48 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:46.779907351 -0600 MDT m=+684.151936105] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:48.37493185 -0600 MDT m=+685.746960593])
2019/06/14 13:46:50 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:48.37493185 -0600 MDT m=+685.746960593] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:50.006089325 -0600 MDT m=+687.378118062])
2019/06/14 13:46:51 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:50.006089325 -0600 MDT m=+687.378118062] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:51.571964801 -0600 MDT m=+688.943993546])
2019/06/14 13:46:53 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:51.571964801 -0600 MDT m=+688.943993546] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:53.168928243 -0600 MDT m=+690.540956989])
2019/06/14 13:46:54 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:53.168928243 -0600 MDT m=+690.540956989] == [bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:54.746981537 -0600 MDT m=+692.119010284])
2019/06/14 13:46:56 true = ([bid:$475 title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:54.746981537 -0600 MDT m=+692.119010284] == [bid:Sold! title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:56.312143023 -0600 MDT m=+693.684171758])
2019/06/14 13:46:57 false = ([bid:Sold! title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:56.312143023 -0600 MDT m=+693.684171758] == [bid:Next Item on title:2006 MAZDA 3 I watched:false images:4 when:2019-06-14 13:46:57.92401858 -0600 MDT m=+695.296047330])
2019/06/14 13:47:00 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:46:58.636284949 -0600 MDT m=+696.008313695] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:00.228379187 -0600 MDT m=+697.600407934])
2019/06/14 13:47:01 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:00.228379187 -0600 MDT m=+697.600407934] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:01.828705581 -0600 MDT m=+699.200734322])
2019/06/14 13:47:03 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:01.828705581 -0600 MDT m=+699.200734322] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:03.404720678 -0600 MDT m=+700.776749424])
2019/06/14 13:47:04 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:03.404720678 -0600 MDT m=+700.776749424] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:04.995027354 -0600 MDT m=+702.367056092])
2019/06/14 13:47:06 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:04.995027354 -0600 MDT m=+702.367056092] == [bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:06.553799294 -0600 MDT m=+703.925828028])
2019/06/14 13:47:08 true = ([bid:$2,400 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:06.553799294 -0600 MDT m=+703.925828028] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:08.135736901 -0600 MDT m=+705.507765668])
2019/06/14 13:47:09 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:08.135736901 -0600 MDT m=+705.507765668] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:09.740053433 -0600 MDT m=+707.112082171])
2019/06/14 13:47:11 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:09.740053433 -0600 MDT m=+707.112082171] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:11.355342645 -0600 MDT m=+708.727371404])
2019/06/14 13:47:12 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:11.355342645 -0600 MDT m=+708.727371404] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:12.953509692 -0600 MDT m=+710.325538426])
2019/06/14 13:47:14 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:12.953509692 -0600 MDT m=+710.325538426] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:14.544215968 -0600 MDT m=+711.916244711])
2019/06/14 13:47:16 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:14.544215968 -0600 MDT m=+711.916244711] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:16.111428829 -0600 MDT m=+713.483457570])
2019/06/14 13:47:17 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:16.111428829 -0600 MDT m=+713.483457570] == [bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:17.744188889 -0600 MDT m=+715.116217639])
2019/06/14 13:47:19 true = ([bid:$2,450 title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:17.744188889 -0600 MDT m=+715.116217639] == [bid:Next Item on title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:19.31997218 -0600 MDT m=+716.692000915])
2019/06/14 13:47:20 false = ([bid:Next Item on title:2009 HONDA CR-V LX watched:false images:4 when:2019-06-14 13:47:19.31997218 -0600 MDT m=+716.692000915] == [bid:$7,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:20.975960694 -0600 MDT m=+718.347989437])
2019/06/14 13:47:23 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:21.632839693 -0600 MDT m=+719.004868430] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:23.246285645 -0600 MDT m=+720.618314400])
2019/06/14 13:47:24 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:23.246285645 -0600 MDT m=+720.618314400] == [bid:$8,000 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:24.857513644 -0600 MDT m=+722.229542387])
2019/06/14 13:47:26 true = ([bid:$8,000 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:24.857513644 -0600 MDT m=+722.229542387] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:26.442221476 -0600 MDT m=+723.814250212])
2019/06/14 13:47:27 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:26.442221476 -0600 MDT m=+723.814250212] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:27.9990393 -0600 MDT m=+725.371068068])
2019/06/14 13:47:29 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:27.9990393 -0600 MDT m=+725.371068068] == [bid:$8,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:29.61021549 -0600 MDT m=+726.982244236])
2019/06/14 13:47:31 true = ([bid:$8,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:29.61021549 -0600 MDT m=+726.982244236] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:31.217544509 -0600 MDT m=+728.589573280])
2019/06/14 13:47:32 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:31.217544509 -0600 MDT m=+728.589573280] == [bid:$8,400 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:32.789748968 -0600 MDT m=+730.161777737])
2019/06/14 13:47:34 true = ([bid:$8,400 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:32.789748968 -0600 MDT m=+730.161777737] == [bid:$8,400 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:34.359088515 -0600 MDT m=+731.731117253])
2019/06/14 13:47:36 true = ([bid:$8,400 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:34.359088515 -0600 MDT m=+731.731117253] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:36.560628194 -0600 MDT m=+733.932656950])
2019/06/14 13:47:38 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:36.560628194 -0600 MDT m=+733.932656950] == [bid:$8,600 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:38.175551491 -0600 MDT m=+735.547580230])
2019/06/14 13:47:39 true = ([bid:$8,600 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:38.175551491 -0600 MDT m=+735.547580230] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:39.73534806 -0600 MDT m=+737.107376830])
2019/06/14 13:47:41 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:39.73534806 -0600 MDT m=+737.107376830] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:41.333835964 -0600 MDT m=+738.705864712])
2019/06/14 13:47:42 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:41.333835964 -0600 MDT m=+738.705864712] == [bid:$8,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:42.926327488 -0600 MDT m=+740.298356250])
2019/06/14 13:47:44 true = ([bid:$8,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:42.926327488 -0600 MDT m=+740.298356250] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:44.493785479 -0600 MDT m=+741.865814216])
2019/06/14 13:47:46 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:44.493785479 -0600 MDT m=+741.865814216] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:46.092736556 -0600 MDT m=+743.464765324])
2019/06/14 13:47:47 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:46.092736556 -0600 MDT m=+743.464765324] == [bid:$9,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:47.67597531 -0600 MDT m=+745.048004045])
2019/06/14 13:47:49 true = ([bid:$9,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:47.67597531 -0600 MDT m=+745.048004045] == [bid:$9,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:49.283213406 -0600 MDT m=+746.655242158])
2019/06/14 13:47:50 true = ([bid:$9,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:49.283213406 -0600 MDT m=+746.655242158] == [bid:$9,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:50.867335397 -0600 MDT m=+748.239364160])
2019/06/14 13:47:52 true = ([bid:$9,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:50.867335397 -0600 MDT m=+748.239364160] == [bid:$9,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:52.436153467 -0600 MDT m=+749.808182224])
2019/06/14 13:47:54 true = ([bid:$9,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:52.436153467 -0600 MDT m=+749.808182224] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:54.03762827 -0600 MDT m=+751.409657021])
2019/06/14 13:47:55 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:54.03762827 -0600 MDT m=+751.409657021] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:55.599953643 -0600 MDT m=+752.971982388])
2019/06/14 13:47:57 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:55.599953643 -0600 MDT m=+752.971982388] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:57.206392983 -0600 MDT m=+754.578421720])
2019/06/14 13:47:58 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:57.206392983 -0600 MDT m=+754.578421720] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:58.788865612 -0600 MDT m=+756.160894358])
2019/06/14 13:48:00 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:47:58.788865612 -0600 MDT m=+756.160894358] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:00.334639215 -0600 MDT m=+757.706667963])
2019/06/14 13:48:01 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:00.334639215 -0600 MDT m=+757.706667963] == [bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:01.910710068 -0600 MDT m=+759.282738803])
2019/06/14 13:48:03 true = ([bid:$9,500 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:01.910710068 -0600 MDT m=+759.282738803] == [bid:$9,600 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:03.504547263 -0600 MDT m=+760.876576007])
2019/06/14 13:48:05 true = ([bid:$9,600 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:03.504547263 -0600 MDT m=+760.876576007] == [bid:$9,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:05.075648795 -0600 MDT m=+762.447677531])
2019/06/14 13:48:06 true = ([bid:$9,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:05.075648795 -0600 MDT m=+762.447677531] == [bid:$9,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:06.677601587 -0600 MDT m=+764.049630333])
2019/06/14 13:48:08 true = ([bid:$9,700 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:06.677601587 -0600 MDT m=+764.049630333] == [bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:08.243314838 -0600 MDT m=+765.615343582])
2019/06/14 13:48:09 true = ([bid:Bid title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:08.243314838 -0600 MDT m=+765.615343582] == [bid:$9,800 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:09.816861858 -0600 MDT m=+767.188890627])
2019/06/14 13:48:11 true = ([bid:$9,800 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:09.816861858 -0600 MDT m=+767.188890627] == [bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:11.401970852 -0600 MDT m=+768.773999592])
2019/06/14 13:48:13 true = ([bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:11.401970852 -0600 MDT m=+768.773999592] == [bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:13.385943303 -0600 MDT m=+770.757972044])
2019/06/14 13:48:15 true = ([bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:13.385943303 -0600 MDT m=+770.757972044] == [bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:15.010900934 -0600 MDT m=+772.382929685])
2019/06/14 13:48:16 true = ([bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:15.010900934 -0600 MDT m=+772.382929685] == [bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:16.582646794 -0600 MDT m=+773.954675536])
2019/06/14 13:48:18 true = ([bid:$9,900 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:16.582646794 -0600 MDT m=+773.954675536] == [bid:$10,000 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:18.158918859 -0600 MDT m=+775.530947603])
2019/06/14 13:48:19 true = ([bid:$10,000 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:18.158918859 -0600 MDT m=+775.530947603] == [bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:19.762418285 -0600 MDT m=+777.134447038])
2019/06/14 13:48:21 true = ([bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:19.762418285 -0600 MDT m=+777.134447038] == [bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:21.358132544 -0600 MDT m=+778.730161288])
2019/06/14 13:48:22 true = ([bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:21.358132544 -0600 MDT m=+778.730161288] == [bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:22.960404858 -0600 MDT m=+780.332433601])
2019/06/14 13:48:24 true = ([bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:22.960404858 -0600 MDT m=+780.332433601] == [bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:24.549422086 -0600 MDT m=+781.921450823])
2019/06/14 13:48:26 true = ([bid:$10,100 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:24.549422086 -0600 MDT m=+781.921450823] == [bid:$10,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:26.125843233 -0600 MDT m=+783.497871975])
2019/06/14 13:48:27 true = ([bid:$10,200 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:26.125843233 -0600 MDT m=+783.497871975] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:27.690221589 -0600 MDT m=+785.062250326])
2019/06/14 13:48:29 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:27.690221589 -0600 MDT m=+785.062250326] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:29.264012162 -0600 MDT m=+786.636040912])
2019/06/14 13:48:30 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:29.264012162 -0600 MDT m=+786.636040912] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:30.816621488 -0600 MDT m=+788.188650236])
2019/06/14 13:48:33 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:30.816621488 -0600 MDT m=+788.188650236] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:33.096096709 -0600 MDT m=+790.468125473])
2019/06/14 13:48:34 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:33.096096709 -0600 MDT m=+790.468125473] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:34.681657183 -0600 MDT m=+792.053685940])
2019/06/14 13:48:36 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:34.681657183 -0600 MDT m=+792.053685940] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:36.241164634 -0600 MDT m=+793.613193386])
2019/06/14 13:48:37 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:36.241164634 -0600 MDT m=+793.613193386] == [bid:Bonus title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:37.85757393 -0600 MDT m=+795.229602667])
2019/06/14 13:48:39 true = ([bid:Bonus title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:37.85757393 -0600 MDT m=+795.229602667] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:39.441577958 -0600 MDT m=+796.813606720])
2019/06/14 13:48:41 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:39.441577958 -0600 MDT m=+796.813606720] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:41.061072437 -0600 MDT m=+798.433101174])
2019/06/14 13:48:42 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:41.061072437 -0600 MDT m=+798.433101174] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:42.682457336 -0600 MDT m=+800.054486086])
2019/06/14 13:48:44 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:42.682457336 -0600 MDT m=+800.054486086] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:44.256806707 -0600 MDT m=+801.628835462])
2019/06/14 13:48:45 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:44.256806707 -0600 MDT m=+801.628835462] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:45.967221097 -0600 MDT m=+803.339249831])
2019/06/14 13:48:47 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:45.967221097 -0600 MDT m=+803.339249831] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:47.517339333 -0600 MDT m=+804.889368069])
2019/06/14 13:48:49 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:47.517339333 -0600 MDT m=+804.889368069] == [bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:49.118780967 -0600 MDT m=+806.490809704])
2019/06/14 13:48:50 true = ([bid:$10,300 title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:49.118780967 -0600 MDT m=+806.490809704] == [bid:Next Item on title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:50.667028521 -0600 MDT m=+808.039057254])
2019/06/14 13:48:52 false = ([bid:Next Item on title:2015 JEEP GRAND CHEROKEE OVERLAND watched:false images:4 when:2019-06-14 13:48:50.667028521 -0600 MDT m=+808.039057254] == [bid:$1,650 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:52.297679181 -0600 MDT m=+809.669707932])
2019/06/14 13:48:54 true = ([bid:$1,650 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:52.994021004 -0600 MDT m=+810.366049754] == [bid:Bid title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:54.583269582 -0600 MDT m=+811.955298323])
2019/06/14 13:48:56 true = ([bid:Bid title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:54.583269582 -0600 MDT m=+811.955298323] == [bid:$1,700 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:56.181033887 -0600 MDT m=+813.553062652])
2019/06/14 13:48:57 true = ([bid:$1,700 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:56.181033887 -0600 MDT m=+813.553062652] == [bid:$1,800 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:57.784934977 -0600 MDT m=+815.156963727])
2019/06/14 13:48:59 true = ([bid:$1,800 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:57.784934977 -0600 MDT m=+815.156963727] == [bid:$1,850 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:59.373646279 -0600 MDT m=+816.745675026])
2019/06/14 13:49:00 true = ([bid:$1,850 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:48:59.373646279 -0600 MDT m=+816.745675026] == [bid:$1,900 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:49:00.956853996 -0600 MDT m=+818.328882743])
2019/06/14 13:49:02 true = ([bid:$1,900 title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:49:00.956853996 -0600 MDT m=+818.328882743] == [bid:Bid title:2012 HONDA CIVIC EX watched:false images:4 when:2019-06-14 13:49:02.537892071 -0600 MDT m=+819.909920818])

View File

@ -0,0 +1 @@
5db6601131524cea2060b504d5bdacd46cd0be1c

42
main.go Normal file
View File

@ -0,0 +1,42 @@
package main
import (
"local/rssmon3/copart/config"
"local/rssmon3/copart/server"
"log"
"os"
"os/signal"
"syscall"
"time"
)
func main() {
log.SetPrefix("..")
time.Local = time.FixedZone("UTC-6", (-6*int(time.Hour))/int(time.Second))
sigc := make(chan os.Signal)
if err := config.New(); err != nil {
panic(err)
}
log.Println(config.Values())
s := server.New()
if err := s.Routes(); err != nil {
panic(err)
}
go func(c chan os.Signal) {
if err := s.Run(); err != nil {
log.Println(err)
}
c <- syscall.SIGINT
}(sigc)
signal.Notify(sigc,
syscall.SIGHUP,
syscall.SIGINT,
syscall.SIGTERM,
syscall.SIGQUIT,
)
<-sigc
config.Values().DB.Close()
}

BIN
server/.routes_test.go.swp Normal file

Binary file not shown.

21
server/new.go Normal file
View File

@ -0,0 +1,21 @@
package server
import (
"local/router"
"local/rssmon3/config"
"strings"
)
type Server struct {
Port string
router *router.Router
}
func New() *Server {
config := config.Values()
s := &Server{
Port: ":" + strings.TrimPrefix(config.Port, ":"),
router: router.New(),
}
return s
}

13
server/new_test.go Normal file
View File

@ -0,0 +1,13 @@
package server
import (
"local/rssmon3/config"
"os"
"testing"
)
func TestNew(t *testing.T) {
os.Setenv("DB", "MAP")
config.New()
New()
}

165
server/routes.go Normal file
View File

@ -0,0 +1,165 @@
package server
import (
"bytes"
"encoding/json"
"errors"
"fmt"
"io"
"local/router"
"local/rssmon3/config"
"local/sandbox/selenium/copart/copart/auction"
"local/storage"
"log"
"net/http"
"regexp"
"strings"
)
func (s *Server) Routes() error {
handles := []struct {
path string
handler http.HandlerFunc
}{
{path: fmt.Sprintf("/api/tag/%s", router.Wildcard), handler: s.tag},
}
for _, handle := range handles {
if err := s.router.Add(handle.path, handle.handler); err != nil {
return err
}
}
return nil
}
func (s *Server) notFound(w http.ResponseWriter, r *http.Request) {
http.NotFound(w, r)
return
}
func (s *Server) userError(w http.ResponseWriter, r *http.Request, err error) {
status := http.StatusBadRequest
log.Printf("%d: %v", status, err)
w.WriteHeader(status)
}
func (s *Server) error(w http.ResponseWriter, r *http.Request, err error) {
status := http.StatusInternalServerError
log.Printf("%d: %v", status, err)
w.WriteHeader(status)
}
func (s *Server) tag(w http.ResponseWriter, r *http.Request) {
foo := s.notFound
switch r.Method {
case "GET":
foo = s.getFeedByTag
}
foo(w, r)
}
func (s *Server) getFeedByTag(w http.ResponseWriter, r *http.Request) {
tag := regexp.MustCompile("^.*\\/").ReplaceAllString(r.URL.Path, "")
log.Println(tag)
s.error(w, r, errors.New("not impl"))
}
func (s *Server) auctions(w http.ResponseWriter, r *http.Request) {
foo := http.NotFound
r.ParseForm()
switch strings.ToLower(r.Method) {
case "get":
if len(r.Form) > 0 {
foo = s.query
} else {
foo = s.get
}
}
foo(w, r)
}
func (s *Server) get(w http.ResponseWriter, r *http.Request) {
db := config.Values().DB
if len(strings.Split(r.URL.Path, "/")) < 3 {
s.notFound(w, r)
return
}
key := strings.Split(r.URL.Path, "/")[2]
log.Println("GET", key)
value, err := db.Get(key)
if err == storage.ErrNotFound {
s.notFound(w, r)
return
}
if err != nil {
s.error(w, r, err)
return
}
io.Copy(w, bytes.NewBuffer(value))
}
func (s *Server) query(w http.ResponseWriter, r *http.Request) {
log.Println("QUERY", r.URL.Path)
list, err := s.list()
if err != nil {
s.error(w, r, err)
return
}
form := r.Form
for _, value := range form {
for _, chunk := range value {
iteration := []string{}
for _, name := range list {
if strings.Contains(strings.ToLower(name), strings.ToLower(chunk)) {
iteration = append(iteration, name)
}
}
list = iteration
}
}
if len(list) < 1 {
s.notFound(w, r)
return
}
carsJSON, err := s.gatherCarsTruncatedJSON(list)
if err != nil {
s.error(w, r, fmt.Errorf("gather cars(%v): %v", list, err))
return
}
w.Write(carsJSON)
}
func (s *Server) list() ([]string, error) {
db := config.Values().DB
list := []string{}
if b, err := db.Get("LIST"); err == storage.ErrNotFound {
list = []string{}
db.Set("LIST", []byte("[]"))
} else if err != nil {
return nil, fmt.Errorf("bad list in storage: %v", err)
} else if err := json.Unmarshal(b, &list); err != nil {
return nil, fmt.Errorf("bad list in storage: %v", err)
}
return list, nil
}
func (s *Server) gatherCarsTruncatedJSON(keys []string) ([]byte, error) {
cars := []*auction.Car{}
k := 0
for _, key := range keys {
k += 1
if k > 50 {
cars = append(cars, &auction.Car{Title: "Max results reached, please search more specifically"})
break
}
b, err := config.Values().DB.Get(key)
if err != nil {
return nil, err
}
c := auction.NewCar()
if err := c.Decode(b); err != nil {
return nil, err
}
cars = append(cars, c)
}
return json.Marshal(cars)
}

104
server/routes_test.go Normal file
View File

@ -0,0 +1,104 @@
package server
import (
"local/rssmon3/config"
"net/http"
"net/http/httptest"
"os"
"strings"
"testing"
)
var validNS = "ns"
var validKey = "key"
var validValue = "value"
func TestRoutes(t *testing.T) {
os.Setenv("DB", "MAP")
os.Args = []string{"nothing"}
if err := config.New(); err != nil {
t.Fatal(err)
}
s := New()
if err := s.Routes(); err != nil {
t.Fatalf("cannot routes(): %v", err)
}
cases := []struct {
path string
method string
status int
}{
{
path: "/api/tag",
method: "GET",
status: http.StatusNotFound,
},
{
path: "/api/tag/",
method: "GET",
status: http.StatusNotFound,
},
{
path: "/api/tag/key",
method: "GET",
status: http.StatusOK,
},
{
path: "/api/tag/key",
method: "POST",
status: http.StatusNotFound,
},
}
for i, c := range cases {
r, err := http.NewRequest(c.method, c.path, strings.NewReader(validValue))
if err != nil {
t.Fatalf("err making request: %v", err)
}
w := httptest.NewRecorder()
s.ServeHTTP(w, r)
if w.Code != c.status {
t.Errorf("[%d] wrong status for %q on %q: %v, want %v", i, c.method, c.path, w.Code, c.status)
}
}
}
func TestServerHandlersNotFound(t *testing.T) {
os.Args = []string{"a"}
config.New()
s := New()
w := httptest.NewRecorder()
r, _ := http.NewRequest("GET", "/", nil)
s.notFound(w, r)
if w.Code != http.StatusNotFound {
t.Error(w.Code)
}
}
func TestServerHandlers(t *testing.T) {
os.Args = []string{"a"}
config.New()
s := New()
cases := []struct {
foo func(http.ResponseWriter, *http.Request, error)
code int
}{
{
foo: s.userError,
code: http.StatusBadRequest,
},
{
foo: s.error,
code: http.StatusInternalServerError,
},
}
for _, c := range cases {
w := httptest.NewRecorder()
r, _ := http.NewRequest("GET", "/", nil)
c.foo(w, r, nil)
if w.Code != c.code {
t.Errorf("unexpected status: want %v, got %v", c.code, w.Code)
}
}
}

13
server/server.go Normal file
View File

@ -0,0 +1,13 @@
package server
import (
"net/http"
)
func (s *Server) Run() error {
return http.ListenAndServe(s.Port, s)
}
func (s *Server) ServeHTTP(w http.ResponseWriter, r *http.Request) {
s.router.ServeHTTP(w, r)
}

14
server/server_test.go Normal file
View File

@ -0,0 +1,14 @@
package server
import (
"local/rssmon3/config"
"testing"
"time"
)
func TestServerRun(t *testing.T) {
config.New()
s := New()
go s.Run()
time.Sleep(time.Millisecond * 100)
}