diff -Nru ubuntu-report-1.5.1/debian/changelog ubuntu-report-1.6.0/debian/changelog --- ubuntu-report-1.5.1/debian/changelog 2019-05-02 08:14:56.000000000 +0000 +++ ubuntu-report-1.6.0/debian/changelog 2019-06-24 09:10:02.000000000 +0000 @@ -1,3 +1,10 @@ +ubuntu-report (1.6.0) eoan; urgency=medium + + * Add product_family to OEM information (LP: #1833555) + * Various test fixes + + -- Jean-Baptiste Lallement Mon, 24 Jun 2019 11:10:02 +0200 + ubuntu-report (1.5.1) eoan; urgency=medium * Unbreak autopkgtests with golang-go 1.11 by default. diff -Nru ubuntu-report-1.5.1/internal/metrics/files.go ubuntu-report-1.6.0/internal/metrics/files.go --- ubuntu-report-1.5.1/internal/metrics/files.go 2019-05-02 08:14:56.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/files.go 2019-06-24 09:10:02.000000000 +0000 @@ -62,7 +62,7 @@ return true } -func (m Metrics) getOEM() (string, string, string) { +func (m Metrics) getOEM() (string, string, string, string) { v, err := getFromFileTrimmed(filepath.Join(m.root, "sys/class/dmi/id/sys_vendor")) if err != nil { log.Infof("couldn't get sys vendor information: "+utils.ErrFormat, err) @@ -79,11 +79,19 @@ log.Infof(utils.ErrFormat, errors.Errorf("malformed sys product name information, file contains: %s", p)) p = "" } + f, err := getFromFileTrimmed(filepath.Join(m.root, "sys/class/dmi/id/product_family")) + if err != nil { + log.Infof("couldn't get sys product family information: "+utils.ErrFormat, err) + } + if strings.Contains(f, "\n") { + log.Infof(utils.ErrFormat, errors.Errorf("malformed sys product family information, file contains: %s", f)) + f = "" + } dcd, err := matchFromFile(filepath.Join(m.root, "var/lib/ubuntu_dist_channel"), `^([^\s#]+)$`, true) if err != nil { log.Infof("no DCD information: "+utils.ErrFormat, err) } - return v, p, dcd + return v, p, f, dcd } func (m Metrics) getBIOS() (string, string) { diff -Nru ubuntu-report-1.5.1/internal/metrics/internals_test.go ubuntu-report-1.6.0/internal/metrics/internals_test.go --- ubuntu-report-1.5.1/internal/metrics/internals_test.go 2019-05-02 08:14:56.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/internals_test.go 2019-06-24 09:10:02.000000000 +0000 @@ -207,16 +207,18 @@ wantVendor string wantProduct string + wantFamily string wantDCD string }{ - {"regular", "testdata/good", "DID", "4287CTO", ""}, - {"with dcd", "testdata/specials/oem/with-dcd", "", "", "canonical-oem-somerville-xenial-amd64-20160624-2"}, - {"empty vendor", "testdata/empty-fields/oem/vendor", "", "4287CTO", ""}, - {"empty product", "testdata/empty-fields/oem/product", "DID", "", ""}, - {"empty dcd", "testdata/empty-fields/oem/dcd", "", "", ""}, - {"empty both", "testdata/empty", "", "", ""}, - {"doesn't exist", "testdata/none", "", "", ""}, - {"garbage content", "testdata/garbage", "", "", ""}, + {"regular", "testdata/good", "DID", "4287CTO", "Thinkpad", ""}, + {"with dcd", "testdata/specials/oem/with-dcd", "", "", "", "canonical-oem-somerville-xenial-amd64-20160624-2"}, + {"empty vendor", "testdata/empty-fields/oem/vendor", "", "4287CTO", "Thinkpad", ""}, + {"empty product", "testdata/empty-fields/oem/product", "DID", "", "Thinkpad", ""}, + {"empty family", "testdata/empty-fields/oem/family", "DID", "4287CTO", "", ""}, + {"empty dcd", "testdata/empty-fields/oem/dcd", "DID", "4287CTO", "Thinkpad", ""}, + {"empty both", "testdata/empty", "", "", "", ""}, + {"doesn't exist", "testdata/none", "", "", "", ""}, + {"garbage content", "testdata/garbage", "", "", "", ""}, } for _, tc := range testCases { tc := tc // capture range variable for parallel execution @@ -225,10 +227,11 @@ a := helper.Asserter{T: t} m := newTestMetrics(t, WithRootAt(tc.root)) - vendor, product, dcd := m.getOEM() + vendor, product, family, dcd := m.getOEM() a.Equal(vendor, tc.wantVendor) a.Equal(product, tc.wantProduct) + a.Equal(family, tc.wantFamily) a.Equal(dcd, tc.wantDCD) }) } diff -Nru ubuntu-report-1.5.1/internal/metrics/metricsdata.go ubuntu-report-1.6.0/internal/metrics/metricsdata.go --- ubuntu-report-1.5.1/internal/metrics/metricsdata.go 2019-05-02 08:14:56.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/metricsdata.go 2019-06-24 09:10:02.000000000 +0000 @@ -8,6 +8,7 @@ OEM *struct { Vendor string Product string + Family string DCD string `json:",omitempty"` } `json:",omitempty"` BIOS *struct { diff -Nru ubuntu-report-1.5.1/internal/metrics/metrics.go ubuntu-report-1.6.0/internal/metrics/metrics.go --- ubuntu-report-1.5.1/internal/metrics/metrics.go 2019-05-02 08:14:56.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/metrics.go 2019-06-24 09:10:02.000000000 +0000 @@ -103,12 +103,13 @@ r.Version = m.getVersion() - if vendor, product, dcd := m.getOEM(); vendor != "" || product != "" { + if vendor, product, family, dcd := m.getOEM(); vendor != "" || product != "" { r.OEM = &struct { Vendor string Product string + Family string DCD string `json:",omitempty"` - }{vendor, product, dcd} + }{vendor, product, family, dcd} } if vendor, version := m.getBIOS(); vendor != "" || version != "" { r.BIOS = &struct { diff -Nru ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/dcd/sys/class/dmi/id/product_family ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/dcd/sys/class/dmi/id/product_family --- ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/dcd/sys/class/dmi/id/product_family 1970-01-01 00:00:00.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/dcd/sys/class/dmi/id/product_family 2019-06-24 09:10:02.000000000 +0000 @@ -0,0 +1 @@ +Thinkpad diff -Nru ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/dcd/sys/class/dmi/id/product_name ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/dcd/sys/class/dmi/id/product_name --- ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/dcd/sys/class/dmi/id/product_name 1970-01-01 00:00:00.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/dcd/sys/class/dmi/id/product_name 2019-06-24 09:10:02.000000000 +0000 @@ -0,0 +1 @@ +4287CTO diff -Nru ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/dcd/sys/class/dmi/id/sys_vendor ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/dcd/sys/class/dmi/id/sys_vendor --- ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/dcd/sys/class/dmi/id/sys_vendor 1970-01-01 00:00:00.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/dcd/sys/class/dmi/id/sys_vendor 2019-06-24 09:10:02.000000000 +0000 @@ -0,0 +1 @@ +DID diff -Nru ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/family/sys/class/dmi/id/product_family ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/family/sys/class/dmi/id/product_family --- ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/family/sys/class/dmi/id/product_family 1970-01-01 00:00:00.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/family/sys/class/dmi/id/product_family 2019-06-24 09:10:02.000000000 +0000 @@ -0,0 +1 @@ + diff -Nru ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/family/sys/class/dmi/id/product_name ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/family/sys/class/dmi/id/product_name --- ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/family/sys/class/dmi/id/product_name 1970-01-01 00:00:00.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/family/sys/class/dmi/id/product_name 2019-06-24 09:10:02.000000000 +0000 @@ -0,0 +1 @@ +4287CTO diff -Nru ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/family/sys/class/dmi/id/sys_vendor ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/family/sys/class/dmi/id/sys_vendor --- ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/family/sys/class/dmi/id/sys_vendor 1970-01-01 00:00:00.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/family/sys/class/dmi/id/sys_vendor 2019-06-24 09:10:02.000000000 +0000 @@ -0,0 +1 @@ +DID diff -Nru ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/product/sys/class/dmi/id/product_family ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/product/sys/class/dmi/id/product_family --- ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/product/sys/class/dmi/id/product_family 1970-01-01 00:00:00.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/product/sys/class/dmi/id/product_family 2019-06-24 09:10:02.000000000 +0000 @@ -0,0 +1 @@ +Thinkpad \ No newline at end of file diff -Nru ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/vendor/sys/class/dmi/id/product_family ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/vendor/sys/class/dmi/id/product_family --- ubuntu-report-1.5.1/internal/metrics/testdata/empty-fields/oem/vendor/sys/class/dmi/id/product_family 1970-01-01 00:00:00.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/testdata/empty-fields/oem/vendor/sys/class/dmi/id/product_family 2019-06-24 09:10:02.000000000 +0000 @@ -0,0 +1 @@ +Thinkpad diff -Nru ubuntu-report-1.5.1/internal/metrics/testdata/garbage/sys/class/dmi/id/product_family ubuntu-report-1.6.0/internal/metrics/testdata/garbage/sys/class/dmi/id/product_family --- ubuntu-report-1.5.1/internal/metrics/testdata/garbage/sys/class/dmi/id/product_family 1970-01-01 00:00:00.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/testdata/garbage/sys/class/dmi/id/product_family 2019-06-24 09:10:02.000000000 +0000 @@ -0,0 +1,6 @@ +This +IS +GARBAgEo + + + diff -Nru ubuntu-report-1.5.1/internal/metrics/testdata/good/gold/collect ubuntu-report-1.6.0/internal/metrics/testdata/good/gold/collect --- ubuntu-report-1.5.1/internal/metrics/testdata/good/gold/collect 2019-05-02 08:14:56.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/testdata/good/gold/collect 2019-06-24 09:10:02.000000000 +0000 @@ -1 +1 @@ -{"Version":"18.04","OEM":{"Vendor":"DID","Product":"4287CTO"},"BIOS":{"Vendor":"DID","Version":"42 (maybe 43)"},"CPU":{"OpMode":"32-bit, 64-bit","CPUs":"8","Threads":"2","Cores":"4","Sockets":"1","Vendor":"Genuine","Family":"6","Model":"158","Stepping":"10","Name":"Intuis Corus i5-8300H CPU @ 2.30GHz","Virtualization":"VT-x"},"Arch":"amd64","GPU":[{"Vendor":"8086","Model":"0126"}],"RAM":8,"Disks":[240.1],"Partitions":[159.4],"Screens":[{"Size":"277mmx156mm","Resolution":"1366x768","Frequency":"60.02"}],"Autologin":false,"LivePatch":true,"Session":{"DE":"some:thing","Name":"ubuntusession","Type":"x12"},"Language":"fr_FR","Timezone":"Europe/Paris","Install":{"Media":"Ubuntu 18.04 LTS \"Bionic Beaver\" - Alpha amd64 (20180305)","Type":"GTK","PartitionMethod":"use_device","DownloadUpdates":"false","Language":"fr","Minimal":"false","RestrictedAddons":"false","Stages":{"0":"language","3":"language","10":"console_setup","15":"prepare","25":"partman","27":"start_install","37":"timezone","49":"usersetup","829":"done"}},"Upgrade":{"From":"17.10","Stages":{"1337":"done"}}} \ No newline at end of file +{"Version":"18.04","OEM":{"Vendor":"DID","Product":"4287CTO","Family":"Thinkpad"},"BIOS":{"Vendor":"DID","Version":"42 (maybe 43)"},"CPU":{"OpMode":"32-bit, 64-bit","CPUs":"8","Threads":"2","Cores":"4","Sockets":"1","Vendor":"Genuine","Family":"6","Model":"158","Stepping":"10","Name":"Intuis Corus i5-8300H CPU @ 2.30GHz","Virtualization":"VT-x"},"Arch":"amd64","GPU":[{"Vendor":"8086","Model":"0126"}],"RAM":8,"Disks":[240.1],"Partitions":[159.4],"Screens":[{"Size":"277mmx156mm","Resolution":"1366x768","Frequency":"60.02"}],"Autologin":false,"LivePatch":true,"Session":{"DE":"some:thing","Name":"ubuntusession","Type":"x12"},"Language":"fr_FR","Timezone":"Europe/Paris","Install":{"Media":"Ubuntu 18.04 LTS \"Bionic Beaver\" - Alpha amd64 (20180305)","Type":"GTK","PartitionMethod":"use_device","DownloadUpdates":"false","Language":"fr","Minimal":"false","RestrictedAddons":"false","Stages":{"0":"language","3":"language","10":"console_setup","15":"prepare","25":"partman","27":"start_install","37":"timezone","49":"usersetup","829":"done"}},"Upgrade":{"From":"17.10","Stages":{"1337":"done"}}} \ No newline at end of file diff -Nru ubuntu-report-1.5.1/internal/metrics/testdata/good/sys/class/dmi/id/product_family ubuntu-report-1.6.0/internal/metrics/testdata/good/sys/class/dmi/id/product_family --- ubuntu-report-1.5.1/internal/metrics/testdata/good/sys/class/dmi/id/product_family 1970-01-01 00:00:00.000000000 +0000 +++ ubuntu-report-1.6.0/internal/metrics/testdata/good/sys/class/dmi/id/product_family 2019-06-24 09:10:02.000000000 +0000 @@ -0,0 +1 @@ +Thinkpad \ No newline at end of file diff -Nru ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/cachereport.ReportType1 ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/cachereport.ReportType1 --- ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/cachereport.ReportType1 2019-05-02 08:14:56.000000000 +0000 +++ ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/cachereport.ReportType1 2019-06-24 09:10:02.000000000 +0000 @@ -3,6 +3,7 @@ "OEM": { "Vendor": "DID", "Product": "4287CTO", + "Family": "Thinkpad", "DCD": "canonical-oem-somerville-xenial-amd64-20160624-2" }, "BIOS": { diff -Nru ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-y ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-y --- ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-y 2019-05-02 08:14:56.000000000 +0000 +++ ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-y 2019-06-24 09:10:02.000000000 +0000 @@ -3,6 +3,7 @@ "OEM": { "Vendor": "DID", "Product": "4287CTO", + "Family": "Thinkpad", "DCD": "canonical-oem-somerville-xenial-amd64-20160624-2" }, "BIOS": { diff -Nru ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-Y ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-Y --- ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-Y 2019-05-02 08:14:56.000000000 +0000 +++ ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-Y 2019-06-24 09:10:02.000000000 +0000 @@ -3,6 +3,7 @@ "OEM": { "Vendor": "DID", "Product": "4287CTO", + "Family": "Thinkpad", "DCD": "canonical-oem-somerville-xenial-amd64-20160624-2" }, "BIOS": { diff -Nru ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-yes ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-yes --- ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-yes 2019-05-02 08:14:56.000000000 +0000 +++ ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-yes 2019-06-24 09:10:02.000000000 +0000 @@ -3,6 +3,7 @@ "OEM": { "Vendor": "DID", "Product": "4287CTO", + "Family": "Thinkpad", "DCD": "canonical-oem-somerville-xenial-amd64-20160624-2" }, "BIOS": { diff -Nru ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-YES ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-YES --- ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-YES 2019-05-02 08:14:56.000000000 +0000 +++ ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType0-YES 2019-06-24 09:10:02.000000000 +0000 @@ -3,6 +3,7 @@ "OEM": { "Vendor": "DID", "Product": "4287CTO", + "Family": "Thinkpad", "DCD": "canonical-oem-somerville-xenial-amd64-20160624-2" }, "BIOS": { diff -Nru ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType1 ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType1 --- ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType1 2019-05-02 08:14:56.000000000 +0000 +++ ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/cachereport-twice.ReportType1 2019-06-24 09:10:02.000000000 +0000 @@ -3,6 +3,7 @@ "OEM": { "Vendor": "DID", "Product": "4287CTO", + "Family": "Thinkpad", "DCD": "canonical-oem-somerville-xenial-amd64-20160624-2" }, "BIOS": { diff -Nru ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/metricscollect ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/metricscollect --- ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/metricscollect 2019-05-02 08:14:56.000000000 +0000 +++ ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/metricscollect 2019-06-24 09:10:02.000000000 +0000 @@ -3,6 +3,7 @@ "OEM": { "Vendor": "DID", "Product": "4287CTO", + "Family": "Thinkpad", "DCD": "canonical-oem-somerville-xenial-amd64-20160624-2" }, "BIOS": { diff -Nru ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/pendingreport.ReportType1 ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/pendingreport.ReportType1 --- ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/gold/pendingreport.ReportType1 2019-05-02 08:14:56.000000000 +0000 +++ ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/gold/pendingreport.ReportType1 2019-06-24 09:10:02.000000000 +0000 @@ -3,6 +3,7 @@ "OEM": { "Vendor": "DID", "Product": "4287CTO", + "Family": "Thinkpad", "DCD": "canonical-oem-somerville-xenial-amd64-20160624-2" }, "BIOS": { diff -Nru ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/sys/class/dmi/id/product_family ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/sys/class/dmi/id/product_family --- ubuntu-report-1.5.1/pkg/sysmetrics/testdata/good/sys/class/dmi/id/product_family 1970-01-01 00:00:00.000000000 +0000 +++ ubuntu-report-1.6.0/pkg/sysmetrics/testdata/good/sys/class/dmi/id/product_family 2019-06-24 09:10:02.000000000 +0000 @@ -0,0 +1 @@ +Thinkpad \ No newline at end of file diff -Nru ubuntu-report-1.5.1/pkg/sysmetrics/testdata/missing/pendingreport/sys/class/dmi/id/product_family ubuntu-report-1.6.0/pkg/sysmetrics/testdata/missing/pendingreport/sys/class/dmi/id/product_family --- ubuntu-report-1.5.1/pkg/sysmetrics/testdata/missing/pendingreport/sys/class/dmi/id/product_family 1970-01-01 00:00:00.000000000 +0000 +++ ubuntu-report-1.6.0/pkg/sysmetrics/testdata/missing/pendingreport/sys/class/dmi/id/product_family 2019-06-24 09:10:02.000000000 +0000 @@ -0,0 +1 @@ +Thinkpad \ No newline at end of file diff -Nru ubuntu-report-1.5.1/pkg/sysmetrics/testdata/no-ids/sys/class/dmi/id/product_family ubuntu-report-1.6.0/pkg/sysmetrics/testdata/no-ids/sys/class/dmi/id/product_family --- ubuntu-report-1.5.1/pkg/sysmetrics/testdata/no-ids/sys/class/dmi/id/product_family 1970-01-01 00:00:00.000000000 +0000 +++ ubuntu-report-1.6.0/pkg/sysmetrics/testdata/no-ids/sys/class/dmi/id/product_family 2019-06-24 09:10:02.000000000 +0000 @@ -0,0 +1 @@ +Thinkpad \ No newline at end of file