Progress on schema and fixing unittests
This commit is contained in:
parent
a518ca79da
commit
b75cee5e84
4
Makefile
4
Makefile
|
@ -19,4 +19,8 @@ bindata:
|
|||
-nometadata \
|
||||
-o internal/bindata/bindata.go -pkg bindata \
|
||||
data/...;
|
||||
|
||||
test-internal:
|
||||
@$(GO) test -v ./internal/...
|
||||
|
||||
.PHONY: bindata
|
||||
|
|
|
@ -34,12 +34,12 @@ CREATE TABLE `urls` (
|
|||
-- or distinguishing between wifi and mobile.
|
||||
CREATE TABLE `networks` (
|
||||
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
`network_name` VARCHAR(255), -- String name representing the network_name which by default is populated based
|
||||
`network_name` VARCHAR(255) NOT NULL, -- String name representing the network_name which by default is populated based
|
||||
-- on the ASN.
|
||||
-- We use a separate key to reference the rows in
|
||||
-- this tables, because we may wish to "enrich"
|
||||
-- this with more data in the future.
|
||||
`network_type` VARCHAR(16), -- One of wifi, mobile
|
||||
`network_type` VARCHAR(16) NOT NULL, -- One of wifi, mobile
|
||||
|
||||
`ip` VARCHAR(40) NOT NULL, -- Stores a string representation of an ipv4 or ipv6 address.
|
||||
-- The longest ip is an ipv6 address like:
|
||||
|
@ -59,7 +59,7 @@ CREATE TABLE `results` (
|
|||
-- That is to say: `SUM(runtime) FROM measurements` will always be <=
|
||||
-- `runtime FROM results` (most times <)
|
||||
`start_time` DATETIME NOT NULL,
|
||||
`runtime` REAL NOT NULL,
|
||||
`runtime` REAL,
|
||||
|
||||
-- Used to indicate if the user has seen this result
|
||||
`is_viewed` TINYINT(1) NOT NULL,
|
||||
|
@ -70,7 +70,10 @@ CREATE TABLE `results` (
|
|||
`data_usage_down` INTEGER NOT NULL,
|
||||
-- It's probably reasonable to set the maximum length to 260 as this is the
|
||||
-- maximum length of file paths on windows.
|
||||
`measurement_dir` VARCHAR(260) NOT NULL
|
||||
`measurement_dir` VARCHAR(260) NOT NULL,
|
||||
|
||||
`network_id` INTEGER NOT NULL,
|
||||
FOREIGN KEY(`network_id`) REFERENCES `networks` (`id`)
|
||||
);
|
||||
|
||||
CREATE TABLE `measurements` (
|
||||
|
@ -87,13 +90,6 @@ CREATE TABLE `measurements` (
|
|||
`start_time` DATETIME NOT NULL,
|
||||
`runtime` REAL NOT NULL,
|
||||
|
||||
-- For the purpose of populating the probe information in the results
|
||||
-- views, you should pick the first measurement in the JOIN sorted by
|
||||
-- start_time.
|
||||
-- You don't have the guarantee that every (ip, asn, country, network_name)
|
||||
-- is the same in a "measurement set" associated to a "result".
|
||||
`network_id` INTEGER NOT NULL,
|
||||
|
||||
-- Note for golang: we used to have state be one of `done` and `active`, so
|
||||
-- this is equivalent to done being true or false.
|
||||
-- `state` TEXT,
|
||||
|
@ -163,7 +159,6 @@ CREATE TABLE `measurements` (
|
|||
FOREIGN KEY (`result_id`) REFERENCES `results`(`id`)
|
||||
ON DELETE CASCADE ON UPDATE CASCADE, -- If we delete a result we also want
|
||||
-- all the measurements to be deleted as well.
|
||||
FOREIGN KEY (`url_id`) REFERENCES `urls`(`id`),
|
||||
FOREIGN KEY(`network_id`) REFERENCES `networks` (`id`)
|
||||
FOREIGN KEY (`url_id`) REFERENCES `urls`(`id`)
|
||||
);
|
||||
-- +migrate StatementEnd
|
||||
|
|
|
@ -130,105 +130,100 @@ func bindataDataDefaultconfigjson() (*asset, error) {
|
|||
}
|
||||
|
||||
var _bindataDataMigrations1createmsmtresultssql = []byte(
|
||||
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x59\x6d\x6f\xdb\xc6\xb2\xfe\xee\x5f\x31\x30\x8a\xd6\xc6\x95\xe4\x24" +
|
||||
"\x37\x0d\xee\x75\x5b\x14\xae\xad\xe4\xa8\x8d\xe5\x40\x96\x4f\x13\x1c\x1c\x88\x2b\x72\x28\x6d\xbd\xdc\x65\xf6\x45" +
|
||||
"\x8a\xce\xaf\x3f\x98\xd9\x25\x45\xca\x4e\xe2\x00\xcd\x07\x47\x22\x77\x67\xe7\xf5\x99\x67\x56\xc3\x21\xfc\x4f\x25" +
|
||||
"\x57\x56\x78\x84\x2b\xb3\xd5\x47\xdd\x07\xb7\x5e\x78\xac\x50\xfb\xdf\x70\x25\xf5\xd1\xd1\xd5\xec\xe6\x1d\xcc\x2f" +
|
||||
"\x7e\x7b\x3b\x86\xcc\xa2\x0b\xca\xbb\xec\xa7\xde\xd3\x0a\x85\x0b\x96\xf7\x1c\xbe\x0a\x56\x1d\x3e\xd2\xe8\xb7\xc6" +
|
||||
"\xde\xd3\xe3\xc7\xcf\x1d\xeb\xa2\xff\xe6\xae\xfe\xa2\x82\x97\xb3\xf1\xc5\x7c\xdc\x3b\x11\x4e\x8e\x00\x32\x59\x64" +
|
||||
"\x30\x99\xce\xc7\x6f\xc6\x33\x78\x37\x9b\x5c\x5f\xcc\x3e\xc0\x1f\xe3\x0f\x70\x71\x37\xbf\x99\x4c\x2f\x67\xe3\xeb" +
|
||||
"\xf1\x74\x3e\xa0\x95\xc1\xaa\x0c\xfe\x79\x31\xbb\xfc\xc7\xc5\xec\xe4\xc5\x8f\x3f\x9e\xc2\xf4\x66\x0e\xd3\xbb\xb7" +
|
||||
"\x6f\x07\x30\x1c\xc2\xfb\xf7\xef\x41\x3a\xf0\x6b\xe9\x40\x19\xbd\x02\xd4\x26\xac\xd6\xbf\xd2\xd6\x5c\x78\x5c\x19" +
|
||||
"\xbb\x5b\xe4\xa6\xc0\xbd\x90\x43\x11\xf3\x35\x42\x2e\xbd\xfc\x0f\x6a\x25\x96\xd0\xec\x02\xda\x05\xa5\xb1\xe0\xd7" +
|
||||
"\x78\x04\x4f\xfb\x37\x1c\x82\x93\x1e\x47\xf0\x27\x42\x70\x48\x5b\xc1\x79\x2b\xf5\x0a\xa6\x37\xd3\x31\x78\x03\x05" +
|
||||
"\x6a\xe3\xbf\x45\xa0\x36\x70\xaf\xcd\x56\xf7\x35\x1b\x1d\xb1\x89\x26\x68\xff\xc0\xc2\x17\x7b\x0b\x1b\x03\xfd\xd6" +
|
||||
"\x80\x42\xef\xd1\x42\xda\x13\xed\xdb\xae\x65\xbe\x66\xf7\x3d\x4d\xa3\xe1\x10\xee\x66\x6f\x61\x89\xe4\x6c\x07\xde" +
|
||||
"\x1c\x9d\xc6\x64\xf9\x13\x21\xb7\x48\x49\x20\xc0\x61\x2d\x38\x1f\xbc\x58\xaa\xe8\xc3\x26\xb5\xf8\xcb\x0b\xb0\x28" +
|
||||
"\x9c\xd1\xee\x9c\x76\x3e\x1f\xc1\x6b\x63\xc1\x99\x0a\xc1\x94\xec\xb2\x8d\xc4\xad\x83\xed\x1a\x2d\x82\x46\x2c\xf8" +
|
||||
"\xa1\x37\x5e\x28\xd0\xa1\x5a\xa2\xa5\x85\x29\xb7\x8b\x56\xf6\x80\xa4\x49\xff\x83\x83\x95\x21\x8f\x7b\x03\x4b\x84" +
|
||||
"\x2a\xe4\x6b\xa8\x8c\x45\xc0\xb2\x94\xb9\x44\xed\xe9\xcd\x5f\xc1\x79\x50\xc6\xdc\x87\x9a\xa5\xb3\x57\x48\xac\x35" +
|
||||
"\x5b\x07\x52\x47\x9f\x0c\x87\xd1\x86\x11\x7d\x7a\x31\x82\x93\xca\x38\x0f\xb2\xaa\x8d\xf5\x42\xfb\x53\x32\x7b\x2b" +
|
||||
"\xa2\x44\xb1\x31\xb2\x80\x22\xd4\x4a\xe6\xc2\x93\x02\x02\x96\x41\xe7\x6b\x92\x2a\x75\x69\x6c\x25\xbc\x34\x24\x59" +
|
||||
"\x78\x56\xb5\xaf\x68\x6e\xaa\x8a\xde\x1a\x70\xb8\x41\x4b\xb6\x36\x4e\x23\x05\x83\x43\x4b\x5b\x8c\x66\x65\xc6\x9f" +
|
||||
"\x44\x55\x2b\x3c\x4f\xbe\xaf\xc4\x0e\xb6\xd2\xad\x59\x91\xa2\xa0\xff\xb8\x26\x62\x04\x68\xbf\x32\x79\x3c\xbe\xb4" +
|
||||
"\xa6\x6a\x1c\x5d\x5b\xb3\xc4\xf8\x84\xbe\xbe\x79\x77\x4b\xf2\x8c\x65\x19\x2e\xd4\x64\x27\x87\x4c\x28\x65\xb6\xac" +
|
||||
"\x6b\xa3\x8a\x37\x70\x9c\x1b\x6b\x31\xf7\xc7\x20\xa0\x92\x2e\x57\xc2\x39\x59\x4a\x2c\xa0\x83\x3b\x49\x60\x21\x1d" +
|
||||
"\xf9\x24\x48\xb7\x26\x31\x4b\xf4\x5b\x44\x0d\x5b\x59\x4a\x10\xba\x80\xca\x2c\x25\xf9\xb9\x0f\x19\x2d\x22\x7d\x2b" +
|
||||
"\x6c\xa4\x8d\x0b\x2d\x2a\xec\xe3\x07\xd7\xfc\x6d\xac\x49\x7a\x0b\x16\x6b\x8b\x0e\xb5\x6f\xcc\xeb\xee\x4d\x05\xb2" +
|
||||
"\xdc\x41\x81\xa5\x08\xca\x53\x08\x6a\x53\x07\x25\x3c\x16\xb0\x14\x0e\x8b\xaf\x55\x0e\x39\x40\xb3\xe4\x8b\xdb\xe9" +
|
||||
"\xe8\x09\xab\x13\x78\x74\x0a\xe9\x1e\x77\xe4\x70\x8b\x25\x5a\xd4\x79\x8c\x68\xca\xd4\x27\x08\xdc\xa7\x82\x1b\xc0" +
|
||||
"\x12\x73\x41\xe2\xb7\xfd\xac\x39\x46\x6d\x65\xbe\x3e\x7e\xaa\xb8\xad\xf4\xa9\xae\x0a\xe1\x45\xac\x18\x84\x32\xf8" +
|
||||
"\x60\x71\xd4\x0d\x81\xdf\xd5\x9d\x10\x3c\x7f\x15\x23\x70\xa3\xb9\xda\x29\xfe\x83\x14\x7c\x42\x34\xc8\x64\xbd\x5f" +
|
||||
"\xfc\xf2\x59\x17\xab\x63\xe0\x8c\x45\x47\xae\x89\x11\x6c\x83\x17\x73\xdb\x94\x20\x34\xc8\x7a\xf3\x92\x72\x4e\xd6" +
|
||||
"\x9b\x57\x94\xc9\x16\x9d\x7b\x8a\xdf\xe7\x5c\x26\x7a\x85\x54\xe3\x35\x45\x3a\x0a\x6b\x85\x80\x92\xf7\x78\xfe\x04" +
|
||||
"\x49\xcf\x9e\x3d\x7b\x76\xfe\xf5\x3f\x83\x27\x88\x8a\x09\x28\x1d\xfc\xef\xff\x43\xbe\x16\x96\x2d\xc9\x84\xd3\x5c" +
|
||||
"\x0a\x27\x2f\x3b\x1e\xfa\x3b\x3a\x02\xe3\x79\xbf\x08\x1b\x6a\xc1\x35\xf8\x2d\x55\x98\x9c\x2a\x1d\xe4\x42\x13\xc4" +
|
||||
"\x99\x18\xf4\xe3\x2d\x2e\xa9\x4d\xba\xe3\x01\x1c\xcb\x8a\xfe\xd6\x68\x19\x20\x75\x8e\xf4\xb5\x92\x45\xa1\x70\x69" +
|
||||
"\x3e\x1d\xc7\xb8\x65\x1e\x9d\x5f\xac\xac\x09\xf5\x41\x49\x3f\x7f\xd5\x77\x40\xbf\x80\x0a\x59\x72\xc5\x78\x70\x5e" +
|
||||
"\x58\xbf\xf0\xb2\x42\x86\x1b\x1b\x34\x7d\xee\x55\x43\x0b\xe4\xca\x19\x58\x8b\x0d\x36\xe2\x38\xc1\xbd\x69\x50\x8d" +
|
||||
"\x13\xdd\x6c\xd0\xae\x51\x14\x64\x0f\x37\xbe\x08\xf8\x16\x19\x32\xe9\x08\xe3\xd7\x68\xa1\x14\xb9\x37\xd6\x45\xd0" +
|
||||
"\x4f\xf2\x56\x06\xa4\x66\x84\x46\x20\xc3\x46\x7b\x5f\x09\x06\x18\xea\x01\x62\x77\x0e\xd9\xed\xdd\xf5\x49\x52\xf5" +
|
||||
"\x14\x5e\xcf\x6e\xae\xa1\xc7\xe8\x60\x2b\x95\x02\xa1\xb6\x62\xe7\xc8\xbf\x3f\xff\xd2\x48\xca\xd2\xae\xb8\x69\x1f" +
|
||||
"\x41\xee\x5f\xf4\xc2\xc1\xcf\xa7\xd1\xb5\x7b\xcf\x64\x70\x75\x31\x1f\xcf\x27\xd7\xe3\x03\x97\x36\xd2\x32\x98\x8d" +
|
||||
"\x2f\xde\x76\x5e\x36\xc7\xdd\x39\xe4\x9e\x23\x75\x41\xcd\x0f\x41\x96\xfb\x4e\xb1\x16\x0e\x1c\x81\x3d\xe3\x46\xd4" +
|
||||
"\x25\x65\x92\x5b\x50\xab\xc7\x22\x83\xf9\x64\xfa\x81\xf2\xf9\xf9\xe9\x23\xe2\x39\x87\xa8\x1c\xa1\x54\x62\x45\x52" +
|
||||
"\x1f\x3d\x2d\x8a\xa6\x85\x05\x67\x1a\xf7\xcb\x3c\x58\x4a\x00\xb5\xa3\x98\x6b\xa9\x57\xa3\xf6\x6c\x5a\xf5\x99\x93" +
|
||||
"\x79\x09\xc5\x7d\x11\x9c\x58\xe1\x22\xd4\xfb\x9c\xff\xfc\xaa\xc2\x6c\xf5\xe7\xd6\x0d\x87\x30\x21\x6e\x42\x2d\x57" +
|
||||
"\x2c\x49\x1d\xe6\x40\xb1\x3f\x53\xcf\xf7\x6c\x43\x25\x3e\xc9\x2a\x54\xa0\x50\xaf\x3c\x03\xf3\x8b\x57\xcf\x40\x24" +
|
||||
"\x8a\xcb\x54\xb7\xcd\xcb\x83\xb5\xa6\x84\x52\x2a\x84\x5a\xf8\x35\xf1\x04\xd8\x4a\x5d\x98\x6d\x82\xbe\xee\x2c\xb0" +
|
||||
"\x28\xa4\xed\x80\xc3\xab\x0e\xcc\x3e\x52\xff\xfd\x94\xfb\x9b\x40\xe0\xbc\x79\x55\x8a\x1c\x97\xc6\xdc\x2f\x2a\x74" +
|
||||
"\x0e\xf5\x0a\x6d\xf3\xc6\xa3\xc2\x95\x15\xd5\x51\x8b\x84\xc2\x3b\x51\xd7\xcd\xf7\xb5\xf7\xf5\x82\x6a\x10\xed\xa2" +
|
||||
"\x94\xa8\x8a\x45\x25\xb4\xe4\xd6\x2c\x8d\xee\xad\x92\x7a\x23\x94\x2c\x16\x16\x3f\x06\x42\x12\x25\x75\xa7\xba\xdd" +
|
||||
"\xba\xf9\xac\x0b\xdf\xc1\x9b\x3e\xd2\xbc\x7a\xf9\x20\x41\xfe\x8e\xd2\x79\x1d\x27\x0c\xa8\x83\xad\x8d\x63\x7c\x4c" +
|
||||
"\xfc\xa2\xe1\x23\x91\xa4\x75\x19\x64\x6a\xb6\xa9\xac\x1b\x49\xcc\x9a\x07\xb0\x33\x01\xdc\xda\x04\x55\x40\x2d\xf3" +
|
||||
"\xfb\xd8\x96\xa5\x75\xbe\x8b\x1d\x8d\x88\xdf\x6f\x26\x53\x70\xc6\x32\x99\xd9\x35\x92\xf6\x76\xb5\xd0\xf4\xc1\x04" +
|
||||
"\xaa\xaa\x1f\x3c\x23\x23\xef\x5d\x05\x61\x85\xf6\x88\x0c\x6e\x40\xa4\x75\x07\x27\xb2\x1e\x80\x70\x7a\xd0\x74\x95" +
|
||||
"\x41\x8f\x4f\x9d\x36\xf2\x62\x26\x83\x23\x8e\x25\x35\x08\x38\xee\x6a\xe7\x90\x48\xa5\x73\x26\x97\xcc\xb3\x08\x95" +
|
||||
"\xe1\x38\xda\xdb\xb4\x84\x46\x6c\x37\x13\x1f\xba\x77\x6a\x7c\x9c\x40\x56\x46\x09\xbd\x3a\x27\xa0\x6f\xf0\x83\x2d" +
|
||||
"\x71\x34\xb3\x76\x9a\x53\x16\x51\x81\x10\x3c\x13\xb9\x97\x1b\xcc\x06\xe0\xcc\x51\x97\xfb\x48\x07\xf8\x31\xc8\x8d" +
|
||||
"\x50\x69\x9a\x60\xbc\x59\x22\x47\xcc\x06\x86\x9e\x52\x28\xb7\x77\x5f\xc6\xc7\x64\x30\x1f\xbf\x4f\x55\xf1\x04\x00" +
|
||||
"\x4a\x9d\x3a\x02\x45\xab\xb0\x80\x02\x23\xee\x15\x20\xdd\x22\xd4\xca\x88\x02\x0b\x86\xc6\x01\x48\xed\x7c\x6a\x4b" +
|
||||
"\x3c\xe2\x04\x27\xf5\x6a\xef\xf4\xb4\x7c\x51\x0a\xa9\xb0\x18\xc4\x30\x08\xdf\x90\x41\x6d\x52\x7c\x5b\xa9\x8c\x49" +
|
||||
"\x9d\xc8\x14\xa1\x2d\x1c\x0e\x8a\x43\xef\x7b\xa0\xda\xec\x7c\x22\xa4\x1f\xca\x8f\x8a\x31\xd9\x0d\x9a\xa3\xd0\xf6" +
|
||||
"\x91\x94\xd4\x14\x2a\xea\xea\x96\x97\x35\xf2\x2c\x0e\x69\x83\xf4\x7b\x4d\xa2\xa8\x2f\x01\x3c\xad\x08\x16\x17\x95" +
|
||||
"\x5b\x1d\x0c\x09\x47\x07\xf6\x3c\x41\x58\x67\xe1\x97\x64\x52\x1f\x70\x0f\x5b\x18\x47\x81\x93\xab\x16\xd6\xcb\x3c" +
|
||||
"\x28\x61\x7b\x8e\xa1\x2e\xba\xa4\x2e\x9a\x2c\x15\xba\xd8\xe7\x24\x5a\x2c\x4d\x62\x26\x77\x13\x46\x5a\x2f\xee\x31" +
|
||||
"\x65\x2b\x71\x0d\x91\xc7\x09\xd7\x1b\x40\xc9\xcc\x64\x2d\x0b\x04\xe9\xdb\xe9\x6f\xef\x49\xee\xa2\x84\x26\x3c\x09" +
|
||||
"\xc6\xbe\xc4\xc5\xad\x50\x38\x4f\xa3\x5c\x3b\x55\x8a\xa5\x54\xd2\xa7\xe1\xa4\x17\x81\x74\x39\x53\x18\xca\x2d\xa6" +
|
||||
"\x54\x0d\xbf\x4a\x59\xdc\x19\x66\x4c\x82\x33\x16\xd0\x31\xfa\xd7\x36\x0a\x16\x6d\xd0\xdf\x90\x52\x0e\xed\x06\xed" +
|
||||
"\xd0\x91\x8d\x91\x93\x2d\x64\x01\x16\x7d\xb0\x9a\xa1\x2e\x0d\xfd\x4a\x21\xf1\xb3\x11\xfc\xb6\xeb\x97\xca\x7e\xd3" +
|
||||
"\xf7\x20\x75\x1d\x7c\x04\x56\xf2\xec\xc7\x40\xbe\x60\xeb\x6b\x49\xca\x97\xe8\xd3\x25\x4a\x57\xf9\xd6\x0d\xe3\x4f" +
|
||||
"\xed\xc7\x37\xe3\x39\x37\x24\x77\x7e\x76\x26\x6a\x39\x32\x46\xcb\x91\x34\xf4\xf9\x6c\xf3\xfc\xac\xdb\x69\x7f\xe5" +
|
||||
"\x53\x7f\xf9\x6e\x32\x7d\x77\x37\xff\xbe\x55\xe7\x97\xef\x66\xe3\x77\x37\xb3\xf9\x62\x72\xb5\x97\xef\xad\xc8\x7d" +
|
||||
"\x07\xe8\xa5\xc7\x6a\x3f\xd5\x27\x02\xff\xaf\x7f\x67\xa0\xa4\xf3\x4d\x51\xe9\xa8\x77\xdb\x88\x7b\x04\x81\xaf\xdd" +
|
||||
"\xbc\x81\x55\xa2\x25\xbf\xdf\xde\x4c\xe3\xa5\x41\xdf\x48\x1a\x42\x3b\xf4\x15\x5d\x1c\x2c\x36\x42\x05\x74\x70\x92" +
|
||||
"\xb5\x7a\x67\x03\xc8\xd8\xa2\xec\x14\x84\xe5\x8a\x2e\x83\xda\x7b\x4f\xb4\xa4\xa6\x23\x9c\x8b\x82\x12\x5f\x28\x8b" +
|
||||
"\xa2\xd8\xc5\x02\xa8\xad\xc9\x89\x2b\xb4\x61\xac\x65\x8d\xd4\xd1\x07\x1d\x3c\x90\x55\xad\xa2\x90\x5c\xa1\xd0\xa1" +
|
||||
"\xe6\xd9\x30\x89\x69\xd1\xad\xeb\xf0\x04\x1c\x7b\x8d\x1f\x5e\x1b\x74\x69\x0c\xcf\x52\x5b\x72\xa3\x36\x0d\xed\x67" +
|
||||
"\xfa\xd5\x14\xea\x57\x66\xbb\xe1\x30\x5d\x98\x15\xa3\x04\x36\xc1\xaa\xaf\x34\xb3\x26\xc3\x09\xa6\x77\xe8\x89\x0f" +
|
||||
"\xa3\xa0\x81\xbb\xb9\xcf\x69\x13\x7a\x00\xcb\xc0\xa8\x4e\xbe\xae\x95\x60\xe6\x9b\x2e\x87\x7a\xad\x4c\xf8\x78\xf3" +
|
||||
"\x56\x1b\xb9\x67\x05\x1a\x85\xed\x8c\xf2\x71\xf2\x46\x3c\x6f\x73\x77\x25\xfd\x3a\x2c\x47\xb9\xa9\xce\x28\x85\xcf" +
|
||||
"\x9a\x08\x9c\x2d\x95\x59\x9e\x55\xc2\x79\xb4\x67\x85\xc9\x1d\xbf\x1e\x86\x20\x8b\x51\x55\xc0\xf7\x5d\x52\xf6\x45" +
|
||||
"\x39\xd2\xb9\x80\xee\xec\xe5\xff\x3d\xe4\xae\xc9\x45\xc4\xc7\x0e\x3d\x93\xc0\xd4\x35\x76\xe4\x22\x12\x2a\x01\xcd" +
|
||||
"\xc4\xc9\xf3\xd6\x20\x26\x96\xe0\xbb\x5a\xf2\x27\x8d\xf5\xaa\x65\x3f\x4b\x65\xf2\x7b\x6a\x8e\xd4\xc5\x09\x01\x35" +
|
||||
"\x4c\xae\x79\x63\x33\x68\xa4\xaf\x8e\xa6\x34\x97\x90\xa0\xfe\xb2\x20\x59\xf2\x25\x59\x1a\x6b\x61\x2b\x1c\x14\xe8" +
|
||||
"\x31\xe7\xf8\x77\x38\x16\x65\x57\x46\xac\x2c\x03\x01\xd9\xe5\xcd\xdd\x74\x7e\x72\x9a\xb5\xa5\xc7\x85\x75\xc0\xff" +
|
||||
"\x22\x54\xa7\x62\x15\xed\x4d\xe6\x81\x16\x10\xed\x37\xb6\x7d\x30\xb9\x26\xb5\x5d\x8b\xb1\x42\x9b\x4a\xa8\x5d\x17" +
|
||||
"\x65\x1f\x19\xc1\x34\x98\x5a\x7c\x0c\x09\x12\x9c\xb7\x21\xa7\x3c\x19\xa4\xeb\xda\x2d\x31\x2a\x6a\x45\xdd\xfb\x5c" +
|
||||
"\x66\xd3\xf7\xb8\x6b\xa9\xea\x36\xdd\xeb\xa6\xeb\xf5\x3e\xc3\x40\x2f\xa4\x72\xe9\x12\x98\xc0\x8a\x45\x75\xda\x92" +
|
||||
"\x83\x13\xfc\x34\xea\xf6\xac\x58\xd0\x67\x34\x7f\xd1\x07\x70\x35\x49\x37\x25\x4c\xaf\xe6\x83\xe4\x2b\x26\x51\x65" +
|
||||
"\x63\x3f\x95\x03\x67\x06\xb9\xa5\xa5\x5b\xe8\xf3\xd1\x69\x67\x02\x20\x9d\x33\xb6\xb4\xeb\x09\x84\xdc\x1a\xd7\x5c" +
|
||||
"\xae\xf6\xfa\x18\xf3\x69\x9f\xae\x57\xe2\x8d\x1b\x78\xb3\x42\xea\xb8\x2d\xc0\x90\x21\x9f\xab\xf4\x87\x23\xef\x46" +
|
||||
"\x58\xc9\x07\x31\x67\x90\xda\xa3\xd5\x42\x29\xee\xb9\x04\xfc\x91\xe1\xd3\xd0\xd7\x34\x52\xa3\x87\x85\x74\xf7\x8f" +
|
||||
"\x20\xaa\x1b\xfd\xe5\x8c\x1e\xc1\xc4\x33\xdd\xab\x88\x23\x38\xd4\x8e\x75\xdf\x5a\x2a\x07\x62\xb2\x71\x8c\x44\x0b" +
|
||||
"\xc8\xf7\x42\xfb\xc1\x60\x6d\x0c\x7b\xee\xfa\x0f\x0e\x4c\x6d\x71\x93\x2e\x4e\x1b\x22\x41\x42\x1a\xa8\x89\x72\x8c" +
|
||||
"\x26\xc6\x70\x9f\x2e\xb2\x2a\xb1\x17\x46\x3c\xa0\x12\x7a\xd7\xd3\x90\xcf\x2d\xf9\x2e\xb8\x8b\xc7\xf4\x64\x41\x46" +
|
||||
"\x7e\x66\x6e\x4d\xf1\x79\x7d\x33\x1b\x4f\xde\x4c\x79\x14\x3d\xe9\xb8\xfa\x14\x66\xe3\xd7\xe3\xd9\x78\x7a\x39\xbe" +
|
||||
"\xdd\xdf\x68\x9d\xd0\x18\x7b\x9a\x80\xfa\x66\x0a\x57\xe3\xb7\xe3\xf9\x18\x2e\x2f\x6e\x2f\x2f\xae\xc6\xf4\xe4\xee" +
|
||||
"\x1d\xcd\x75\xcd\x13\x6e\x02\x93\x92\xd2\xb7\x40\x85\x3e\xd2\x18\xce\xcb\x2e\xc9\x79\xea\x8f\x3b\xc9\x0f\x42\xa9" +
|
||||
"\xc3\x22\x70\xe9\x37\x81\x78\x4a\x41\xf3\xff\x16\x95\x1a\x3d\x62\x63\xea\x1a\x7d\x03\xf9\xa7\xb6\x68\xdd\xe0\x70" +
|
||||
"\xcf\x49\x77\x72\xea\x6f\xeb\x5c\xb7\x47\xcf\x9c\xfe\xf4\xf9\x1f\x02\xff\x1b\x00\x00\xff\xff\x66\x75\x1e\xc1\xab" +
|
||||
"\x1c\x00\x00")
|
||||
"\x1f\x8b\x08\x00\x00\x00\x00\x00\x00\xff\xac\x59\xff\x6f\xdb\x38\xb2\xff\x3d\x7f\xc5\x20\x58\xec\x4b\xf0\x6c\x27" +
|
||||
"\xed\xeb\x16\xef\x72\xbb\x58\x64\x13\xb5\xe7\xdd\xc6\x29\x1c\xe7\xb6\xc5\xe1\x60\xd1\xd2\xc8\xe6\x86\x22\x55\x92" +
|
||||
"\xb2\xea\xfb\xeb\x0f\x33\xa4\x64\xc9\x4d\xb3\x29\xb0\xfd\x21\xb5\x25\x72\x38\x5f\x3f\xf3\x19\x7a\x3c\x86\xff\x2d" +
|
||||
"\xe5\xda\x0a\x8f\x70\x6d\x1a\x7d\xd4\x7f\x70\xe7\x85\xc7\x12\xb5\xff\x05\xd7\x52\x1f\x1d\x5d\xcf\x6f\xdf\xc3\xe2" +
|
||||
"\xf2\x97\x77\x09\xa4\x16\x5d\xad\xbc\x4b\xff\x3e\x78\x5a\xa2\x70\xb5\xe5\x3d\x87\xaf\x6a\xab\x0e\x1f\x69\xf4\x8d" +
|
||||
"\xb1\x0f\xf4\xf8\xf1\x73\x13\x9d\x0f\xdf\xdc\x57\x4f\x2a\x78\x35\x4f\x2e\x17\xc9\xe0\x44\x38\x39\x02\x48\x65\x9e" +
|
||||
"\xc2\x74\xb6\x48\xde\x26\x73\x78\x3f\x9f\xde\x5c\xce\x3f\xc2\x6f\xc9\x47\xb8\xbc\x5f\xdc\x4e\x67\x57\xf3\xe4\x26" +
|
||||
"\x99\x2d\x46\xb4\xb2\xb6\x2a\x85\x7f\x5e\xce\xaf\xfe\x71\x39\x3f\x79\xf9\xc3\x0f\xa7\x30\xbb\x5d\xc0\xec\xfe\xdd" +
|
||||
"\xbb\x11\x8c\xc7\xf0\xe1\xc3\x07\x90\x0e\xfc\x46\x3a\x50\x46\xaf\x01\xb5\xa9\xd7\x9b\x9f\x69\x6b\x26\x3c\xae\x8d" +
|
||||
"\xdd\x2d\x33\x93\xe3\x5e\xc8\xa1\x88\xc5\x06\x21\x93\x5e\xfe\x07\xb5\x12\x2b\x68\x77\x01\xed\x82\xc2\x58\xf0\x1b" +
|
||||
"\x3c\x82\xe7\xfd\x1b\x8f\xc1\x49\x8f\x13\xf8\x1d\xa1\x76\x48\x5b\xc1\x79\x2b\xf5\x1a\x66\xb7\xb3\x04\xbc\x81\x1c" +
|
||||
"\xb5\xf1\xdf\x22\x50\x1b\x78\xd0\xa6\xd1\x43\xcd\x26\x47\x6c\xa2\xa9\xb5\xff\xc2\xc2\x97\x7b\x0b\x5b\x03\x7d\x63" +
|
||||
"\x40\xa1\xf7\x68\x21\xee\x09\xf6\x35\x1b\x99\x6d\xd8\x7d\xcf\xd3\x68\x3c\x86\xfb\xf9\x3b\x58\x21\x39\xdb\x81\x37" +
|
||||
"\x47\xa7\x21\x59\x7e\x47\xc8\x2c\x52\x12\x08\x70\x58\x09\xce\x07\x2f\x56\x2a\xf8\xb0\x4d\x2d\xfe\xf2\x12\x2c\x0a" +
|
||||
"\x67\xb4\xbb\xa0\x9d\x2f\x26\xf0\xc6\x58\x70\xa6\x44\x30\x05\xbb\x6c\x2b\xb1\x71\xd0\x6c\xd0\x22\x68\xc4\x9c\x1f" +
|
||||
"\x7a\xe3\x85\x02\x5d\x97\x2b\xb4\xb4\x30\xe6\x76\xde\xc9\x1e\x91\x34\xe9\xff\xc7\xc1\xda\x90\xc7\xbd\x81\x15\x42" +
|
||||
"\x59\x67\x1b\x28\x8d\x45\xc0\xa2\x90\x99\x44\xed\xe9\xcd\x1f\xb5\xf3\xa0\x8c\x79\xa8\x2b\x96\xce\x5e\x21\xb1\xd6" +
|
||||
"\x34\x0e\xa4\x0e\x3e\x19\x8f\x83\x0d\x13\xfa\xf4\x72\x02\x27\xa5\x71\x1e\x64\x59\x19\xeb\x85\xf6\xa7\x64\x76\x23" +
|
||||
"\x82\x44\xb1\x35\x32\x87\xbc\xae\x94\xcc\x84\x27\x05\x04\xac\x6a\x9d\x6d\x48\xaa\xd4\x85\xb1\xa5\xf0\xd2\x90\x64" +
|
||||
"\xe1\x59\xd5\xa1\xa2\x99\x29\x4b\x7a\x6b\xc0\xe1\x16\x2d\xd9\xda\x3a\x8d\x14\xac\x1d\x5a\xda\x62\x34\x2b\x93\x7c" +
|
||||
"\x16\x65\xa5\xf0\x22\xfa\xbe\x14\x3b\x68\xa4\xdb\xb0\x22\x79\x4e\xff\x71\x4d\x84\x08\xd0\x7e\x65\xb2\x70\x7c\x61" +
|
||||
"\x4d\xd9\x3a\xba\xb2\x66\x85\xe1\x09\x7d\x7d\xfb\xfe\x8e\xe4\x19\xcb\x32\x5c\x5d\x91\x9d\x1c\x32\xa1\x94\x69\x58" +
|
||||
"\xd7\x56\x15\x6f\xe0\x38\x33\xd6\x62\xe6\x8f\x41\x40\x29\x5d\xa6\x84\x73\xb2\x90\x98\x43\x0f\x77\xa2\xc0\x5c\x3a" +
|
||||
"\xf2\x49\x2d\xdd\x86\xc4\xac\xd0\x37\x88\x1a\x1a\x59\x48\x10\x3a\x87\xd2\xac\x24\xf9\x79\x08\x19\x1d\x22\x7d\x2b" +
|
||||
"\x6c\xc4\x8d\x4b\x2d\x4a\x7c\x0a\x3f\xee\x42\x71\xd2\x32\xb0\x58\x59\x74\xa8\x7d\x6b\x67\x5f\x48\xac\x94\xd5\x0e" +
|
||||
"\x72\x2c\x44\xad\x3c\xc5\xa2\x32\x55\xad\x84\xc7\x1c\x56\xc2\x61\xfe\x67\x25\x44\x9e\xd0\x2c\xf9\xf2\x6e\x36\x79" +
|
||||
"\xc6\xea\x88\x22\xbd\x8a\x7a\xc0\x1d\x79\xde\x62\x81\x16\x75\x16\x42\x1b\x53\xf6\x19\x02\xf7\x39\xe1\x46\xb0\xc2" +
|
||||
"\x4c\x90\xf8\x66\x98\x3e\xc7\xa8\xad\xcc\x36\xc7\xcf\x15\xd7\x48\x1f\x0b\x2c\x17\x5e\x84\xd2\x41\x28\x6a\x5f\x5b" +
|
||||
"\x9c\xf4\x63\xe1\x77\x55\x2f\x16\x2f\x5e\x1f\x84\xe2\x56\x73\xfd\x53\x46\x8c\x62\x3a\x10\xc6\x41\x2a\xab\xfd\xae" +
|
||||
"\x57\xe7\xfd\x5d\x21\x82\xc6\xa2\x23\x1f\x85\x50\x76\x51\x0c\xd9\x6e\x0a\x10\x1a\x64\xb5\x7d\x45\x59\x28\xab\xed" +
|
||||
"\x6b\xca\x6d\x8b\xce\x3d\x27\x00\x0b\x2e\x1c\xbd\x46\xaa\xfa\x8a\x42\x1e\x84\x75\x42\x40\xc9\x07\xbc\x78\x86\xa4" +
|
||||
"\xf3\xf3\xf3\xf3\x8b\x3f\xff\x33\x7a\x86\xa8\x90\x89\xd2\xc1\xff\xfd\x0d\xb2\x8d\xb0\x6c\x49\x2a\x9c\xe6\xe2\x38" +
|
||||
"\x79\xd5\xf3\xd0\x5f\xd1\x23\x18\xe1\x87\x65\xd9\x92\x0d\xae\xca\x6f\xa9\xcb\xe8\x54\xe9\x20\x13\x9a\x40\xcf\x84" +
|
||||
"\xa0\x1f\x37\xb8\xa2\xc6\xe9\x8e\x47\x70\x2c\x4b\xfa\x5b\xa1\x65\xc8\xd4\x19\xd2\xd7\x52\xe6\xb9\xc2\x95\xf9\x7c" +
|
||||
"\x1c\xe2\x96\x7a\x74\x7e\xb9\xb6\xa6\xae\x0e\x8a\x7c\x90\x58\xed\x99\x5d\x25\xe5\xb2\xe0\xd2\xf1\xe0\xbc\xb0\x7e" +
|
||||
"\xe9\x65\x89\x0c\x40\xb6\xd6\xf4\x79\x50\x16\x1d\xb4\x2b\x67\x60\x23\xb6\xd8\x8a\xe3\x4c\xf7\xa6\xc5\x39\xce\x78" +
|
||||
"\xb3\x45\xbb\x41\x91\x93\x3d\xdc\x0a\x43\x0b\xb0\xc8\x20\x4a\x47\x18\xbf\x41\x0b\x85\xc8\xbc\xb1\x2e\xb4\x81\x28" +
|
||||
"\x6f\x6d\x40\x6a\xc6\x6c\x04\x32\x6c\xb2\xf7\x95\x60\xa4\xa1\xae\x20\x76\x17\x90\xde\xdd\xdf\x9c\x44\x55\x4f\xe1" +
|
||||
"\xcd\xfc\xf6\x06\x06\x1c\x0f\x1a\xa9\x14\x08\xd5\x88\x9d\x23\xff\xfe\xf8\x53\x2b\x29\x8d\xbb\xc2\xa6\x7d\x04\xb9" +
|
||||
"\xa3\xd1\x0b\x07\x3f\x9e\x06\xd7\xee\x3d\x93\xc2\xf5\xe5\x22\x59\x4c\x6f\x92\x03\x97\xb6\xd2\x52\x98\x27\x97\xef" +
|
||||
"\x7a\x2f\xdb\xe3\xee\x1d\x72\x17\x92\x3a\xa7\x76\x88\x20\x8b\x7d\xef\xd8\x08\x07\x8e\xe0\x9f\x01\x24\xe8\x12\x33" +
|
||||
"\xc9\x2d\xa9\xf9\x63\x9e\xc2\x62\x3a\xfb\x48\xf9\xfc\xe2\xf4\x11\xf1\x9c\x43\x54\x8e\x50\x28\xb1\x26\xa9\x8f\x9e" +
|
||||
"\x16\x44\xd3\xc2\x9c\x33\x8d\x3b\x68\x56\x5b\x4a\x00\xb5\xa3\x98\x6b\xa9\xd7\x93\xee\x6c\x5a\xf5\x95\x93\x79\x09" +
|
||||
"\xc5\x7d\x59\x3b\xb1\xc6\x65\x5d\xed\x73\xfe\xeb\xab\x72\xd3\xe8\xaf\xad\x1b\x8f\x61\x4a\x6c\x85\x9a\xb0\x58\x91" +
|
||||
"\x3a\xcc\x8a\x42\xc7\x26\x16\xe0\xd9\x86\x52\x7c\x96\x65\x5d\x82\x42\xbd\xf6\x8c\xd0\x2f\x5f\x9f\x83\x88\xa4\x97" +
|
||||
"\xc9\x6f\x97\x97\x07\x6b\x4d\x01\x85\x54\x08\x95\xf0\x1b\x62\x0e\xd0\x48\x9d\x9b\x26\x42\x5f\x7f\x3a\x58\xe6\xd2" +
|
||||
"\xf6\xc0\xe1\xf5\xf9\x17\x4e\xef\x60\xbc\x5f\xec\x43\x83\xde\xdc\xce\x93\xe9\xdb\x19\x95\xfe\x49\x7f\xf9\x29\xcc" +
|
||||
"\x93\x37\xc9\x3c\x99\x5d\x25\x77\x83\x9e\x4e\xc0\x71\xfa\x08\xbe\x0c\x53\xfa\x2f\x02\x99\x8b\xf6\x55\x21\x32\x5c" +
|
||||
"\x19\xf3\xb0\x2c\xd1\x39\xd4\x6b\xb4\xed\x1b\x8f\x0a\xd7\x56\x94\x47\x1d\xd2\x0a\xef\x44\x55\xb5\xdf\x37\xde\x57" +
|
||||
"\x4b\xaa\x71\xb4\xcb\x42\xa2\xca\x97\xa5\xd0\x92\x39\x80\x34\x7a\xb0\x4a\xea\xad\x50\x32\x5f\x5a\xfc\x54\x13\x52" +
|
||||
"\x29\xa9\x7b\xe8\xe1\x36\xed\x67\x9d\xfb\x1e\x9e\x0d\x91\xec\xf5\xab\x2f\x12\xf0\xaf\x28\xcd\x99\xf1\x81\x94\xaf" +
|
||||
"\x8d\x12\x7a\x7d\x41\x48\xd7\x16\x10\x81\x1c\x21\xa3\xc7\x1e\x3a\xa7\xa1\x2c\x08\xc2\x52\x91\x79\xb9\xc5\x74\x04" +
|
||||
"\xce\x1c\xf5\x59\x80\x74\x80\x9f\x6a\xb9\x15\x2a\x12\x6c\x2e\xb8\x15\x32\x97\xb2\x35\xd7\x5e\x21\x94\xc3\x0e\xda" +
|
||||
"\x52\x3e\x26\x85\x45\xf2\x21\x86\xed\x19\x15\x18\x5b\x55\xa8\x94\x4e\x61\x01\x39\x86\xc2\xcf\x41\xba\x65\x5d\x29" +
|
||||
"\x23\x72\xcc\x19\x1b\x46\x20\xb5\xf3\x11\x97\x99\xf5\xd7\x4e\xea\x75\x2b\xad\x5b\xbe\x2c\x84\x54\x98\x8f\x42\x45" +
|
||||
"\x09\xdf\xd2\x22\x6d\x7c\x38\xa4\x93\xca\x45\xb9\xcf\x50\xc8\xeb\x2e\xb2\xd4\x2b\xa8\x70\xfd\x00\x55\xda\x9d\xcf" +
|
||||
"\xc4\xb4\x43\xf9\x41\x31\xa6\x7d\xb5\xe6\x28\x74\x40\xea\x36\xa6\x56\x39\x87\x8a\xda\x9a\xe5\x65\xad\x3c\x8b\x63" +
|
||||
"\xda\x20\xfd\x5e\x93\x20\xea\x29\x84\xa3\x15\xb5\xc5\x65\xe9\xd6\x43\xde\xdc\xc2\xc0\xa1\xc3\x9e\x12\xd6\x5b\xf8" +
|
||||
"\x94\x4c\x02\x42\xf7\x25\x86\x73\x14\x38\xb9\x2a\x61\xbd\xcc\x6a\x25\xec\xc0\x31\xd4\x46\x56\xd4\x46\xa2\xa5\x42" +
|
||||
"\xe7\xfb\x9c\x44\x8b\x85\x89\xad\xf9\x7e\xca\x50\xe0\xc5\x03\xc6\x6c\xa5\x66\x2b\xb2\x30\xf4\x79\x03\x28\xb9\x35" +
|
||||
"\x6f\x64\x8e\x20\x7d\x37\x10\xed\x3d\xc9\x6d\x84\x3a\x13\x0f\x47\x01\x98\xb7\x68\x77\xa0\x50\x38\x4f\xd3\x4d\x37" +
|
||||
"\x68\x89\x95\x54\xd2\x47\x9a\x3e\x88\x40\xbc\xaf\xc8\x0d\xe5\x16\x73\x8a\x96\x60\xc4\x2c\xee\xd1\x7a\x13\xfb\x17" +
|
||||
"\x0b\xe8\x19\xfd\x73\x17\x05\x8b\xb6\xd6\xdf\x90\x52\x0e\xed\x16\xed\xd8\x91\x8d\x81\x94\x2c\x65\x0e\x16\x7d\x6d" +
|
||||
"\x35\x4d\x30\xbb\x38\x07\x2b\x85\x44\x50\x26\xf0\xcb\x6e\x58\x2a\xfb\x4d\xdf\x83\xd4\x55\xed\x47\xb0\x33\x35\x7b" +
|
||||
"\xf6\x53\x4d\xbe\x60\xeb\x2b\x49\xca\x17\xe8\xe3\xbd\x42\x5f\xf9\xce\x0d\xc9\xe7\xee\xe3\xdb\x64\xc1\x88\xe9\x2e" +
|
||||
"\xce\xce\x44\x25\x27\xc6\x68\x39\x91\x86\x3e\x9f\x6d\x5f\x9c\xf5\x5b\xc1\xcf\x7c\xea\x4f\xdf\x4d\x67\xef\xef\x17" +
|
||||
"\xdf\x77\xea\xfc\xf4\xdd\x3c\x79\x7f\x3b\x5f\x2c\xa7\xd7\x7b\xf9\xde\x8a\x2c\x84\xa9\x90\x96\xd8\xbb\xc7\x72\x3f" +
|
||||
"\xe8\x46\x06\xfb\xaf\x7f\xa7\xa0\xa4\xf3\x6d\x51\xe9\xa0\x77\xd7\x29\x06\x1d\x92\x6f\xa2\xbc\x81\x75\xec\xcb\xbf" +
|
||||
"\xde\xdd\xce\xc2\x1c\x3d\x34\x92\xc6\xb1\x1e\x7f\x43\x17\x98\xf5\x56\xa8\x1a\x1d\x9c\xa4\x9d\xde\xe9\x08\x52\xb6" +
|
||||
"\x28\x3d\x05\x61\xb9\xa2\x8b\x5a\xed\xbd\x27\xba\xae\xde\x13\xce\x45\x41\x89\x2f\x94\x45\x91\xef\x42\x01\x54\xd6" +
|
||||
"\x64\xd4\xcc\xba\x30\x56\xb2\x42\x6a\x39\xa3\x1e\x1e\xc8\xb2\x52\x41\x48\xa6\x50\xe8\xba\xe2\xe1\x28\x8a\xe9\xd0" +
|
||||
"\xad\xef\xf0\x08\x1c\x7b\x8d\x87\xd5\x7b\xd8\x67\x79\x98\x68\xc8\x8d\xda\xb4\xbc\x97\xf9\x47\x5b\xa8\x7f\x32\xdc" +
|
||||
"\x8c\xc7\xf1\x0e\x29\x9f\x44\xb0\xa9\xad\xfa\x0a\xdf\x38\xcc\x70\x82\xe9\x1d\x7a\x22\x84\x28\x68\xf4\x6c\xaf\x38" +
|
||||
"\xba\x84\x1e\xc1\xaa\x66\x54\x27\x5f\x57\x4a\x30\xf5\x8b\xf7\x25\x83\x56\x26\x7c\xb8\x8c\xaa\x8c\xd4\xbe\x9d\x67" +
|
||||
"\x35\x0a\xdb\x1b\x6a\xc3\xe8\x89\x78\xd1\xe5\xee\x5a\xfa\x4d\xbd\x9a\x64\xa6\x3c\xa3\x14\x3e\x6b\x23\x70\xb6\x52" +
|
||||
"\x66\x75\x56\x0a\xe7\xd1\x9e\xe5\x26\x73\xfc\x7a\x5c\xd7\x32\x9f\x94\x39\x7c\xdf\x67\x0d\x4f\xca\x91\xce\xd5\xe8" +
|
||||
"\xce\x5e\xfd\xff\x97\xe4\x2d\xba\x88\x08\xc3\xa1\x67\x22\x98\xba\xd6\x8e\x4c\x38\x76\x8d\x80\x76\xe4\xe2\x81\x63" +
|
||||
"\x14\x12\x4b\xf0\xf5\x25\xf9\x93\xe6\x5a\xb5\x6b\x65\xad\x94\xc9\x1e\xa8\x39\x52\x17\x27\x04\xd4\x30\xbd\xe1\x8d" +
|
||||
"\x2d\xd3\x8e\x5f\x1d\x8d\x29\x2e\x22\x41\xf5\xb4\x20\x59\xf0\xbd\x51\x9c\xeb\xa0\x11\x0e\x72\xf4\x98\x71\xfc\xe3" +
|
||||
"\xfa\x8f\x11\x60\xd2\x5f\x6f\xa7\xb3\x14\x04\xa4\x57\xb7\xf7\xb3\xc5\xc9\x69\xda\x95\x1e\x17\x56\x6b\x5e\x9c\x6b" +
|
||||
"\x02\x54\xc7\x62\x15\xdd\xe5\xde\x81\x16\x10\xec\x37\xb6\x7b\x30\xbd\x21\xb5\x5d\x87\xb1\x42\x9b\x52\xa8\x5d\x1f" +
|
||||
"\x65\x1f\x99\x41\x34\x98\x4a\x7c\xaa\x23\x24\x38\x6f\xeb\x8c\xf2\x64\x14\x6f\x30\x1b\x62\x54\xd4\x8a\xfa\x57\x9c" +
|
||||
"\x4c\xf7\x1e\x70\xe7\x3a\xae\x19\xaf\x3a\xe3\x8d\xf3\x90\x61\xa0\x17\x52\xb9\x78\x2f\x4a\x60\xc5\xa2\x7a\x6d\xc9" +
|
||||
"\xc1\x09\x7e\x9e\xf4\x7b\x56\x28\xe8\x33\x1a\x40\xe8\x03\xb8\x8a\xa4\x9b\x02\x66\xd7\x8b\x51\xf4\x15\x93\xa8\xa2" +
|
||||
"\xb5\x9f\xca\x81\x33\x83\xdc\xd2\xd1\x2d\xf4\xd9\xe4\xb4\x47\x51\x49\xe7\x34\x58\xfa\x58\x35\x22\x64\xd6\xb8\xf6" +
|
||||
"\xe2\x71\xd0\xd0\x28\x84\xc1\xf6\xc6\xc4\x4b\x28\xf0\x66\x8d\xd4\x7a\x3b\xa4\x21\x8b\xbe\x56\xf2\x5f\x0e\x7f\x5b" +
|
||||
"\x61\x25\x1f\xc4\xe4\x41\x6a\x8f\x56\x0b\xa5\xb8\xf9\x52\x07\x78\x08\x60\x28\xc2\xdc\xc4\x53\xba\x1e\xe7\xd2\x3d" +
|
||||
"\x3c\x02\xad\x6e\xf2\x87\x33\x7a\x02\x53\xcf\xbc\xaf\x24\xb2\xe0\x50\x3b\xd6\xbd\xb1\x54\x17\x44\x69\xc3\x40\x85" +
|
||||
"\x16\x90\x6f\x48\x56\x5d\x6a\x6f\x8c\x61\x17\xde\xfc\xc6\x11\xaa\x2c\x6e\xe3\x5d\x62\xcb\x28\x48\x48\x8b\x39\x41" +
|
||||
"\x8e\xd1\x44\x1d\x1e\xe2\x95\x4e\x29\xf6\xc2\x88\x10\x94\x42\xef\x06\x1a\xf2\xb9\x05\xdf\x93\xf6\x81\x99\x9e\x2c" +
|
||||
"\xc9\xc8\xa7\x27\xb8\xde\x78\xc6\x6d\xa8\x75\xf5\x70\x3c\x6b\x6f\x06\xe2\x70\x16\x90\xf9\x76\x06\xd7\xc9\xbb\x64" +
|
||||
"\x91\xc0\xd5\xe5\xdd\xd5\xe5\x75\x42\x4f\xee\xdf\xd3\x04\xd2\x3e\xe1\x6e\x30\x2d\x28\x8f\x73\x54\xe8\x03\x9f\xe1" +
|
||||
"\x04\xed\xb3\x9d\xe7\xfe\xf0\x11\xfd\x20\x94\x3a\xac\x06\x17\xef\xcb\xc3\x29\x39\x4d\xc2\x0d\x2a\x35\x79\xc4\xc6" +
|
||||
"\xd8\x3e\x86\x06\xf2\xcf\x50\xfb\xd1\xf3\xab\x3f\x74\xfd\x37\x00\x00\xff\xff\x11\xda\x64\x3c\x8b\x1b\x00\x00")
|
||||
|
||||
func bindataDataMigrations1createmsmtresultssqlBytes() ([]byte, error) {
|
||||
return bindataRead(
|
||||
|
|
|
@ -55,12 +55,23 @@ func init() {
|
|||
return err
|
||||
}
|
||||
|
||||
result, err := database.CreateResult(ctx.DB, ctx.Home, database.Result{
|
||||
Name: *nettestGroup,
|
||||
StartTime: time.Now().UTC(),
|
||||
Country: ctx.Location.CountryCode,
|
||||
network := database.Network{
|
||||
ASN: ctx.Location.ASN,
|
||||
CountryCode: ctx.Location.CountryCode,
|
||||
NetworkName: ctx.Location.NetworkName,
|
||||
ASN: fmt.Sprintf("%d", ctx.Location.ASN),
|
||||
IP: ctx.Location.IP,
|
||||
}
|
||||
newID, err := ctx.DB.Collection("networks").Insert(network)
|
||||
if err != nil {
|
||||
log.WithError(err).Error("Failed to create the network row")
|
||||
return nil
|
||||
}
|
||||
network.ID = newID.(int64)
|
||||
|
||||
result, err := database.CreateResult(ctx.DB, ctx.Home, database.Result{
|
||||
TestGroupName: *nettestGroup,
|
||||
StartTime: time.Now().UTC(),
|
||||
NetworkID: network.ID,
|
||||
})
|
||||
if err != nil {
|
||||
log.Errorf("DB result error: %s", err)
|
||||
|
|
|
@ -16,10 +16,11 @@ type Network struct {
|
|||
ID int64 `db:"id"`
|
||||
NetworkName string `db:"network_name"`
|
||||
IP string `db:"ip"`
|
||||
ASN int `db:"asn"`
|
||||
ASN uint `db:"asn"`
|
||||
CountryCode string `db:"country_code"`
|
||||
}
|
||||
|
||||
// URL represents URLs from the testing lists
|
||||
type URL struct {
|
||||
ID int64 `db:"id"`
|
||||
URL int64 `db:"url"`
|
||||
|
@ -32,8 +33,7 @@ type Measurement struct {
|
|||
ID int64 `db:"id"`
|
||||
TestName string `db:"test_name"`
|
||||
StartTime time.Time `db:"start_time"`
|
||||
Runtime float64 `db:"runtime"` // Fractional number of seconds
|
||||
NetworkID int64 `db:"network_id"` // Used to include a Network
|
||||
Runtime float64 `db:"runtime"` // Fractional number of seconds
|
||||
IsDone bool `db:"is_done"`
|
||||
IsUploaded bool `db:"is_uploaded"`
|
||||
IsFailed string `db:"is_failed"`
|
||||
|
@ -56,7 +56,8 @@ type Result struct {
|
|||
ID int64 `db:"id"`
|
||||
TestGroupName string `db:"test_group_name"`
|
||||
StartTime time.Time `db:"start_time"`
|
||||
Runtime float64 `db:"runtime"` // Runtime is expressed in fractional seconds
|
||||
NetworkID int64 `db:"network_id"` // Used to include a Network
|
||||
Runtime float64 `db:"runtime"` // Runtime is expressed in fractional seconds
|
||||
IsViewed bool `db:"is_viewed"`
|
||||
IsDone bool `db:"is_done"`
|
||||
DataUsageUp int64 `db:"data_usage_up"`
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package nettests
|
||||
|
||||
import (
|
||||
"database/sql"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os"
|
||||
|
@ -58,7 +59,7 @@ func (c *Controller) Init(nt *mk.Nettest) error {
|
|||
c.msmts = make(map[int64]*database.Measurement)
|
||||
|
||||
msmtTemplate := database.Measurement{
|
||||
ReportID: "",
|
||||
ReportID: sql.NullString{String: "", Valid: false},
|
||||
TestName: nt.Name,
|
||||
ResultID: c.res.ID,
|
||||
ReportFilePath: c.msmtPath,
|
||||
|
@ -156,7 +157,7 @@ func (c *Controller) Init(nt *mk.Nettest) error {
|
|||
nt.On("status.report_created", func(e mk.Event) {
|
||||
log.Debugf("%s", e.Key)
|
||||
|
||||
msmtTemplate.ReportID = e.Value.ReportID
|
||||
msmtTemplate.ReportID = sql.NullString{String: e.Value.ReportID, Valid: true}
|
||||
})
|
||||
|
||||
nt.On("status.geoip_lookup", func(e mk.Event) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user