[
  {
    "path": ".gitignore",
    "content": "*.py[co]\n\n# Packages\n*.egg\n*.egg-info\ndist\nbuild\neggs\nparts\nbin\ndevelop-eggs\n.installed.cfg\n\n# Installer logs\npip-log.txt\n\n# Unit test / coverage reports\n.coverage\n.tox\nbro-pdns\nbro-pdns_linux_amd64\n"
  },
  {
    "path": ".travis.yml",
    "content": "language: go\n\ngo:\n  - \"1.16\"\n\nservices:\n  - postgresql\n  - docker\n\nenv:\n  - PG_TEST_URL=postgres://postgres:password@localhost/pdns_test?sslmode=disable\n  - CH_TEST_URL=tcp://localhost:9000/default\n\nbefore_script:\n  - psql -c 'create database pdns_test;' -U postgres\n  - docker run -d -p 127.0.0.1:9000:9000 -p 127.0.0.1:8123:8123 --name test-clickhouse-server --ulimit nofile=262144:262144 yandex/clickhouse-server\n"
  },
  {
    "path": "LICENSE",
    "content": "MIT License\n\nCopyright (c) 2022 Justin Azoff\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "Makefile",
    "content": "all: build test\nbuild:\n\tgo get -t -v ./...\n\tgo build\ntest:\n\tgo test -v ./...\nstatic:\n\tgo get -t -v ./...\n\tgo build --ldflags '-extldflags \"-static\"'\n\n.PHONY: rpm\nrpm: build\nrpm: VERSION=$(shell ./zeek-pdns version)\nrpm:\n\tfpm -f -s dir -t rpm -n zeek-pdns -v $(VERSION) \\\n\t--iteration=1 \\\n\t--architecture native \\\n\t--description \"Zeek Passive DNS\" \\\n\t./zeek-pdns=/usr/bin/\n"
  },
  {
    "path": "README.md",
    "content": "Passive DNS for Zeek\n===================\n\nThis is an extremely simple implementation of a passive DNS collection system\nthat utilizes Zeek for DNS log collection.\n\nPassive DNS collection can be used for various security or troubleshooting\npurposes.  Many queries to raw DNS logs can be done faster by using \nthe aggregated data in the passive DNS database, which is more compact.\n\nThis tool uses the Zeek DNS logs to build a database of unique query+type+answer\ntuples.\n\nIt produces a table like this:\n\n    pdns=# select * from dns where answer='74.125.225.18' order by last desc limit 4;\n          query       | type |    answer     | count | ttl |     first     |    last\n    ------------------+------+---------------+-------+-----+---------------+------------\n     www.google.com   | A    | 74.125.225.18 |  7517 | 198 | 2014-09-03 .. | 2014-10-30 ..\n     t0.gstatic.com   | A    | 74.125.225.18 |   266 | 300 | 2014-09-03 .. | 2014-10-30 ..\n     googlegroups.com | A    | 74.125.225.18 |   266 | 300 | 2014-09-03 .. | 2014-10-30 ..\n     t3.gstatic.com   | A    | 74.125.225.18 |   291 | 300 | 2014-09-03 .. | 2014-10-30 ..\n\nThis is helpful because the PTR record itself for 74.125.225.18 is ord08s12-in-f18.1e100.net.\n\nExamples of questions this database can answer faster than the raw logs:\n\n * Did anything ever resolve example.com, and if so, when was the first time?\n * What IPs has example.com resolved to?\n * What other names resolve to this IP?\n\nRequirements\n------------\n\n* go compiler ( to build )\n* postgresql ( optional )\n* clickhouse ( optional )\n\nBuild\n-----\n\n    $ go build\n\nIndex logs\n----------\n\n    # for postgresql\n    export PDNS_STORE_TYPE=\"postgresql\"\n    export PDNS_STORE_URI=\"postgres://pdns:foo@localhost/pdns?sslmode=disable\"\n\n    # for clickhouse\n    export PDNS_STORE_TYPE=\"clickhouse\"\n    export PDNS_STORE_URI=\"tcp://localhost:9000/?database=pdns\"\n\n    # for built in sqlite\n    export PDNS_STORE_TYPE=\"sqlite\"\n    export PDNS_STORE_URI=\"/path/to/passivedns.sqlite\"\n\n    # then finally index logs\n    find /usr/local/zeek/logs -name 'dns*' | sort -n | xargs -n 50 zeek-pdns index\n\nQuery Database\n--------------\n\n    # suffix search:\n    $ zeek-pdns like tuples google.com\n    $ zeek-pdns like individual google.com\n\n    # exact match\n    $ zeek-pdns find tuples google.com\n    $ zeek-pdns find individual google.com\n\nStart HTTP server\n-----------------\n\n    $ zeek-pdns web\n\nQuery HTTP API\n--------------\n\n    $ curl localhost:8080/dns/like/tuples/google.com\n    $ curl localhost:8080/dns/like/individual/google.com\n    $ curl localhost:8080/dns/find/tuples/google.com\n    $ curl localhost:8080/dns/find/individual/google.com\n"
  },
  {
    "path": "aggregate.go",
    "content": "package main\n\nimport (\n\t\"encoding/json\"\n\t\"errors\"\n\t\"io\"\n\t\"log\"\n\t\"strconv\"\n\t\"strings\"\n\t\"time\"\n\n\topendecompress \"github.com/JustinAzoff/go-opendecompress\"\n)\n\nvar MAX_SANE_VALUE_LEN = 1000\n\nfunc stripDecimal(value string) string {\n\tif value == \"-\" {\n\t\treturn \"0\"\n\t}\n\tidx := strings.Index(value, \".\")\n\tif idx == -1 {\n\t\treturn value\n\t}\n\treturn value[:idx]\n}\n\ntype DNSRecord struct {\n\tts      string\n\tquery   string\n\tqtype   string\n\tanswers []string\n\tttls    []string\n}\n\ntype uniqueTuple struct {\n\tquery  string\n\tanswer string\n\tqtype  string\n}\ntype uniqueIndividual struct {\n\tvalue string\n\twhich string // \"Q\" or \"A\"\n}\n\ntype queryStat struct {\n\tcount uint\n\tfirst string\n\tlast  string\n\tttl   string\n}\n\ntype aggregationResult struct {\n\tDuration       time.Duration\n\tTotalRecords   uint\n\tSkippedRecords uint\n\tTuples         []aggregatedTuple\n\tTuplesLen      int\n\tIndividual     []aggregatedIndividual\n\tIndividualLen  int\n}\n\ntype aggregatedTuple struct {\n\tuniqueTuple\n\tqueryStat\n}\ntype aggregatedIndividual struct {\n\tuniqueIndividual\n\tqueryStat\n}\n\ntype DNSAggregator struct {\n\tqueries        map[uniqueTuple]*queryStat\n\tvalues         map[uniqueIndividual]*queryStat\n\ttotalRecords   uint\n\tskippedRecords uint\n\tstart          time.Time\n}\n\nfunc NewDNSAggregator() *DNSAggregator {\n\tqueries := make(map[uniqueTuple]*queryStat)\n\tvalues := make(map[uniqueIndividual]*queryStat)\n\treturn &DNSAggregator{\n\t\tqueries: queries,\n\t\tvalues:  values,\n\t\tstart:   time.Now(),\n\t}\n}\nfunc (d *DNSAggregator) SkipRecord() {\n\td.skippedRecords++\n}\n\nfunc (d *DNSAggregator) AddRecord(r DNSRecord) {\n\tif len(r.query) > MAX_SANE_VALUE_LEN {\n\t\tlog.Printf(\"Skipping record with insane query length: %#v\\n\", r)\n\t\td.skippedRecords++\n\t\treturn\n\t}\n\tr.query = strings.TrimRight(r.query, \"\\u0000\")\n\tif strings.ContainsRune(r.query, '\\u0000') {\n\t\tlog.Printf(\"Skipping record with null byte in query: %#v\\n\", r)\n\t\td.skippedRecords++\n\t\treturn\n\t}\n\td.totalRecords++\n\tquery_value := uniqueIndividual{value: r.query, which: \"Q\"}\n\n\tarec := d.values[query_value]\n\tif arec == nil {\n\t\tarec = &queryStat{\n\t\t\tfirst: r.ts,\n\t\t\tlast:  r.ts,\n\t\t\tcount: 1,\n\t\t}\n\t\td.values[query_value] = arec\n\t} else {\n\t\tarec.count++\n\t\tarec.last = r.ts\n\t}\n\n\tfor idx, answer := range r.answers {\n\t\tif len(answer) > MAX_SANE_VALUE_LEN {\n\t\t\tlog.Printf(\"Skipping record with insane answer length: %#v\\n\", r)\n\t\t\td.skippedRecords++\n\t\t\treturn\n\t\t}\n\t\tif answer == \"-\" {\n\t\t\tcontinue\n\t\t}\n\t\tttl := stripDecimal(r.ttls[idx])\n\t\t//Validate that a ttl fits in a 32bit int\n\t\t_, err := strconv.ParseInt(ttl, 10, 32)\n\t\tif err != nil {\n\t\t\tlog.Printf(\"Skipping record with insane ttl: %#v\\n\", r)\n\t\t\td.skippedRecords++\n\t\t\treturn\n\t\t}\n\t\tif len(ttl) > 0 && ttl[0] == '-' {\n\t\t\tttl = \"0\"\n\t\t}\n\t\tuquery := uniqueTuple{\n\t\t\tquery:  r.query,\n\t\t\tanswer: answer,\n\t\t\tqtype:  r.qtype,\n\t\t}\n\t\trec := d.queries[uquery]\n\t\tif rec == nil {\n\t\t\trec = &queryStat{\n\t\t\t\tfirst: r.ts,\n\t\t\t\tlast:  r.ts,\n\t\t\t\tttl:   ttl,\n\t\t\t\tcount: 1,\n\t\t\t}\n\t\t\td.queries[uquery] = rec\n\t\t} else {\n\t\t\trec.count++\n\t\t\trec.last = r.ts\n\t\t\trec.ttl = ttl\n\t\t}\n\n\t\tanswer_value := uniqueIndividual{value: answer, which: \"A\"}\n\t\tarec := d.values[answer_value]\n\t\tif arec == nil {\n\t\t\tarec = &queryStat{\n\t\t\t\tfirst: r.ts,\n\t\t\t\tlast:  r.ts,\n\t\t\t\tttl:   ttl,\n\t\t\t\tcount: 1,\n\t\t\t}\n\t\t\td.values[answer_value] = arec\n\t\t} else {\n\t\t\tarec.count++\n\t\t\tarec.last = r.ts\n\t\t\tarec.ttl = ttl\n\t\t}\n\t}\n}\n\nfunc (d *DNSAggregator) GetResult() aggregationResult {\n\tvar result aggregationResult\n\tfor q, stat := range d.queries {\n\t\tagg := aggregatedTuple{\n\t\t\tuniqueTuple: q,\n\t\t\tqueryStat:   *stat,\n\t\t}\n\t\tresult.Tuples = append(result.Tuples, agg)\n\t}\n\tfor value, stat := range d.values {\n\t\tagg := aggregatedIndividual{\n\t\t\tuniqueIndividual: value,\n\t\t\tqueryStat:        *stat,\n\t\t}\n\t\tresult.Individual = append(result.Individual, agg)\n\t}\n\tresult.TotalRecords = d.totalRecords\n\tresult.SkippedRecords = d.skippedRecords\n\tresult.Duration = time.Since(d.start)\n\tresult.TuplesLen = len(result.Tuples)\n\tresult.IndividualLen = len(result.Individual)\n\treturn result\n\n}\n\n//timeCompare compares timestamps, doesn't care about subsecond\nfunc timeCompare(a, b string) int {\n\ta = stripDecimal(a)\n\tb = stripDecimal(b)\n\n\tif strings.Contains(a, \"-\") {\n\t\t//Formatted timestamps are the same length, and can just be\n\t\t//Compared as is\n\t\tif a < b {\n\t\t\treturn -1\n\t\t} else if a > b {\n\t\t\treturn 1\n\t\t} else {\n\t\t\treturn 0\n\t\t}\n\t} else {\n\t\tai, err := strconv.ParseInt(a, 10, 64)\n\t\tif err != nil {\n\t\t\tlog.Printf(\"Invalid timestamp: %v\", a)\n\t\t\treturn 0\n\t\t}\n\t\tbi, err := strconv.ParseInt(b, 10, 64)\n\t\tif err != nil {\n\t\t\tlog.Printf(\"Invalid timestamp: %v\", b)\n\t\t\treturn 0\n\t\t}\n\t\tif ai < bi {\n\t\t\treturn -1\n\t\t} else if ai > bi {\n\t\t\treturn 1\n\t\t} else {\n\t\t\treturn 0\n\t\t}\n\t}\n}\n\nfunc (d *DNSAggregator) Merge(other *DNSAggregator) {\n\tfor q, stat := range other.queries {\n\t\trec := d.queries[q]\n\t\tif rec == nil {\n\t\t\td.queries[q] = stat\n\t\t} else {\n\t\t\trec.count += stat.count\n\t\t\tif timeCompare(stat.first, rec.first) < 0 {\n\t\t\t\trec.first = stat.first\n\t\t\t}\n\t\t\tif timeCompare(stat.last, rec.last) > 0 {\n\t\t\t\trec.last = stat.last\n\t\t\t}\n\t\t\trec.ttl = stat.ttl\n\t\t}\n\t}\n\tfor q, stat := range other.values {\n\t\trec := d.values[q]\n\t\tif rec == nil {\n\t\t\td.values[q] = stat\n\t\t} else {\n\t\t\trec.count += stat.count\n\t\t\tif timeCompare(stat.first, rec.first) < 0 {\n\t\t\t\trec.first = stat.first\n\t\t\t}\n\t\t\tif timeCompare(stat.last, rec.last) > 0 {\n\t\t\t\trec.last = stat.last\n\t\t\t}\n\t\t\trec.ttl = stat.ttl\n\t\t}\n\t}\n\treturn\n}\n\nfunc aggregate(aggregator *DNSAggregator, fn string) error {\n\tf, err := opendecompress.Open(fn)\n\tif err != nil {\n\t\treturn err\n\t}\n\tdefer f.Close()\n\tbr, err := NewBroReader(f)\n\tif err != nil {\n\t\treturn err\n\t}\n\n\tfor {\n\t\trec, err := br.Next()\n\t\tif errors.Is(err, io.ErrUnexpectedEOF) {\n\t\t\tlog.Printf(\"Possible truncated file %s: %v\", fn, err)\n\t\t\tbreak\n\t\t}\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tif rec == nil {\n\t\t\tbreak\n\t\t}\n\t\tts := rec.GetTimestamp(\"ts\")\n\t\tquery := rec.GetString(\"query\")\n\t\tqtype_name := rec.GetString(\"qtype_name\")\n\t\tanswers := rec.GetStringList(\"answers\")\n\t\tttls := rec.GetStringList(\"TTLs\")\n\t\tif rec.Error() != nil {\n\t\t\tif rec.IsMissingFieldError() {\n\t\t\t\tlog.Printf(\"Skipping record with missing fields: %s\", rec)\n\t\t\t\taggregator.SkipRecord()\n\t\t\t\tcontinue\n\t\t\t} else {\n\t\t\t\treturn rec.Error()\n\t\t\t}\n\t\t}\n\t\tdns_record := DNSRecord{\n\t\t\tts:      ts,\n\t\t\tquery:   query,\n\t\t\tqtype:   qtype_name,\n\t\t\tanswers: answers,\n\t\t\tttls:    ttls,\n\t\t}\n\t\taggregator.AddRecord(dns_record)\n\t}\n\n\treturn nil\n}\n\nfunc (ar *aggregationResult) ShallowCopy() aggregationResult {\n\treturn aggregationResult{\n\t\tDuration:       ar.Duration,\n\t\tTotalRecords:   ar.TotalRecords,\n\t\tSkippedRecords: ar.SkippedRecords,\n\t\tTuplesLen:      ar.TuplesLen,\n\t\tIndividualLen:  ar.IndividualLen,\n\t}\n}\n\ntype JSONTuple struct {\n\tQuery  string `json:\"query\"`\n\tType   string `json:\"type\"`\n\tAnswer string `json:\"answer\"`\n\tTTL    string `json:\"ttl\"`\n\tCount  uint   `json:\"count\"`\n\tFirst  string `json:\"first\"`\n\tLast   string `json:\"last\"`\n}\n\nfunc (ar *aggregationResult) TupleJSONReader(reverseQuery bool) io.ReadCloser {\n\tpr, pw := io.Pipe()\n\n\tencoder := json.NewEncoder(pw)\n\tgo func() {\n\t\tdefer pw.Close()\n\t\tvar q string\n\t\tfor _, t := range ar.Tuples {\n\t\t\tif reverseQuery {\n\t\t\t\tq = Reverse(t.query)\n\t\t\t} else {\n\t\t\t\tq = t.query\n\t\t\t}\n\t\t\tv := JSONTuple{\n\t\t\t\tQuery:  q,\n\t\t\t\tType:   t.qtype,\n\t\t\t\tAnswer: t.answer,\n\t\t\t\tTTL:    t.ttl,\n\t\t\t\tCount:  t.count,\n\t\t\t\tFirst:  t.first,\n\t\t\t\tLast:   t.last,\n\t\t\t}\n\t\t\terr := encoder.Encode(v)\n\t\t\tif err != nil {\n\t\t\t\tpr.CloseWithError(err)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}()\n\treturn pr\n}\n\ntype JSONIndividual struct {\n\tValue string `json:\"value\"`\n\tWhich string `json:\"which\"`\n\tCount uint   `json:\"count\"`\n\tFirst string `json:\"first\"`\n\tLast  string `json:\"last\"`\n}\n\nfunc (ar *aggregationResult) IndividualJSONReader(reverseQuery bool) io.ReadCloser {\n\tpr, pw := io.Pipe()\n\n\tencoder := json.NewEncoder(pw)\n\tgo func() {\n\t\tdefer pw.Close()\n\t\tvar q string\n\t\tfor _, t := range ar.Individual {\n\t\t\tif t.which == \"Q\" && reverseQuery {\n\t\t\t\tq = Reverse(t.value)\n\t\t\t} else {\n\t\t\t\tq = t.value\n\t\t\t}\n\t\t\tv := JSONIndividual{\n\t\t\t\tValue: q,\n\t\t\t\tWhich: t.which,\n\t\t\t\tCount: t.count,\n\t\t\t\tFirst: t.first,\n\t\t\t\tLast:  t.last,\n\t\t\t}\n\t\t\terr := encoder.Encode(v)\n\t\t\tif err != nil {\n\t\t\t\tpr.CloseWithError(err)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\t}()\n\treturn pr\n}\n"
  },
  {
    "path": "aggregate_test.go",
    "content": "package main\n\nimport (\n\t\"fmt\"\n\t\"io/ioutil\"\n\t\"os\"\n\t\"sort\"\n\t\"testing\"\n)\n\ntype ByValue []aggregatedIndividual\n\nfunc (a ByValue) Len() int           { return len(a) }\nfunc (a ByValue) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }\nfunc (a ByValue) Less(i, j int) bool { return a[i].value < a[j].value }\n\ntype ByTuple []aggregatedTuple\n\nfunc (a ByTuple) Len() int           { return len(a) }\nfunc (a ByTuple) Swap(i, j int)      { a[i], a[j] = a[j], a[i] }\nfunc (a ByTuple) Less(i, j int) bool { return a[i].query+a[i].answer < a[j].query+a[j].answer }\n\nfunc ExampleAggregate() {\n\tag := NewDNSAggregator()\n\n\tag.AddRecord(DNSRecord{\n\t\tts:      \"10\",\n\t\tquery:   \"www.example.com\",\n\t\tqtype:   \"A\",\n\t\tanswers: []string{\"1.2.3.4\"},\n\t\tttls:    []string{\"300\"},\n\t})\n\tag.AddRecord(DNSRecord{\n\t\tts:      \"20\",\n\t\tquery:   \"www.example.com\",\n\t\tqtype:   \"A\",\n\t\tanswers: []string{\"1.2.3.4\"},\n\t\tttls:    []string{\"300\"},\n\t})\n\n\tres := ag.GetResult()\n\tsort.Sort(ByTuple(res.Tuples))\n\tsort.Sort(ByValue(res.Individual))\n\n\tfmt.Printf(\"Tuples:\\n\")\n\tfor _, r := range res.Tuples {\n\t\tfmt.Printf(\"%#v\\n\", r)\n\t}\n\tfmt.Printf(\"\\nIndividual:\\n\")\n\tfor _, r := range res.Individual {\n\t\tfmt.Printf(\"%#v\\n\", r)\n\t}\n\t// Output:\n\t//Tuples:\n\t//main.aggregatedTuple{uniqueTuple:main.uniqueTuple{query:\"www.example.com\", answer:\"1.2.3.4\", qtype:\"A\"}, queryStat:main.queryStat{count:0x2, first:\"10\", last:\"20\", ttl:\"300\"}}\n\t//\n\t//Individual:\n\t//main.aggregatedIndividual{uniqueIndividual:main.uniqueIndividual{value:\"1.2.3.4\", which:\"A\"}, queryStat:main.queryStat{count:0x2, first:\"10\", last:\"20\", ttl:\"300\"}}\n\t//main.aggregatedIndividual{uniqueIndividual:main.uniqueIndividual{value:\"www.example.com\", which:\"Q\"}, queryStat:main.queryStat{count:0x2, first:\"10\", last:\"20\", ttl:\"\"}}\n}\n\nfunc ExampleAggregateMerge() {\n\tag := NewDNSAggregator()\n\n\tag.AddRecord(DNSRecord{\n\t\tts:      \"10\",\n\t\tquery:   \"www.example.com\",\n\t\tqtype:   \"A\",\n\t\tanswers: []string{\"1.2.3.4\"},\n\t\tttls:    []string{\"300\"},\n\t})\n\tag.AddRecord(DNSRecord{\n\t\tts:      \"200\",\n\t\tquery:   \"www.example.com\",\n\t\tqtype:   \"A\",\n\t\tanswers: []string{\"1.2.3.4\"},\n\t\tttls:    []string{\"300\"},\n\t})\n\tag2 := NewDNSAggregator()\n\tag2.AddRecord(DNSRecord{\n\t\tts:      \"30\",\n\t\tquery:   \"www.example.com\",\n\t\tqtype:   \"A\",\n\t\tanswers: []string{\"1.2.3.4\"},\n\t\tttls:    []string{\"300\"},\n\t})\n\tag2.AddRecord(DNSRecord{\n\t\tts:      \"30\",\n\t\tquery:   \"www.example.com\",\n\t\tqtype:   \"A\",\n\t\tanswers: []string{\"1.2.3.5\"},\n\t\tttls:    []string{\"300\"},\n\t})\n\tag2.AddRecord(DNSRecord{\n\t\tts:      \"40\",\n\t\tquery:   \"www.example.com\",\n\t\tqtype:   \"A\",\n\t\tanswers: []string{\"1.2.3.5\"},\n\t\tttls:    []string{\"300\"},\n\t})\n\n\tag.Merge(ag2)\n\n\tres := ag.GetResult()\n\tsort.Sort(ByTuple(res.Tuples))\n\tsort.Sort(ByValue(res.Individual))\n\n\tfmt.Printf(\"Tuples:\\n\")\n\tfor _, r := range res.Tuples {\n\t\tfmt.Printf(\"%#v\\n\", r)\n\t}\n\tfmt.Printf(\"\\nIndividual:\\n\")\n\tfor _, r := range res.Individual {\n\t\tfmt.Printf(\"%#v\\n\", r)\n\t}\n\t// Output:\n\t//Tuples:\n\t//main.aggregatedTuple{uniqueTuple:main.uniqueTuple{query:\"www.example.com\", answer:\"1.2.3.4\", qtype:\"A\"}, queryStat:main.queryStat{count:0x3, first:\"10\", last:\"200\", ttl:\"300\"}}\n\t//main.aggregatedTuple{uniqueTuple:main.uniqueTuple{query:\"www.example.com\", answer:\"1.2.3.5\", qtype:\"A\"}, queryStat:main.queryStat{count:0x2, first:\"30\", last:\"40\", ttl:\"300\"}}\n\t//\n\t//Individual:\n\t//main.aggregatedIndividual{uniqueIndividual:main.uniqueIndividual{value:\"1.2.3.4\", which:\"A\"}, queryStat:main.queryStat{count:0x3, first:\"10\", last:\"200\", ttl:\"300\"}}\n\t//main.aggregatedIndividual{uniqueIndividual:main.uniqueIndividual{value:\"1.2.3.5\", which:\"A\"}, queryStat:main.queryStat{count:0x2, first:\"30\", last:\"40\", ttl:\"300\"}}\n\t//main.aggregatedIndividual{uniqueIndividual:main.uniqueIndividual{value:\"www.example.com\", which:\"Q\"}, queryStat:main.queryStat{count:0x5, first:\"10\", last:\"200\", ttl:\"\"}}\n\n}\n\nfunc BenchmarkAggregate(b *testing.B) {\n\taggregator := NewDNSAggregator()\n\tvar total uint\n\tfor i := 0; i < b.N; i++ {\n\t\terr := aggregate(aggregator, \"test_data/dns_json.log\")\n\t\tif err != nil {\n\t\t\tb.Fatal(err)\n\t\t}\n\t\taggregated := aggregator.GetResult()\n\t\ttotal += aggregated.TotalRecords\n\t}\n}\n\nfunc ExampleResultTupleJSONReader() {\n\tag := NewDNSAggregator()\n\n\tag.AddRecord(DNSRecord{\n\t\tts:      \"10\",\n\t\tquery:   \"www.example.com\",\n\t\tqtype:   \"A\",\n\t\tanswers: []string{\"1.2.3.4\"},\n\t\tttls:    []string{\"300\"},\n\t})\n\tag.AddRecord(DNSRecord{\n\t\tts:      \"20\",\n\t\tquery:   \"www.example.com\",\n\t\tqtype:   \"A\",\n\t\tanswers: []string{\"1.2.3.5\"},\n\t\tttls:    []string{\"300\"},\n\t})\n\n\tres := ag.GetResult()\n\tsort.Sort(ByTuple(res.Tuples))\n\treader := res.TupleJSONReader(false)\n\n\tbody, err := ioutil.ReadAll(reader)\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"%v\", err)\n\t}\n\tfmt.Printf(\"%s\", body)\n\t// Output:\n\t//{\"query\":\"www.example.com\",\"type\":\"A\",\"answer\":\"1.2.3.4\",\"ttl\":\"300\",\"count\":1,\"first\":\"10\",\"last\":\"10\"}\n\t//{\"query\":\"www.example.com\",\"type\":\"A\",\"answer\":\"1.2.3.5\",\"ttl\":\"300\",\"count\":1,\"first\":\"20\",\"last\":\"20\"}\n}\n\nfunc ExampleResultIndividualJSONReader() {\n\tag := NewDNSAggregator()\n\n\tag.AddRecord(DNSRecord{\n\t\tts:      \"10\",\n\t\tquery:   \"www.example.com\",\n\t\tqtype:   \"A\",\n\t\tanswers: []string{\"1.2.3.4\"},\n\t\tttls:    []string{\"300\"},\n\t})\n\tag.AddRecord(DNSRecord{\n\t\tts:      \"20\",\n\t\tquery:   \"www.example.com\",\n\t\tqtype:   \"A\",\n\t\tanswers: []string{\"1.2.3.5\"},\n\t\tttls:    []string{\"300\"},\n\t})\n\n\tres := ag.GetResult()\n\tsort.Sort(ByValue(res.Individual))\n\treader := res.IndividualJSONReader(false)\n\n\tbody, err := ioutil.ReadAll(reader)\n\tif err != nil {\n\t\tfmt.Fprintf(os.Stderr, \"%v\", err)\n\t}\n\tfmt.Printf(\"%s\", body)\n\t// Output:\n\t//{\"value\":\"1.2.3.4\",\"which\":\"A\",\"count\":1,\"first\":\"10\",\"last\":\"10\"}\n\t//{\"value\":\"1.2.3.5\",\"which\":\"A\",\"count\":1,\"first\":\"20\",\"last\":\"20\"}\n\t//{\"value\":\"www.example.com\",\"which\":\"Q\",\"count\":2,\"first\":\"10\",\"last\":\"20\"}\n}\n"
  },
  {
    "path": "dns-ans-query.bro",
    "content": "##! Add the peer to the connection logs.\n\nmodule DNS;\n\nexport {\n    redef record DNS::Info += {\n        ans_query: vector of string &optional &log;\n    };\n}\n\nevent dns_query_reply(c: connection, msg: dns_msg, query: string, qtype: count, qclass: count)\n{\n    if(!c?$dns)\n        return;\n\n    if(!c$dns?$ans_query)\n        c$dns$ans_query = vector();\n\n    c$dns$ans_query[|c$dns$ans_query|] = query;\n}\n"
  },
  {
    "path": "go.mod",
    "content": "module github.com/JustinAzoff/zeek-pdns\n\ngo 1.16\n\nrequire (\n\tgithub.com/ClickHouse/clickhouse-go v1.4.3\n\tgithub.com/JustinAzoff/go-opendecompress v0.0.0-20210404020920-ed787af23844\n\tgithub.com/buger/jsonparser v1.1.1\n\tgithub.com/gorilla/mux v1.7.3\n\tgithub.com/jmoiron/sqlx v1.2.0\n\tgithub.com/lib/pq v1.3.0\n\tgithub.com/mattn/go-sqlite3 v2.0.2+incompatible\n\tgithub.com/pkg/errors v0.9.1\n\tgithub.com/spf13/cobra v0.0.5\n\tgithub.com/spf13/viper v1.6.2\n\tgithub.com/stretchr/testify v1.7.0\n)\n"
  },
  {
    "path": "go.sum",
    "content": "cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw=\ngithub.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ=\ngithub.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU=\ngithub.com/ClickHouse/clickhouse-go v1.4.3 h1:iAFMa2UrQdR5bHJ2/yaSLffZkxpcOYQMCUuKeNXGdqc=\ngithub.com/ClickHouse/clickhouse-go v1.4.3/go.mod h1:EaI/sW7Azgz9UATzd5ZdZHRUhHgv5+JMS9NSr2smCJI=\ngithub.com/JustinAzoff/go-opendecompress v0.0.0-20210404020920-ed787af23844 h1:dozqygFyq+gPF1qHj5BXtUwap2ZWNYkXv5SOBn2re7o=\ngithub.com/JustinAzoff/go-opendecompress v0.0.0-20210404020920-ed787af23844/go.mod h1:HhAjXnUSLm0cIlX5FnaucNpSOkh/u1CFjRpZsy5TLTA=\ngithub.com/OneOfOne/xxhash v1.2.2/go.mod h1:HSdplMjZKSmBqAxg5vPj2TmRDmfkzw+cTzAElWljhcU=\ngithub.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc=\ngithub.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0=\ngithub.com/armon/consul-api v0.0.0-20180202201655-eb2c6b5be1b6/go.mod h1:grANhF5doyWs3UAsr3K4I6qtAmlQcZDesFNEHPZAzj8=\ngithub.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=\ngithub.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=\ngithub.com/bkaradzic/go-lz4 v1.0.0 h1:RXc4wYsyz985CkXXeX04y4VnZFGG8Rd43pRaHsOXAKk=\ngithub.com/bkaradzic/go-lz4 v1.0.0/go.mod h1:0YdlkowM3VswSROI7qDxhRvJ3sLhlFrRRwjwegp5jy4=\ngithub.com/buger/jsonparser v1.1.1 h1:2PnMjfWD7wBILjqQbt530v576A/cAbQvEW9gGIpYMUs=\ngithub.com/buger/jsonparser v1.1.1/go.mod h1:6RYKKt7H4d4+iWqouImQ9R2FZql3VbhNgx27UK13J/0=\ngithub.com/cespare/xxhash v1.1.0/go.mod h1:XrSqR1VqqWfGrhpAt58auRo0WTKS1nRRg3ghfAqPWnc=\ngithub.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw=\ngithub.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58 h1:F1EaeKL/ta07PY/k9Os/UFtwERei2/XzGemhpGnBKNg=\ngithub.com/cloudflare/golz4 v0.0.0-20150217214814-ef862a3cdc58/go.mod h1:EOBUe0h4xcZ5GoxqC5SDxFQ8gwyZPKQoEzownBlhI80=\ngithub.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=\ngithub.com/coreos/etcd v3.3.10+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=\ngithub.com/coreos/go-etcd v2.0.0+incompatible/go.mod h1:Jez6KQU2B/sWsbdaef3ED8NzMklzPG4d5KIOhIy30Tk=\ngithub.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=\ngithub.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7vjVVG0kc13fIWeqUViNPyEJxv/OmvnBo0Yme4=\ngithub.com/coreos/pkg v0.0.0-20180928190104-399ea9e2e55f/go.mod h1:E3G3o1h8I7cfcXa63jLwjI0eiQQMgzzUDFVpN/nH/eA=\ngithub.com/cpuguy83/go-md2man v1.0.10/go.mod h1:SmD6nW6nTyfqj6ABTjUi3V3JVMnlJmwcJI5acqYI6dE=\ngithub.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=\ngithub.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=\ngithub.com/dgrijalva/jwt-go v3.2.0+incompatible/go.mod h1:E3ru+11k8xSBh+hMPgOLZmtrrCbhqsmaPHjLKYnJCaQ=\ngithub.com/dgryski/go-sip13 v0.0.0-20181026042036-e10d5fee7954/go.mod h1:vAd38F8PWV+bWy6jNmig1y/TA+kYO4g3RSRF0IAv0no=\ngithub.com/fsnotify/fsnotify v1.4.7 h1:IXs+QLmnXW2CcXuY+8Mzv/fWEsPGWxqefPtCP5CnV9I=\ngithub.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=\ngithub.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04=\ngithub.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as=\ngithub.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE=\ngithub.com/go-logfmt/logfmt v0.4.0/go.mod h1:3RMwSq7FuexP4Kalkev3ejPJsZTpXXBr9+V4qmtdjCk=\ngithub.com/go-sql-driver/mysql v1.4.0 h1:7LxgVwFb2hIQtMm87NdgAVfXjnt4OePseqT1tKx+opk=\ngithub.com/go-sql-driver/mysql v1.4.0/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=\ngithub.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY=\ngithub.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ=\ngithub.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4=\ngithub.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q=\ngithub.com/golang/groupcache v0.0.0-20190129154638-5b532d6fd5ef/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=\ngithub.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A=\ngithub.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=\ngithub.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ=\ngithub.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M=\ngithub.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1 h1:EGx4pi6eqNxGaHF6qqu48+N2wcFQ5qg5FXgOdqsJ5d8=\ngithub.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY=\ngithub.com/gorilla/mux v1.7.3 h1:gnP5JzjVOuiZD07fKKToCAOjS0yOpj/qPETTXCCS6hw=\ngithub.com/gorilla/mux v1.7.3/go.mod h1:1lud6UwP+6orDFRuTfBEV8e9/aOM/c4fVVCaMa2zaAs=\ngithub.com/gorilla/websocket v1.4.0/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ=\ngithub.com/grpc-ecosystem/go-grpc-middleware v1.0.0/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs=\ngithub.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk=\ngithub.com/grpc-ecosystem/grpc-gateway v1.9.0/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY=\ngithub.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=\ngithub.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=\ngithub.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM=\ngithub.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8=\ngithub.com/jmoiron/sqlx v1.2.0 h1:41Ip0zITnmWNR/vHV+S4m+VoUivnWY5E4OJfLZjCJMA=\ngithub.com/jmoiron/sqlx v1.2.0/go.mod h1:1FEQNm3xlJgrMD+FBdI9+xvCksHtbpVBBw5dYhBSsks=\ngithub.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo=\ngithub.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo=\ngithub.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU=\ngithub.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w=\ngithub.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q=\ngithub.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=\ngithub.com/klauspost/compress v1.11.13 h1:eSvu8Tmq6j2psUJqJrLcWH6K3w5Dwc+qipbaA6eVEN4=\ngithub.com/klauspost/compress v1.11.13/go.mod h1:aoV0uJVorq1K+umq18yTdKaF57EivdYsUV+/s2qKfXs=\ngithub.com/klauspost/pgzip v1.2.5 h1:qnWYvvKqedOF2ulHpMG72XQol4ILEJ8k2wwRl/Km8oE=\ngithub.com/klauspost/pgzip v1.2.5/go.mod h1:Ch1tH69qFZu15pkjo5kYi6mth2Zzwzt50oCQKQE9RUs=\ngithub.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ=\ngithub.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc=\ngithub.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI=\ngithub.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo=\ngithub.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ=\ngithub.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE=\ngithub.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI=\ngithub.com/lib/pq v1.0.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=\ngithub.com/lib/pq v1.3.0 h1:/qkRGz8zljWiDcFvgpwUpwIAPu3r07TDvs3Rws+o/pU=\ngithub.com/lib/pq v1.3.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo=\ngithub.com/magiconair/properties v1.8.0/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=\ngithub.com/magiconair/properties v1.8.1 h1:ZC2Vc7/ZFkGmsVC9KvOjumD+G5lXy2RtTKyzRKO2BQ4=\ngithub.com/magiconair/properties v1.8.1/go.mod h1:PppfXfuXeibc/6YijjN8zIbojt8czPbwD3XqdrwzmxQ=\ngithub.com/mattn/go-sqlite3 v1.9.0/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=\ngithub.com/mattn/go-sqlite3 v2.0.2+incompatible h1:qzw9c2GNT8UFrgWNDhCTqRqYUSmu/Dav/9Z58LGpk7U=\ngithub.com/mattn/go-sqlite3 v2.0.2+incompatible/go.mod h1:FPy6KqzDD04eiIsT53CuJW3U88zkxoIYsOqkbpncsNc=\ngithub.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0=\ngithub.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0=\ngithub.com/mitchellh/mapstructure v1.1.2 h1:fmNYVwqnSfB9mZU6OS2O6GsXM+wcskZDuKQzvN1EDeE=\ngithub.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y=\ngithub.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U=\ngithub.com/oklog/ulid v1.3.1/go.mod h1:CirwcVhetQ6Lv90oh/F+FBtV6XMibvdAFo93nm5qn4U=\ngithub.com/pelletier/go-toml v1.2.0 h1:T5zMGML61Wp+FlcbWjRDT7yAxhJNAiPPLOFECq181zc=\ngithub.com/pelletier/go-toml v1.2.0/go.mod h1:5z9KED0ma1S8pY6P1sdut58dfprrGBbd/94hg7ilaic=\ngithub.com/pierrec/lz4 v2.0.5+incompatible h1:2xWsjqPFWcplujydGg4WmhC/6fZqK42wMM8aXeqhl0I=\ngithub.com/pierrec/lz4 v2.0.5+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY=\ngithub.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=\ngithub.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=\ngithub.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=\ngithub.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=\ngithub.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw=\ngithub.com/prometheus/client_golang v0.9.3/go.mod h1:/TN21ttK/J9q6uSwhBd54HahCDft0ttaMvbicHlPoso=\ngithub.com/prometheus/client_model v0.0.0-20180712105110-5c3871d89910/go.mod h1:MbSGuTsp3dbXC40dX6PRTWyKYBIrTGTE9sqQNg2J8bo=\ngithub.com/prometheus/client_model v0.0.0-20190129233127-fd36f4220a90/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA=\ngithub.com/prometheus/common v0.0.0-20181113130724-41aa239b4cce/go.mod h1:daVV7qP5qjZbuso7PdcryaAu0sAZbrN9i7WWcTMWvro=\ngithub.com/prometheus/common v0.4.0/go.mod h1:TNfzLD0ON7rHzMJeJkieUDPYmFC7Snx/y86RQel1bk4=\ngithub.com/prometheus/procfs v0.0.0-20181005140218-185b4288413d/go.mod h1:c3At6R/oaqEKCNdg8wHV1ftS6bRYblBhIjjI8uT2IGk=\ngithub.com/prometheus/procfs v0.0.0-20190507164030-5867b95ac084/go.mod h1:TjEm7ze935MbeOT/UhFTIMYKhuLP4wbCsTZCD3I8kEA=\ngithub.com/prometheus/tsdb v0.7.1/go.mod h1:qhTCs0VvXwvX/y3TZrWD7rabWM+ijKTux40TwIPHuXU=\ngithub.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg=\ngithub.com/russross/blackfriday v1.5.2/go.mod h1:JO/DiYxRf+HjHt06OyowR9PTA263kcR/rfWxYHBV53g=\ngithub.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo=\ngithub.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d h1:zE9ykElWQ6/NYmHa3jpm/yHnI4xSofP+UP6SpjHcSeM=\ngithub.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc=\ngithub.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s=\ngithub.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA=\ngithub.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM=\ngithub.com/spaolacci/murmur3 v0.0.0-20180118202830-f09979ecbc72/go.mod h1:JwIasOWyU6f++ZhiEuf87xNszmSA2myDM2Kzu9HwQUA=\ngithub.com/spf13/afero v1.1.2 h1:m8/z1t7/fwjysjQRYbP0RD+bUIF/8tJwPdEZsI83ACI=\ngithub.com/spf13/afero v1.1.2/go.mod h1:j4pytiNVoe2o6bmDsKpLACNPDBIoEAkihy7loJ1B0CQ=\ngithub.com/spf13/cast v1.3.0 h1:oget//CVOEoFewqQxwr0Ej5yjygnqGkvggSE/gB35Q8=\ngithub.com/spf13/cast v1.3.0/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE=\ngithub.com/spf13/cobra v0.0.5 h1:f0B+LkLX6DtmRH1isoNA9VTtNUK9K8xYd28JNNfOv/s=\ngithub.com/spf13/cobra v0.0.5/go.mod h1:3K3wKZymM7VvHMDS9+Akkh4K60UwM26emMESw8tLCHU=\ngithub.com/spf13/jwalterweatherman v1.0.0 h1:XHEdyB+EcvlqZamSM4ZOMGlc93t6AcsBEu9Gc1vn7yk=\ngithub.com/spf13/jwalterweatherman v1.0.0/go.mod h1:cQK4TGJAtQXfYWX+Ddv3mKDzgVb68N+wFjFa4jdeBTo=\ngithub.com/spf13/pflag v1.0.3 h1:zPAT6CGy6wXeQ7NtTnaTerfKOsV6V6F8agHXFiazDkg=\ngithub.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4=\ngithub.com/spf13/viper v1.3.2/go.mod h1:ZiWeW+zYFKm7srdB9IoDzzZXaJaI5eL9QjNiN/DMA2s=\ngithub.com/spf13/viper v1.6.2 h1:7aKfF+e8/k68gda3LOjo5RxiUqddoFxVq4BKBPrxk5E=\ngithub.com/spf13/viper v1.6.2/go.mod h1:t3iDnF5Jlj76alVNuyFBk5oUMCvsrkbvZK0WQdfDi5k=\ngithub.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=\ngithub.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs=\ngithub.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=\ngithub.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY=\ngithub.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=\ngithub.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s=\ngithub.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw=\ngithub.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U=\ngithub.com/ugorji/go v1.1.4/go.mod h1:uQMGLiO92mf5W77hV/PUCpI3pbzQx3CRekS0kk+RGrc=\ngithub.com/ugorji/go/codec v0.0.0-20181204163529-d75b2dcb6bc8/go.mod h1:VFNgLljTbGfSG7qAOspJ7OScBnGdDN/yBr0sguwnwf0=\ngithub.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU=\ngithub.com/xordataexchange/crypt v0.0.3-0.20170626215501-b2862e3d0a77/go.mod h1:aYKd//L2LvnjZzWKhF00oedf4jCCReLcmhLdhm1A27Q=\ngo.etcd.io/bbolt v1.3.2/go.mod h1:IbVyRI1SCnLcuJnV2u8VeU0CEYM7e686BmAb1XKL+uU=\ngo.uber.org/atomic v1.4.0/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE=\ngo.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0=\ngo.uber.org/zap v1.10.0/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q=\ngolang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20181203042331-505ab145d0a9/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4=\ngolang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=\ngolang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE=\ngolang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc=\ngolang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=\ngolang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=\ngolang.org/x/net v0.0.0-20190522155817-f3200d17e092/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=\ngolang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=\ngolang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=\ngolang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20181205085412-a5c9d58dba9a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a h1:1BGLXjeY4akVXGgbC9HugT3Jv3hCI0z56oJR5vAMgBU=\ngolang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=\ngolang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg=\ngolang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=\ngolang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ=\ngolang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=\ngolang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngolang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs=\ngoogle.golang.org/appengine v1.1.0 h1:igQkv0AAhEIvTEpD5LIpAfav2eeVO9HBTjvKHVJPRSs=\ngoogle.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM=\ngoogle.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc=\ngoogle.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c=\ngoogle.golang.org/grpc v1.21.0/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM=\ngopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw=\ngopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY=\ngopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=\ngopkg.in/ini.v1 v1.51.0 h1:AQvPpx3LzTDM0AjnIRlVFwFFGC+npRopjZxLJj6gdno=\ngopkg.in/ini.v1 v1.51.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=\ngopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=\ngopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74=\ngopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v2 v2.2.4 h1:/eiJrUcujPVeJ3xlSWaiNi3uSVmDGBK1pDHUHAnao1I=\ngopkg.in/yaml.v2 v2.2.4/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=\ngopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo=\ngopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=\nhonnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4=\n"
  },
  {
    "path": "index.go",
    "content": "package main\n\nimport (\n\t\"fmt\"\n\t\"log\"\n)\n\nfunc index(store Store, filenames []string) error {\n\tvar didWork bool\n\tstore.Begin()\n\taggregator := NewDNSAggregator()\n\tvar emptyStoreResult UpdateResult\n\taggMap := make(map[string]aggregationResult)\n\tfor _, fn := range filenames {\n\t\tindexed, err := store.IsLogIndexed(fn)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"store.IsLogIndexed: %w\", err)\n\t\t}\n\t\tif indexed {\n\t\t\tlog.Printf(\"%s: Already indexed\", fn)\n\t\t\tcontinue\n\t\t}\n\n\t\tfileAgg := NewDNSAggregator()\n\t\terr = aggregate(fileAgg, fn)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"Error Aggregating %s: %w\", fn, err)\n\t\t}\n\t\taggregator.Merge(fileAgg)\n\t\taggregated := fileAgg.GetResult()\n\t\tlog.Printf(\"%s: Aggregation: Duration=%0.1f TotalRecords=%d SkippedRecords=%d Tuples=%d Individual=%d\",\n\t\t\tfn,\n\t\t\taggregated.Duration.Seconds(),\n\t\t\taggregated.TotalRecords,\n\t\t\taggregated.SkippedRecords,\n\t\t\taggregated.TuplesLen,\n\t\t\taggregated.IndividualLen,\n\t\t)\n\t\taggMap[fn] = aggregated.ShallowCopy()\n\t\tdidWork = true\n\t}\n\tif !didWork {\n\t\treturn nil\n\t\t//TODO: rollback transaction\n\t}\n\taggregated := aggregator.GetResult()\n\tresult, err := store.Update(aggregated)\n\tif err != nil {\n\t\treturn fmt.Errorf(\"store.Update: %w\", err)\n\t}\n\tlog.Printf(\"batch: Store: Duration=%0.1f Inserted=%d Updated=%d\", result.Duration.Seconds(), result.Inserted, result.Updated)\n\tfor fn, aggregated := range aggMap {\n\t\terr = store.SetLogIndexed(fn, aggregated, emptyStoreResult)\n\t\tif err != nil {\n\t\t\treturn fmt.Errorf(\"store.SetLogIndexed: %w\", err)\n\t\t}\n\t}\n\terr = store.Commit()\n\tif err != nil {\n\t\treturn fmt.Errorf(\"store.Commit: %w\", err)\n\t}\n\treturn nil\n}\n"
  },
  {
    "path": "local_test.txt",
    "content": "docker run --rm -t -i -p 5432:5432 -e POSTGRES_DB=pdns_test -e POSTGRES_PASSWORD=pdns postgres\nPG_TEST_URL=\"postgres://postgres:password@$(docker-machine ip)/pdns_test?sslmode=disable\"  go test -v\n"
  },
  {
    "path": "main.go",
    "content": "package main\n\nimport (\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\n\t\"github.com/spf13/cobra\"\n\t\"github.com/spf13/viper\"\n)\n\nfunc getStore() Store {\n\tstoreType := viper.GetString(\"store.type\")\n\tstoreUri := viper.GetString(\"store.uri\")\n\tmystore, err := NewStore(storeType, storeUri)\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\treturn mystore\n}\n\nvar RootCmd = &cobra.Command{\n\tUse:   \"zeek-pdns\",\n\tShort: \"Passive DNS Collection for BRO\",\n\tRun:   nil,\n}\n\nvar IndexCmd = &cobra.Command{\n\tUse:   \"index\",\n\tShort: \"Index one or more dns log files\",\n\tRun: func(cmd *cobra.Command, args []string) {\n\t\tmystore := getStore()\n\t\terr := index(mystore, args)\n\t\tif err != nil {\n\t\t\tlog.Fatal(err)\n\t\t}\n\t},\n}\n\nvar FindCmd = &cobra.Command{\n\tUse:   \"find\",\n\tShort: \"find records\",\n\tRun:   nil,\n}\nvar FindTupleCmd = &cobra.Command{\n\tUse:   \"tuples\",\n\tShort: \"find dns tuples\",\n\tRun: func(cmd *cobra.Command, args []string) {\n\t\tmystore := getStore()\n\n\t\tfor _, value := range args {\n\t\t\trecs, err := mystore.FindTuples(value)\n\t\t\tif err != nil {\n\t\t\t\tlog.Fatal(err)\n\t\t\t}\n\t\t\trecs.Display()\n\t\t}\n\t},\n}\n\nvar FindIndividualCmd = &cobra.Command{\n\tUse:   \"individual\",\n\tShort: \"find an individual dns value\",\n\tRun: func(cmd *cobra.Command, args []string) {\n\t\tmystore := getStore()\n\n\t\tfor _, value := range args {\n\t\t\trecs, err := mystore.FindIndividual(value)\n\t\t\tif err != nil {\n\t\t\t\tlog.Fatal(err)\n\t\t\t}\n\t\t\trecs.Display()\n\t\t}\n\t},\n}\nvar LikeCmd = &cobra.Command{\n\tUse:   \"like\",\n\tShort: \"find records like something\",\n\tRun:   nil,\n}\nvar LikeTupleCmd = &cobra.Command{\n\tUse:   \"tuples\",\n\tShort: \"find like dns tuples\",\n\tRun: func(cmd *cobra.Command, args []string) {\n\t\tmystore := getStore()\n\n\t\tfor _, value := range args {\n\t\t\trecs, err := mystore.LikeTuples(value)\n\t\t\tif err != nil {\n\t\t\t\tlog.Fatal(err)\n\t\t\t}\n\t\t\trecs.Display()\n\t\t}\n\t},\n}\n\nvar LikeIndividualCmd = &cobra.Command{\n\tUse:   \"individual\",\n\tShort: \"find like individual dns values\",\n\tRun: func(cmd *cobra.Command, args []string) {\n\t\tmystore := getStore()\n\n\t\tfor _, value := range args {\n\t\t\trecs, err := mystore.LikeIndividual(value)\n\t\t\tif err != nil {\n\t\t\t\tlog.Fatal(err)\n\t\t\t}\n\t\t\trecs.Display()\n\t\t}\n\t},\n}\n\nvar DeleteOldCmd = &cobra.Command{\n\tUse:   \"delete-old\",\n\tShort: \"delete old records\",\n\tRun: func(cmd *cobra.Command, args []string) {\n\t\tmystore := getStore()\n\t\tdays := viper.GetInt(\"deleteold.days\")\n\t\trows, err := mystore.DeleteOld(int64(days))\n\t\tif err != nil {\n\t\t\tlog.Fatal(err)\n\t\t}\n\t\tlog.Printf(\"Deleted %d records\", rows)\n\t},\n}\n\nvar WebCmd = &cobra.Command{\n\tUse:   \"web\",\n\tShort: \"start http API\",\n\tRun: func(cmd *cobra.Command, args []string) {\n\t\tmystore := getStore()\n\t\tbind := viper.GetString(\"http.listen\")\n\t\tstartWeb(mystore, bind)\n\t},\n}\n\nvar VersionCmd = &cobra.Command{\n\tUse:   \"version\",\n\tShort: \"Output version number\",\n\tRun: func(cmd *cobra.Command, args []string) {\n\t\tfmt.Println(VERSION)\n\t},\n}\n\nfunc init() {\n\tRootCmd.AddCommand(IndexCmd)\n\n\tRootCmd.AddCommand(FindCmd)\n\tFindCmd.AddCommand(FindIndividualCmd)\n\tFindCmd.AddCommand(FindTupleCmd)\n\n\tRootCmd.AddCommand(LikeCmd)\n\tLikeCmd.AddCommand(LikeIndividualCmd)\n\tLikeCmd.AddCommand(LikeTupleCmd)\n\n\tDeleteOldCmd.Flags().Int64(\"days\", 365, \"Age in days of records to be deleted\")\n\tviper.BindPFlag(\"deleteold.days\", DeleteOldCmd.Flags().Lookup(\"days\"))\n\tviper.BindEnv(\"deleteold.days\", \"PDNS_DELETE_OLD_DAYS\")\n\tRootCmd.AddCommand(DeleteOldCmd)\n\n\tWebCmd.Flags().String(\"listen\", \":8080\", \"Address to listen on\")\n\tviper.BindPFlag(\"http.listen\", WebCmd.Flags().Lookup(\"listen\"))\n\tviper.BindEnv(\"http.listen\", \"PDNS_HTTP_LISTEN\")\n\n\tRootCmd.AddCommand(WebCmd)\n\tRootCmd.AddCommand(VersionCmd)\n\n\tRootCmd.PersistentFlags().String(\"store\", \"sqlite\", \"Backend data store\")\n\tviper.BindPFlag(\"store.type\", RootCmd.PersistentFlags().Lookup(\"store\"))\n\tviper.BindEnv(\"store.type\", \"PDNS_STORE_TYPE\")\n\n\tRootCmd.PersistentFlags().String(\"uri\", \"db.sqlite\", \"Backend data store URI\")\n\tviper.BindPFlag(\"store.uri\", RootCmd.PersistentFlags().Lookup(\"uri\"))\n\tviper.BindEnv(\"store.uri\", \"PDNS_STORE_URI\")\n\n\tviper.AutomaticEnv()\n}\n\nfunc main() {\n\n\tif err := RootCmd.Execute(); err != nil {\n\t\tfmt.Println(err)\n\t\tos.Exit(-1)\n\t}\n\n}\n"
  },
  {
    "path": "read.go",
    "content": "package main\n\nimport (\n\t\"bufio\"\n\t\"fmt\"\n\t\"io\"\n)\n\ntype Reader interface {\n\tNext() (Record, error)\n}\n\ntype Record interface {\n\tString() string\n\tGetString(string) string\n\tGetTimestamp(string) string\n\tGetStringList(string) []string\n\tGetFloat(string) float64\n\tError() error\n\tIsMissingFieldError() bool\n}\n\nfunc NewBroReader(r io.Reader) (Reader, error) {\n\twrapped := bufio.NewReader(r)\n\tfirst_byte, err := wrapped.Peek(1)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tswitch first_byte[0] {\n\tcase '#':\n\t\treturn NewBroAsciiReader(wrapped), nil\n\tcase '{':\n\t\treturn NewBroJSONReader(wrapped), nil\n\tdefault:\n\t\treturn nil, fmt.Errorf(\"Unable to determine file type, first byte was %q\", first_byte)\n\t}\n}\n"
  },
  {
    "path": "read_ascii.go",
    "content": "package main\n\nimport (\n\t\"bufio\"\n\t\"encoding/hex\"\n\t\"fmt\"\n\t\"io\"\n\t\"log\"\n\t\"strconv\"\n\t\"strings\"\n)\n\nfunc grab_value(line string) string {\n\tval := strings.Split(line, \" \")[1]\n\treturn val\n}\n\nfunc extract_sep(line string) string {\n\tsep := grab_value(line)\n\tsepchar, err := hex.DecodeString(sep[2:])\n\tif err != nil {\n\t\tlog.Panic(err)\n\t}\n\treturn string(sepchar)\n}\n\ntype BroAsciiReader struct {\n\tr          io.Reader\n\tbr         *bufio.Reader\n\tsep        string\n\tfields     []string\n\tfieldsMap  map[string]int\n\ttypes      []string\n\ttimeFields map[int]bool\n\n\tnewHeaders bool\n}\n\ntype ASCIIRecord struct {\n\tline   *string\n\tcols   *[]string\n\tfields *map[string]int\n\terr    error\n}\n\nfunc (r *ASCIIRecord) String() string {\n\treturn *r.line\n}\n\nfunc (r *ASCIIRecord) GetString(field string) string {\n\tidx, ok := (*r.fields)[field]\n\tif !ok {\n\t\tr.err = fmt.Errorf(\"Invalid field %s\", field)\n\t\treturn \"\"\n\t}\n\treturn (*r.cols)[idx]\n}\nfunc (r *ASCIIRecord) GetTimestamp(field string) string {\n\treturn r.GetString(field)\n}\nfunc (r *ASCIIRecord) GetStringList(field string) []string {\n\traw := r.GetString(field)\n\tspl := strings.Split(raw, \",\")\n\treturn spl\n}\nfunc (r *ASCIIRecord) GetStringByIndex(index int) string {\n\treturn (*r.cols)[index]\n}\nfunc (r *ASCIIRecord) GetFloat(field string) float64 {\n\tidx, ok := (*r.fields)[field]\n\tif !ok {\n\t\tr.err = fmt.Errorf(\"Invalid field %s\", field)\n\t\treturn 0.0\n\t}\n\tval := (*r.cols)[idx]\n\tfl, err := strconv.ParseFloat(val, 64)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn fl\n}\nfunc (r *ASCIIRecord) GetFloatByIndex(index int) float64 {\n\tval := (*r.cols)[index]\n\tfl, err := strconv.ParseFloat(val, 64)\n\tif err != nil {\n\t\tpanic(err)\n\t}\n\treturn fl\n}\nfunc (r *ASCIIRecord) IsMissingFieldError() bool {\n\t//TODO: handle here or jsut skip in Next?\n\treturn false\n}\nfunc (r *ASCIIRecord) Error() error {\n\tif r.err != nil {\n\t\treturn fmt.Errorf(\"Error parsing %s: %w\", r, r.err)\n\t}\n\treturn nil\n}\n\nfunc (r *ASCIIRecord) GetFieldIndex(field string) int {\n\tidx, ok := (*r.fields)[field]\n\tif ok {\n\t\treturn idx\n\t}\n\tr.err = fmt.Errorf(\"Invalid field %s\", field)\n\treturn -1\n}\n\nfunc NewBroAsciiReader(r io.Reader) *BroAsciiReader {\n\tbr := bufio.NewReader(r)\n\ttf := make(map[int]bool)\n\treturn &BroAsciiReader{r: r, br: br, timeFields: tf}\n}\n\nfunc (b *BroAsciiReader) Next() (Record, error) {\n\tline, err := b.br.ReadString('\\n')\n\tif err == io.EOF {\n\t\treturn nil, nil\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tline = strings.Trim(line, \"\\n\")\n\tif strings.HasPrefix(line, \"#\") {\n\t\tb.handleHeader(line)\n\t\treturn b.Next()\n\t}\n\tparts := strings.Split(line, \"\\t\")\n\trec := ASCIIRecord{\n\t\tline:   &line,\n\t\tcols:   &parts,\n\t\tfields: &b.fieldsMap,\n\t}\n\treturn &rec, nil\n}\n\nfunc (b *BroAsciiReader) handleHeader(line string) error {\n\tb.newHeaders = true\n\tif strings.HasPrefix(line, \"#separator\") {\n\t\tb.sep = extract_sep(line)\n\t} else if strings.HasPrefix(line, \"#fields\") {\n\t\tb.fields = strings.Split(line, \"\\t\")[1:]\n\t\tb.fieldsMap = make(map[string]int)\n\t\tfor idx, f := range b.fields {\n\t\t\tb.fieldsMap[f] = idx\n\t\t}\n\t} else if strings.HasPrefix(line, \"#types\") {\n\t\tb.types = strings.Split(line, \"\\t\")[1:]\n\t\tfor idx, typ := range b.types {\n\t\t\tif typ == \"time\" {\n\t\t\t\tb.timeFields[idx] = true\n\t\t\t}\n\t\t}\n\t}\n\treturn nil\n}\nfunc (b *BroAsciiReader) HeadersChanged() bool {\n\treturn b.newHeaders\n}\nfunc (b *BroAsciiReader) HandledHeaders() {\n\tb.newHeaders = false\n}\n"
  },
  {
    "path": "read_json.go",
    "content": "package main\n\nimport (\n\t\"bufio\"\n\t\"fmt\"\n\t\"io\"\n\t\"strings\"\n\n\t\"github.com/buger/jsonparser\"\n)\n\ntype BroJSONReader struct {\n\tr *bufio.Reader\n}\n\ntype JSONRecord struct {\n\tline []byte\n\terr  error\n}\n\nfunc (r *JSONRecord) String() string {\n\treturn strings.Trim(string(r.line), \"\\n\")\n}\n\nfunc (r *JSONRecord) GetString(field string) string {\n\tval, err := jsonparser.GetString(r.line, field)\n\tr.err = err\n\treturn val\n}\nfunc (r *JSONRecord) GetStringList(field string) []string {\n\tvar strings []string\n\tjsonparser.ArrayEach(r.line, func(value []byte, dataType jsonparser.ValueType, offset int, err error) {\n\t\tstrings = append(strings, string(value))\n\t\tr.err = err\n\t}, field)\n\treturn strings\n}\nfunc (r *JSONRecord) GetFloat(field string) float64 {\n\tval, err := jsonparser.GetFloat(r.line, field)\n\tr.err = err\n\treturn val\n}\n\nfunc (r *JSONRecord) IsMissingFieldError() bool {\n\treturn r.err == jsonparser.KeyPathNotFoundError\n}\n\nfunc (r *JSONRecord) Error() error {\n\tif r.err != nil {\n\t\treturn fmt.Errorf(\"Error parsing %s: %w\", r, r.err)\n\t}\n\treturn nil\n}\n\nfunc NewBroJSONReader(r *bufio.Reader) *BroJSONReader {\n\treturn &BroJSONReader{r: r}\n}\n\nfunc (b *BroJSONReader) Next() (Record, error) {\n\tline, err := b.r.ReadBytes('\\n')\n\tif err == io.EOF {\n\t\treturn nil, nil\n\t}\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\trec := JSONRecord{\n\t\tline: line,\n\t}\n\treturn &rec, nil\n}\n\n//GetTimestamp tries to get a field that may be a String or a float64\n//Yes, this is terrible, but supporting both timestamps and iso8601 at the same\n//time is tricky\n//TODO: use a struct type that is a string or float and can be lazy evaluated\n//for sorting and for final representation when being upserted\nfunc (r *JSONRecord) GetTimestamp(field string) string {\n\tval, err := jsonparser.GetString(r.line, field)\n\tif err == nil {\n\t\treturn val\n\t}\n\tfval, err := jsonparser.GetFloat(r.line, field)\n\tr.err = err\n\treturn fmt.Sprintf(\"%f\", fval)\n}\n"
  },
  {
    "path": "read_test.go",
    "content": "package main\n\nimport (\n\t\"testing\"\n)\n\nfunc BenchmarkReadASCII(b *testing.B) {\n\tfor i := 0; i < b.N; i++ {\n\t\tfn := \"test_data/reddit_dns_2016-04-01.log\"\n\t\taggregator := NewDNSAggregator()\n\t\taggregate(aggregator, fn)\n\t}\n}\nfunc BenchmarkReadJSON(b *testing.B) {\n\tfor i := 0; i < b.N; i++ {\n\t\tfn := \"test_data/dns_json.log\"\n\t\taggregator := NewDNSAggregator()\n\t\taggregate(aggregator, fn)\n\t}\n}\n"
  },
  {
    "path": "store.go",
    "content": "package main\n\nimport (\n\t\"errors\"\n\t\"fmt\"\n\t\"strings\"\n\t\"time\"\n\t\"log\"\n)\n\ntype Store interface {\n\tInit() error\n\tClear() error\n\tBegin() error\n\tCommit() error\n\tIsLogIndexed(filename string) (bool, error)\n\tSetLogIndexed(filename string, ar aggregationResult, ur UpdateResult) error\n\tUpdate(aggregationResult) (UpdateResult, error)\n\tFindQueryTuples(query string) (tupleResults, error)\n\tFindTuples(query string) (tupleResults, error)\n\tFindIndividual(value string) (individualResults, error)\n\tLikeTuples(query string) (tupleResults, error)\n\tLikeIndividual(value string) (individualResults, error)\n\tDeleteOld(days int64) (int64, error)\n\tClose() error\n}\n\ntype tupleResult struct {\n\tQuery  string\n\tType   string\n\tAnswer string\n\tCount  uint\n\tTTL    uint\n\tFirst  string\n\tLast   string\n}\n\ntype tupleResults []tupleResult\n\nfunc (tr tupleResults) Display() {\n\tif len(tr) == 0 {\n\t\treturn\n\t}\n\theader := []string{\"Query\", \"Type\", \"Answer\", \"Count\", \"TTL\", \"First\", \"Last\"}\n\tfmt.Println(strings.Join(header, \"\\t\"))\n\tfor _, rec := range tr {\n\t\tfmt.Println(rec)\n\t}\n}\nfunc (tr tupleResult) String() string {\n\tcount := fmt.Sprintf(\"%d\", tr.Count)\n\tttl := fmt.Sprintf(\"%d\", tr.TTL)\n\ts := []string{tr.Query, tr.Type, tr.Answer, count, ttl, tr.First, tr.Last}\n\treturn strings.Join(s, \"\\t\")\n}\n\ntype individualResult struct {\n\tValue string\n\tWhich string\n\tCount uint\n\tFirst string\n\tLast  string\n}\ntype individualResults []individualResult\n\nfunc (ir individualResults) Display() {\n\tif len(ir) == 0 {\n\t\treturn\n\t}\n\theader := []string{\"Value\", \"Which\", \"Count\", \"First\", \"Last\"}\n\tfmt.Println(strings.Join(header, \"\\t\"))\n\tfor _, rec := range ir {\n\t\tfmt.Println(rec)\n\t}\n}\nfunc (ir individualResult) String() string {\n\tcount := fmt.Sprintf(\"%d\", ir.Count)\n\ts := []string{ir.Value, ir.Which, count, ir.First, ir.Last}\n\treturn strings.Join(s, \"\\t\")\n}\n\ntype UpdateResult struct {\n\tInserted uint\n\tUpdated  uint\n\tDuration time.Duration\n}\n\nvar storeFactories = map[string]func(string) (Store, error){\n\t\"clickhouse\": NewCHStore,\n\t\"sqlite\":     NewSQLiteStore,\n\t\"postgresql\": NewPGStore,\n}\n\nfunc NewStore(storeType string, filename string) (Store, error) {\n\tstoreFactory, ok := storeFactories[storeType]\n\tif !ok {\n\t\treturn nil, errors.New(\"Invalid store type\")\n\t}\n\ts, err := storeFactory(filename)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = s.Init()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\treturn s, err\n}\n\n//ToTS ensures a string is a unix timestamp\n//Yes, this is terrible, but supporting both timestamps and iso8601 at the same\n//time is tricky\nfunc ToTS(t string) string {\n\t//If it doesn't have a dash, it should be a unix timestamp already\n\tif !strings.Contains(t, \"-\") {\n\t\treturn t\n\t}\n\tparsed, err := time.Parse(time.RFC3339, t)\n\tif err != nil {\n\t\tlog.Fatalf(\"Unparsable timestamp, don't know what to do here: %v\", t)\n\t}\n\treturn fmt.Sprintf(\"%d\", parsed.Unix())\n}\n"
  },
  {
    "path": "store_clickhouse.go",
    "content": "package main\n\nimport (\n\t\"database/sql\"\n\t\"fmt\"\n\t\"net/url\"\n\t\"time\"\n\n\t_ \"github.com/ClickHouse/clickhouse-go\"\n\t\"github.com/jmoiron/sqlx\"\n)\n\nvar chschema = []string{\n\t`\nCREATE TABLE IF NOT EXISTS tuples (\n    whatever Date DEFAULT '2000-01-01',\n    query String,\n    type String,\n    answer String,\n    ttl AggregateFunction(anyLast, UInt16),\n    first AggregateFunction(min, DateTime),\n    last AggregateFunction(max, DateTime),\n    count AggregateFunction(sum, UInt64)\n  ) ENGINE = AggregatingMergeTree(whatever, (query, type, answer), 8192);\n`,\n\n\t`\nCREATE TABLE IF NOT EXISTS individual (\n    whatever Date DEFAULT '2000-01-01',\n    which Enum8('Q'=0, 'A'=1),\n    value String,\n    first AggregateFunction(min, DateTime),\n    last AggregateFunction(max, DateTime),\n    count AggregateFunction(sum, UInt64)\n  ) ENGINE = AggregatingMergeTree(whatever, (which, value), 8192);\n`,\n\t`\nCREATE TABLE IF NOT EXISTS filenames (\n\tday Date DEFAULT toDate(ts),\n\tts DateTime DEFAULT now(),\n\tfilename String,\n\taggregation_time Float64,\n\ttotal_records UInt64,\n\tskipped_records UInt64,\n\ttuples UInt64,\n\tindividual UInt64,\n\tstore_time Float64,\n\tinserted UInt64,\n\tupdated UInt64\n  ) ENGINE = MergeTree(day, (filename), 8192);\n`}\n\nconst tuples_temp_stmt = `\nCREATE TEMPORARY TABLE tuples_temp (\n    query String,\n    type String,\n    answer String,\n    ttl String,\n    first String,\n    last String,\n    count UInt64\n) ENGINE = Memory`\n\nconst individual_temp_stmt = `\nCREATE TEMPORARY TABLE individual_temp (\n    which Enum8('Q'=0, 'A'=1),\n    value String,\n    first String,\n    last String,\n    count UInt64\n) ENGINE = Memory`\n\ntype CHStore struct {\n\tconn *sqlx.DB\n}\n\nfunc NewCHStore(uri string) (Store, error) {\n\t_, err := url.Parse(uri)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\tconn, err := sqlx.Open(\"clickhouse\", uri)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\terr = conn.Ping()\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\n\treturn &CHStore{\n\t\tconn: conn,\n\t}, nil\n}\n\nfunc (s *CHStore) Close() error {\n\treturn s.Close()\n}\nfunc (s *CHStore) Exec(stmt string) error {\n\t_, err := s.conn.Exec(stmt)\n\treturn err\n}\n\nfunc (s *CHStore) Init() error {\n\tfor _, stmt := range chschema {\n\t\terr := s.Exec(stmt)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\nfunc (s *CHStore) Clear() error {\n\tstmts := []string{\n\t\t\"drop table filenames\",\n\t\t\"drop table individual\",\n\t\t\"drop table tuples\",\n\t}\n\tfor _, stmt := range stmts {\n\t\terr := s.Exec(stmt)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t}\n\treturn nil\n}\n\nfunc (s *CHStore) Begin() error {\n\treturn fmt.Errorf(\"clickhouse doesn't support transactions\")\n}\nfunc (s *CHStore) Commit() error {\n\t//log.Printf(\"clickhouse doesn't support transactions\")\n\treturn nil\n}\n\n//DeleteOld Deletes records that haven't been seen in DAYS, returns the total records deleted\nfunc (s *CHStore) DeleteOld(days int64) (int64, error) {\n\treturn 0, fmt.Errorf(\"clickhouse doesn't support delete\")\n}\n\nfunc (s *CHStore) Update(ar aggregationResult) (UpdateResult, error) {\n\tvar result UpdateResult\n\tvar err error\n\tstart := time.Now()\n\n\ts.Exec(\"DROP TABLE tuples_temp\")\n\ts.Exec(\"DROP TABLE individual_temp\")\n\n\terr = s.Exec(tuples_temp_stmt)\n\tif err != nil {\n\t\treturn result, fmt.Errorf(\"CHStore.Update failed: %w\", err)\n\t}\n\terr = s.Exec(individual_temp_stmt)\n\tif err != nil {\n\t\treturn result, fmt.Errorf(\"CHStore.Update failed: %w\", err)\n\t}\n\n\ttx, err := s.conn.Begin()\n\tif err != nil {\n\t\treturn result, fmt.Errorf(\"CHStore.Update failed: %w\", err)\n\t}\n\tstmt, err := tx.Prepare(`INSERT INTO tuples_temp\n\t\t(query, type, answer, ttl, first, last, count)\n\t\tvalues (?,?,?,?,?,?,?)`,\n\t)\n\tif err != nil {\n\t\treturn result, fmt.Errorf(\"CHStore.Update failed: %w\", err)\n\t}\n\t// Ok, now let's update stuff\n\t// tuples\n\tfor _, q := range ar.Tuples {\n\t\t//Update the tuples table\n\t\tquery := Reverse(q.query)\n\t\t_, err := stmt.Exec(query, q.qtype, q.answer, q.ttl, ToTS(q.first), ToTS(q.last), uint64(q.count))\n\t\tif err != nil {\n\t\t\treturn result, fmt.Errorf(\"CHStore.Update failed to run query: %w\", err)\n\t\t}\n\t}\n\terr = tx.Commit()\n\tif err != nil {\n\t\treturn result, fmt.Errorf(\"CHStore.Update failed: %w\", err)\n\t}\n\terr = s.Exec(`INSERT INTO tuples (query, type, answer, ttl, first, last, count) SELECT\n\t\tquery, type, answer,\n\t\tanyLastState(toUInt16(ttl)),\n\t\tminState(toDateTime(toFloat64(first))),\n\t\tmaxState(toDateTime(toFloat64(last))),\n\t\tsumState(count) from tuples_temp group by query, type, answer`,\n\t)\n\tif err != nil {\n\t\treturn result, fmt.Errorf(\"CHStore.Update failed: %w\", err)\n\t}\n\n\ttx, err = s.conn.Begin()\n\tif err != nil {\n\t\treturn result, fmt.Errorf(\"CHStore.Update failed: %w\", err)\n\t}\n\t// Individuals\n\tstmt, err = tx.Prepare(`INSERT INTO individual_temp\n\t\t(value, which, first, last, count)\n\t\tvalues (?,?,?,?,?)`,\n\t)\n\tif err != nil {\n\t\treturn result, fmt.Errorf(\"CHStore.Update failed: %w\", err)\n\t}\n\tfor _, q := range ar.Individual {\n\t\t//Update the tuples table\n\t\tvalue := q.value\n\t\tif q.which == \"Q\" {\n\t\t\tvalue = Reverse(value)\n\t\t}\n\t\t_, err := stmt.Exec(value, q.which, ToTS(q.first), ToTS(q.last), uint64(q.count))\n\t\tif err != nil {\n\t\t\treturn result, fmt.Errorf(\"CHStore.Update failed to run query: %w\", err)\n\t\t}\n\t}\n\terr = tx.Commit()\n\tif err != nil {\n\t\treturn result, fmt.Errorf(\"CHStore.Update failed: %w\", err)\n\t}\n\terr = s.Exec(`INSERT INTO individual (which, value, first, last, count) SELECT which, value,\n\tminState(toDateTime(toFloat64(first))),\n\tmaxState(toDateTime(toFloat64(last))),\n\tsumState(count) from individual_temp group by which, value`)\n\tif err != nil {\n\t\treturn result, fmt.Errorf(\"CHStore.Update failed: %w\", err)\n\t}\n\n\tresult.Updated = uint(ar.TuplesLen + ar.IndividualLen)\n\tresult.Duration = time.Since(start)\n\treturn result, nil\n}\n\nfunc (s *CHStore) IsLogIndexed(filename string) (bool, error) {\n\tvar fn string\n\terr := s.conn.QueryRow(\"SELECT filename FROM filenames WHERE filename=?\", filename).Scan(&fn)\n\tswitch {\n\tcase err == sql.ErrNoRows:\n\t\treturn false, nil\n\tcase err != nil:\n\t\treturn false, err\n\tdefault:\n\t\treturn true, nil\n\t}\n}\nfunc (s *CHStore) SetLogIndexed(filename string, ar aggregationResult, ur UpdateResult) error {\n\ttx, _ := s.conn.Begin()\n\tq := `INSERT INTO filenames (filename,\n\t      aggregation_time, total_records, skipped_records, tuples, individual,\n\t      store_time, inserted, updated)\n\t      VALUES (?,?,?,?,?,?,?,?,?)`\n\t_, err := tx.Exec(q, filename,\n\t\tar.Duration.Seconds(), uint64(ar.TotalRecords), uint64(ar.SkippedRecords), len(ar.Tuples), len(ar.Individual),\n\t\tur.Duration.Seconds(), uint64(ur.Inserted), uint64(ur.Updated))\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn tx.Commit()\n}\n\nfunc (s *CHStore) FindQueryTuples(query string) (tupleResults, error) {\n\ttr := []tupleResult{}\n\tquery = Reverse(query)\n\terr := s.conn.Select(&tr, \"SELECT * FROM tuples WHERE query = ?\", query)\n\treverseQuery(tr)\n\treturn tr, err\n}\nfunc (s *CHStore) FindTuples(query string) (tupleResults, error) {\n\ttr := []tupleResult{}\n\trquery := Reverse(query)\n\terr := s.conn.Select(&tr, \"SELECT query, type, answer, anyLastMerge(ttl) as ttl, minMerge(first) as first, maxMerge(last) as last, sumMerge(count) as count from tuples WHERE query = ? OR answer = ? group by query, type, answer ORDER BY query, answer\", rquery, query)\n\treverseQuery(tr)\n\n\treturn tr, err\n}\nfunc (s *CHStore) LikeTuples(query string) (tupleResults, error) {\n\ttr := []tupleResult{}\n\trquery := Reverse(query)\n\terr := s.conn.Select(&tr, \"SELECT query, type, answer, anyLastMerge(ttl) as ttl, minMerge(first) as first, maxMerge(last) as last, sumMerge(count) as count from tuples WHERE query like ? OR answer like ? group by query, type, answer ORDER BY query, answer\", rquery+\"%\", query+\"%\")\n\treverseQuery(tr)\n\treturn tr, err\n}\nfunc (s *CHStore) FindIndividual(value string) (individualResults, error) {\n\trvalue := Reverse(value)\n\ttr := []individualResult{}\n\terr := s.conn.Select(&tr, `SELECT which, value, minMerge(first) as first, maxMerge(last) as last, sumMerge(count) as count from individual WHERE (which='A' AND value = ?) OR (which='Q' AND value = ?) group by which, value ORDER BY value`, value, rvalue)\n\treverseValue(tr)\n\treturn tr, err\n}\n\nfunc (s *CHStore) LikeIndividual(value string) (individualResults, error) {\n\trvalue := Reverse(value)\n\ttr := []individualResult{}\n\terr := s.conn.Select(&tr, `SELECT which, value, minMerge(first) as first, maxMerge(last) as last, sumMerge(count) as count from individual WHERE (which='A' AND value like ?) OR (which='Q' AND value like ?) group by which, value ORDER BY value`, value+\"%\", rvalue+\"%\")\n\treverseValue(tr)\n\treturn tr, err\n}\n"
  },
  {
    "path": "store_pg.go",
    "content": "package main\n\nimport (\n\t\"database/sql\"\n\t\"fmt\"\n\t\"log\"\n\t\"strings\"\n\t\"time\"\n\n\t\"github.com/jmoiron/sqlx\"\n\n\t\"github.com/lib/pq\"\n)\n\nconst pgschema = `\nset synchronous_commit to off;\nCREATE TABLE IF NOT EXISTS tuples (\n\tquery text,\n\ttype text,\n\tanswer text,\n\tcount bigint,\n\tttl integer,\n\tfirst timestamp,\n\tlast timestamp,\n\tPRIMARY KEY (query, type, answer)\n) ;\nCREATE INDEX tuples_query ON tuples(query varchar_pattern_ops);\nCREATE INDEX tuples_answer ON tuples(answer varchar_pattern_ops);\n-- CREATE INDEX tuples_first ON tuples(first);\n-- CREATE INDEX tuples_last ON tuples(last);\n\nCREATE TABLE IF NOT EXISTS individual (\n\twhich char(1),\n\tvalue text,\n\tcount bigint,\n\tfirst timestamp,\n\tlast timestamp,\n\tPRIMARY KEY (which, value)\n);\nCREATE INDEX individual_value ON individual(value varchar_pattern_ops);\n-- CREATE INDEX individual_first ON individual(first);\n-- CREATE INDEX individual_last ON individual(last);\n\nCREATE TABLE IF NOT EXISTS filenames (\n\tfilename text PRIMARY KEY UNIQUE NOT NULL,\n\ttime timestamp DEFAULT now(),\n\taggregation_time real,\n\ttotal_records int,\n\tskipped_records int,\n\ttuples int,\n\tindividual int,\n\tstore_time real,\n\tinserted int,\n\tupdated int\n);\nCREATE OR REPLACE FUNCTION update_individual(w char(1), v text, c integer,f timestamp,l timestamp) RETURNS CHAR(1) AS\n$$\nBEGIN\n    LOOP\n        -- first try to update the key\n        UPDATE individual SET count=count+c,\n        first=least(f, first),\n        last =greatest(l, last)\n        WHERE value=v AND which=w;\n        IF found THEN\n            RETURN 'U';\n        END IF;\n        -- not there, so try to insert the key\n        -- if someone else inserts the same key concurrently,\n        -- we could get a unique-key failure\n        BEGIN\n            INSERT INTO individual (value, which, count, first, last) VALUES (v,w,c,f,l);\n            RETURN 'I';\n        EXCEPTION WHEN unique_violation THEN\n            -- do nothing, and loop to try the UPDATE again\n        END;\n    END LOOP;\nEND;\n$$\nLANGUAGE plpgsql;\n\n\nCREATE OR REPLACE FUNCTION update_tuples(q text, ty text, a text, tt integer, c integer ,f timestamp,l timestamp) RETURNS CHAR(1) AS\n$$\nBEGIN\n    LOOP\n        -- first try to update the key\n        UPDATE tuples SET count=count+c,\n        ttl=tt,\n        first=least(f, first),\n        last =greatest(l, last)\n        WHERE query=q AND  type=ty AND answer=a;\n        IF found THEN\n            RETURN 'U';\n        END IF;\n        -- not there, so try to insert the key\n        -- if someone else inserts the same key concurrently,\n        -- we could get a unique-key failure\n        BEGIN\n            INSERT INTO tuples (query, type, answer, ttl, count, first, last) VALUES (q, ty, a, tt, c, f, l);\n            RETURN 'I';\n        EXCEPTION WHEN unique_violation THEN\n            -- do nothing, and loop to try the UPDATE again\n        END;\n    END LOOP;\nEND;\n$$\nLANGUAGE plpgsql;\n`\n\ntype PGStore struct {\n\tconn *sqlx.DB\n\t*SQLCommonStore\n}\n\nfunc NewPGStore(uri string) (Store, error) {\n\tconn, err := sqlx.Open(\"postgres\", uri)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcommon := &SQLCommonStore{conn: conn}\n\treturn &PGStore{conn: conn, SQLCommonStore: common}, nil\n}\n\nfunc (s *PGStore) Close() error {\n\treturn s.Close()\n}\n\nfunc (s *PGStore) Init() error {\n\t_, err := s.conn.Exec(pgschema)\n\t// Ignore a duplicte table error message\n\tif pqerr, ok := err.(*pq.Error); ok {\n\t\tif pqerr.Code == \"42P07\" {\n\t\t\treturn nil\n\t\t}\n\t}\n\n\treturn err\n}\n\nfunc genFullBatchSelect(tmpl string, batchSize int) string {\n\tvar queries []string\n\tnumParams := strings.Count(tmpl, \"$\")\n\targ := 1\n\tfor i := 0; i < batchSize; i++ {\n\t\tvar args []interface{}\n\t\tfor p := 0; p < numParams; p++ {\n\t\t\targs = append(args, arg)\n\t\t\targ++\n\t\t}\n\t\tqueries = append(queries, fmt.Sprintf(tmpl, args...))\n\t}\n\tfullq := fmt.Sprintf(\"SELECT %s\", strings.Join(queries, \" || \"))\n\treturn fullq\n}\n\nvar BATCHSIZE = 200\n\nfunc (s *PGStore) Update(ar aggregationResult) (UpdateResult, error) {\n\tvar result UpdateResult\n\tstart := time.Now()\n\n\ttx, err := s.BeginTx()\n\tif err != nil {\n\t\treturn result, err\n\t}\n\t//Setup the 2 different prepared statements\n\tupdateTupleTmpl := \"update_tuples($%d, $%d, $%d, $%d, $%d, to_timestamp($%d)::timestamp, to_timestamp($%d)::timestamp)\"\n\tupdateTupleBatch, err := tx.Prepare(genFullBatchSelect(updateTupleTmpl, BATCHSIZE))\n\tif err != nil {\n\t\treturn result, err\n\t}\n\tdefer updateTupleBatch.Close()\n\n\tupdateIndividualTmpl := \"update_individual($%d, $%d, $%d, to_timestamp($%d)::timestamp, to_timestamp($%d)::timestamp)\"\n\tupdateIndividualeBatch, err := tx.Prepare(genFullBatchSelect(updateIndividualTmpl, BATCHSIZE))\n\tif err != nil {\n\t\treturn result, err\n\t}\n\tdefer updateIndividualeBatch.Close()\n\n\tvar arguments []interface{}\n\tbatchCounter := 0\n\n\trunBatch := func(tmpl string, preparedBatch *sql.Stmt, arguments []interface{}, batchSize int) {\n\t\tif batchSize == 0 {\n\t\t\treturn\n\t\t}\n\t\tvar stmt *sql.Stmt\n\t\tif batchSize == BATCHSIZE {\n\t\t\tstmt = preparedBatch\n\t\t} else {\n\t\t\tstmt, err = tx.Prepare(genFullBatchSelect(tmpl, batchSize))\n\t\t\tdefer stmt.Close()\n\t\t}\n\t\tres, err := stmt.Query(arguments...)\n\t\t//log.Printf(\"Fullq is: %s\", fullq)\n\t\t//log.Printf(\"Arguments is: %#v\", arguments)\n\t\tif err != nil {\n\t\t\tlog.Fatal(err)\n\t\t}\n\t\tres.Next()\n\t\tvar update_result string\n\t\tres.Scan(&update_result)\n\t\tres.Close()\n\t\tfor _, ch := range update_result {\n\t\t\tif ch == 'I' {\n\t\t\t\tresult.Inserted++\n\t\t\t} else {\n\t\t\t\tresult.Updated++\n\t\t\t}\n\t\t}\n\t}\n\n\t// Ok, now let's update stuff\n\tfor _, q := range ar.Tuples {\n\t\t//Update the tuples table\n\t\tquery := Reverse(q.query)\n\t\targuments = append(arguments, query, q.qtype, q.answer, q.ttl, q.count, ToTS(q.first), ToTS(q.last))\n\t\tbatchCounter++\n\t\tif batchCounter == BATCHSIZE {\n\t\t\trunBatch(updateTupleTmpl, updateTupleBatch, arguments, batchCounter)\n\t\t\targuments = arguments[:0]\n\t\t\tbatchCounter = 0\n\t\t}\n\t}\n\trunBatch(updateTupleTmpl, updateTupleBatch, arguments, batchCounter)\n\targuments = arguments[:0]\n\tbatchCounter = 0\n\tfor _, q := range ar.Individual {\n\t\tvalue := q.value\n\t\tif q.which == \"Q\" {\n\t\t\tvalue = Reverse(value)\n\t\t}\n\t\targuments = append(arguments, q.which, value, q.count, ToTS(q.first), ToTS(q.last))\n\t\tbatchCounter++\n\t\tif batchCounter == BATCHSIZE {\n\t\t\trunBatch(updateIndividualTmpl, updateIndividualeBatch, arguments, batchCounter)\n\t\t\targuments = arguments[:0]\n\t\t\tbatchCounter = 0\n\t\t}\n\t}\n\trunBatch(updateIndividualTmpl, updateIndividualeBatch, arguments, batchCounter)\n\tresult.Duration = time.Since(start)\n\treturn result, s.Commit()\n}\n"
  },
  {
    "path": "store_sql_common.go",
    "content": "package main\n\nimport (\n\t\"database/sql\"\n\t\"errors\"\n\t\"time\"\n\n\t\"github.com/jmoiron/sqlx\"\n)\n\nfunc Reverse(s string) string {\n\trunes := []rune(s)\n\tfor i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {\n\t\trunes[i], runes[j] = runes[j], runes[i]\n\t}\n\treturn string(runes)\n}\n\ntype SQLCommonStore struct {\n\tconn    *sqlx.DB\n\ttx      *sql.Tx\n\ttxDepth int\n}\n\nfunc (s *SQLCommonStore) Clear() error {\n\t_, err := s.conn.Exec(\"DELETE FROM filenames;DELETE FROM individual;DELETE FROM tuples;\")\n\treturn err\n}\nfunc (s *SQLCommonStore) Begin() error {\n\t_, err := s.BeginTx()\n\treturn err\n}\n\nfunc (s *SQLCommonStore) BeginTx() (*sql.Tx, error) {\n\tif s.tx != nil {\n\t\ts.txDepth += 1\n\t\t//log.Printf(\"Returning existing transaction: depth=%d\\n\", s.txDepth)\n\t\treturn s.tx, nil\n\t}\n\t//log.Printf(\"new transaction\\n\")\n\ttx, err := s.conn.Begin()\n\tif err != nil {\n\t\treturn tx, err\n\t}\n\ts.tx = tx\n\ts.txDepth += 1\n\treturn s.tx, nil\n}\nfunc (s *SQLCommonStore) Commit() error {\n\tif s.tx == nil {\n\t\treturn errors.New(\"Commit outside of transaction\")\n\t}\n\ts.txDepth -= 1\n\tif s.txDepth > 0 {\n\t\t//log.Printf(\"Not commiting stacked transaction: depth=%d\\n\", s.txDepth)\n\t\treturn nil // No OP\n\t}\n\t//log.Printf(\"Commiting transaction: depth=%d\\n\", s.txDepth)\n\terr := s.tx.Commit()\n\ts.tx = nil\n\treturn err\n}\n\nfunc (s *SQLCommonStore) IsLogIndexed(filename string) (bool, error) {\n\ttx, err := s.BeginTx()\n\tif err != nil {\n\t\treturn false, err\n\t}\n\tdefer s.Commit()\n\tvar fn string\n\terr = tx.QueryRow(\"SELECT filename FROM filenames WHERE filename=$1\", filename).Scan(&fn)\n\tswitch {\n\tcase err == sql.ErrNoRows:\n\t\treturn false, nil\n\tcase err != nil:\n\t\treturn false, err\n\tdefault:\n\t\treturn true, nil\n\t}\n}\n\nfunc (s *SQLCommonStore) SetLogIndexed(filename string, ar aggregationResult, ur UpdateResult) error {\n\ttx, err := s.BeginTx()\n\tdefer s.Commit()\n\tif err != nil {\n\t\treturn err\n\t}\n\tq := `INSERT INTO filenames (filename,\n\t      aggregation_time, total_records, skipped_records, tuples, individual,\n\t      store_time, inserted, updated)\n\t      VALUES ($1,$2,$3,$4,$5,$6,$7,$8,$9)`\n\t_, err = tx.Exec(q, filename,\n\t\tar.Duration.Seconds(), ar.TotalRecords, ar.SkippedRecords, ar.TuplesLen, ar.IndividualLen,\n\t\tur.Duration.Seconds(), ur.Inserted, ur.Updated)\n\treturn err\n}\n\nfunc reverseQuery(tr tupleResults) {\n\tfor idx, rec := range tr {\n\t\trec.Query = Reverse(rec.Query)\n\t\ttr[idx] = rec\n\t}\n}\nfunc reverseValue(tr individualResults) {\n\tfor idx, rec := range tr {\n\t\tif rec.Which == \"Q\" {\n\t\t\trec.Value = Reverse(rec.Value)\n\t\t\ttr[idx] = rec\n\t\t}\n\t}\n}\n\nfunc (s *SQLCommonStore) FindQueryTuples(query string) (tupleResults, error) {\n\ttr := []tupleResult{}\n\tquery = Reverse(query)\n\terr := s.conn.Select(&tr, \"SELECT * FROM tuples WHERE query = $1\", query)\n\treverseQuery(tr)\n\treturn tr, err\n}\nfunc (s *SQLCommonStore) FindTuples(query string) (tupleResults, error) {\n\ttr := []tupleResult{}\n\trquery := Reverse(query)\n\terr := s.conn.Select(&tr, \"SELECT * FROM tuples WHERE query = $1 OR answer = $2 ORDER BY query, answer\", rquery, query)\n\treverseQuery(tr)\n\n\treturn tr, err\n}\nfunc (s *SQLCommonStore) LikeTuples(query string) (tupleResults, error) {\n\ttr := []tupleResult{}\n\trquery := Reverse(query)\n\terr := s.conn.Select(&tr, \"SELECT * FROM tuples WHERE query like $1 OR answer like $2 ORDER BY query, answer\", rquery+\"%\", query+\"%\")\n\treverseQuery(tr)\n\treturn tr, err\n}\nfunc (s *SQLCommonStore) FindIndividual(value string) (individualResults, error) {\n\trvalue := Reverse(value)\n\ttr := []individualResult{}\n\terr := s.conn.Select(&tr, \"SELECT * FROM individual WHERE (which='A' AND value = $1) OR (which='Q' AND value = $2) ORDER BY value\", value, rvalue)\n\treverseValue(tr)\n\treturn tr, err\n}\n\nfunc (s *SQLCommonStore) LikeIndividual(value string) (individualResults, error) {\n\trvalue := Reverse(value)\n\ttr := []individualResult{}\n\terr := s.conn.Select(&tr, \"SELECT * FROM individual WHERE (which='A' AND value like $1) OR (which='Q' AND value like $2) ORDER BY value\", value+\"%\", rvalue+\"%\")\n\treverseValue(tr)\n\treturn tr, err\n}\n\n//DeleteOld Deletes records that haven't been seen in DAYS, returns the total records deleted\nfunc (s *SQLCommonStore) DeleteOld(days int64) (int64, error) {\n\tvar deletedRows int64\n\tcutoff := time.Now().Add(time.Duration(-1*days) * time.Hour * 24)\n\tres, err := s.conn.Exec(\"DELETE FROM individual WHERE last < $1\", cutoff)\n\tif err != nil {\n\t\treturn deletedRows, err\n\t}\n\trows, err := res.RowsAffected()\n\tdeletedRows += rows\n\tif err != nil {\n\t\treturn deletedRows, err\n\t}\n\n\tres, err = s.conn.Exec(\"DELETE FROM tuples WHERE last < $1\", cutoff)\n\tif err != nil {\n\t\treturn deletedRows, err\n\t}\n\trows, err = res.RowsAffected()\n\tdeletedRows += rows\n\treturn deletedRows, err\n}\n"
  },
  {
    "path": "store_sqlite.go",
    "content": "package main\n\nimport (\n\t\"time\"\n\n\t\"github.com/jmoiron/sqlx\"\n\n\t_ \"github.com/mattn/go-sqlite3\"\n)\n\nconst schema = `\nCREATE TABLE IF NOT EXISTS tuples (\n\tquery character varying,\n\ttype character varying,\n\tanswer character varying,\n\tcount integer,\n\tttl integer,\n\tfirst REAL,\n\tlast REAL,\n\tPRIMARY KEY (query, type, answer)\n) ;\nCREATE INDEX IF NOT EXISTS tuples_query ON tuples(query);\nCREATE INDEX IF NOT EXISTS tuples_answer ON tuples(answer);\nCREATE INDEX IF NOT EXISTS tuples_first ON tuples(first);\nCREATE INDEX IF NOT EXISTS tuples_last ON tuples(last);\n\nCREATE TABLE IF NOT EXISTS individual (\n\twhich char(1),\n\tvalue character varying,\n\tcount integer,\n\tfirst REAL,\n\tlast REAL,\n\tPRIMARY KEY (which, value)\n);\nCREATE INDEX IF NOT EXISTS individual_first ON individual(first);\nCREATE INDEX IF NOT EXISTS individual_last ON individual(last);\n\nCREATE TABLE IF NOT EXISTS filenames (\n\tfilename character varying PRIMARY KEY UNIQUE NOT NULL,\n\ttime REAL DEFAULT (datetime('now', 'localtime')),\n\taggregation_time real,\n\ttotal_records int,\n\tskipped_records int,\n\ttuples int,\n\tindividual int,\n\tstore_time real,\n\tinserted int,\n\tupdated int\n);\nPRAGMA case_sensitive_like=ON;\n-- PRAGMA journal_mode=WAL;\n-- PRAGMA synchronous=off;\nPRAGMA temp_store = MEMORY;\nPRAGMA cache_size = 5000;\n`\n\ntype SQLiteStore struct {\n\tconn *sqlx.DB\n\t*SQLCommonStore\n}\n\nfunc NewSQLiteStore(uri string) (Store, error) {\n\tconn, err := sqlx.Open(\"sqlite3\", uri)\n\tif err != nil {\n\t\treturn nil, err\n\t}\n\tcommon := &SQLCommonStore{conn: conn}\n\treturn &SQLiteStore{conn: conn, SQLCommonStore: common}, nil\n}\n\nfunc (s *SQLiteStore) Close() error {\n\treturn s.Close()\n}\n\nfunc (s *SQLiteStore) Init() error {\n\t_, err := s.conn.Exec(schema)\n\treturn err\n}\n\nfunc (s *SQLiteStore) Update(ar aggregationResult) (UpdateResult, error) {\n\tvar result UpdateResult\n\tstart := time.Now()\n\n\ttx, err := s.BeginTx()\n\tif err != nil {\n\t\treturn result, err\n\t}\n\t//Setup the 4 different prepared statements\n\tupdate_tuples, err := tx.Prepare(`UPDATE tuples SET\n\t\tcount=count+$1,\n\t\tttl=$2,\n\t\tfirst=min(datetime($3, 'unixepoch'), first),\n\t\tlast =max(datetime($4, 'unixepoch'), last)\n\t\tWHERE query=$5 AND type=$6 AND answer=$7`)\n\tif err != nil {\n\t\treturn result, err\n\t}\n\tdefer update_tuples.Close()\n\tinsert_tuples, err := tx.Prepare(`INSERT INTO tuples (query, type, answer, ttl, count, first, last)\n\t    VALUES ($1, $2, $3, $4, $5, datetime($6, 'unixepoch'), datetime($7,'unixepoch'))`)\n\tif err != nil {\n\t\treturn result, err\n\t}\n\tdefer insert_tuples.Close()\n\n\tupdate_individual, err := tx.Prepare(`UPDATE individual SET\n\t\tcount=count+$1,\n\t\tfirst=min(datetime($2, 'unixepoch'), first),\n\t\tlast =max(datetime($3, 'unixepoch'), last)\n\t\tWHERE value=$4 AND which=$5`)\n\tif err != nil {\n\t\treturn result, err\n\t}\n\tdefer update_individual.Close()\n\tinsert_individual, err := tx.Prepare(`INSERT INTO individual (value, which, count, first, last)\n\t    VALUES ($1, $2, $3, datetime($4, 'unixepoch'), datetime($5,'unixepoch'))`)\n\tif err != nil {\n\t\treturn result, err\n\t}\n\tdefer insert_individual.Close()\n\n\t// Ok, now let's update stuff\n\tfor _, q := range ar.Tuples {\n\t\t//Update the tuples table\n\t\tquery := Reverse(q.query)\n\t\tres, err := update_tuples.Exec(q.count, q.ttl, ToTS(q.first), ToTS(q.last), query, q.qtype, q.answer)\n\t\tif err != nil {\n\t\t\treturn result, err\n\t\t}\n\t\trows, err := res.RowsAffected()\n\t\tif err != nil {\n\t\t\treturn result, err\n\t\t}\n\t\tif rows == 0 {\n\t\t\t_, err := insert_tuples.Exec(query, q.qtype, q.answer, q.ttl, q.count, ToTS(q.first), ToTS(q.last))\n\t\t\tif err != nil {\n\t\t\t\treturn result, err\n\t\t\t}\n\t\t\tresult.Inserted++\n\t\t} else {\n\t\t\tresult.Updated++\n\t\t}\n\t}\n\tfor _, q := range ar.Individual {\n\t\tvalue := q.value\n\t\tif q.which == \"Q\" {\n\t\t\tvalue = Reverse(value)\n\t\t}\n\t\tres, err := update_individual.Exec(q.count, ToTS(q.first), ToTS(q.last), value, q.which)\n\t\tif err != nil {\n\t\t\treturn result, err\n\t\t}\n\t\trows, err := res.RowsAffected()\n\t\tif err != nil {\n\t\t\treturn result, err\n\t\t}\n\t\tif rows == 0 {\n\t\t\t_, err := insert_individual.Exec(value, q.which, q.count, ToTS(q.first), ToTS(q.last))\n\t\t\tif err != nil {\n\t\t\t\treturn result, err\n\t\t\t}\n\t\t\tresult.Inserted++\n\t\t} else {\n\t\t\tresult.Updated++\n\t\t}\n\t}\n\tresult.Duration = time.Since(start)\n\treturn result, s.Commit()\n}\n"
  },
  {
    "path": "store_test.go",
    "content": "package main\n\nimport (\n\t\"fmt\"\n\t\"os\"\n\t\"testing\"\n\n\t\"github.com/stretchr/testify/assert\"\n)\n\ntype storeTest struct {\n\tstoretype string\n\turi       string\n}\n\nvar testStores = []storeTest{\n\t{\"sqlite\", \":memory:\"},\n}\n\nfunc init() {\n\tpgTestUrl := os.Getenv(\"PG_TEST_URL\")\n\tif pgTestUrl != \"\" {\n\t\ttestStores = append(testStores, storeTest{\"postgresql\", pgTestUrl})\n\t}\n\tchTestUrl := os.Getenv(\"CH_TEST_URL\")\n\tif chTestUrl != \"\" {\n\t\ttestStores = append(testStores, storeTest{\"clickhouse\", chTestUrl})\n\t}\n}\n\nfunc doTestLogIndexed(t *testing.T, s Store) {\n\ts.Clear()\n\ts.Init()\n\ttestFilename := \"test.log\"\n\tindexed, err := s.IsLogIndexed(testFilename)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif indexed != false {\n\t\tt.Errorf(\"IsLogIndexed(%q) == %t, want false\", testFilename, indexed)\n\t}\n\n\tvar ar aggregationResult\n\tvar ur UpdateResult\n\n\terr = s.SetLogIndexed(testFilename, ar, ur)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tindexed, err = s.IsLogIndexed(testFilename)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\tif indexed != true {\n\t\tt.Errorf(\"IsLogIndexed(%q) == %t, want true\", testFilename, indexed)\n\t}\n}\n\nfunc LoadFile(t *testing.T, s Store, fn string) UpdateResult {\n\taggregator := NewDNSAggregator()\n\terr := aggregate(aggregator, fn)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\taggregated := aggregator.GetResult()\n\tresult, err := s.Update(aggregated)\n\tif err != nil {\n\t\tt.Fatal(err)\n\t}\n\treturn result\n}\n\nfunc doTestUpdating(t *testing.T, s Store, forward bool) {\n\ts.Clear()\n\ts.Init()\n\n\tvar files []string\n\n\tif forward {\n\t\tfiles = []string{\"test_data/reddit_1.txt\", \"test_data/reddit_2.txt\"}\n\t} else {\n\t\tfiles = []string{\"test_data/reddit_2.txt\", \"test_data/reddit_1.txt\"}\n\t}\n\n\tresult_a := LoadFile(t, s, files[0])\n\tresult_b := LoadFile(t, s, files[1])\n\n\t// Hack for now. Clickhouse store doesn't report inserted vs updated\n\t//TODO: add a method to Store interface to return a bool for this\n\texpected_inserted := 31\n\texpected_updated := 0\n\tif _, ok := s.(*CHStore); ok {\n\t\texpected_inserted = 0\n\t\texpected_updated = 31\n\t}\n\tassert.EqualValues(t, result_a.Inserted, expected_inserted)\n\tassert.EqualValues(t, result_a.Updated, expected_updated)\n\n\tassert.EqualValues(t, result_b.Inserted, 0)\n\tassert.EqualValues(t, result_b.Updated, 31)\n\n\trecs, err := s.FindIndividual(\"www.reddit.com\")\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to find: %v\", err)\n\t\treturn\n\t}\n\t//www.reddit.com  Q       2       2016-04-01 00:03:03     2016-04-01 21:55:04\n\tif assert.Equal(t, len(recs), 1) {\n\t\trec := recs[0]\n\t\tassert.Equal(t, rec.Value, \"www.reddit.com\")\n\t\tassert.Equal(t, rec.Which, \"Q\")\n\t\tassert.EqualValues(t, rec.Count, 2)\n\t\t//This is stupid, but I need to fix things so that they return actual dates\n\t\t//and get a handle on the timezone BS.\n\t\t//So for now, ignore the ' ' vs 'T' difference, and the hour\n\t\tassert.Regexp(t, \"2016-04-01...:03:03\", rec.First)\n\t\tassert.Regexp(t, \"2016-04-01...:55:04\", rec.Last)\n\t}\n\t//www.reddit.com  A       198.41.208.138  2       300     2016-04-01 00:03:03     2016-04-01 21:55:04\n\n\ttrecs, err := s.FindTuples(\"198.41.208.138\")\n\tif err != nil {\n\t\tt.Fatalf(\"Failed to find: %v\", err)\n\t\treturn\n\t}\n\tif assert.Equal(t, len(trecs), 1) {\n\t\trec := trecs[0]\n\t\tassert.Equal(t, rec.Query, \"www.reddit.com\")\n\t\tassert.Equal(t, rec.Type, \"A\")\n\t\tassert.Equal(t, rec.Answer, \"198.41.208.138\")\n\t\tassert.EqualValues(t, rec.Count, 2)\n\t\t//This is stupid, but I need to fix things so that they return actual dates\n\t\t//and get a handle on the timezone BS.\n\t\t//So for now, ignore the ' ' vs 'T' difference, and the hour\n\t\tassert.Regexp(t, \"2016-04-01...:03:03\", rec.First)\n\t\tassert.Regexp(t, \"2016-04-01...:55:04\", rec.Last)\n\t}\n\n}\n\n// Output:\n//A: Inserted=31 Updated=0\n//B: Inserted=0 Updated=31\n//Individual records: 1\n//www.reddit.com\tQ\t2\t2016-04-01 00:03:03\t2016-04-01 21:55:04\n//Tuple records: 1\n//www.reddit.com\tA\t198.41.208.138\t2\t300\t2016-04-01 00:03:03\t2016-04-01 21:55:04\n\nfunc BenchmarkUpdateStores(b *testing.B) {\n\tfor _, ts := range testStores {\n\t\tb.Run(fmt.Sprintf(\"Indexing/%s\", ts.storetype), func(b *testing.B) {\n\t\t\tstore, err := NewStore(ts.storetype, ts.uri)\n\t\t\tif err != nil {\n\t\t\t\tb.Fatalf(\"NewStore failed: %s\", err)\n\t\t\t}\n\n\t\t\taggregator := NewDNSAggregator()\n\t\t\terr = aggregate(aggregator, \"big.log.gz\")\n\t\t\tif err != nil {\n\t\t\t\tb.Fatal(err)\n\t\t\t}\n\t\t\taggregated := aggregator.GetResult()\n\t\t\tb.ResetTimer()\n\t\t\tfor i := 0; i < b.N; i++ {\n\t\t\t\t_, err := store.Update(aggregated)\n\t\t\t\tif err != nil {\n\t\t\t\t\tb.Fatalf(\"store.Update failed: %s\", err)\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc testFile(t *testing.T, s Store, fn string) error {\n\taggregator := NewDNSAggregator()\n\terr := aggregate(aggregator, fn)\n\tif err != nil {\n\t\treturn err\n\t}\n\taggregated := aggregator.GetResult()\n\t_, err = s.Update(aggregated)\n\tif err != nil {\n\t\treturn err\n\t}\n\treturn nil\n}\n\nfunc TestIndexingFiles(t *testing.T) {\n\tallFiles := []string{\n\t\t\"./test_data/nbtstat.log\",\n\t\t\"./test_data/garbage.log\",\n\t\t\"./test_data/bad_ttl.log\",\n\t\t\"./test_data/dns_json_iso8601.json\",\n\t}\n\tfor _, ts := range testStores {\n\t\tt.Run(fmt.Sprintf(\"Indexing/%s\", ts.storetype), func(t *testing.T) {\n\t\t\tstore, err := NewStore(ts.storetype, ts.uri)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"can't create store at %s: %v\", ts.uri, err)\n\t\t\t}\n\t\t\tfor _, fn := range allFiles {\n\t\t\t\tt.Run(fn, func(t *testing.T) {\n\t\t\t\t\ttestFile(t, store, fn)\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t}\n}\n\nfunc doTestStore(t *testing.T, store Store) {\n\tt.Run(\"testLogIndexed\", func(t *testing.T) {\n\t\tdoTestLogIndexed(t, store)\n\t})\n\tt.Run(\"forward\", func(t *testing.T) {\n\t\tdoTestUpdating(t, store, true)\n\t})\n\tt.Run(\"reverse\", func(t *testing.T) {\n\t\tdoTestUpdating(t, store, false)\n\t})\n}\n\nfunc TestStoreIndexing(t *testing.T) {\n\tfor _, ts := range testStores {\n\t\tt.Run(ts.storetype, func(t *testing.T) {\n\t\t\tstore, err := NewStore(ts.storetype, ts.uri)\n\t\t\tif err != nil {\n\t\t\t\tt.Fatalf(\"can't create store at %s: %v\", ts.uri, err)\n\t\t\t}\n\t\t\tdoTestStore(t, store)\n\t\t})\n\t}\n}\n"
  },
  {
    "path": "template/index.html",
    "content": "<!DOCTYPE html>\n<html>\n<head>\n\t<title>pdns{{if .Query}} - {{.Query }}{{end}}</title>\n\n<style type=\"text/css\">\ntable, td, th {\n  border: 1px solid black;\n  border-collapse: collapse;\n  white-space: nowrap;\n  padding-left: 0.5em;\n  padding-right: 0.5em;\n}\n</style>\n\n</head>\n\n<body>\n\t<form method=\"GET\">\n\t\t<fieldset>\n\t\t\t<legend>pdns search</legend>\n\t\t\t<label for=\"query\"> Query </label>\n\t\t\t<input type=\"search\" id=\"query\" name=\"query\" value=\"{{.Query}}\" autofocus>\n\n\t\t\t<label for=\"exact\"> Exact match </label>\n\t\t\t<input type=\"checkbox\" id=\"exact\" name=\"exact\" {{if .Exact}}checked{{end}} >\n\n\t\t\t<input type=\"submit\" value=\"Search\">\n\t\t</fieldset>\n\t</form>\n\n\t{{ if .Error }}\n\tError searching: {{.Error }}\n\t{{ end }}\n\n\t{{ if .Individual }}\n\t<h1>Individual values</h1>\n\t<table width=\"100%\" border=\"1\">\n\t\t<thead>\n\t\t<tr>\n\t\t\t<th>Value</th>\n\t\t\t<th>Which</th>\n\t\t\t<th>Count</th>\n\t\t\t<th>First</th>\n\t\t\t<th>Last</th>\n\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t{{range $val := .Individual}}\n\t\t\t<tr>\n\t\t\t\t<td> {{$val.Value}} </td>\n\t\t\t\t<td> {{$val.Which}} </td>\n\t\t\t\t<td> {{$val.Count}} </td>\n\t\t\t\t<td> {{$val.First}} </td>\n\t\t\t\t<td> {{$val.Last}} </td>\n\t\t\t</tr>\n\t\t{{end}}\n\t\t</tbody>\n\t</table>\n\t{{ end }}\n\n\t{{ if .Tuples }}\n\t<h1>Tuples</h1>\n\t<table width=\"100%\" border=\"1\">\n\t\t<thead>\n\t\t<tr>\n\t\t\t<th>Query</th>\n\t\t\t<th>Type</th>\n\t\t\t<th>Answer</th>\n\t\t\t<th>TTL</th>\n\t\t\t<th>Count</th>\n\t\t\t<th>First</th>\n\t\t\t<th>Last</th>\n\t\t</tr>\n\t\t</thead>\n\t\t<tbody>\n\t\t{{range $val := .Tuples}}\n\t\t\t<tr>\n\t\t\t\t<td> {{$val.Query}} </td>\n\t\t\t\t<td> {{$val.Type}} </td>\n\t\t\t\t<td> {{$val.Answer}} </td>\n\t\t\t\t<td> {{$val.TTL}} </td>\n\t\t\t\t<td> {{$val.Count}} </td>\n\t\t\t\t<td> {{$val.First}} </td>\n\t\t\t\t<td> {{$val.Last}} </td>\n\t\t\t</tr>\n\t\t{{end}}\n\t\t</tbody>\n\t</table>\n\t{{ end }}\n</body>\n\n</html>\n"
  },
  {
    "path": "test_data/bad_ttl.log",
    "content": "{\"ts\":1504226037.090323,\"uid\":\"CC3BJqLx0zgN89c35\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":53477,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":36570,\"rtt\":0.012916,\"query\":\"www.reddit.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"reddit.map.fastly.net\",\"151.101.57.140\"],\"TTLs\":[3286499344.0,14.0],\"rejected\":false}\n"
  },
  {
    "path": "test_data/dns_json.log",
    "content": "{\"ts\":1504226037.090323,\"uid\":\"CC3BJqLx0zgN89c35\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":53477,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":36570,\"rtt\":0.012916,\"query\":\"www.reddit.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"reddit.map.fastly.net\",\"151.101.57.140\"],\"TTLs\":[100.0,14.0],\"rejected\":false}\n{\"ts\":1504226037.107365,\"uid\":\"ConzS63HBcUhAmsxj1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":37538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":51137,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226037.121395,\"uid\":\"CjjfFwN6sIpL3CNX6\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57316,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":46466,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.300376,\"uid\":\"CC5fjfToo9iIu1S6d\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":60315,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":26918,\"rtt\":0.012398,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"173.194.175.106\",\"173.194.175.99\",\"173.194.175.147\",\"173.194.175.103\",\"173.194.175.105\",\"173.194.175.104\"],\"TTLs\":[153.0,153.0,153.0,153.0,153.0,153.0],\"rejected\":false}\n{\"ts\":1504226061.31575,\"uid\":\"Cwb8jt3ylC0gNoPhP2\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":43538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":57700,\"rtt\":0.009332,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:400d:c08::6a\"],\"TTLs\":[59.0],\"rejected\":false}\n{\"ts\":1504226061.326262,\"uid\":\"CbHWTgnel1m6H88hg\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57906,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":23801,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.114845,\"uid\":\"Cseinn4ur1mzgm7Kb1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":34365,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":41784,\"rtt\":0.012139,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"151.101.57.140\"],\"TTLs\":[13.0],\"rejected\":false}\n{\"ts\":1504226077.129055,\"uid\":\"CjMZsD3QI6tfxwInEf\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":35859,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":14171,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.151007,\"uid\":\"CYkgGr4Pvo594QvbEl\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":59605,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":32601,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226083.730927,\"uid\":\"Cc4BXO1HuOstqlUuZe\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":28208,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9969,\"rtt\":0.01341,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:c06::5e\"],\"TTLs\":[161.0],\"rejected\":false}\n{\"ts\":1504226083.749612,\"uid\":\"CPx0AD3djrVpt5vcdf\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":12786,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":13082,\"rtt\":0.012164,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.94\"],\"TTLs\":[116.0],\"rejected\":false}\n{\"ts\":1504226060.051483,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201694,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.37572,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518031,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226060.051722,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201758,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.375771,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518083,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226093.757659,\"uid\":\"CyCXT53AEW082wEJuk\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":33275,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15917,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":true}\n{\"ts\":1504226093.772416,\"uid\":\"CMbrzzpSPxeegCR4\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":5841,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15037,\"rtt\":0.001594,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":true,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"0.0.0.0\"],\"TTLs\":[0.0],\"rejected\":false}\n{\"ts\":1504226100.889636,\"uid\":\"CeRmRa4wChxaXX5bPl\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":52291,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":38092,\"rtt\":0.013108,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.190\",\"74.125.136.91\",\"74.125.136.136\",\"74.125.136.93\"],\"TTLs\":[75.0,75.0,75.0,75.0],\"rejected\":false}\n{\"ts\":1504226100.892947,\"uid\":\"CeRJhn3RZX4EGTnUqe\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":51541,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":62630,\"rtt\":0.014942,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:80f::200e\"],\"TTLs\":[171.0],\"rejected\":false}\n{\"ts\":1504226100.986226,\"uid\":\"CUGNDW1T74UvdK9Mf9\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":63234,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":4160,\"rtt\":0.019922,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"64.233.177.101\",\"64.233.177.102\",\"64.233.177.138\",\"64.233.177.100\",\"64.233.177.113\",\"64.233.177.139\"],\"TTLs\":[196.0,196.0,196.0,196.0,196.0,196.0],\"rejected\":false}\n{\"ts\":1504226100.990028,\"uid\":\"CWDOPh2uTQkhU7WH04\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":61705,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9459,\"rtt\":0.017509,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:811::200e\"],\"TTLs\":[95.0],\"rejected\":false}\n{\"ts\":1504226037.090323,\"uid\":\"CC3BJqLx0zgN89c35\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":53477,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":36570,\"rtt\":0.012916,\"query\":\"www.reddit.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"reddit.map.fastly.net\",\"151.101.57.140\"],\"TTLs\":[100.0,14.0],\"rejected\":false}\n{\"ts\":1504226037.107365,\"uid\":\"ConzS63HBcUhAmsxj1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":37538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":51137,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226037.121395,\"uid\":\"CjjfFwN6sIpL3CNX6\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57316,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":46466,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.300376,\"uid\":\"CC5fjfToo9iIu1S6d\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":60315,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":26918,\"rtt\":0.012398,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"173.194.175.106\",\"173.194.175.99\",\"173.194.175.147\",\"173.194.175.103\",\"173.194.175.105\",\"173.194.175.104\"],\"TTLs\":[153.0,153.0,153.0,153.0,153.0,153.0],\"rejected\":false}\n{\"ts\":1504226061.31575,\"uid\":\"Cwb8jt3ylC0gNoPhP2\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":43538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":57700,\"rtt\":0.009332,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:400d:c08::6a\"],\"TTLs\":[59.0],\"rejected\":false}\n{\"ts\":1504226061.326262,\"uid\":\"CbHWTgnel1m6H88hg\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57906,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":23801,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.114845,\"uid\":\"Cseinn4ur1mzgm7Kb1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":34365,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":41784,\"rtt\":0.012139,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"151.101.57.140\"],\"TTLs\":[13.0],\"rejected\":false}\n{\"ts\":1504226077.129055,\"uid\":\"CjMZsD3QI6tfxwInEf\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":35859,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":14171,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.151007,\"uid\":\"CYkgGr4Pvo594QvbEl\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":59605,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":32601,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226083.730927,\"uid\":\"Cc4BXO1HuOstqlUuZe\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":28208,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9969,\"rtt\":0.01341,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:c06::5e\"],\"TTLs\":[161.0],\"rejected\":false}\n{\"ts\":1504226083.749612,\"uid\":\"CPx0AD3djrVpt5vcdf\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":12786,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":13082,\"rtt\":0.012164,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.94\"],\"TTLs\":[116.0],\"rejected\":false}\n{\"ts\":1504226060.051483,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201694,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.37572,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518031,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226060.051722,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201758,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.375771,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518083,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226093.757659,\"uid\":\"CyCXT53AEW082wEJuk\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":33275,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15917,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":true}\n{\"ts\":1504226093.772416,\"uid\":\"CMbrzzpSPxeegCR4\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":5841,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15037,\"rtt\":0.001594,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":true,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"0.0.0.0\"],\"TTLs\":[0.0],\"rejected\":false}\n{\"ts\":1504226100.889636,\"uid\":\"CeRmRa4wChxaXX5bPl\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":52291,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":38092,\"rtt\":0.013108,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.190\",\"74.125.136.91\",\"74.125.136.136\",\"74.125.136.93\"],\"TTLs\":[75.0,75.0,75.0,75.0],\"rejected\":false}\n{\"ts\":1504226100.892947,\"uid\":\"CeRJhn3RZX4EGTnUqe\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":51541,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":62630,\"rtt\":0.014942,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:80f::200e\"],\"TTLs\":[171.0],\"rejected\":false}\n{\"ts\":1504226100.986226,\"uid\":\"CUGNDW1T74UvdK9Mf9\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":63234,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":4160,\"rtt\":0.019922,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"64.233.177.101\",\"64.233.177.102\",\"64.233.177.138\",\"64.233.177.100\",\"64.233.177.113\",\"64.233.177.139\"],\"TTLs\":[196.0,196.0,196.0,196.0,196.0,196.0],\"rejected\":false}\n{\"ts\":1504226100.990028,\"uid\":\"CWDOPh2uTQkhU7WH04\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":61705,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9459,\"rtt\":0.017509,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:811::200e\"],\"TTLs\":[95.0],\"rejected\":false}\n{\"ts\":1504226037.090323,\"uid\":\"CC3BJqLx0zgN89c35\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":53477,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":36570,\"rtt\":0.012916,\"query\":\"www.reddit.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"reddit.map.fastly.net\",\"151.101.57.140\"],\"TTLs\":[100.0,14.0],\"rejected\":false}\n{\"ts\":1504226037.107365,\"uid\":\"ConzS63HBcUhAmsxj1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":37538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":51137,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226037.121395,\"uid\":\"CjjfFwN6sIpL3CNX6\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57316,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":46466,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.300376,\"uid\":\"CC5fjfToo9iIu1S6d\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":60315,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":26918,\"rtt\":0.012398,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"173.194.175.106\",\"173.194.175.99\",\"173.194.175.147\",\"173.194.175.103\",\"173.194.175.105\",\"173.194.175.104\"],\"TTLs\":[153.0,153.0,153.0,153.0,153.0,153.0],\"rejected\":false}\n{\"ts\":1504226061.31575,\"uid\":\"Cwb8jt3ylC0gNoPhP2\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":43538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":57700,\"rtt\":0.009332,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:400d:c08::6a\"],\"TTLs\":[59.0],\"rejected\":false}\n{\"ts\":1504226061.326262,\"uid\":\"CbHWTgnel1m6H88hg\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57906,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":23801,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.114845,\"uid\":\"Cseinn4ur1mzgm7Kb1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":34365,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":41784,\"rtt\":0.012139,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"151.101.57.140\"],\"TTLs\":[13.0],\"rejected\":false}\n{\"ts\":1504226077.129055,\"uid\":\"CjMZsD3QI6tfxwInEf\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":35859,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":14171,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.151007,\"uid\":\"CYkgGr4Pvo594QvbEl\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":59605,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":32601,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226083.730927,\"uid\":\"Cc4BXO1HuOstqlUuZe\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":28208,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9969,\"rtt\":0.01341,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:c06::5e\"],\"TTLs\":[161.0],\"rejected\":false}\n{\"ts\":1504226083.749612,\"uid\":\"CPx0AD3djrVpt5vcdf\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":12786,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":13082,\"rtt\":0.012164,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.94\"],\"TTLs\":[116.0],\"rejected\":false}\n{\"ts\":1504226060.051483,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201694,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.37572,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518031,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226060.051722,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201758,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.375771,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518083,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226093.757659,\"uid\":\"CyCXT53AEW082wEJuk\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":33275,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15917,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":true}\n{\"ts\":1504226093.772416,\"uid\":\"CMbrzzpSPxeegCR4\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":5841,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15037,\"rtt\":0.001594,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":true,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"0.0.0.0\"],\"TTLs\":[0.0],\"rejected\":false}\n{\"ts\":1504226100.889636,\"uid\":\"CeRmRa4wChxaXX5bPl\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":52291,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":38092,\"rtt\":0.013108,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.190\",\"74.125.136.91\",\"74.125.136.136\",\"74.125.136.93\"],\"TTLs\":[75.0,75.0,75.0,75.0],\"rejected\":false}\n{\"ts\":1504226100.892947,\"uid\":\"CeRJhn3RZX4EGTnUqe\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":51541,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":62630,\"rtt\":0.014942,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:80f::200e\"],\"TTLs\":[171.0],\"rejected\":false}\n{\"ts\":1504226100.986226,\"uid\":\"CUGNDW1T74UvdK9Mf9\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":63234,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":4160,\"rtt\":0.019922,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"64.233.177.101\",\"64.233.177.102\",\"64.233.177.138\",\"64.233.177.100\",\"64.233.177.113\",\"64.233.177.139\"],\"TTLs\":[196.0,196.0,196.0,196.0,196.0,196.0],\"rejected\":false}\n{\"ts\":1504226100.990028,\"uid\":\"CWDOPh2uTQkhU7WH04\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":61705,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9459,\"rtt\":0.017509,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:811::200e\"],\"TTLs\":[95.0],\"rejected\":false}\n{\"ts\":1504226037.090323,\"uid\":\"CC3BJqLx0zgN89c35\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":53477,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":36570,\"rtt\":0.012916,\"query\":\"www.reddit.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"reddit.map.fastly.net\",\"151.101.57.140\"],\"TTLs\":[100.0,14.0],\"rejected\":false}\n{\"ts\":1504226037.107365,\"uid\":\"ConzS63HBcUhAmsxj1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":37538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":51137,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226037.121395,\"uid\":\"CjjfFwN6sIpL3CNX6\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57316,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":46466,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.300376,\"uid\":\"CC5fjfToo9iIu1S6d\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":60315,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":26918,\"rtt\":0.012398,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"173.194.175.106\",\"173.194.175.99\",\"173.194.175.147\",\"173.194.175.103\",\"173.194.175.105\",\"173.194.175.104\"],\"TTLs\":[153.0,153.0,153.0,153.0,153.0,153.0],\"rejected\":false}\n{\"ts\":1504226061.31575,\"uid\":\"Cwb8jt3ylC0gNoPhP2\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":43538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":57700,\"rtt\":0.009332,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:400d:c08::6a\"],\"TTLs\":[59.0],\"rejected\":false}\n{\"ts\":1504226061.326262,\"uid\":\"CbHWTgnel1m6H88hg\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57906,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":23801,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.114845,\"uid\":\"Cseinn4ur1mzgm7Kb1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":34365,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":41784,\"rtt\":0.012139,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"151.101.57.140\"],\"TTLs\":[13.0],\"rejected\":false}\n{\"ts\":1504226077.129055,\"uid\":\"CjMZsD3QI6tfxwInEf\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":35859,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":14171,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.151007,\"uid\":\"CYkgGr4Pvo594QvbEl\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":59605,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":32601,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226083.730927,\"uid\":\"Cc4BXO1HuOstqlUuZe\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":28208,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9969,\"rtt\":0.01341,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:c06::5e\"],\"TTLs\":[161.0],\"rejected\":false}\n{\"ts\":1504226083.749612,\"uid\":\"CPx0AD3djrVpt5vcdf\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":12786,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":13082,\"rtt\":0.012164,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.94\"],\"TTLs\":[116.0],\"rejected\":false}\n{\"ts\":1504226060.051483,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201694,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.37572,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518031,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226060.051722,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201758,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.375771,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518083,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226093.757659,\"uid\":\"CyCXT53AEW082wEJuk\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":33275,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15917,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":true}\n{\"ts\":1504226093.772416,\"uid\":\"CMbrzzpSPxeegCR4\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":5841,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15037,\"rtt\":0.001594,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":true,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"0.0.0.0\"],\"TTLs\":[0.0],\"rejected\":false}\n{\"ts\":1504226100.889636,\"uid\":\"CeRmRa4wChxaXX5bPl\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":52291,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":38092,\"rtt\":0.013108,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.190\",\"74.125.136.91\",\"74.125.136.136\",\"74.125.136.93\"],\"TTLs\":[75.0,75.0,75.0,75.0],\"rejected\":false}\n{\"ts\":1504226100.892947,\"uid\":\"CeRJhn3RZX4EGTnUqe\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":51541,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":62630,\"rtt\":0.014942,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:80f::200e\"],\"TTLs\":[171.0],\"rejected\":false}\n{\"ts\":1504226100.986226,\"uid\":\"CUGNDW1T74UvdK9Mf9\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":63234,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":4160,\"rtt\":0.019922,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"64.233.177.101\",\"64.233.177.102\",\"64.233.177.138\",\"64.233.177.100\",\"64.233.177.113\",\"64.233.177.139\"],\"TTLs\":[196.0,196.0,196.0,196.0,196.0,196.0],\"rejected\":false}\n{\"ts\":1504226100.990028,\"uid\":\"CWDOPh2uTQkhU7WH04\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":61705,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9459,\"rtt\":0.017509,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:811::200e\"],\"TTLs\":[95.0],\"rejected\":false}\n{\"ts\":1504226037.090323,\"uid\":\"CC3BJqLx0zgN89c35\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":53477,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":36570,\"rtt\":0.012916,\"query\":\"www.reddit.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"reddit.map.fastly.net\",\"151.101.57.140\"],\"TTLs\":[100.0,14.0],\"rejected\":false}\n{\"ts\":1504226037.107365,\"uid\":\"ConzS63HBcUhAmsxj1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":37538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":51137,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226037.121395,\"uid\":\"CjjfFwN6sIpL3CNX6\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57316,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":46466,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.300376,\"uid\":\"CC5fjfToo9iIu1S6d\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":60315,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":26918,\"rtt\":0.012398,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"173.194.175.106\",\"173.194.175.99\",\"173.194.175.147\",\"173.194.175.103\",\"173.194.175.105\",\"173.194.175.104\"],\"TTLs\":[153.0,153.0,153.0,153.0,153.0,153.0],\"rejected\":false}\n{\"ts\":1504226061.31575,\"uid\":\"Cwb8jt3ylC0gNoPhP2\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":43538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":57700,\"rtt\":0.009332,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:400d:c08::6a\"],\"TTLs\":[59.0],\"rejected\":false}\n{\"ts\":1504226061.326262,\"uid\":\"CbHWTgnel1m6H88hg\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57906,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":23801,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.114845,\"uid\":\"Cseinn4ur1mzgm7Kb1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":34365,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":41784,\"rtt\":0.012139,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"151.101.57.140\"],\"TTLs\":[13.0],\"rejected\":false}\n{\"ts\":1504226077.129055,\"uid\":\"CjMZsD3QI6tfxwInEf\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":35859,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":14171,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.151007,\"uid\":\"CYkgGr4Pvo594QvbEl\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":59605,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":32601,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226083.730927,\"uid\":\"Cc4BXO1HuOstqlUuZe\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":28208,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9969,\"rtt\":0.01341,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:c06::5e\"],\"TTLs\":[161.0],\"rejected\":false}\n{\"ts\":1504226083.749612,\"uid\":\"CPx0AD3djrVpt5vcdf\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":12786,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":13082,\"rtt\":0.012164,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.94\"],\"TTLs\":[116.0],\"rejected\":false}\n{\"ts\":1504226060.051483,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201694,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.37572,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518031,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226060.051722,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201758,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.375771,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518083,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226093.757659,\"uid\":\"CyCXT53AEW082wEJuk\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":33275,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15917,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":true}\n{\"ts\":1504226093.772416,\"uid\":\"CMbrzzpSPxeegCR4\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":5841,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15037,\"rtt\":0.001594,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":true,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"0.0.0.0\"],\"TTLs\":[0.0],\"rejected\":false}\n{\"ts\":1504226100.889636,\"uid\":\"CeRmRa4wChxaXX5bPl\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":52291,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":38092,\"rtt\":0.013108,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.190\",\"74.125.136.91\",\"74.125.136.136\",\"74.125.136.93\"],\"TTLs\":[75.0,75.0,75.0,75.0],\"rejected\":false}\n{\"ts\":1504226100.892947,\"uid\":\"CeRJhn3RZX4EGTnUqe\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":51541,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":62630,\"rtt\":0.014942,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:80f::200e\"],\"TTLs\":[171.0],\"rejected\":false}\n{\"ts\":1504226100.986226,\"uid\":\"CUGNDW1T74UvdK9Mf9\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":63234,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":4160,\"rtt\":0.019922,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"64.233.177.101\",\"64.233.177.102\",\"64.233.177.138\",\"64.233.177.100\",\"64.233.177.113\",\"64.233.177.139\"],\"TTLs\":[196.0,196.0,196.0,196.0,196.0,196.0],\"rejected\":false}\n{\"ts\":1504226100.990028,\"uid\":\"CWDOPh2uTQkhU7WH04\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":61705,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9459,\"rtt\":0.017509,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:811::200e\"],\"TTLs\":[95.0],\"rejected\":false}\n{\"ts\":1504226037.090323,\"uid\":\"CC3BJqLx0zgN89c35\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":53477,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":36570,\"rtt\":0.012916,\"query\":\"www.reddit.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"reddit.map.fastly.net\",\"151.101.57.140\"],\"TTLs\":[100.0,14.0],\"rejected\":false}\n{\"ts\":1504226037.107365,\"uid\":\"ConzS63HBcUhAmsxj1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":37538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":51137,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226037.121395,\"uid\":\"CjjfFwN6sIpL3CNX6\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57316,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":46466,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.300376,\"uid\":\"CC5fjfToo9iIu1S6d\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":60315,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":26918,\"rtt\":0.012398,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"173.194.175.106\",\"173.194.175.99\",\"173.194.175.147\",\"173.194.175.103\",\"173.194.175.105\",\"173.194.175.104\"],\"TTLs\":[153.0,153.0,153.0,153.0,153.0,153.0],\"rejected\":false}\n{\"ts\":1504226061.31575,\"uid\":\"Cwb8jt3ylC0gNoPhP2\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":43538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":57700,\"rtt\":0.009332,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:400d:c08::6a\"],\"TTLs\":[59.0],\"rejected\":false}\n{\"ts\":1504226061.326262,\"uid\":\"CbHWTgnel1m6H88hg\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57906,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":23801,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.114845,\"uid\":\"Cseinn4ur1mzgm7Kb1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":34365,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":41784,\"rtt\":0.012139,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"151.101.57.140\"],\"TTLs\":[13.0],\"rejected\":false}\n{\"ts\":1504226077.129055,\"uid\":\"CjMZsD3QI6tfxwInEf\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":35859,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":14171,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.151007,\"uid\":\"CYkgGr4Pvo594QvbEl\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":59605,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":32601,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226083.730927,\"uid\":\"Cc4BXO1HuOstqlUuZe\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":28208,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9969,\"rtt\":0.01341,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:c06::5e\"],\"TTLs\":[161.0],\"rejected\":false}\n{\"ts\":1504226083.749612,\"uid\":\"CPx0AD3djrVpt5vcdf\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":12786,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":13082,\"rtt\":0.012164,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.94\"],\"TTLs\":[116.0],\"rejected\":false}\n{\"ts\":1504226060.051483,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201694,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.37572,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518031,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226060.051722,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201758,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.375771,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518083,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226093.757659,\"uid\":\"CyCXT53AEW082wEJuk\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":33275,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15917,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":true}\n{\"ts\":1504226093.772416,\"uid\":\"CMbrzzpSPxeegCR4\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":5841,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15037,\"rtt\":0.001594,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":true,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"0.0.0.0\"],\"TTLs\":[0.0],\"rejected\":false}\n{\"ts\":1504226100.889636,\"uid\":\"CeRmRa4wChxaXX5bPl\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":52291,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":38092,\"rtt\":0.013108,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.190\",\"74.125.136.91\",\"74.125.136.136\",\"74.125.136.93\"],\"TTLs\":[75.0,75.0,75.0,75.0],\"rejected\":false}\n{\"ts\":1504226100.892947,\"uid\":\"CeRJhn3RZX4EGTnUqe\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":51541,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":62630,\"rtt\":0.014942,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:80f::200e\"],\"TTLs\":[171.0],\"rejected\":false}\n{\"ts\":1504226100.986226,\"uid\":\"CUGNDW1T74UvdK9Mf9\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":63234,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":4160,\"rtt\":0.019922,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"64.233.177.101\",\"64.233.177.102\",\"64.233.177.138\",\"64.233.177.100\",\"64.233.177.113\",\"64.233.177.139\"],\"TTLs\":[196.0,196.0,196.0,196.0,196.0,196.0],\"rejected\":false}\n{\"ts\":1504226100.990028,\"uid\":\"CWDOPh2uTQkhU7WH04\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":61705,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9459,\"rtt\":0.017509,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:811::200e\"],\"TTLs\":[95.0],\"rejected\":false}\n{\"ts\":1504226037.090323,\"uid\":\"CC3BJqLx0zgN89c35\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":53477,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":36570,\"rtt\":0.012916,\"query\":\"www.reddit.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"reddit.map.fastly.net\",\"151.101.57.140\"],\"TTLs\":[100.0,14.0],\"rejected\":false}\n{\"ts\":1504226037.107365,\"uid\":\"ConzS63HBcUhAmsxj1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":37538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":51137,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226037.121395,\"uid\":\"CjjfFwN6sIpL3CNX6\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57316,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":46466,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.300376,\"uid\":\"CC5fjfToo9iIu1S6d\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":60315,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":26918,\"rtt\":0.012398,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"173.194.175.106\",\"173.194.175.99\",\"173.194.175.147\",\"173.194.175.103\",\"173.194.175.105\",\"173.194.175.104\"],\"TTLs\":[153.0,153.0,153.0,153.0,153.0,153.0],\"rejected\":false}\n{\"ts\":1504226061.31575,\"uid\":\"Cwb8jt3ylC0gNoPhP2\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":43538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":57700,\"rtt\":0.009332,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:400d:c08::6a\"],\"TTLs\":[59.0],\"rejected\":false}\n{\"ts\":1504226061.326262,\"uid\":\"CbHWTgnel1m6H88hg\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57906,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":23801,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.114845,\"uid\":\"Cseinn4ur1mzgm7Kb1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":34365,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":41784,\"rtt\":0.012139,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"151.101.57.140\"],\"TTLs\":[13.0],\"rejected\":false}\n{\"ts\":1504226077.129055,\"uid\":\"CjMZsD3QI6tfxwInEf\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":35859,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":14171,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.151007,\"uid\":\"CYkgGr4Pvo594QvbEl\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":59605,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":32601,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226083.730927,\"uid\":\"Cc4BXO1HuOstqlUuZe\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":28208,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9969,\"rtt\":0.01341,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:c06::5e\"],\"TTLs\":[161.0],\"rejected\":false}\n{\"ts\":1504226083.749612,\"uid\":\"CPx0AD3djrVpt5vcdf\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":12786,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":13082,\"rtt\":0.012164,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.94\"],\"TTLs\":[116.0],\"rejected\":false}\n{\"ts\":1504226060.051483,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201694,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.37572,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518031,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226060.051722,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201758,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.375771,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518083,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226093.757659,\"uid\":\"CyCXT53AEW082wEJuk\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":33275,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15917,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":true}\n{\"ts\":1504226093.772416,\"uid\":\"CMbrzzpSPxeegCR4\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":5841,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15037,\"rtt\":0.001594,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":true,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"0.0.0.0\"],\"TTLs\":[0.0],\"rejected\":false}\n{\"ts\":1504226100.889636,\"uid\":\"CeRmRa4wChxaXX5bPl\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":52291,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":38092,\"rtt\":0.013108,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.190\",\"74.125.136.91\",\"74.125.136.136\",\"74.125.136.93\"],\"TTLs\":[75.0,75.0,75.0,75.0],\"rejected\":false}\n{\"ts\":1504226100.892947,\"uid\":\"CeRJhn3RZX4EGTnUqe\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":51541,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":62630,\"rtt\":0.014942,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:80f::200e\"],\"TTLs\":[171.0],\"rejected\":false}\n{\"ts\":1504226100.986226,\"uid\":\"CUGNDW1T74UvdK9Mf9\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":63234,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":4160,\"rtt\":0.019922,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"64.233.177.101\",\"64.233.177.102\",\"64.233.177.138\",\"64.233.177.100\",\"64.233.177.113\",\"64.233.177.139\"],\"TTLs\":[196.0,196.0,196.0,196.0,196.0,196.0],\"rejected\":false}\n{\"ts\":1504226100.990028,\"uid\":\"CWDOPh2uTQkhU7WH04\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":61705,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9459,\"rtt\":0.017509,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:811::200e\"],\"TTLs\":[95.0],\"rejected\":false}\n{\"ts\":1504226037.090323,\"uid\":\"CC3BJqLx0zgN89c35\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":53477,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":36570,\"rtt\":0.012916,\"query\":\"www.reddit.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"reddit.map.fastly.net\",\"151.101.57.140\"],\"TTLs\":[100.0,14.0],\"rejected\":false}\n{\"ts\":1504226037.107365,\"uid\":\"ConzS63HBcUhAmsxj1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":37538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":51137,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226037.121395,\"uid\":\"CjjfFwN6sIpL3CNX6\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57316,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":46466,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.300376,\"uid\":\"CC5fjfToo9iIu1S6d\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":60315,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":26918,\"rtt\":0.012398,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"173.194.175.106\",\"173.194.175.99\",\"173.194.175.147\",\"173.194.175.103\",\"173.194.175.105\",\"173.194.175.104\"],\"TTLs\":[153.0,153.0,153.0,153.0,153.0,153.0],\"rejected\":false}\n{\"ts\":1504226061.31575,\"uid\":\"Cwb8jt3ylC0gNoPhP2\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":43538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":57700,\"rtt\":0.009332,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:400d:c08::6a\"],\"TTLs\":[59.0],\"rejected\":false}\n{\"ts\":1504226061.326262,\"uid\":\"CbHWTgnel1m6H88hg\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57906,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":23801,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.114845,\"uid\":\"Cseinn4ur1mzgm7Kb1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":34365,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":41784,\"rtt\":0.012139,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"151.101.57.140\"],\"TTLs\":[13.0],\"rejected\":false}\n{\"ts\":1504226077.129055,\"uid\":\"CjMZsD3QI6tfxwInEf\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":35859,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":14171,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.151007,\"uid\":\"CYkgGr4Pvo594QvbEl\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":59605,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":32601,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226083.730927,\"uid\":\"Cc4BXO1HuOstqlUuZe\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":28208,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9969,\"rtt\":0.01341,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:c06::5e\"],\"TTLs\":[161.0],\"rejected\":false}\n{\"ts\":1504226083.749612,\"uid\":\"CPx0AD3djrVpt5vcdf\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":12786,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":13082,\"rtt\":0.012164,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.94\"],\"TTLs\":[116.0],\"rejected\":false}\n{\"ts\":1504226060.051483,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201694,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.37572,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518031,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226060.051722,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201758,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226064.375771,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226073.518083,\"uid\":\"CWsRPl2Qx6gNhHARM\",\"id.orig_h\":\"fe80::5ef9:38ff:fe95:536c\",\"id.orig_p\":5353,\"id.resp_h\":\"ff02::fb\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226093.757659,\"uid\":\"CyCXT53AEW082wEJuk\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":33275,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15917,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":true}\n{\"ts\":1504226093.772416,\"uid\":\"CMbrzzpSPxeegCR4\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":5841,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":15037,\"rtt\":0.001594,\"query\":\"ssl.google-analytics.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":true,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"0.0.0.0\"],\"TTLs\":[0.0],\"rejected\":false}\n{\"ts\":1504226100.889636,\"uid\":\"CeRmRa4wChxaXX5bPl\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":52291,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":38092,\"rtt\":0.013108,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.190\",\"74.125.136.91\",\"74.125.136.136\",\"74.125.136.93\"],\"TTLs\":[75.0,75.0,75.0,75.0],\"rejected\":false}\n{\"ts\":1504226100.892947,\"uid\":\"CeRJhn3RZX4EGTnUqe\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":51541,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":62630,\"rtt\":0.014942,\"query\":\"sb.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:80f::200e\"],\"TTLs\":[171.0],\"rejected\":false}\n{\"ts\":1504226100.986226,\"uid\":\"CUGNDW1T74UvdK9Mf9\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":63234,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":4160,\"rtt\":0.019922,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"64.233.177.101\",\"64.233.177.102\",\"64.233.177.138\",\"64.233.177.100\",\"64.233.177.113\",\"64.233.177.139\"],\"TTLs\":[196.0,196.0,196.0,196.0,196.0,196.0],\"rejected\":false}\n{\"ts\":1504226100.990028,\"uid\":\"CWDOPh2uTQkhU7WH04\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":61705,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9459,\"rtt\":0.017509,\"query\":\"safebrowsing.cache.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:811::200e\"],\"TTLs\":[95.0],\"rejected\":false}\n{\"ts\":1504226037.090323,\"uid\":\"CC3BJqLx0zgN89c35\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":53477,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":36570,\"rtt\":0.012916,\"query\":\"www.reddit.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"reddit.map.fastly.net\",\"151.101.57.140\"],\"TTLs\":[100.0,14.0],\"rejected\":false}\n{\"ts\":1504226037.107365,\"uid\":\"ConzS63HBcUhAmsxj1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":37538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":51137,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226037.121395,\"uid\":\"CjjfFwN6sIpL3CNX6\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57316,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":46466,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.300376,\"uid\":\"CC5fjfToo9iIu1S6d\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":60315,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":26918,\"rtt\":0.012398,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"173.194.175.106\",\"173.194.175.99\",\"173.194.175.147\",\"173.194.175.103\",\"173.194.175.105\",\"173.194.175.104\"],\"TTLs\":[153.0,153.0,153.0,153.0,153.0,153.0],\"rejected\":false}\n{\"ts\":1504226061.31575,\"uid\":\"Cwb8jt3ylC0gNoPhP2\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":43538,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":57700,\"rtt\":0.009332,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:400d:c08::6a\"],\"TTLs\":[59.0],\"rejected\":false}\n{\"ts\":1504226061.326262,\"uid\":\"CbHWTgnel1m6H88hg\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":57906,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":23801,\"query\":\"www.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.114845,\"uid\":\"Cseinn4ur1mzgm7Kb1\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":34365,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":41784,\"rtt\":0.012139,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"151.101.57.140\"],\"TTLs\":[13.0],\"rejected\":false}\n{\"ts\":1504226077.129055,\"uid\":\"CjMZsD3QI6tfxwInEf\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":35859,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":14171,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226077.151007,\"uid\":\"CYkgGr4Pvo594QvbEl\",\"id.orig_h\":\"192.168.2.157\",\"id.orig_p\":59605,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":32601,\"query\":\"reddit.map.fastly.net\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":15,\"qtype_name\":\"MX\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226083.730927,\"uid\":\"Cc4BXO1HuOstqlUuZe\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":28208,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":9969,\"rtt\":0.01341,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:c06::5e\"],\"TTLs\":[161.0],\"rejected\":false}\n{\"ts\":1504226083.749612,\"uid\":\"CPx0AD3djrVpt5vcdf\",\"id.orig_h\":\"192.168.2.161\",\"id.orig_p\":12786,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":13082,\"rtt\":0.012164,\"query\":\"update.googleapis.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.136.94\"],\"TTLs\":[116.0],\"rejected\":false}\n{\"ts\":1504226060.051483,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":32769,\"qclass_name\":\"qclass-32769\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n{\"ts\":1504226061.201694,\"uid\":\"CYmiFV2KquvFq4lac4\",\"id.orig_h\":\"192.168.2.144\",\"id.orig_p\":5353,\"id.resp_h\":\"224.0.0.251\",\"id.resp_p\":5353,\"proto\":\"udp\",\"trans_id\":0,\"query\":\"_googlecast._tcp.local\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":12,\"qtype_name\":\"PTR\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":0,\"rejected\":false}\n"
  },
  {
    "path": "test_data/dns_json_iso8601.json",
    "content": "{\"ts\":\"2019-08-27T21:00:00.058798Z\",\"uid\":\"CERjsr4nnMSFf6Q617\",\"id.orig_h\":\"192.168.2.116\",\"id.orig_p\":53678,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":30824,\"rtt\":0.007465,\"query\":\"googlemail.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:c06::11\"],\"TTLs\":[299.0],\"rejected\":false}\n{\"ts\":\"2019-08-27T21:00:00.050787Z\",\"uid\":\"Cxx0no4PbWXq8e8aha\",\"id.orig_h\":\"192.168.2.116\",\"id.orig_p\":56470,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":41183,\"rtt\":0.007586,\"query\":\"googlemail.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"74.125.196.17\",\"74.125.196.18\",\"74.125.196.83\",\"74.125.196.19\"],\"TTLs\":[299.0,299.0,299.0,299.0],\"rejected\":false}\n{\"ts\":\"2019-08-27T21:05:00.455676Z\",\"uid\":\"CacroF3sLUaPW1Tpw7\",\"id.orig_h\":\"192.168.2.116\",\"id.orig_p\":40955,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":1304,\"rtt\":0.009959,\"query\":\"googlemail.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"64.233.185.19\",\"64.233.185.18\",\"64.233.185.17\",\"64.233.185.83\"],\"TTLs\":[299.0,299.0,299.0,299.0],\"rejected\":false}\n{\"ts\":\"2019-08-27T21:05:00.466232Z\",\"uid\":\"Cs1FUC32JFma4IAahi\",\"id.orig_h\":\"192.168.2.116\",\"id.orig_p\":53514,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":21792,\"rtt\":0.008193,\"query\":\"googlemail.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":28,\"qtype_name\":\"AAAA\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"2607:f8b0:4002:c0c::13\"],\"TTLs\":[299.0],\"rejected\":false}\n{\"ts\":\"2019-08-27T21:05:25.005297Z\",\"uid\":\"CfPP9AblRknTTsXY8\",\"id.orig_h\":\"192.168.2.133\",\"id.orig_p\":64423,\"id.resp_h\":\"192.168.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":52998,\"rtt\":0.000628,\"query\":\"googlemail.l.google.com\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":1,\"qtype_name\":\"A\",\"rcode\":0,\"rcode_name\":\"NOERROR\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":true,\"Z\":0,\"answers\":[\"64.233.185.83\",\"64.233.185.17\",\"64.233.185.18\",\"64.233.185.19\"],\"TTLs\":[274.0,274.0,274.0,274.0],\"rejected\":false}\n"
  },
  {
    "path": "test_data/garbage.log",
    "content": "{\"ts\":1546319860.813048,\"uid\":\"CrkLPv18FirmddtvQ\",\"id.orig_h\":\"1.2.3.4\",\"id.orig_p\":58517,\"id.resp_h\":\"4.3.2.1\",\"id.resp_p\":53,\"proto\":\"udp\",\"trans_id\":3083,\"query\":\"\\u001e\\u00d1$ppyt\\u00a38+\\u0093\\u0016\\u0036\\u00dc\\u00f5\\u00a5\\u00ac[5\\u00e9*y\\u00a2\\u00b3\\u00876\\u00be#\\u00bd;}\\u000a\\u001a\\u00f1@\\u0026\\u0000\\u000fz\\u0018\\u0009.no\\u0026\\u00e4\\u00bele\\u00fc\\u008c\",\"qclass\":29467,\"qclass_name\":\"qclass-29467\",\"qtype\":35599,\"qtype_name\":\"query-35599\",\"AA\":false,\"TC\":false,\"RD\":true,\"RA\":false,\"Z\":0,\"rejected\":false}\n"
  },
  {
    "path": "test_data/nbtstat.log",
    "content": "{\"ts\":1538959195.632702,\"uid\":\"CDC4zv1yqQAZJ4dDXe\",\"id.orig_h\":\"10.1.2.3\",\"id.orig_p\":137,\"id.resp_h\":\"10.4.5.6\",\"id.resp_p\":137,\"proto\":\"udp\",\"trans_id\":38607,\"query\":\"*\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\\u0000\",\"qclass\":1,\"qclass_name\":\"C_INTERNET\",\"qtype\":33,\"qtype_name\":\"NBSTAT\",\"AA\":false,\"TC\":false,\"RD\":false,\"RA\":false,\"Z\":1,\"rejected\":false}\n"
  },
  {
    "path": "test_data/reddit_1.txt",
    "content": "#separator \\x09\n#set_separator\t,\n#empty_field\t(empty)\n#unset_field\t-\n#path\tdns\n#open\t2016-04-01-00-00-40\n#fields\tts\tuid\tid.orig_h\tid.orig_p\tid.resp_h\tid.resp_p\tproto\ttrans_id\tquery\tqclass\tqclass_name\tqtype\tqtype_name\trcode\trcode_name\tAA\tTC\tRD\tRA\tZ\tanswers\tTTLs\trejected\tcc\n#types\ttime\tstring\taddr\tport\taddr\tport\tenum\tcount\tstring\tcount\tstring\tcount\tstring\tcount\tstring\tbool\tbool\tbool\tbool\tcount\tvector[string]\tvector[interval]\tbool\tstring\n1459468983.750000\tCOKlryLloBE6EB7oe\t192.168.1.1\t62834\t198.41.222.24\t53\tudp\t22543\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.208.142,198.41.208.143,198.41.208.140,198.41.209.139,198.41.209.140,198.41.209.141,198.41.208.138,198.41.209.136,198.41.208.137,198.41.209.137,198.41.208.139,198.41.209.143,198.41.208.141,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n"
  },
  {
    "path": "test_data/reddit_2.txt",
    "content": "#separator \\x09\n#set_separator\t,\n#empty_field\t(empty)\n#unset_field\t-\n#path\tdns\n#open\t2016-04-01-00-00-40\n#fields\tts\tuid\tid.orig_h\tid.orig_p\tid.resp_h\tid.resp_p\tproto\ttrans_id\tquery\tqclass\tqclass_name\tqtype\tqtype_name\trcode\trcode_name\tAA\tTC\tRD\tRA\tZ\tanswers\tTTLs\trejected\tcc\n#types\ttime\tstring\taddr\tport\taddr\tport\tenum\tcount\tstring\tcount\tstring\tcount\tstring\tcount\tstring\tbool\tbool\tbool\tbool\tcount\tvector[string]\tvector[interval]\tbool\tstring\n1459547704.500000\tCSJeQh1Uu4zoeDAkTa\t192.168.1.1\t54496\t173.245.58.24\t53\tudp\t45516\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.208.142,198.41.208.143,198.41.209.136,198.41.209.143,198.41.209.140,198.41.208.137,198.41.208.141,198.41.209.137,198.41.209.142,198.41.208.139,198.41.208.140,198.41.209.141,198.41.209.139,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n"
  },
  {
    "path": "test_data/reddit_dns_2016-04-01.log",
    "content": "#separator \\x09\n#set_separator\t,\n#empty_field\t(empty)\n#unset_field\t-\n#path\tdns\n#open\t2016-04-01-00-00-40\n#fields\tts\tuid\tid.orig_h\tid.orig_p\tid.resp_h\tid.resp_p\tproto\ttrans_id\tquery\tqclass\tqclass_name\tqtype\tqtype_name\trcode\trcode_name\tAA\tTC\tRD\tRA\tZ\tanswers\tTTLs\trejected\tcc\n#types\ttime\tstring\taddr\tport\taddr\tport\tenum\tcount\tstring\tcount\tstring\tcount\tstring\tcount\tstring\tbool\tbool\tbool\tbool\tcount\tvector[string]\tvector[interval]\tbool\tstring\n1459468983.743478\tCOKlryLloBE6EB7oe\t192.168.1.1\t62834\t198.41.222.24\t53\tudp\t22543\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.208.142,198.41.208.143,198.41.208.140,198.41.209.139,198.41.209.140,198.41.209.141,198.41.208.138,198.41.209.136,198.41.208.137,198.41.209.137,198.41.208.139,198.41.209.143,198.41.208.141,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459469040.755063\tC8MFK740YjXEMPgXY6\t192.168.1.1\t53975\t173.245.58.24\t53\tudp\t3270\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.140,198.41.209.139,198.41.209.138,198.41.208.138,198.41.209.140,198.41.208.142,198.41.209.142,198.41.208.141,198.41.208.139,198.41.209.137,198.41.209.141,198.41.209.136,198.41.208.143,198.41.208.137,198.41.209.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459470277.597403\tC0LfI41RHTGQRhAmPa\t192.168.1.1\t49499\t198.41.223.24\t53\tudp\t12439\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.208.141,198.41.209.141,198.41.209.139,198.41.209.138,198.41.209.140,198.41.208.143,198.41.208.142,198.41.209.136,198.41.209.143,198.41.208.140,198.41.208.137,198.41.208.139,198.41.209.137,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459483828.090695\tCmX7tILbwd9U3or7d\t192.168.1.1\t53595\t198.41.223.24\t53\tudp\t55870\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.208.138,198.41.208.137,198.41.209.136,198.41.208.140,198.41.209.141,198.41.209.142,198.41.209.137,198.41.209.143,198.41.208.139,198.41.208.141,198.41.209.138,198.41.209.139,198.41.208.143,198.41.209.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459483828.097083\tCrvRfW1GzsGjJ5anci\t192.168.1.1\t58683\t198.41.222.24\t53\tudp\t5753\twww.reddit.com\t1\tC_INTERNET\t28\tAAAA\t0\tNOERROR\tF\tF\tF\tF\t0\t-\t-\tF\t-\n1459509366.896876\tCbHpRD47aSOLmD8O03\t192.168.1.1\t63648\t198.41.222.24\t53\tudp\t29743\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.209.136,198.41.208.137,198.41.208.143,198.41.208.142,198.41.209.138,198.41.208.141,198.41.209.142,198.41.209.141,198.41.209.139,198.41.209.137,198.41.208.138,198.41.208.140,198.41.209.140,198.41.209.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459513647.596456\tCbt9jc4T1qDQNNZG8d\t192.168.1.1\t52854\t173.245.58.24\t53\tudp\t10074\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.141,198.41.208.142,198.41.209.136,198.41.208.143,198.41.209.140,198.41.209.139,198.41.209.142,198.41.208.138,198.41.209.143,198.41.209.138,198.41.208.140,198.41.209.141,198.41.209.137,198.41.208.139,198.41.208.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459513648.271360\tCBgKHC4jPHcFPbKY26\t192.168.1.1\t55307\t198.41.223.24\t53\tudp\t43077\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.209.142,198.41.209.141,198.41.209.139,198.41.208.140,198.41.208.138,198.41.208.137,198.41.209.143,198.41.208.143,198.41.209.138,198.41.209.137,198.41.209.140,198.41.208.139,198.41.208.141,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459514126.069800\tCOtFV7311oufk5QDkk\t192.168.1.1\t49392\t198.41.222.24\t53\tudp\t7588\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.209.138,198.41.209.136,198.41.208.142,198.41.209.141,198.41.208.138,198.41.209.137,198.41.208.140,198.41.209.143,198.41.208.137,198.41.209.139,198.41.209.140,198.41.208.143,198.41.209.142,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459514286.737869\tCmC0er1hh7XQkd4Rk4\t192.168.1.1\t59509\t198.41.223.24\t53\tudp\t7091\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.208.143,198.41.209.137,198.41.209.140,198.41.208.138,198.41.209.142,198.41.208.142,198.41.208.137,198.41.209.139,198.41.208.139,198.41.208.140,198.41.209.138,198.41.209.141,198.41.208.141,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459514655.777144\tClgK2b4tj2FT3rWdic\t192.168.1.1\t53318\t198.41.222.24\t53\tudp\t11474\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.208.141,198.41.208.143,198.41.208.137,198.41.208.139,198.41.209.141,198.41.209.136,198.41.209.139,198.41.209.142,198.41.208.138,198.41.209.143,198.41.209.137,198.41.209.140,198.41.209.138,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459514965.558995\tCb3ZHoHMoFuFvxu8f\t192.168.1.1\t51384\t173.245.58.24\t53\tudp\t62422\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.209.137,198.41.208.140,198.41.209.138,198.41.209.142,198.41.208.141,198.41.208.142,198.41.208.137,198.41.209.139,198.41.209.140,198.41.208.143,198.41.209.143,198.41.208.138,198.41.208.139,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459515235.058652\tC2UlHW2B3q5VbiSgqf\t192.168.1.1\t57516\t198.41.222.24\t53\tudp\t17273\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.208.139,198.41.209.140,198.41.209.137,198.41.208.140,198.41.209.142,198.41.209.141,198.41.208.137,198.41.208.143,198.41.208.142,198.41.209.136,198.41.209.143,198.41.209.138,198.41.208.141,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459515390.544248\tCb3K8O22OeM6vRMXml\t192.168.1.1\t58386\t198.41.223.24\t53\tudp\t57698\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.137,198.41.209.140,198.41.209.138,198.41.208.143,198.41.208.142,198.41.209.139,198.41.209.136,198.41.208.141,198.41.208.139,198.41.209.143,198.41.208.138,198.41.209.141,198.41.209.137,198.41.209.142,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459515993.135468\tCeOksW1glap2bMkV2\t192.168.1.1\t52012\t198.41.223.24\t53\tudp\t38164\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.141,198.41.209.137,198.41.209.142,198.41.209.138,198.41.209.136,198.41.208.143,198.41.208.140,198.41.208.137,198.41.209.143,198.41.208.138,198.41.209.141,198.41.208.139,198.41.209.140,198.41.209.139,198.41.208.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459516120.670290\tCcCxQi4LnGC36SMxJh\t192.168.1.1\t55753\t198.41.222.24\t53\tudp\t15884\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.208.140,198.41.208.139,198.41.208.142,198.41.209.138,198.41.209.136,198.41.209.137,198.41.208.143,198.41.208.137,198.41.208.141,198.41.209.140,198.41.209.141,198.41.208.138,198.41.209.143,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459516435.132207\tC5Ms4b4xjaY48q9ovf\t192.168.1.1\t57171\t173.245.58.24\t53\tudp\t48836\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.137,198.41.208.139,198.41.209.139,198.41.209.141,198.41.208.141,198.41.209.138,198.41.208.143,198.41.209.136,198.41.208.142,198.41.209.142,198.41.208.137,198.41.209.143,198.41.208.138,198.41.209.140,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459516541.938562\tCbDzCN1i5RGaABK5ce\t192.168.1.1\t59680\t198.41.223.24\t53\tudp\t30304\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.137,198.41.208.138,198.41.209.139,198.41.208.141,198.41.208.142,198.41.209.141,198.41.209.140,198.41.208.140,198.41.209.138,198.41.208.143,198.41.209.143,198.41.208.137,198.41.209.142,198.41.208.139,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459516796.374825\tCp4Jic255bEVtg6H3d\t192.168.1.1\t57628\t173.245.58.24\t53\tudp\t48076\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.209.142,198.41.209.138,198.41.209.141,198.41.208.140,198.41.209.137,198.41.209.143,198.41.208.141,198.41.209.136,198.41.209.140,198.41.208.138,198.41.209.139,198.41.208.143,198.41.208.142,198.41.208.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459516796.378706\tCDbu8S1JyrNHwfhPd9\t192.168.1.1\t60808\t198.41.222.24\t53\tudp\t43846\twww.reddit.com\t1\tC_INTERNET\t28\tAAAA\t0\tNOERROR\tF\tF\tF\tF\t0\t-\t-\tF\t-\n1459517120.939082\tCh7wDi4S4qTUS5NRI6\t192.168.1.1\t63215\t173.245.58.24\t53\tudp\t55635\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.208.140,198.41.209.138,198.41.209.137,198.41.208.141,198.41.208.138,198.41.208.143,198.41.209.139,198.41.208.139,198.41.209.141,198.41.209.140,198.41.209.136,198.41.208.137,198.41.209.143,198.41.208.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459517494.235804\tCsfYwa1SZtLt7cmU3j\t192.168.1.1\t54030\t198.41.222.24\t53\tudp\t40499\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.136,198.41.208.139,198.41.209.139,198.41.208.142,198.41.209.141,198.41.208.143,198.41.209.138,198.41.208.137,198.41.209.137,198.41.209.143,198.41.209.142,198.41.208.140,198.41.208.138,198.41.208.141,198.41.209.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459517912.258693\tC3xEqm1bM5l2hWQjG8\t192.168.1.1\t63989\t198.41.223.24\t53\tudp\t59875\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.209.138,198.41.209.142,198.41.209.137,198.41.209.136,198.41.208.141,198.41.208.139,198.41.209.141,198.41.208.140,198.41.209.143,198.41.209.140,198.41.208.142,198.41.208.143,198.41.208.137,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459518341.550836\tCX06yG1EEpNhAKZpG4\t192.168.1.1\t55433\t198.41.222.24\t53\tudp\t17934\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.209.136,198.41.208.142,198.41.208.137,198.41.208.138,198.41.209.137,198.41.209.142,198.41.208.143,198.41.209.141,198.41.208.141,198.41.208.139,198.41.208.140,198.41.209.139,198.41.209.138,198.41.209.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459518950.808185\tCrQlZk1aoVEk18SBn1\t192.168.1.1\t57431\t198.41.223.24\t53\tudp\t12622\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.140,198.41.209.142,198.41.208.137,198.41.208.143,198.41.209.136,198.41.209.141,198.41.209.140,198.41.209.138,198.41.209.143,198.41.208.142,198.41.208.141,198.41.208.138,198.41.208.139,198.41.209.137,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459518950.794330\tCSDGGT2i3suYULyudf\t192.168.1.1\t62552\t173.245.58.24\t53\tudp\t39934\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.138,198.41.209.143,198.41.209.136,198.41.209.140,198.41.208.137,198.41.208.139,198.41.209.139,198.41.208.141,198.41.208.140,198.41.208.143,198.41.208.138,198.41.209.142,198.41.208.142,198.41.209.141,198.41.209.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459519280.468503\tC5p8qO1g8RjY32lXoe\t192.168.1.1\t53544\t173.245.58.24\t53\tudp\t53008\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.209.140,198.41.209.143,198.41.208.138,198.41.209.138,198.41.209.137,198.41.208.142,198.41.208.139,198.41.208.140,198.41.209.139,198.41.208.137,198.41.209.142,198.41.209.136,198.41.208.143,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459519707.516203\tCbfBZ74hw3GFrUNDTh\t192.168.1.1\t57819\t173.245.58.24\t53\tudp\t42329\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.208.140,198.41.209.141,198.41.208.138,198.41.209.138,198.41.209.143,198.41.209.136,198.41.209.142,198.41.209.137,198.41.209.139,198.41.208.142,198.41.208.143,198.41.208.137,198.41.208.141,198.41.209.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459520012.295282\tCEjVdD1e0LqWV0tYPf\t192.168.1.1\t64019\t198.41.222.24\t53\tudp\t61858\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.143,198.41.209.139,198.41.209.138,198.41.209.137,198.41.208.142,198.41.208.140,198.41.209.140,198.41.208.141,198.41.208.138,198.41.209.143,198.41.208.137,198.41.209.136,198.41.208.139,198.41.209.142,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459520122.898406\tCsCmxNS1FaLTTtsEe\t192.168.1.1\t53778\t198.41.223.24\t53\tudp\t17311\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.138,198.41.209.143,198.41.208.143,198.41.208.142,198.41.209.142,198.41.209.136,198.41.208.137,198.41.209.137,198.41.209.140,198.41.209.139,198.41.209.141,198.41.208.140,198.41.208.138,198.41.208.139,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459520194.714102\tClHYVA2rSyGTxfLex8\t192.168.1.2\t62020\t173.245.58.24\t53\tudp\t28486\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.139,198.41.208.139,198.41.208.141,198.41.209.143,198.41.209.142,198.41.208.142,198.41.208.138,198.41.209.138,198.41.209.140,198.41.209.136,198.41.208.140,198.41.209.141,198.41.208.143,198.41.209.137,198.41.208.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459520194.714842\tCqvTqU2iHvn3ZIjly2\t192.168.1.2\t56508\t173.245.58.24\t53\tudp\t34689\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.208.139,198.41.208.143,198.41.208.138,198.41.209.142,198.41.209.136,198.41.209.141,198.41.208.137,198.41.208.140,198.41.209.143,198.41.209.140,198.41.209.138,198.41.209.137,198.41.208.141,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459520363.149589\tCldhW6uEeo9jYhfC4\t192.168.1.1\t54622\t173.245.58.24\t53\tudp\t13951\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.209.142,198.41.209.139,198.41.209.138,198.41.209.143,198.41.208.137,198.41.208.138,198.41.208.143,198.41.208.140,198.41.209.137,198.41.209.136,198.41.208.141,198.41.209.140,198.41.209.141,198.41.208.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459520437.322170\tCnepGwdHbupHN7iCd\t192.168.1.1\t49550\t198.41.222.24\t53\tudp\t26886\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.209.139,198.41.209.141,198.41.208.137,198.41.209.137,198.41.208.140,198.41.208.142,198.41.209.140,198.41.209.143,198.41.208.138,198.41.208.139,198.41.209.136,198.41.208.143,198.41.209.138,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459520523.892531\tCdLpEC2QaCnEa6jMRk\t192.168.1.2\t53906\t198.41.223.24\t53\tudp\t17542\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.141,198.41.208.139,198.41.208.137,198.41.209.141,198.41.209.138,198.41.208.143,198.41.208.140,198.41.209.143,198.41.209.140,198.41.209.137,198.41.208.142,198.41.209.139,198.41.209.136,198.41.208.138,198.41.209.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459520673.010387\tCqWg3e6QVNbqxZx21\t192.168.1.1\t49691\t198.41.223.24\t53\tudp\t22197\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.208.138,198.41.209.137,198.41.209.142,198.41.209.139,198.41.208.143,198.41.208.141,198.41.208.140,198.41.208.142,198.41.209.138,198.41.209.136,198.41.208.139,198.41.209.143,198.41.209.140,198.41.208.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459520826.923034\tCSvNPg2G1CKH3U7V6j\t192.168.1.1\t51938\t198.41.222.24\t53\tudp\t58493\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.209.139,198.41.209.137,198.41.208.143,198.41.208.137,198.41.208.138,198.41.208.142,198.41.208.139,198.41.209.138,198.41.209.136,198.41.208.140,198.41.209.142,198.41.208.141,198.41.209.143,198.41.209.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459521134.745701\tCXNf9dwbAGYkj4zX5\t192.168.1.1\t59777\t173.245.58.24\t53\tudp\t54917\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.208.142,198.41.209.141,198.41.208.139,198.41.209.136,198.41.208.138,198.41.208.141,198.41.209.142,198.41.209.140,198.41.209.137,198.41.208.143,198.41.209.139,198.41.209.138,198.41.208.137,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459521408.473273\tCawQs73CWM1TSaUqni\t192.168.1.1\t65084\t198.41.223.24\t53\tudp\t11212\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.208.140,198.41.209.136,198.41.208.141,198.41.209.139,198.41.208.139,198.41.209.137,198.41.208.138,198.41.208.137,198.41.209.142,198.41.209.140,198.41.208.142,198.41.208.143,198.41.209.141,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459521436.669136\tCsDjBv4W99bmo8MfU2\t192.168.1.1\t58039\t198.41.222.24\t53\tudp\t52231\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.140,198.41.209.138,198.41.209.142,198.41.208.139,198.41.209.143,198.41.208.137,198.41.208.142,198.41.208.141,198.41.209.139,198.41.208.143,198.41.209.140,198.41.208.138,198.41.209.136,198.41.209.137,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459521768.579938\tC3Rl5v3mePP4NbJlid\t192.168.1.1\t56834\t198.41.223.24\t53\tudp\t56266\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.137,198.41.209.139,198.41.208.142,198.41.208.143,198.41.209.140,198.41.209.136,198.41.208.138,198.41.208.139,198.41.209.138,198.41.209.141,198.41.208.137,198.41.208.140,198.41.209.143,198.41.209.142,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459521821.766751\tCZgKjZ2l2aKXDR0qJ3\t192.168.1.1\t59482\t173.245.58.24\t53\tudp\t56058\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.141,198.41.209.138,198.41.209.140,198.41.209.143,198.41.208.138,198.41.209.137,198.41.209.136,198.41.209.142,198.41.208.140,198.41.208.143,198.41.209.139,198.41.208.137,198.41.208.142,198.41.208.139,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459522075.352186\tCa53kJ2sdzpisREPke\t192.168.1.1\t54159\t198.41.222.24\t53\tudp\t15926\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.141,198.41.208.143,198.41.208.138,198.41.208.137,198.41.208.140,198.41.209.142,198.41.209.139,198.41.209.141,198.41.209.143,198.41.208.142,198.41.208.139,198.41.209.140,198.41.209.137,198.41.209.136,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459522222.664509\tCfUvus4D5M2R6VmMM\t192.168.1.2\t55235\t198.41.223.24\t53\tudp\t43226\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.136,198.41.208.140,198.41.209.138,198.41.208.142,198.41.209.137,198.41.209.143,198.41.208.137,198.41.209.139,198.41.208.143,198.41.209.142,198.41.208.139,198.41.209.140,198.41.209.141,198.41.208.141,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459522222.667759\tCq1Geh1Gp7b1Sag84a\t192.168.1.2\t64769\t198.41.223.24\t53\tudp\t17920\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.209.143,198.41.208.140,198.41.209.136,198.41.208.141,198.41.208.137,198.41.209.137,198.41.209.140,198.41.209.139,198.41.209.138,198.41.209.141,198.41.208.139,198.41.209.142,198.41.208.138,198.41.208.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459522324.980620\tCPnhxw4SvbZ7rSQfci\t192.168.1.1\t53230\t173.245.58.24\t53\tudp\t37102\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.139,198.41.208.138,198.41.209.143,198.41.209.137,198.41.208.137,198.41.209.140,198.41.209.138,198.41.208.141,198.41.208.140,198.41.209.136,198.41.209.141,198.41.208.143,198.41.208.142,198.41.208.139,198.41.209.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459522353.920914\tCmNTnt4OXWI3qAy0ae\t192.168.1.1\t53517\t198.41.223.24\t53\tudp\t30274\tbuttons.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.140,198.41.209.140,198.41.209.142,198.41.208.141,198.41.208.142,198.41.209.141,198.41.209.139,198.41.209.143,198.41.208.139,198.41.208.137,198.41.209.136,198.41.208.143,198.41.209.137,198.41.209.138,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459522381.262013\tC4qfxL3UvB6ytGKJ2c\t192.168.1.1\t57982\t198.41.222.24\t53\tudp\t8280\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.209.137,198.41.208.138,198.41.208.142,198.41.208.139,198.41.209.141,198.41.208.143,198.41.209.138,198.41.209.140,198.41.209.142,198.41.209.139,198.41.208.137,198.41.208.140,198.41.208.141,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459522670.120847\tCmjhbfuxZ9l2RQq7h\t192.168.1.2\t53232\t198.41.222.24\t53\tudp\t49029\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.209.137,198.41.208.138,198.41.208.143,198.41.208.141,198.41.209.138,198.41.209.140,198.41.209.142,198.41.209.143,198.41.208.137,198.41.209.136,198.41.208.140,198.41.208.139,198.41.209.139,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459522733.590121\tCkec9d35QS8pLMeOMf\t192.168.1.1\t62616\t198.41.222.24\t53\tudp\t52446\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.208.139,198.41.209.137,198.41.208.143,198.41.209.140,198.41.208.142,198.41.208.137,198.41.209.141,198.41.209.139,198.41.209.142,198.41.209.143,198.41.209.138,198.41.208.141,198.41.208.140,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459522737.436247\tC2e1A4qXefqLoD6Ki\t192.168.1.2\t64336\t173.245.58.24\t53\tudp\t16877\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.140,198.41.209.138,198.41.209.142,198.41.208.137,198.41.209.137,198.41.209.143,198.41.208.141,198.41.209.140,198.41.208.139,198.41.208.143,198.41.208.138,198.41.209.141,198.41.208.142,198.41.209.136,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459523133.675055\tCjU2G2BWTuN0CVTNd\t192.168.1.1\t61929\t173.245.58.24\t53\tudp\t65387\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.209.141,198.41.208.138,198.41.208.142,198.41.209.140,198.41.209.138,198.41.208.139,198.41.209.137,198.41.209.139,198.41.208.143,198.41.208.137,198.41.209.142,198.41.208.141,198.41.209.136,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459523134.453930\tCPxNre3CdAnNSulXze\t192.168.1.1\t51679\t198.41.223.24\t53\tudp\t62939\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.137,198.41.208.141,198.41.208.137,198.41.208.143,198.41.209.142,198.41.209.143,198.41.209.138,198.41.208.142,198.41.208.138,198.41.209.136,198.41.209.141,198.41.208.140,198.41.209.140,198.41.208.139,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459523440.545087\tCDCgHy2lt7tEzv0q6c\t192.168.1.1\t56585\t173.245.58.24\t53\tudp\t20613\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.136,198.41.208.141,198.41.208.138,198.41.209.140,198.41.208.143,198.41.208.137,198.41.209.137,198.41.209.141,198.41.209.138,198.41.208.140,198.41.209.143,198.41.208.139,198.41.209.139,198.41.209.142,198.41.208.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459523630.330650\tC4ktcr3TDSEegVJqAi\t192.168.1.1\t58024\t198.41.222.24\t53\tudp\t9274\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.139,198.41.208.139,198.41.208.142,198.41.209.141,198.41.208.143,198.41.209.140,198.41.209.136,198.41.208.140,198.41.209.138,198.41.209.142,198.41.209.137,198.41.208.137,198.41.208.138,198.41.208.141,198.41.209.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459523777.409394\tCKLS8t4jAINIzGRpWi\t192.168.1.1\t63810\t173.245.58.24\t53\tudp\t35949\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.136,198.41.209.139,198.41.208.139,198.41.209.142,198.41.209.143,198.41.209.141,198.41.209.138,198.41.208.137,198.41.209.140,198.41.208.141,198.41.208.140,198.41.209.137,198.41.208.142,198.41.208.138,198.41.208.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459524094.060592\tCLCqYJ3taXnbFBuVa9\t192.168.1.2\t57023\t198.41.222.24\t53\tudp\t28573\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.209.142,198.41.208.141,198.41.209.136,198.41.208.138,198.41.209.139,198.41.208.137,198.41.208.143,198.41.209.137,198.41.208.140,198.41.209.138,198.41.208.142,198.41.209.140,198.41.208.139,198.41.209.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459524098.097308\tCrUcTe286elKLBBV8\t192.168.1.2\t51828\t198.41.223.24\t53\tudp\t58490\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.137,198.41.208.139,198.41.208.138,198.41.208.140,198.41.208.142,198.41.209.138,198.41.209.136,198.41.208.141,198.41.209.140,198.41.209.137,198.41.209.141,198.41.208.143,198.41.209.143,198.41.209.139,198.41.209.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459524134.598120\tCMUC1Pe7VprHOKfa3\t192.168.1.1\t65174\t198.41.223.24\t53\tudp\t36450\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.138,198.41.208.140,198.41.208.143,198.41.209.139,198.41.209.143,198.41.209.142,198.41.208.138,198.41.209.140,198.41.208.142,198.41.208.141,198.41.208.137,198.41.209.141,198.41.209.137,198.41.208.139,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459524354.052207\tCvKUqa1QV2CKhZSNu2\t192.168.1.1\t53684\t198.41.222.24\t53\tudp\t13662\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.208.143,198.41.208.141,198.41.209.142,198.41.209.137,198.41.209.140,198.41.209.143,198.41.208.139,198.41.208.137,198.41.208.140,198.41.208.138,198.41.209.136,198.41.209.138,198.41.209.139,198.41.208.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459524450.721100\tCw7VEz2fJE8oNu0439\t192.168.1.1\t61330\t173.245.58.24\t53\tudp\t60282\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.208.137,198.41.209.141,198.41.208.139,198.41.209.136,198.41.209.143,198.41.209.140,198.41.208.138,198.41.208.141,198.41.209.137,198.41.209.142,198.41.209.139,198.41.209.138,198.41.208.143,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459524787.804497\tC1zIUa2gQwkqxOAV04\t192.168.1.1\t58255\t198.41.223.24\t53\tudp\t52482\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.137,198.41.208.138,198.41.209.142,198.41.209.139,198.41.209.138,198.41.208.142,198.41.208.139,198.41.208.141,198.41.209.141,198.41.209.143,198.41.209.140,198.41.209.137,198.41.209.136,198.41.208.143,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459524787.805030\tCuIVoI1Z0Vk2cC3RG8\t192.168.1.1\t64710\t173.245.58.24\t53\tudp\t52957\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.143,198.41.209.140,198.41.208.138,198.41.208.139,198.41.209.139,198.41.208.140,198.41.209.138,198.41.208.142,198.41.209.137,198.41.209.142,198.41.208.141,198.41.208.137,198.41.209.143,198.41.209.136,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459525091.539784\tC1hKVQb3HkVENChBb\t192.168.1.1\t52529\t198.41.223.24\t53\tudp\t18097\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.208.141,198.41.209.143,198.41.209.142,198.41.208.140,198.41.209.140,198.41.208.139,198.41.208.142,198.41.209.137,198.41.209.139,198.41.209.136,198.41.208.137,198.41.208.143,198.41.209.138,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459525149.386087\tCLpWpg2cKR1fLHt3Mb\t192.168.1.1\t51101\t173.245.58.24\t53\tudp\t25658\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.141,198.41.208.138,198.41.208.142,198.41.209.143,198.41.209.141,198.41.208.137,198.41.208.140,198.41.209.140,198.41.209.137,198.41.209.136,198.41.208.139,198.41.209.142,198.41.208.143,198.41.209.138,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459525412.297541\tCGPngs3ARDgsWUP4Yf\t192.168.1.1\t51864\t198.41.223.24\t53\tudp\t41571\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.208.141,198.41.209.139,198.41.208.138,198.41.208.140,198.41.209.143,198.41.209.141,198.41.209.140,198.41.208.137,198.41.209.137,198.41.209.142,198.41.208.139,198.41.208.143,198.41.209.136,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459525486.190115\tC2f8en2EPVU0p2fYxa\t192.168.1.1\t58812\t198.41.222.24\t53\tudp\t12326\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.209.137,198.41.208.138,198.41.209.143,198.41.209.136,198.41.208.141,198.41.209.139,198.41.208.143,198.41.209.140,198.41.209.138,198.41.208.140,198.41.209.142,198.41.208.137,198.41.208.142,198.41.208.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459525498.211566\tCIA1Lw3xQxvJmLBDR7\t192.168.1.1\t64078\t198.41.223.24\t53\tudp\t51366\tbuttons.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.137,198.41.209.138,198.41.209.142,198.41.208.140,198.41.208.139,198.41.208.141,198.41.208.138,198.41.208.142,198.41.209.143,198.41.209.140,198.41.209.139,198.41.208.137,198.41.208.143,198.41.209.136,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459525792.609074\tC4qOi41dd41WtUwhcj\t192.168.1.1\t61854\t173.245.58.24\t53\tudp\t8506\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.208.137,198.41.208.141,198.41.209.138,198.41.209.139,198.41.209.140,198.41.208.139,198.41.209.142,198.41.209.141,198.41.208.140,198.41.209.137,198.41.208.142,198.41.208.143,198.41.209.136,198.41.209.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459525897.055769\tC9Wafm1212UeW8rMWk\t192.168.1.1\t55595\t198.41.222.24\t53\tudp\t11972\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.136,198.41.209.137,198.41.209.138,198.41.209.142,198.41.208.139,198.41.208.140,198.41.208.137,198.41.208.142,198.41.209.143,198.41.208.143,198.41.209.139,198.41.209.141,198.41.209.140,198.41.208.138,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459526192.768405\tCq8Su01ERESyTlmYgf\t192.168.1.1\t50258\t198.41.223.24\t53\tudp\t17881\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.208.143,198.41.208.140,198.41.208.142,198.41.209.136,198.41.209.138,198.41.209.141,198.41.208.137,198.41.208.139,198.41.209.142,198.41.209.139,198.41.209.140,198.41.209.143,198.41.209.137,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459526329.355074\tCNLcQ11iqfkNAVly5b\t192.168.1.1\t52854\t198.41.223.24\t53\tudp\t45047\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.208.141,198.41.208.138,198.41.209.138,198.41.209.143,198.41.208.140,198.41.209.140,198.41.209.136,198.41.209.141,198.41.208.143,198.41.208.139,198.41.208.137,198.41.209.137,198.41.209.139,198.41.209.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459526391.487339\tC4s2dXMHraPCZLRwi\t192.168.1.1\t52147\t198.41.223.24\t53\tudp\t49427\toauth.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.208.140,198.41.208.138,198.41.209.136,198.41.208.137,198.41.209.142,198.41.208.141,198.41.209.138,198.41.208.142,198.41.208.139,198.41.209.141,198.41.209.140,198.41.208.143,198.41.209.137,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459526391.575092\tCgGanD3UFpIQKoTj0k\t192.168.1.1\t62642\t198.41.223.24\t53\tudp\t24886\tssl.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.140,198.41.208.139,198.41.208.138,198.41.208.141,198.41.209.140,198.41.209.137,198.41.209.141,198.41.209.139,198.41.208.143,198.41.208.137,198.41.208.142,198.41.209.142,198.41.209.138,198.41.209.143,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459526550.799167\tCLFRNB3IvePaYVke5l\t192.168.1.1\t59656\t173.245.58.24\t53\tudp\t40072\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.208.143,198.41.208.142,198.41.208.140,198.41.208.139,198.41.208.141,198.41.209.140,198.41.209.139,198.41.209.142,198.41.209.138,198.41.209.137,198.41.209.141,198.41.208.137,198.41.209.136,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459526650.220555\tCelgLB1BVXbPL4u63g\t192.168.1.1\t49937\t173.245.58.24\t53\tudp\t53433\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.208.142,198.41.209.140,198.41.208.141,198.41.209.142,198.41.209.141,198.41.208.137,198.41.208.143,198.41.209.139,198.41.209.138,198.41.208.139,198.41.209.136,198.41.209.137,198.41.208.138,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459526769.989108\tCt93NU2pzZswYzMC46\t192.168.1.1\t55736\t173.245.58.24\t53\tudp\t24491\tbuttons.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.140,198.41.208.139,198.41.209.143,198.41.209.142,198.41.209.137,198.41.208.140,198.41.208.137,198.41.209.141,198.41.208.141,198.41.208.143,198.41.209.139,198.41.209.136,198.41.208.142,198.41.208.138,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459526859.171766\tCNPW692NBwinwg8Rdc\t192.168.1.1\t56358\t173.245.58.24\t53\tudp\t23465\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.209.143,198.41.209.136,198.41.208.139,198.41.208.140,198.41.209.137,198.41.208.142,198.41.209.139,198.41.208.138,198.41.209.140,198.41.209.138,198.41.209.142,198.41.208.141,198.41.208.137,198.41.208.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459527027.513296\tCazhl73cdQq8ZwTMNa\t192.168.1.1\t65049\t173.245.58.24\t53\tudp\t1489\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.141,198.41.209.141,198.41.209.139,198.41.209.142,198.41.208.138,198.41.208.143,198.41.209.143,198.41.209.136,198.41.209.140,198.41.209.137,198.41.209.138,198.41.208.139,198.41.208.140,198.41.208.142,198.41.208.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459527166.928412\tCie0WV1fDsA7dTBArh\t192.168.1.1\t58706\t173.245.58.24\t53\tudp\t37098\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.208.142,198.41.208.138,198.41.209.141,198.41.208.137,198.41.208.140,198.41.209.142,198.41.208.141,198.41.208.143,198.41.208.139,198.41.209.138,198.41.209.140,198.41.209.139,198.41.209.137,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459527470.515027\tCVgnD83fbm3YzJYzua\t192.168.1.1\t64315\t198.41.222.24\t53\tudp\t52129\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.137,198.41.209.142,198.41.209.136,198.41.208.137,198.41.208.140,198.41.209.143,198.41.208.141,198.41.208.143,198.41.209.139,198.41.208.142,198.41.208.139,198.41.209.138,198.41.209.140,198.41.209.141,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459527470.515362\tCvb45q4IW8CTQNnDkc\t192.168.1.1\t52590\t198.41.222.24\t53\tudp\t48061\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.139,198.41.208.140,198.41.209.142,198.41.209.138,198.41.208.137,198.41.209.140,198.41.208.142,198.41.209.136,198.41.209.141,198.41.208.139,198.41.208.138,198.41.208.143,198.41.209.137,198.41.209.143,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459527695.585780\tCFXLKm1wIKHvttMgBk\t192.168.1.1\t58149\t198.41.223.24\t53\tudp\t16263\twww.reddit.com\t1\tC_INTERNET\t28\tAAAA\t0\tNOERROR\tF\tF\tF\tF\t0\t-\t-\tF\t-\n1459527775.577509\tCYvnwm2j3jhcceTuQc\t192.168.1.1\t60107\t173.245.58.24\t53\tudp\t42783\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.136,198.41.208.139,198.41.209.140,198.41.209.137,198.41.209.138,198.41.208.141,198.41.209.139,198.41.208.143,198.41.208.137,198.41.208.140,198.41.209.142,198.41.208.142,198.41.209.141,198.41.209.143,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459527859.012841\tCyugb31gtB57dpvaI8\t192.168.1.1\t59523\t173.245.58.24\t53\tudp\t31978\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.143,198.41.208.139,198.41.208.137,198.41.209.139,198.41.209.143,198.41.208.142,198.41.209.138,198.41.208.141,198.41.208.138,198.41.209.142,198.41.208.140,198.41.209.137,198.41.209.140,198.41.209.141,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459528114.043042\tCmAglc4oQa0GwKsLK\t192.168.1.1\t53357\t198.41.223.24\t53\tudp\t2470\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.208.138,198.41.209.139,198.41.208.140,198.41.208.139,198.41.209.141,198.41.209.142,198.41.208.141,198.41.209.137,198.41.208.137,198.41.208.143,198.41.209.143,198.41.209.136,198.41.209.140,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459528169.360220\tCs5Oni2gajPUnKiUjg\t192.168.1.1\t52323\t198.41.222.24\t53\tudp\t12274\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.138,198.41.208.142,198.41.208.141,198.41.209.139,198.41.209.140,198.41.209.141,198.41.208.140,198.41.208.139,198.41.209.143,198.41.208.143,198.41.209.142,198.41.208.137,198.41.209.137,198.41.209.136,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459528168.656720\tCz4Gaw2wMsVIFemP1\t192.168.1.2\t54108\t198.41.222.24\t53\tudp\t6660\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.140,198.41.209.142,198.41.209.143,198.41.208.138,198.41.208.143,198.41.208.137,198.41.208.140,198.41.208.139,198.41.208.141,198.41.208.142,198.41.209.138,198.41.209.137,198.41.209.136,198.41.209.139,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459528168.511671\tCkQ0pD1KUyhz5vjpV6\t192.168.1.1\t62388\t173.245.58.24\t53\tudp\t52810\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.209.140,198.41.209.139,198.41.208.142,198.41.209.141,198.41.209.138,198.41.209.136,198.41.209.142,198.41.208.137,198.41.208.141,198.41.209.137,198.41.208.138,198.41.208.143,198.41.208.140,198.41.209.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459528463.492883\tCZquDb2ry14VWz4iAk\t192.168.1.2\t63538\t173.245.58.24\t53\tudp\t14484\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.143,198.41.209.138,198.41.208.140,198.41.209.140,198.41.209.142,198.41.208.139,198.41.208.138,198.41.208.137,198.41.208.141,198.41.209.137,198.41.209.139,198.41.209.143,198.41.208.142,198.41.209.141,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459528577.964976\tCf4tD34v86bQsZ4Ba9\t192.168.1.1\t63157\t198.41.223.24\t53\tudp\t60128\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.138,198.41.209.141,198.41.209.143,198.41.208.139,198.41.208.137,198.41.208.141,198.41.208.142,198.41.208.140,198.41.208.138,198.41.209.136,198.41.209.139,198.41.209.142,198.41.209.140,198.41.209.137,198.41.208.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459528584.280893\tCXSavu2a3iFG8uzw81\t192.168.1.1\t53442\t198.41.222.24\t53\tudp\t42148\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.209.140,198.41.209.138,198.41.209.136,198.41.209.143,198.41.209.141,198.41.209.137,198.41.208.137,198.41.208.140,198.41.208.139,198.41.208.142,198.41.208.138,198.41.208.141,198.41.209.139,198.41.208.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459528950.906880\tCY6OOO1Bt5GKVkK68f\t192.168.1.1\t59289\t198.41.223.24\t53\tudp\t17642\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.208.137,198.41.208.139,198.41.208.141,198.41.209.142,198.41.208.140,198.41.209.141,198.41.209.136,198.41.209.138,198.41.209.137,198.41.209.143,198.41.208.143,198.41.209.139,198.41.209.140,198.41.208.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459529302.789372\tC9wOTG2RnzYg6RUP7\t192.168.1.1\t56500\t198.41.222.24\t53\tudp\t18384\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.208.138,198.41.208.140,198.41.208.139,198.41.208.141,198.41.209.136,198.41.209.138,198.41.208.137,198.41.209.139,198.41.209.137,198.41.208.142,198.41.209.140,198.41.208.143,198.41.209.141,198.41.209.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459529669.424407\tCUKvhl3bkZON9D4cW4\t192.168.1.1\t51113\t173.245.58.24\t53\tudp\t43960\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.209.143,198.41.208.143,198.41.209.137,198.41.208.139,198.41.208.140,198.41.208.137,198.41.209.136,198.41.209.140,198.41.208.141,198.41.209.138,198.41.209.139,198.41.208.142,198.41.209.142,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459530026.011345\tC9jLaB3UxQouGJalmf\t192.168.1.1\t64886\t198.41.223.24\t53\tudp\t60988\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.209.140,198.41.208.141,198.41.208.143,198.41.209.141,198.41.209.138,198.41.208.137,198.41.209.142,198.41.209.139,198.41.209.137,198.41.208.142,198.41.209.136,198.41.208.138,198.41.208.140,198.41.208.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459530026.012890\tCBC3RU2iG7CyV3jzo1\t192.168.1.1\t49574\t198.41.223.24\t53\tudp\t51077\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.137,198.41.209.136,198.41.208.142,198.41.209.142,198.41.208.139,198.41.208.138,198.41.208.141,198.41.209.139,198.41.209.140,198.41.208.137,198.41.209.138,198.41.209.143,198.41.208.143,198.41.209.141,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459530045.901534\tCApkAv3DMO8CibIuQe\t192.168.1.1\t60413\t198.41.222.24\t53\tudp\t23540\tbuttons.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.140,198.41.209.139,198.41.208.139,198.41.209.141,198.41.208.141,198.41.209.138,198.41.208.138,198.41.208.143,198.41.208.142,198.41.209.143,198.41.208.137,198.41.209.142,198.41.209.136,198.41.209.140,198.41.209.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459530045.928621\tC8OjWzWDHTIj1rCre\t192.168.1.1\t49213\t173.245.58.24\t53\tudp\t44292\tblog.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.137,198.41.209.139,198.41.208.143,198.41.208.140,198.41.209.140,198.41.208.139,198.41.209.137,198.41.208.142,198.41.209.141,198.41.209.142,198.41.208.141,198.41.209.143,198.41.208.138,198.41.209.136,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459530378.017310\tCVKBvd29Xnc5Bwc7Bi\t192.168.1.1\t51403\t198.41.223.24\t53\tudp\t62764\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.208.137,198.41.208.142,198.41.209.136,198.41.208.140,198.41.209.138,198.41.209.142,198.41.209.141,198.41.208.138,198.41.208.139,198.41.208.141,198.41.209.139,198.41.209.137,198.41.208.143,198.41.209.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459530406.031337\tCKl0zj2ExWZAc88jJk\t192.168.1.1\t65101\t198.41.223.24\t53\tudp\t42037\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.209.142,198.41.208.142,198.41.208.140,198.41.208.137,198.41.209.137,198.41.208.138,198.41.209.140,198.41.209.139,198.41.209.143,198.41.209.138,198.41.208.141,198.41.209.136,198.41.208.143,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459530406.995943\tC9L3Pc3Fx8jyadk3D\t192.168.1.1\t57131\t173.245.58.24\t53\tudp\t2228\tbuttons.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.138,198.41.209.141,198.41.209.142,198.41.208.138,198.41.209.139,198.41.208.141,198.41.209.143,198.41.209.136,198.41.208.142,198.41.208.140,198.41.208.143,198.41.209.140,198.41.208.137,198.41.208.139,198.41.209.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459530679.307657\tCoapXQ1ntLSNpYkPL2\t192.168.1.1\t65438\t173.245.58.24\t53\tudp\t44623\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.208.139,198.41.209.136,198.41.209.138,198.41.208.138,198.41.208.143,198.41.209.140,198.41.208.141,198.41.208.137,198.41.209.139,198.41.208.140,198.41.209.143,198.41.209.137,198.41.208.142,198.41.209.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459531011.753253\tCZz5tw29b0BX46Kbif\t192.168.1.1\t64666\t198.41.222.24\t53\tudp\t6585\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.208.138,198.41.208.142,198.41.209.138,198.41.208.140,198.41.209.140,198.41.209.136,198.41.209.141,198.41.209.137,198.41.208.143,198.41.209.139,198.41.208.137,198.41.209.142,198.41.209.143,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459531011.746874\tCcKeMZ3t3KERWkO8a8\t192.168.1.1\t50988\t198.41.223.24\t53\tudp\t191\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.209.142,198.41.208.140,198.41.209.139,198.41.208.141,198.41.209.143,198.41.208.137,198.41.209.141,198.41.209.140,198.41.208.139,198.41.208.143,198.41.208.142,198.41.209.136,198.41.209.137,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459531298.172869\tCWzIAw4LOX1YtLA8zi\t192.168.1.2\t57854\t198.41.223.24\t53\tudp\t3705\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.208.139,198.41.209.137,198.41.208.143,198.41.209.139,198.41.209.140,198.41.208.140,198.41.209.141,198.41.208.137,198.41.209.138,198.41.209.143,198.41.209.136,198.41.208.141,198.41.208.142,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459531299.586560\tCQSGQ34vHxoVqEeY67\t192.168.1.2\t59677\t198.41.222.24\t53\tudp\t8556\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.136,198.41.209.141,198.41.209.138,198.41.208.141,198.41.208.138,198.41.208.137,198.41.208.139,198.41.209.143,198.41.208.140,198.41.208.142,198.41.209.139,198.41.209.140,198.41.208.143,198.41.209.137,198.41.209.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459531329.019624\tCQ6yU71MTaa1YEOWm9\t192.168.1.1\t50219\t198.41.223.24\t53\tudp\t37082\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.140,198.41.208.142,198.41.208.143,198.41.209.136,198.41.209.137,198.41.208.141,198.41.208.140,198.41.208.139,198.41.208.138,198.41.209.141,198.41.209.139,198.41.209.138,198.41.209.143,198.41.209.142,198.41.208.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459531333.047584\tCn6CPHiKq1vgmaGka\t192.168.1.1\t64928\t173.245.58.24\t53\tudp\t55775\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.138,198.41.209.136,198.41.209.137,198.41.208.143,198.41.208.140,198.41.208.139,198.41.208.141,198.41.209.140,198.41.208.142,198.41.208.138,198.41.208.137,198.41.209.142,198.41.209.139,198.41.209.143,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459531642.753231\tCIo7Uyt1DjSuTyTxf\t192.168.1.1\t52638\t198.41.222.24\t53\tudp\t11500\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.137,198.41.209.139,198.41.208.137,198.41.209.138,198.41.209.143,198.41.208.139,198.41.208.143,198.41.209.136,198.41.209.141,198.41.209.142,198.41.208.142,198.41.208.140,198.41.208.138,198.41.209.140,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459531891.168151\tCMkNrm1xNnnKqUYEg9\t192.168.1.1\t64345\t173.245.58.24\t53\tudp\t37089\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.143,198.41.209.139,198.41.209.141,198.41.209.136,198.41.208.139,198.41.209.138,198.41.208.138,198.41.208.141,198.41.209.140,198.41.209.143,198.41.208.140,198.41.208.137,198.41.209.137,198.41.208.142,198.41.209.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459531951.011673\tCOyFXY3umd1X3wsDQ1\t192.168.1.1\t62045\t198.41.222.24\t53\tudp\t56599\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.208.142,198.41.208.143,198.41.209.139,198.41.208.137,198.41.208.140,198.41.209.137,198.41.208.139,198.41.209.138,198.41.208.141,198.41.208.138,198.41.209.136,198.41.209.142,198.41.209.143,198.41.209.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459532272.685184\tCDcyBE1SZ0j8VpqGMf\t192.168.1.1\t61628\t198.41.223.24\t53\tudp\t13843\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.139,198.41.208.141,198.41.209.137,198.41.208.142,198.41.209.141,198.41.209.138,198.41.209.143,198.41.208.139,198.41.208.143,198.41.208.137,198.41.208.140,198.41.209.142,198.41.209.140,198.41.209.136,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459532574.175497\tCsL29T56HanDFxnr3\t192.168.1.1\t54061\t173.245.58.24\t53\tudp\t3315\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.208.137,198.41.208.140,198.41.208.141,198.41.209.136,198.41.209.140,198.41.209.139,198.41.209.143,198.41.209.138,198.41.208.142,198.41.208.143,198.41.209.141,198.41.209.142,198.41.208.138,198.41.209.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459532650.492290\tCFlA1kyUOmekNgJjc\t192.168.1.1\t57565\t198.41.222.24\t53\tudp\t65348\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.136,198.41.209.137,198.41.208.138,198.41.208.140,198.41.208.137,198.41.208.143,198.41.209.143,198.41.208.139,198.41.208.142,198.41.209.139,198.41.209.142,198.41.208.141,198.41.209.140,198.41.209.138,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459532879.892939\tCNBchzYWSt4dg3vqb\t192.168.1.1\t49652\t173.245.58.24\t53\tudp\t37908\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.137,198.41.208.142,198.41.208.140,198.41.209.138,198.41.209.140,198.41.209.139,198.41.208.139,198.41.209.136,198.41.208.138,198.41.209.143,198.41.208.143,198.41.209.142,198.41.209.137,198.41.209.141,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459533143.084022\tCnxcCR1AOvKYsLUXl2\t192.168.1.1\t58234\t198.41.222.24\t53\tudp\t63823\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.209.139,198.41.208.137,198.41.209.142,198.41.209.136,198.41.208.142,198.41.209.137,198.41.208.140,198.41.209.141,198.41.208.141,198.41.209.140,198.41.208.138,198.41.209.138,198.41.208.139,198.41.208.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459533334.579987\tC6rocJ1suHR1QX7cud\t192.168.1.1\t58603\t173.245.58.24\t53\tudp\t16178\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.137,198.41.209.143,198.41.208.139,198.41.208.138,198.41.208.141,198.41.209.140,198.41.209.142,198.41.208.143,198.41.209.137,198.41.208.140,198.41.209.141,198.41.209.136,198.41.209.138,198.41.208.142,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459533511.277215\tCvkbe42K8iyNyGK5e9\t192.168.1.1\t60872\t198.41.223.24\t53\tudp\t59890\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.208.139,198.41.209.137,198.41.208.140,198.41.209.142,198.41.209.143,198.41.209.139,198.41.209.138,198.41.208.143,198.41.208.138,198.41.208.141,198.41.209.140,198.41.209.136,198.41.209.141,198.41.208.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459533727.092714\tCImiHk33JXhDuWYEFc\t192.168.1.1\t49936\t173.245.58.24\t53\tudp\t17707\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.141,198.41.208.142,198.41.209.143,198.41.209.138,198.41.208.140,198.41.209.142,198.41.208.139,198.41.209.139,198.41.208.143,198.41.209.137,198.41.208.137,198.41.209.140,198.41.209.141,198.41.209.136,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459534090.563976\tCFgyoz2GYoy3NpRpCe\t192.168.1.1\t65096\t198.41.223.24\t53\tudp\t49736\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.143,198.41.208.140,198.41.209.143,198.41.208.138,198.41.209.138,198.41.208.139,198.41.209.136,198.41.208.141,198.41.209.141,198.41.209.140,198.41.208.137,198.41.209.142,198.41.208.142,198.41.209.139,198.41.209.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459534096.892731\tCMyUEF3wegrni3T9s4\t192.168.1.1\t60851\t198.41.222.24\t53\tudp\t53197\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.140,198.41.209.141,198.41.208.143,198.41.209.136,198.41.209.142,198.41.208.138,198.41.209.137,198.41.208.142,198.41.209.138,198.41.209.139,198.41.208.140,198.41.208.141,198.41.208.139,198.41.209.143,198.41.208.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459534396.385230\tCtKOZg4yzA1HkG950h\t192.168.1.1\t55565\t173.245.58.24\t53\tudp\t21711\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.143,198.41.209.136,198.41.209.141,198.41.208.139,198.41.208.137,198.41.208.138,198.41.209.139,198.41.208.141,198.41.209.137,198.41.208.140,198.41.209.142,198.41.209.143,198.41.208.142,198.41.209.140,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459534433.759615\tC7my0gAfoMacaZ4Hl\t192.168.1.1\t61966\t173.245.58.24\t53\tudp\t1945\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.138,198.41.209.143,198.41.208.141,198.41.209.136,198.41.208.138,198.41.209.140,198.41.209.141,198.41.208.137,198.41.209.137,198.41.208.143,198.41.208.139,198.41.209.142,198.41.208.142,198.41.208.140,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459534529.344895\tCD7SPo4p2D7b3ZDlua\t192.168.1.1\t50768\t173.245.58.24\t53\tudp\t15617\tnp.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.141,198.41.209.137,198.41.209.142,198.41.208.142,198.41.208.139,198.41.209.143,198.41.209.136,198.41.208.143,198.41.208.137,198.41.208.140,198.41.209.141,198.41.208.138,198.41.209.139,198.41.209.138,198.41.209.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459534601.198427\tC12Efflv5yHTelU8\t192.168.1.2\t58612\t173.245.58.24\t53\tudp\t60184\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.136,198.41.209.137,198.41.209.139,198.41.209.138,198.41.209.143,198.41.209.140,198.41.208.138,198.41.209.142,198.41.208.143,198.41.209.141,198.41.208.141,198.41.208.140,198.41.208.139,198.41.208.142,198.41.208.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459534767.603796\tCuDdWU2yeh6MbyWJ79\t192.168.1.1\t53258\t173.245.58.24\t53\tudp\t14433\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.138,198.41.208.142,198.41.208.141,198.41.209.137,198.41.209.136,198.41.209.140,198.41.209.142,198.41.208.140,198.41.208.137,198.41.208.138,198.41.209.143,198.41.209.139,198.41.208.143,198.41.208.139,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459534768.245472\tCHx4vG2UfqZUKCikX9\t192.168.1.1\t58203\t173.245.58.24\t53\tudp\t30407\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.208.138,198.41.208.143,198.41.208.142,198.41.208.139,198.41.209.139,198.41.209.138,198.41.209.143,198.41.209.140,198.41.209.136,198.41.209.142,198.41.208.137,198.41.208.140,198.41.208.141,198.41.209.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459534967.274937\tCxu6nY264rJOJkDAj4\t192.168.1.1\t58809\t198.41.222.24\t53\tudp\t17770\tbuttons.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.137,198.41.208.140,198.41.209.143,198.41.209.140,198.41.209.139,198.41.208.139,198.41.208.142,198.41.209.141,198.41.208.137,198.41.208.141,198.41.209.136,198.41.209.138,198.41.208.143,198.41.209.142,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459535094.639541\tCwJ4wAz9KA9dNfUWd\t192.168.1.1\t61327\t173.245.58.24\t53\tudp\t35608\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.143,198.41.209.136,198.41.209.140,198.41.209.143,198.41.208.138,198.41.209.138,198.41.208.141,198.41.209.137,198.41.209.139,198.41.209.141,198.41.208.140,198.41.208.139,198.41.208.142,198.41.208.137,198.41.209.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459535434.679532\tCBugvLCs61Hv8Ycqe\t192.168.1.1\t58370\t198.41.223.24\t53\tudp\t61932\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.208.143,198.41.208.142,198.41.208.139,198.41.208.137,198.41.209.136,198.41.209.142,198.41.209.137,198.41.209.139,198.41.208.140,198.41.209.143,198.41.208.138,198.41.209.140,198.41.208.141,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459535909.708708\tCFEt7g40GFr1auvY1c\t192.168.1.1\t60105\t198.41.222.24\t53\tudp\t22567\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.138,198.41.209.141,198.41.209.139,198.41.208.142,198.41.209.143,198.41.209.136,198.41.209.137,198.41.208.140,198.41.209.140,198.41.208.137,198.41.208.139,198.41.208.138,198.41.208.143,198.41.208.141,198.41.209.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459536039.840746\tCZbaph2GEVxwNB1Iu9\t192.168.1.1\t57465\t173.245.58.24\t53\tudp\t58061\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.208.137,198.41.209.137,198.41.209.138,198.41.209.142,198.41.209.140,198.41.209.141,198.41.209.136,198.41.208.140,198.41.209.143,198.41.208.138,198.41.208.143,198.41.208.139,198.41.208.141,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459536341.282489\tCcrBS910ksbqoqpkL7\t192.168.1.1\t58326\t198.41.223.24\t53\tudp\t56908\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.208.143,198.41.208.139,198.41.209.143,198.41.208.142,198.41.209.140,198.41.209.138,198.41.209.139,198.41.209.136,198.41.208.138,198.41.209.137,198.41.208.137,198.41.208.140,198.41.209.142,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459536341.277872\tCIzo761XilXcWnAnvd\t192.168.1.1\t55639\t198.41.223.24\t53\tudp\t56621\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.138,198.41.209.136,198.41.208.140,198.41.208.138,198.41.209.143,198.41.209.140,198.41.209.137,198.41.208.142,198.41.208.139,198.41.209.142,198.41.209.139,198.41.208.141,198.41.208.143,198.41.209.141,198.41.208.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459536651.185942\tCiReBz4f0LdhJADyhh\t192.168.1.1\t64424\t173.245.58.24\t53\tudp\t40599\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.209.138,198.41.209.137,198.41.209.142,198.41.208.138,198.41.208.143,198.41.209.141,198.41.208.140,198.41.208.137,198.41.209.136,198.41.209.139,198.41.208.139,198.41.209.143,198.41.209.140,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459537020.834894\tCnolKn1YODvw0o2lz4\t192.168.1.1\t65500\t198.41.222.24\t53\tudp\t25796\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.137,198.41.208.139,198.41.209.140,198.41.209.142,198.41.209.139,198.41.209.143,198.41.208.142,198.41.208.143,198.41.208.141,198.41.209.141,198.41.208.137,198.41.208.138,198.41.208.140,198.41.209.136,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459537041.823339\tCnnskL3HsKS7RyAeoa\t192.168.1.1\t65046\t173.245.58.24\t53\tudp\t42065\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.209.141,198.41.208.137,198.41.209.138,198.41.208.142,198.41.209.137,198.41.209.136,198.41.208.141,198.41.209.139,198.41.209.142,198.41.208.143,198.41.208.140,198.41.208.138,198.41.209.140,198.41.209.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459537329.940513\tCjZEyK3w1yEmgIXkb\t192.168.1.1\t60951\t198.41.223.24\t53\tudp\t55842\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.209.140,198.41.209.143,198.41.208.141,198.41.209.136,198.41.208.139,198.41.209.142,198.41.208.137,198.41.209.139,198.41.208.143,198.41.208.142,198.41.209.137,198.41.209.138,198.41.208.140,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459537510.818102\tCD10kv3KhFPnBbbYXe\t192.168.1.1\t62849\t173.245.58.24\t53\tudp\t18951\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.137,198.41.208.139,198.41.209.138,198.41.208.143,198.41.209.141,198.41.209.136,198.41.209.139,198.41.208.142,198.41.209.140,198.41.209.143,198.41.208.138,198.41.209.142,198.41.209.137,198.41.208.141,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459537693.055025\tCR5m6aheHcNOspmJh\t192.168.1.1\t62949\t198.41.223.24\t53\tudp\t46100\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.209.140,198.41.208.137,198.41.209.136,198.41.208.141,198.41.209.141,198.41.208.139,198.41.209.139,198.41.208.138,198.41.208.143,198.41.208.142,198.41.209.138,198.41.208.140,198.41.209.143,198.41.209.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459537701.161153\tCZD84Z1cf3uVkzk618\t192.168.1.1\t59526\t198.41.222.24\t53\tudp\t29137\tbuttons.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.143,198.41.209.140,198.41.208.138,198.41.208.139,198.41.209.139,198.41.208.142,198.41.208.140,198.41.208.141,198.41.209.138,198.41.209.142,198.41.209.143,198.41.209.137,198.41.209.141,198.41.208.137,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459537886.053110\tC4lYhJ2TEtqceMMPek\t192.168.1.1\t52255\t173.245.58.24\t53\tudp\t21381\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.139,198.41.208.138,198.41.208.142,198.41.209.143,198.41.209.140,198.41.209.138,198.41.209.142,198.41.209.141,198.41.208.139,198.41.209.136,198.41.208.143,198.41.209.137,198.41.208.140,198.41.208.137,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459538103.238604\tCj9F9C4ktLUUaFtU8d\t192.168.1.1\t55097\t198.41.222.24\t53\tudp\t36370\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.208.140,198.41.209.137,198.41.208.138,198.41.209.139,198.41.208.142,198.41.209.136,198.41.209.141,198.41.208.137,198.41.209.142,198.41.208.141,198.41.208.139,198.41.208.143,198.41.209.140,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459538311.669008\tCoA3lH1N59sMpCSbeg\t192.168.1.1\t60274\t198.41.223.24\t53\tudp\t52558\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.143,198.41.209.138,198.41.208.141,198.41.209.142,198.41.209.140,198.41.209.139,198.41.208.139,198.41.209.141,198.41.208.138,198.41.208.142,198.41.208.140,198.41.208.137,198.41.209.143,198.41.209.137,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459538458.790828\tCe9bVB1teQoAHCQnKl\t192.168.1.1\t61107\t173.245.58.24\t53\tudp\t8003\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.209.138,198.41.208.137,198.41.209.140,198.41.208.140,198.41.209.141,198.41.208.139,198.41.208.142,198.41.208.141,198.41.209.137,198.41.209.142,198.41.208.138,198.41.208.143,198.41.209.136,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459538785.300658\tCXNhzXskZHiv2VY4\t192.168.1.1\t51573\t198.41.223.24\t53\tudp\t18465\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.209.143,198.41.209.136,198.41.208.137,198.41.208.141,198.41.208.142,198.41.208.138,198.41.209.140,198.41.209.137,198.41.209.139,198.41.208.139,198.41.209.141,198.41.208.140,198.41.209.138,198.41.208.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459538841.173339\tCiWvSaUBQ1U5Pbpa\t192.168.1.2\t63934\t198.41.223.24\t53\tudp\t21133\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.209.138,198.41.209.141,198.41.208.138,198.41.208.142,198.41.209.140,198.41.208.137,198.41.209.137,198.41.209.139,198.41.209.136,198.41.208.141,198.41.208.140,198.41.209.142,198.41.209.143,198.41.208.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459538842.176705\tCklZiaIyJWCnaaJfk\t192.168.1.2\t65531\t173.245.58.24\t53\tudp\t36249\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.136,198.41.209.142,198.41.208.138,198.41.209.141,198.41.208.140,198.41.209.140,198.41.209.143,198.41.208.137,198.41.208.143,198.41.208.139,198.41.209.137,198.41.208.142,198.41.208.141,198.41.209.139,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459538852.336214\tCBcGfF354DJYpcuByj\t192.168.1.1\t58825\t173.245.58.24\t53\tudp\t49782\treddit.com\t1\tC_INTERNET\t1\tA\t-\t-\tF\tF\tF\tF\t0\t-\t-\tF\t-\n1459538890.592975\tCe2yzvV7wih7c0Tn4\t192.168.1.1\t61223\t198.41.222.24\t53\tudp\t58359\tblog.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.137,198.41.209.136,198.41.208.143,198.41.209.138,198.41.208.138,198.41.208.142,198.41.209.141,198.41.208.140,198.41.209.142,198.41.209.137,198.41.209.140,198.41.209.143,198.41.208.141,198.41.208.139,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459538890.577971\tCkN1Is3hIEZU6r1eTe\t192.168.1.1\t51128\t198.41.223.24\t53\tudp\t58578\tbuttons.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.140,198.41.209.136,198.41.209.139,198.41.208.137,198.41.209.141,198.41.208.142,198.41.208.138,198.41.208.143,198.41.208.139,198.41.209.142,198.41.208.141,198.41.209.143,198.41.209.138,198.41.209.140,198.41.209.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459539117.254661\tC3k3cJShNxEvW6ju5\t192.168.1.1\t52083\t198.41.223.24\t53\tudp\t55448\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.140,198.41.209.142,198.41.209.136,198.41.208.139,198.41.209.137,198.41.209.143,198.41.209.138,198.41.208.141,198.41.208.138,198.41.209.139,198.41.208.142,198.41.208.137,198.41.209.141,198.41.208.143,198.41.209.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459539430.020406\tCpAdgyyBv2vUSa1T9\t192.168.1.1\t59076\t198.41.223.24\t53\tudp\t11097\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.136,198.41.208.140,198.41.208.142,198.41.208.143,198.41.209.140,198.41.208.138,198.41.209.138,198.41.209.141,198.41.208.137,198.41.209.137,198.41.208.141,198.41.209.142,198.41.208.139,198.41.209.143,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459539539.496613\tCJyNQ24vPce33Ezcv1\t192.168.1.1\t57501\t198.41.222.24\t53\tudp\t40475\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.140,198.41.209.136,198.41.208.139,198.41.209.137,198.41.208.141,198.41.208.140,198.41.209.143,198.41.208.142,198.41.209.139,198.41.209.138,198.41.209.141,198.41.209.142,198.41.208.137,198.41.208.143,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459539819.908673\tCSnwY345ZaUSHZUQ3\t192.168.1.1\t55388\t198.41.223.24\t53\tudp\t7421\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.137,198.41.209.139,198.41.209.138,198.41.209.136,198.41.208.140,198.41.208.143,198.41.209.142,198.41.208.138,198.41.208.139,198.41.209.141,198.41.209.143,198.41.209.137,198.41.208.141,198.41.208.142,198.41.209.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459540149.389352\tCaCxYO3H7H39TSxIq9\t192.168.1.1\t52668\t198.41.222.24\t53\tudp\t46328\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.137,198.41.208.142,198.41.209.138,198.41.209.139,198.41.208.143,198.41.209.142,198.41.209.136,198.41.209.143,198.41.208.141,198.41.208.138,198.41.208.139,198.41.209.140,198.41.208.140,198.41.208.137,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459540553.656001\tCEAZnUU4IjuVS3bil\t192.168.1.1\t53404\t198.41.223.24\t53\tudp\t16673\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.208.139,198.41.209.139,198.41.209.142,198.41.209.137,198.41.208.137,198.41.209.141,198.41.209.140,198.41.208.142,198.41.208.140,198.41.209.136,198.41.208.141,198.41.209.138,198.41.208.143,198.41.209.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459540930.077700\tCl3HH631BRQIfXAlVe\t192.168.1.1\t50145\t198.41.222.24\t53\tudp\t56794\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.137,198.41.208.142,198.41.209.138,198.41.209.140,198.41.209.142,198.41.208.139,198.41.209.139,198.41.209.143,198.41.209.137,198.41.209.141,198.41.208.143,198.41.208.140,198.41.208.138,198.41.209.136,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459540972.531739\tCNwTPB25fJpYPMOcK4\t192.168.1.2\t55632\t198.41.223.24\t53\tudp\t16553\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.209.138,198.41.208.138,198.41.208.142,198.41.208.140,198.41.208.137,198.41.209.139,198.41.209.142,198.41.208.141,198.41.208.139,198.41.209.141,198.41.209.140,198.41.209.137,198.41.209.136,198.41.208.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459541122.807142\tCiN9szrJpENdHZSX6\t192.168.1.1\t64183\t198.41.223.24\t53\tudp\t64977\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.209.140,198.41.208.142,198.41.208.140,198.41.208.137,198.41.209.141,198.41.209.142,198.41.208.141,198.41.209.136,198.41.208.139,198.41.208.138,198.41.208.143,198.41.209.137,198.41.209.138,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459541265.518413\tCMMYJ04rdtmmAzpQid\t192.168.1.1\t54859\t173.245.58.24\t53\tudp\t16588\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.208.140,198.41.209.141,198.41.209.139,198.41.209.140,198.41.208.139,198.41.209.138,198.41.208.141,198.41.209.137,198.41.208.138,198.41.209.136,198.41.208.137,198.41.209.143,198.41.208.143,198.41.208.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459541458.921920\tCl1JEE2PRiM5QkDcub\t192.168.1.1\t52719\t198.41.222.24\t53\tudp\t4682\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.209.143,198.41.209.138,198.41.208.141,198.41.208.137,198.41.208.140,198.41.209.137,198.41.209.141,198.41.208.143,198.41.209.139,198.41.209.136,198.41.208.139,198.41.208.142,198.41.209.140,198.41.209.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459541525.032592\tCfoyDu3HI76IsnhOJ\t192.168.1.1\t49314\t198.41.222.24\t53\tudp\t29429\tblog.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.136,198.41.208.138,198.41.209.140,198.41.209.138,198.41.208.141,198.41.209.139,198.41.208.142,198.41.208.137,198.41.209.143,198.41.209.142,198.41.208.143,198.41.209.137,198.41.209.141,198.41.208.139,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459541525.024034\tCvHRMBrEUIQIQ0W4d\t192.168.1.1\t64126\t173.245.58.24\t53\tudp\t46442\tbuttons.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.136,198.41.208.142,198.41.208.141,198.41.208.143,198.41.208.140,198.41.208.137,198.41.209.138,198.41.208.139,198.41.209.139,198.41.209.141,198.41.209.137,198.41.209.142,198.41.209.140,198.41.208.138,198.41.209.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459541567.081260\tCgWOfr2yAXkNbyBVP4\t192.168.1.1\t50344\t173.245.58.24\t53\tudp\t9679\tnp.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.209.136,198.41.208.138,198.41.209.141,198.41.209.140,198.41.209.138,198.41.209.137,198.41.209.142,198.41.208.140,198.41.208.137,198.41.208.143,198.41.208.141,198.41.208.142,198.41.208.139,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459541657.022609\tCT7FXJxp08OgbGO2d\t192.168.1.2\t60216\t173.245.58.24\t53\tudp\t54233\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.139,198.41.209.140,198.41.208.138,198.41.208.143,198.41.208.139,198.41.208.142,198.41.209.141,198.41.209.136,198.41.209.138,198.41.209.143,198.41.209.137,198.41.208.141,198.41.208.137,198.41.209.142,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459541658.504804\tCs8QR812tUG0BTec3j\t192.168.1.1\t56771\t198.41.222.24\t53\tudp\t20596\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.209.136,198.41.208.139,198.41.209.142,198.41.208.137,198.41.208.138,198.41.209.138,198.41.209.140,198.41.208.143,198.41.208.141,198.41.208.140,198.41.209.137,198.41.209.143,198.41.209.139,198.41.208.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459541658.509053\tCdzhA11NVIyRQM0zlf\t192.168.1.2\t63732\t198.41.222.24\t53\tudp\t33220\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.209.143,198.41.208.141,198.41.208.142,198.41.209.141,198.41.209.137,198.41.209.139,198.41.208.140,198.41.209.142,198.41.209.138,198.41.209.140,198.41.209.136,198.41.208.138,198.41.208.137,198.41.208.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459541861.186107\tC5LuZ72tNbQ8t16Udd\t192.168.1.1\t59160\t198.41.222.24\t53\tudp\t54603\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.140,198.41.209.140,198.41.208.137,198.41.209.143,198.41.209.136,198.41.208.143,198.41.209.137,198.41.209.139,198.41.209.138,198.41.208.138,198.41.209.141,198.41.208.141,198.41.209.142,198.41.208.142,198.41.208.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459541976.487760\tC4iHX83txIqSK3QsX7\t192.168.1.1\t54096\t198.41.222.24\t53\tudp\t60217\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.208.138,198.41.209.143,198.41.209.137,198.41.209.142,198.41.209.140,198.41.209.141,198.41.209.139,198.41.209.136,198.41.209.138,198.41.208.143,198.41.208.141,198.41.208.137,198.41.208.142,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459542221.488097\tCSzBdmptBC1wwY28c\t192.168.1.1\t54826\t198.41.222.24\t53\tudp\t58037\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.137,198.41.209.136,198.41.208.141,198.41.209.141,198.41.208.139,198.41.208.143,198.41.209.140,198.41.209.143,198.41.209.138,198.41.208.142,198.41.209.142,198.41.208.138,198.41.209.137,198.41.208.140,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459542347.646080\tC5SpWyDGfWC8B0RLl\t192.168.1.1\t60674\t198.41.222.24\t53\tudp\t52648\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.139,198.41.209.136,198.41.209.138,198.41.209.141,198.41.208.139,198.41.208.141,198.41.209.142,198.41.208.137,198.41.209.140,198.41.209.143,198.41.208.140,198.41.208.138,198.41.208.143,198.41.209.137,198.41.208.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459542370.912829\tCXCy4M3sVr8ODJ3C0e\t192.168.1.1\t60887\t198.41.222.24\t53\tudp\t17214\twww.reddit.com\t1\tC_INTERNET\t28\tAAAA\t0\tNOERROR\tF\tF\tF\tF\t0\t-\t-\tF\t-\n1459542423.563978\tCATckr1KAaPTM5Ngoe\t192.168.1.1\t50291\t198.41.222.24\t53\tudp\t35935\tblog.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.142,198.41.209.137,198.41.208.139,198.41.209.140,198.41.209.136,198.41.208.141,198.41.209.139,198.41.208.137,198.41.209.141,198.41.209.143,198.41.208.140,198.41.209.138,198.41.208.143,198.41.208.138,198.41.209.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459542423.547831\tC2fEge1rCvkNpfQT6j\t192.168.1.1\t62814\t198.41.222.24\t53\tudp\t29536\tbuttons.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.209.140,198.41.209.142,198.41.209.137,198.41.208.137,198.41.209.143,198.41.209.141,198.41.208.140,198.41.209.136,198.41.208.142,198.41.208.138,198.41.209.139,198.41.208.143,198.41.208.141,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459542614.113088\tCYpykH1YXrHjAPdVPa\t192.168.1.1\t55416\t173.245.58.24\t53\tudp\t61109\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.209.137,198.41.208.141,198.41.209.142,198.41.209.140,198.41.209.143,198.41.209.136,198.41.209.139,198.41.208.142,198.41.208.143,198.41.208.139,198.41.208.140,198.41.208.138,198.41.208.137,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459542730.148294\tCBEnPo4KnfbRc7zww2\t192.168.1.1\t55588\t198.41.222.24\t53\tudp\t18199\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.138,198.41.209.141,198.41.209.139,198.41.208.140,198.41.208.137,198.41.208.141,198.41.208.143,198.41.209.143,198.41.208.138,198.41.209.140,198.41.209.142,198.41.208.139,198.41.209.136,198.41.209.137,198.41.208.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459543038.737802\tCBLhxivx5t6Nqn2C4\t192.168.1.1\t50593\t173.245.58.24\t53\tudp\t37062\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.137,198.41.208.142,198.41.209.142,198.41.209.140,198.41.208.138,198.41.209.141,198.41.209.139,198.41.208.139,198.41.208.143,198.41.208.140,198.41.208.141,198.41.209.137,198.41.209.143,198.41.209.138,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459543390.093903\tC8nb6t4G1W7HPvlyy9\t192.168.1.1\t49860\t198.41.223.24\t53\tudp\t5004\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.209.138,198.41.208.140,198.41.209.143,198.41.208.141,198.41.209.136,198.41.209.142,198.41.208.143,198.41.209.140,198.41.209.137,198.41.209.139,198.41.209.141,198.41.208.137,198.41.208.138,198.41.208.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459543505.176697\tCh4a2B4yvQ5n9JfUSd\t192.168.1.1\t60798\t198.41.223.24\t53\tudp\t9346\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.208.138,198.41.209.139,198.41.208.143,198.41.208.140,198.41.208.142,198.41.209.140,198.41.209.136,198.41.209.142,198.41.208.137,198.41.208.139,198.41.209.137,198.41.209.143,198.41.208.141,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459543696.479881\tCLPBYE2GGChOqgpOac\t192.168.1.1\t60564\t198.41.222.24\t53\tudp\t3643\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.136,198.41.209.139,198.41.209.138,198.41.208.137,198.41.209.143,198.41.208.138,198.41.209.137,198.41.208.143,198.41.209.141,198.41.208.142,198.41.209.142,198.41.208.139,198.41.209.140,198.41.208.141,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459543739.233573\tClc2Op21DYvCFSGxld\t192.168.1.1\t51279\t173.245.58.24\t53\tudp\t5426\tblog.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.140,198.41.209.143,198.41.208.143,198.41.209.137,198.41.209.140,198.41.208.138,198.41.209.139,198.41.208.139,198.41.208.142,198.41.208.137,198.41.209.136,198.41.208.141,198.41.209.138,198.41.209.141,198.41.209.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459543739.481772\tCMqRPF4WpwUMnn8gU4\t192.168.1.1\t59888\t173.245.58.24\t53\tudp\t36222\tbuttons.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.143,198.41.209.138,198.41.208.140,198.41.208.139,198.41.209.142,198.41.208.137,198.41.209.139,198.41.209.141,198.41.208.141,198.41.209.137,198.41.209.143,198.41.208.138,198.41.208.142,198.41.209.140,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459543863.976084\tClZrTL2mI1kKmZH0pa\t192.168.1.1\t50699\t198.41.223.24\t53\tudp\t32052\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.143,198.41.209.142,198.41.208.139,198.41.209.143,198.41.209.138,198.41.209.139,198.41.208.142,198.41.209.140,198.41.208.140,198.41.208.138,198.41.209.136,198.41.209.141,198.41.208.141,198.41.209.137,198.41.208.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459544120.232166\tCSc47H1cnIR3yd7hw7\t192.168.1.1\t51956\t198.41.222.24\t53\tudp\t2552\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.209.138,198.41.209.142,198.41.208.138,198.41.208.139,198.41.208.142,198.41.208.143,198.41.209.137,198.41.208.141,198.41.208.137,198.41.209.139,198.41.209.143,198.41.209.136,198.41.209.140,198.41.208.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459544202.781103\tChSVHD3aMtfaRbRKAj\t192.168.1.1\t63976\t198.41.223.24\t53\tudp\t42491\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.208.143,198.41.208.139,198.41.209.139,198.41.209.140,198.41.208.142,198.41.208.137,198.41.209.137,198.41.209.142,198.41.208.138,198.41.209.138,198.41.208.140,198.41.209.136,198.41.208.141,198.41.209.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459544366.446129\tCXwm5F9AFgz5Kv0tb\t192.168.1.1\t51574\t173.245.58.24\t53\tudp\t29221\tbuttons.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.208.142,198.41.209.138,198.41.209.137,198.41.209.139,198.41.209.136,198.41.208.139,198.41.208.143,198.41.208.138,198.41.209.140,198.41.209.142,198.41.208.137,198.41.208.140,198.41.209.141,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459544421.732267\tC97gcs1HWWyzC3QCnl\t192.168.1.2\t50276\t198.41.222.24\t53\tudp\t60543\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.209.141,198.41.208.137,198.41.209.139,198.41.209.143,198.41.208.142,198.41.209.137,198.41.209.140,198.41.209.138,198.41.209.142,198.41.208.143,198.41.208.139,198.41.208.141,198.41.208.140,198.41.209.136\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459544430.779914\tCJsq0m4zYkCNNr0oxc\t192.168.1.2\t61494\t173.245.58.24\t53\tudp\t39553\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.140,198.41.209.137,198.41.208.143,198.41.208.139,198.41.209.138,198.41.208.142,198.41.208.137,198.41.209.136,198.41.209.143,198.41.209.141,198.41.209.142,198.41.209.139,198.41.208.138,198.41.208.140,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459544530.216891\tC0I3jw1yJpf5x4M02\t192.168.1.1\t63213\t198.41.222.24\t53\tudp\t31365\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.208.138,198.41.208.143,198.41.208.137,198.41.209.139,198.41.208.142,198.41.209.143,198.41.208.140,198.41.208.139,198.41.209.136,198.41.209.137,198.41.209.140,198.41.209.141,198.41.209.138,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459544829.609706\tCaYf8m3oSMzaDru9y9\t192.168.1.1\t59696\t198.41.223.24\t53\tudp\t64670\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.208.138,198.41.208.141,198.41.209.141,198.41.209.142,198.41.209.140,198.41.209.143,198.41.208.140,198.41.209.138,198.41.208.142,198.41.209.136,198.41.209.137,198.41.208.137,198.41.209.139,198.41.208.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459544923.622965\tCXZKbn0zhDdJrZ8V9\t192.168.1.2\t56007\t198.41.223.24\t53\tudp\t57228\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.209.140,198.41.208.140,198.41.208.142,198.41.209.141,198.41.208.141,198.41.208.139,198.41.209.136,198.41.209.143,198.41.208.137,198.41.209.138,198.41.209.139,198.41.209.137,198.41.208.143,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459544923.508960\tCLq1WL9mYKNtpPBd\t192.168.1.1\t60694\t173.245.58.24\t53\tudp\t61336\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.139,198.41.208.143,198.41.209.140,198.41.209.142,198.41.208.142,198.41.209.136,198.41.208.141,198.41.209.141,198.41.209.137,198.41.209.143,198.41.208.140,198.41.208.137,198.41.209.138,198.41.208.139,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459545153.387996\tC0fbtf26oUXKeWU549\t192.168.1.1\t63249\t198.41.222.24\t53\tudp\t36324\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.139,198.41.208.137,198.41.209.143,198.41.208.142,198.41.208.143,198.41.208.140,198.41.209.142,198.41.209.137,198.41.208.139,198.41.209.141,198.41.208.138,198.41.209.136,198.41.209.140,198.41.208.141,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459545153.387738\tCEjVah4elRQhCPXNTf\t192.168.1.1\t52577\t198.41.222.24\t53\tudp\t54674\treddit.com\t1\tC_INTERNET\t28\tAAAA\t0\tNOERROR\tF\tF\tF\tF\t0\t-\t-\tF\t-\n1459545236.682702\tCOleEr11ABefZDciP8\t192.168.1.1\t61898\t198.41.223.24\t53\tudp\t56032\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.209.139,198.41.208.141,198.41.208.142,198.41.209.137,198.41.208.139,198.41.208.137,198.41.208.138,198.41.209.141,198.41.209.140,198.41.209.138,198.41.209.136,198.41.208.143,198.41.208.140,198.41.209.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459545396.906494\tCyyple28QdsC2pZ3T8\t192.168.1.1\t57790\t198.41.223.24\t53\tudp\t33582\tbuttons.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.142,198.41.208.141,198.41.208.137,198.41.209.139,198.41.209.136,198.41.208.140,198.41.209.141,198.41.209.140,198.41.208.143,198.41.208.142,198.41.208.139,198.41.209.138,198.41.209.137,198.41.209.143,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459545508.537747\tCemaQm1Yml8Kc3N8Pd\t192.168.1.1\t63551\t198.41.223.24\t53\tudp\t47488\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.139,198.41.208.140,198.41.208.143,198.41.209.136,198.41.208.139,198.41.208.137,198.41.209.140,198.41.209.142,198.41.209.138,198.41.208.142,198.41.209.143,198.41.209.137,198.41.208.141,198.41.209.141,198.41.208.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459545595.906428\tCzt5Hd2YDmUZJER8sc\t192.168.1.1\t49660\t198.41.223.24\t53\tudp\t23015\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.140,198.41.209.143,198.41.209.139,198.41.209.142,198.41.209.140,198.41.209.138,198.41.209.136,198.41.209.137,198.41.208.142,198.41.209.141,198.41.208.143,198.41.208.141,198.41.208.139,198.41.208.138,198.41.208.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459546002.134079\tCJlgQg10vtmYvzfK0c\t192.168.1.1\t61291\t198.41.223.24\t53\tudp\t38089\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.141,198.41.208.137,198.41.209.139,198.41.209.142,198.41.209.140,198.41.208.140,198.41.208.141,198.41.209.137,198.41.209.138,198.41.208.142,198.41.208.139,198.41.209.143,198.41.208.138,198.41.209.136,198.41.208.143\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459546002.174025\tCoVEBq1WbBmdLnM33f\t192.168.1.1\t50063\t198.41.223.24\t53\tudp\t39576\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.137,198.41.209.141,198.41.209.137,198.41.209.138,198.41.208.139,198.41.208.140,198.41.209.140,198.41.208.143,198.41.208.142,198.41.208.141,198.41.209.139,198.41.209.143,198.41.209.136,198.41.208.138,198.41.209.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459546026.723566\tCASoyh4mn7JTz5Z9u2\t192.168.1.1\t63876\t198.41.223.24\t53\tudp\t7857\tnp.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.209.137,198.41.208.141,198.41.209.141,198.41.209.142,198.41.208.139,198.41.209.136,198.41.209.138,198.41.208.140,198.41.209.139,198.41.208.138,198.41.208.137,198.41.208.142,198.41.208.143,198.41.209.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459546330.280324\tC4pANrPHlVnMmDwMa\t192.168.1.1\t56537\t173.245.58.24\t53\tudp\t41152\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.208.140,198.41.209.136,198.41.209.140,198.41.208.142,198.41.208.139,198.41.208.141,198.41.209.138,198.41.209.139,198.41.208.137,198.41.209.141,198.41.208.143,198.41.208.138,198.41.209.142,198.41.209.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459546533.125824\tCfllyPXkI2PbCnaY\t192.168.1.1\t57652\t198.41.223.24\t53\tudp\t16852\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.140,198.41.209.141,198.41.208.139,198.41.208.140,198.41.208.141,198.41.209.136,198.41.209.143,198.41.209.139,198.41.208.143,198.41.209.138,198.41.208.138,198.41.208.142,198.41.208.137,198.41.209.142,198.41.209.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459546774.797405\tCbfnf11FVmcgKdfOh7\t192.168.1.1\t53681\t198.41.222.24\t53\tudp\t11510\tbuttons.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.208.139,198.41.208.137,198.41.209.141,198.41.208.142,198.41.209.143,198.41.208.143,198.41.209.139,198.41.209.137,198.41.209.140,198.41.209.138,198.41.209.136,198.41.209.142,198.41.208.140,198.41.208.141\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459546775.063224\tCkKBGQcauQEYoarUl\t192.168.1.1\t54146\t198.41.223.24\t53\tudp\t45821\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.140,198.41.209.138,198.41.209.143,198.41.208.137,198.41.209.142,198.41.208.138,198.41.209.137,198.41.209.141,198.41.208.139,198.41.209.136,198.41.208.142,198.41.208.143,198.41.209.140,198.41.208.141,198.41.209.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459547230.319497\tCFNteg1gYkMwn3lCHh\t192.168.1.1\t55289\t173.245.58.24\t53\tudp\t41515\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.209.142,198.41.208.143,198.41.209.139,198.41.208.141,198.41.209.141,198.41.208.139,198.41.209.137,198.41.209.143,198.41.209.138,198.41.209.136,198.41.208.142,198.41.208.137,198.41.208.140,198.41.209.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459547327.500816\tC7J7zkzWRNtFMQm26\t192.168.1.1\t54024\t198.41.222.24\t53\tudp\t55180\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.139,198.41.208.138,198.41.208.140,198.41.208.141,198.41.208.142,198.41.208.143,198.41.208.137,198.41.209.143,198.41.209.141,198.41.209.140,198.41.209.139,198.41.209.137,198.41.209.136,198.41.209.142,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459547704.612726\tCSmndK3HiGU7lOEpQ1\t192.168.1.1\t59399\t173.245.58.24\t53\tudp\t55626\treddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.137,198.41.208.142,198.41.209.139,198.41.209.143,198.41.209.141,198.41.209.142,198.41.209.140,198.41.208.140,198.41.208.143,198.41.208.137,198.41.208.138,198.41.209.136,198.41.209.138,198.41.208.141,198.41.208.139\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459547704.609809\tCSJeQh1Uu4zoeDAkTa\t192.168.1.1\t54496\t173.245.58.24\t53\tudp\t45516\twww.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.138,198.41.208.142,198.41.208.143,198.41.209.136,198.41.209.143,198.41.209.140,198.41.208.137,198.41.208.141,198.41.209.137,198.41.209.142,198.41.208.139,198.41.208.140,198.41.209.141,198.41.209.139,198.41.209.138\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459547976.273207\tCRxzHy2pqifJ4LPJQ7\t192.168.1.2\t63748\t198.41.223.24\t53\tudp\t29133\toauth.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.143,198.41.209.138,198.41.208.138,198.41.209.141,198.41.209.136,198.41.209.142,198.41.208.142,198.41.209.140,198.41.209.139,198.41.208.140,198.41.208.139,198.41.208.137,198.41.208.141,198.41.208.143,198.41.209.137\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459547976.498509\tCtUJnOOFiYQYQ3bUb\t192.168.1.1\t63928\t173.245.58.24\t53\tudp\t20326\tssl.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.209.139,198.41.208.143,198.41.208.139,198.41.209.143,198.41.209.140,198.41.208.138,198.41.208.141,198.41.208.140,198.41.209.141,198.41.209.138,198.41.208.137,198.41.209.136,198.41.209.142,198.41.209.137,198.41.208.142\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n1459547976.268210\tCCCtp31Q97kOdMMjfc\t192.168.1.1\t63890\t198.41.222.24\t53\tudp\t6400\toauth.reddit.com\t1\tC_INTERNET\t1\tA\t0\tNOERROR\tT\tF\tF\tF\t0\t198.41.208.143,198.41.209.137,198.41.208.138,198.41.208.142,198.41.208.140,198.41.209.136,198.41.208.137,198.41.208.141,198.41.209.141,198.41.209.139,198.41.209.143,198.41.208.139,198.41.209.138,198.41.209.142,198.41.209.140\t300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000,300.000000\tF\t-\n"
  },
  {
    "path": "version.go",
    "content": "package main\n\nconst (\n\tVERSION = \"0.7.0\"\n)\n"
  },
  {
    "path": "web.go",
    "content": "package main\n\nimport (\n\t\"embed\"\n\t\"encoding/json\"\n\t\"log\"\n\t\"net/http\"\n\t\"text/template\"\n\n\t\"github.com/gorilla/mux\"\n)\n\n//go:embed template\nvar content embed.FS\n\ntype pdnsHandler struct {\n\ts Store\n}\n\nfunc (h *pdnsHandler) handleSearchTuples(w http.ResponseWriter, req *http.Request) {\n\tvars := mux.Vars(req)\n\tsearchType := vars[\"searchType\"]\n\tquery := vars[\"query\"]\n\n\tif query == \"\" {\n\t\thttp.Error(w, \"Missing parameter: q\", http.StatusBadRequest)\n\t\treturn\n\t}\n\tvar err error\n\tvar recs tupleResults\n\tif searchType == \"like\" {\n\t\trecs, err = h.s.LikeTuples(query)\n\t} else {\n\t\trecs, err = h.s.FindTuples(query)\n\t}\n\n\tif err != nil {\n\t\thttp.Error(w, err.Error(), http.StatusInternalServerError)\n\t\treturn\n\t}\n\n\tjson.NewEncoder(w).Encode(recs)\n}\nfunc (h *pdnsHandler) handleSearchIndividual(w http.ResponseWriter, req *http.Request) {\n\tvars := mux.Vars(req)\n\tsearchType := vars[\"searchType\"]\n\tquery := vars[\"query\"]\n\n\tif query == \"\" {\n\t\thttp.Error(w, \"Missing parameter: q\", http.StatusBadRequest)\n\t\treturn\n\t}\n\tvar err error\n\tvar recs individualResults\n\tif searchType == \"like\" {\n\t\trecs, err = h.s.LikeIndividual(query)\n\t} else {\n\t\trecs, err = h.s.FindIndividual(query)\n\t}\n\n\tif err != nil {\n\t\thttp.Error(w, err.Error(), http.StatusInternalServerError)\n\t\treturn\n\t}\n\n\tjson.NewEncoder(w).Encode(recs)\n}\n\ntype Results struct {\n\tQuery      string\n\tExact      bool\n\tIndividual individualResults\n\tTuples     tupleResults\n\tError      error\n}\n\nfunc (h *pdnsHandler) handleUI(w http.ResponseWriter, req *http.Request) {\n\tvar err error\n\tvar res Results\n\tres.Query = req.FormValue(\"query\")\n\tres.Exact = req.FormValue(\"exact\") == \"on\"\n\tif res.Query != \"\" {\n\t\tif res.Exact {\n\t\t\tres.Individual, err = h.s.FindIndividual(res.Query)\n\t\t\tif err != nil {\n\t\t\t\tres.Error = err\n\t\t\t}\n\t\t\tres.Tuples, err = h.s.FindTuples(res.Query)\n\t\t\tif err != nil {\n\t\t\t\tres.Error = err\n\t\t\t}\n\t\t} else {\n\t\t\tres.Individual, err = h.s.LikeIndividual(res.Query)\n\t\t\tif err != nil {\n\t\t\t\tres.Error = err\n\t\t\t}\n\t\t\tres.Tuples, err = h.s.LikeTuples(res.Query)\n\t\t\tif err != nil {\n\t\t\t\tres.Error = err\n\t\t\t}\n\t\t}\n\t}\n\n\tvar t = template.Must(template.New(\"index.html\").ParseFS(content, \"template/index.html\"))\n\terr = t.Execute(w, res)\n\tif err != nil {\n\t\tlog.Printf(\"Error rendering template: %v\", err)\n\t}\n}\n\nfunc startWeb(s Store, bind string) {\n\th := &pdnsHandler{s: s}\n\tr := mux.NewRouter()\n\n\tr.HandleFunc(\"/dns/{searchType}/tuples/{query}\", h.handleSearchTuples)\n\tr.HandleFunc(\"/dns/{searchType}/individual/{query}\", h.handleSearchIndividual)\n\n\tr.HandleFunc(\"/\", func(w http.ResponseWriter, r *http.Request) {\n\t\thttp.Redirect(w, r, \"/ui/\", http.StatusSeeOther)\n\t})\n\tr.HandleFunc(\"/ui/\", h.handleUI)\n\n\thttp.Handle(\"/\", r)\n\n\tlog.Printf(\"Listening on %q\\n\", bind)\n\tlog.Fatal(http.ListenAndServe(bind, nil))\n}\n"
  }
]