{
  "format": 2,
  "firmware": {
    "stock": "V4.094",
    "medius": "3.4.6"
  },
  "rig": "A Linux PC, each box fed by a USB device emulator on its USB3, both boxes behind one USB hub and tested one at a time",
  "layers": {
    "wire": "USB packets on the PC's bus, timed by the kernel's usbmon",
    "evdev": "Input events, timed by the kernel as the HID driver handles each report",
    "hidraw": "Each report byte for byte, timed when the reading program wakes",
    "host": "The PC's clock, read by the test program when it writes a command, or when the clone connects or disconnects",
    "emulator": "When the emulator queued each native report, on its clock, mapped to the bus clock to within ±95 µs by its control link's packets (usbmon)"
  },
  "categories": [
    {
      "id": "input",
      "title": "Buttons, keys and locks",
      "sections": [
        {
          "id": "input-latency",
          "title": "Button and key latency",
          "about": "Injected left button and 'a' key, timed on the PC's USB bus from the command to the clone's report. The mouse was still, moving every millisecond, or moving while the box also injected a move every millisecond.",
          "tables": [
            {
              "kind": "measure",
              "label": "Left button latency, p50",
              "key": "Load and edge",
              "unit": "ms",
              "better": "lower",
              "stat": "p50",
              "layer": "wire",
              "n": "40 per row",
              "commands": {
                "stock": "km.left",
                "medius": "INJECT"
              },
              "rows": [
                {
                  "id": "input-lat-rest-press",
                  "label": "Mouse still, press",
                  "stock": {
                    "lo": 0.723,
                    "hi": 0.723,
                    "src": [
                      {
                        "file": "load_latency_stock.json",
                        "ptr": "/results/0/latency/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.803,
                    "hi": 0.803,
                    "src": [
                      {
                        "file": "load_latency_medius_samehub_fix4.json",
                        "ptr": "/results/0/latency/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lat-rest-release",
                  "label": "Mouse still, release",
                  "stock": {
                    "lo": 0.867,
                    "hi": 0.867,
                    "src": [
                      {
                        "file": "load_latency_stock.json",
                        "ptr": "/results/1/latency/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.725,
                    "hi": 0.725,
                    "src": [
                      {
                        "file": "load_latency_medius_samehub_fix4.json",
                        "ptr": "/results/1/latency/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lat-moving-press",
                  "label": "Mouse moving, press",
                  "stock": {
                    "lo": 8.56,
                    "hi": 8.56,
                    "src": [
                      {
                        "file": "load_latency_stock.json",
                        "ptr": "/results/4/latency/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 1.39,
                    "hi": 1.39,
                    "src": [
                      {
                        "file": "load_latency_medius_samehub_fix4.json",
                        "ptr": "/results/4/latency/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lat-moving-release",
                  "label": "Mouse moving, release",
                  "stock": {
                    "lo": 8.59,
                    "hi": 8.59,
                    "src": [
                      {
                        "file": "load_latency_stock.json",
                        "ptr": "/results/5/latency/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 1.31,
                    "hi": 1.31,
                    "src": [
                      {
                        "file": "load_latency_medius_samehub_fix4.json",
                        "ptr": "/results/5/latency/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lat-stream-press",
                  "label": "Mouse moving, box injecting, press",
                  "stock": {
                    "lo": 8.63,
                    "hi": 8.63,
                    "src": [
                      {
                        "file": "load_latency_stock.json",
                        "ptr": "/results/8/latency/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 1.02,
                    "hi": 1.02,
                    "src": [
                      {
                        "file": "load_latency_medius_samehub_fix4.json",
                        "ptr": "/results/8/latency/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lat-stream-release",
                  "label": "Mouse moving, box injecting, release",
                  "stock": {
                    "lo": 8.68,
                    "hi": 8.68,
                    "src": [
                      {
                        "file": "load_latency_stock.json",
                        "ptr": "/results/9/latency/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.867,
                    "hi": 0.867,
                    "src": [
                      {
                        "file": "load_latency_medius_samehub_fix4.json",
                        "ptr": "/results/9/latency/p50",
                        "unit": "us"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "kind": "measure",
              "label": "Key latency, p50",
              "key": "Load and edge",
              "unit": "ms",
              "better": "lower",
              "stat": "p50",
              "layer": "wire",
              "n": "40 per row",
              "commands": {
                "stock": "km.down",
                "medius": "INJECT"
              },
              "rows": [
                {
                  "id": "input-lat-rest-down",
                  "label": "Mouse still, down",
                  "stock": {
                    "lo": 1.24,
                    "hi": 1.24,
                    "src": [
                      {
                        "file": "load_latency_stock.json",
                        "ptr": "/results/2/latency/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.862,
                    "hi": 0.862,
                    "src": [
                      {
                        "file": "load_latency_medius_samehub_fix4.json",
                        "ptr": "/results/2/latency/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lat-rest-up",
                  "label": "Mouse still, up",
                  "stock": {
                    "lo": 1.23,
                    "hi": 1.23,
                    "src": [
                      {
                        "file": "load_latency_stock.json",
                        "ptr": "/results/3/latency/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.867,
                    "hi": 0.867,
                    "src": [
                      {
                        "file": "load_latency_medius_samehub_fix4.json",
                        "ptr": "/results/3/latency/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lat-moving-down",
                  "label": "Mouse moving, down",
                  "stock": {
                    "lo": 1.26,
                    "hi": 1.26,
                    "src": [
                      {
                        "file": "load_latency_stock.json",
                        "ptr": "/results/6/latency/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.974,
                    "hi": 0.974,
                    "src": [
                      {
                        "file": "load_latency_medius_samehub_fix4.json",
                        "ptr": "/results/6/latency/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lat-moving-up",
                  "label": "Mouse moving, up",
                  "stock": {
                    "lo": 1.3,
                    "hi": 1.3,
                    "src": [
                      {
                        "file": "load_latency_stock.json",
                        "ptr": "/results/7/latency/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.978,
                    "hi": 0.978,
                    "src": [
                      {
                        "file": "load_latency_medius_samehub_fix4.json",
                        "ptr": "/results/7/latency/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lat-stream-down",
                  "label": "Mouse moving, box injecting, down",
                  "stock": {
                    "lo": 1.67,
                    "hi": 1.67,
                    "src": [
                      {
                        "file": "load_latency_stock.json",
                        "ptr": "/results/10/latency/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.972,
                    "hi": 0.972,
                    "src": [
                      {
                        "file": "load_latency_medius_samehub_fix4.json",
                        "ptr": "/results/10/latency/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lat-stream-up",
                  "label": "Mouse moving, box injecting, up",
                  "stock": {
                    "lo": 1.86,
                    "hi": 1.86,
                    "src": [
                      {
                        "file": "load_latency_stock.json",
                        "ptr": "/results/11/latency/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.783,
                    "hi": 0.783,
                    "src": [
                      {
                        "file": "load_latency_medius_samehub_fix4.json",
                        "ptr": "/results/11/latency/p50",
                        "unit": "us"
                      }
                    ]
                  }
                }
              ]
            }
          ]
        },
        {
          "id": "input-together",
          "title": "Native and injected presses",
          "about": "A native key or button held while each box injected another key, or injected a release or click of that same button.",
          "tables": [
            {
              "kind": "outcome",
              "key": "Case",
              "outcomes": [
                "Still held",
                "Released"
              ],
              "rows": [
                {
                  "id": "input-held-key-q",
                  "label": "Native Q held, box injects A",
                  "stock": {
                    "is": "Still held",
                    "src": [
                      {
                        "file": "keyboard_stock_samehub.json",
                        "ptr": "/results/0/q_still_held"
                      },
                      {
                        "file": "keyboard_stock_samehub.json",
                        "ptr": "/results/0/events"
                      }
                    ]
                  },
                  "medius": {
                    "is": "Still held",
                    "src": [
                      {
                        "file": "keyboard_medius_samehub_fix4.json",
                        "ptr": "/results/0/q_still_held"
                      },
                      {
                        "file": "keyboard_medius_samehub_fix4.json",
                        "ptr": "/results/0/events"
                      }
                    ]
                  }
                },
                {
                  "id": "input-held-left-release",
                  "label": "Native left held, box injects a left release",
                  "stock": {
                    "is": "Still held",
                    "src": [
                      {
                        "file": "buttons_locks_stock_samehub_r1.json",
                        "ptr": "/results/2/held_after_injected_release"
                      },
                      {
                        "file": "buttons_locks_stock_samehub_r2.json",
                        "ptr": "/results/2/held_after_injected_release"
                      },
                      {
                        "file": "buttons_locks_stock_samehub_r3.json",
                        "ptr": "/results/2/held_after_injected_release"
                      }
                    ]
                  },
                  "medius": {
                    "is": "Still held",
                    "src": [
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r1.json",
                        "ptr": "/results/2/held_after_injected_release"
                      },
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r2.json",
                        "ptr": "/results/2/held_after_injected_release"
                      },
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r3.json",
                        "ptr": "/results/2/held_after_injected_release"
                      }
                    ]
                  }
                },
                {
                  "id": "input-held-left-click",
                  "label": "Native left held, box injects a left click",
                  "stock": {
                    "is": "Still held",
                    "src": [
                      {
                        "file": "buttons_locks_stock_samehub_r1.json",
                        "ptr": "/results/2/held_after_injected_press_release"
                      },
                      {
                        "file": "buttons_locks_stock_samehub_r2.json",
                        "ptr": "/results/2/held_after_injected_press_release"
                      },
                      {
                        "file": "buttons_locks_stock_samehub_r3.json",
                        "ptr": "/results/2/held_after_injected_press_release"
                      }
                    ]
                  },
                  "medius": {
                    "is": "Still held",
                    "src": [
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r1.json",
                        "ptr": "/results/2/held_after_injected_press_release"
                      },
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r2.json",
                        "ptr": "/results/2/held_after_injected_press_release"
                      },
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r3.json",
                        "ptr": "/results/2/held_after_injected_press_release"
                      }
                    ]
                  }
                }
              ],
              "label": "Native press after the injection"
            }
          ]
        },
        {
          "id": "input-lock-leak",
          "title": "Locks",
          "about": "Each box held a lock for 10 s against native motion and clicks. On the PC's USB bus, a lock is timed from the command to the last native input through, an unlock to the first one back.",
          "tables": [
            {
              "kind": "outcome",
              "key": "Lock",
              "outcomes": [
                "None",
                "Some"
              ],
              "rows": [
                {
                  "id": "input-leak-x-idle",
                  "label": "X locked, box idle",
                  "stock": {
                    "is": "None",
                    "src": [
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/0/leak"
                      },
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/0/baseline_1s/x"
                      }
                    ]
                  },
                  "medius": {
                    "is": "None",
                    "src": [
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/0/leak"
                      },
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/0/baseline_1s/x"
                      }
                    ]
                  }
                },
                {
                  "id": "input-leak-x-inject-y-1khz",
                  "label": "X locked, box injecting Y at 1 kHz",
                  "stock": {
                    "is": "None",
                    "src": [
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/1/leak"
                      },
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/1/baseline_1s/x"
                      }
                    ]
                  },
                  "medius": {
                    "is": "None",
                    "src": [
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/1/leak"
                      },
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/1/baseline_1s/x"
                      }
                    ]
                  }
                },
                {
                  "id": "input-leak-x-inject-y-125hz",
                  "label": "X locked, box injecting Y at 125 Hz",
                  "stock": {
                    "is": "None",
                    "src": [
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/2/leak"
                      },
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/2/baseline_1s/x"
                      }
                    ]
                  },
                  "medius": {
                    "is": "None",
                    "src": [
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/2/leak"
                      },
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/2/baseline_1s/x"
                      }
                    ]
                  }
                },
                {
                  "id": "input-leak-x-inject-neg-x",
                  "label": "X locked, box injecting -1 X at 1 kHz",
                  "stock": {
                    "is": "None",
                    "src": [
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/3/leak"
                      },
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/3/baseline_1s/x_pos"
                      }
                    ]
                  },
                  "medius": {
                    "is": "None",
                    "src": [
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/3/leak"
                      },
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/3/baseline_1s/x_pos"
                      }
                    ]
                  }
                },
                {
                  "id": "input-leak-left-idle",
                  "label": "Left button locked, box idle",
                  "stock": {
                    "is": "None",
                    "src": [
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/4/leak"
                      },
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/4/baseline_1s/presses"
                      }
                    ]
                  },
                  "medius": {
                    "is": "None",
                    "src": [
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/4/leak"
                      },
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/4/baseline_1s/presses"
                      }
                    ]
                  }
                },
                {
                  "id": "input-leak-left-inject-y",
                  "label": "Left button locked, box injecting Y at 1 kHz",
                  "stock": {
                    "is": "None",
                    "src": [
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/5/leak"
                      },
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/5/baseline_1s/presses"
                      }
                    ]
                  },
                  "medius": {
                    "is": "None",
                    "src": [
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/5/leak"
                      },
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/5/baseline_1s/presses"
                      }
                    ]
                  }
                }
              ],
              "label": "Native input reaching the PC"
            },
            {
              "kind": "outcome",
              "key": "Lock",
              "outcomes": [
                "Arrives",
                "Blocked"
              ],
              "rows": [
                {
                  "id": "input-held-injected-locked",
                  "label": "Left button locked",
                  "stock": {
                    "is": "Arrives",
                    "src": [
                      {
                        "file": "buttons_locks_stock_samehub_r1.json",
                        "ptr": "/results/3/injected_press_while_masked_held"
                      },
                      {
                        "file": "buttons_locks_stock_samehub_r2.json",
                        "ptr": "/results/3/injected_press_while_masked_held"
                      },
                      {
                        "file": "buttons_locks_stock_samehub_r3.json",
                        "ptr": "/results/3/injected_press_while_masked_held"
                      }
                    ]
                  },
                  "medius": {
                    "is": "Arrives",
                    "src": [
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r1.json",
                        "ptr": "/results/3/injected_press_while_masked_held"
                      },
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r2.json",
                        "ptr": "/results/3/injected_press_while_masked_held"
                      },
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r3.json",
                        "ptr": "/results/3/injected_press_while_masked_held"
                      }
                    ]
                  }
                }
              ],
              "label": "Injected press reaching the PC"
            },
            {
              "kind": "measure",
              "label": "Lock on X taking effect, p50",
              "key": "Lock",
              "unit": "ms",
              "better": "lower",
              "stat": "p50",
              "layer": "wire",
              "n": "3 runs",
              "commands": {
                "stock": "km.lock_mx",
                "medius": "LOCK"
              },
              "rows": [
                {
                  "id": "input-lock-x-on",
                  "label": "Native X motion every millisecond",
                  "stock": {
                    "lo": 3.33,
                    "hi": 5.62,
                    "src": [
                      {
                        "file": "buttons_locks_stock_samehub_r1.json",
                        "ptr": "/results/4/last_native_after_lock/p50",
                        "unit": "us"
                      },
                      {
                        "file": "buttons_locks_stock_samehub_r2.json",
                        "ptr": "/results/4/last_native_after_lock/p50",
                        "unit": "us"
                      },
                      {
                        "file": "buttons_locks_stock_samehub_r3.json",
                        "ptr": "/results/4/last_native_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.333,
                    "hi": 0.471,
                    "src": [
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r1.json",
                        "ptr": "/results/4/last_native_after_lock/p50",
                        "unit": "us"
                      },
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r2.json",
                        "ptr": "/results/4/last_native_after_lock/p50",
                        "unit": "us"
                      },
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r3.json",
                        "ptr": "/results/4/last_native_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "kind": "measure",
              "label": "Lock on X lifting, p50",
              "key": "Lock",
              "unit": "ms",
              "better": "lower",
              "stat": "p50",
              "layer": "wire",
              "n": "3 runs",
              "commands": {
                "stock": "km.lock_mx",
                "medius": "LOCK"
              },
              "rows": [
                {
                  "id": "input-lock-x-off",
                  "label": "Native X motion every millisecond",
                  "stock": {
                    "lo": 4.33,
                    "hi": 6.41,
                    "src": [
                      {
                        "file": "buttons_locks_stock_samehub_r1.json",
                        "ptr": "/results/4/first_native_after_unlock/p50",
                        "unit": "us"
                      },
                      {
                        "file": "buttons_locks_stock_samehub_r2.json",
                        "ptr": "/results/4/first_native_after_unlock/p50",
                        "unit": "us"
                      },
                      {
                        "file": "buttons_locks_stock_samehub_r3.json",
                        "ptr": "/results/4/first_native_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 1.2,
                    "hi": 1.29,
                    "src": [
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r1.json",
                        "ptr": "/results/4/first_native_after_unlock/p50",
                        "unit": "us"
                      },
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r2.json",
                        "ptr": "/results/4/first_native_after_unlock/p50",
                        "unit": "us"
                      },
                      {
                        "file": "buttons_locks_medius_samehub_fix4_r3.json",
                        "ptr": "/results/4/first_native_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "kind": "measure",
              "label": "Native input still reaching the PC after the lock, p50",
              "key": "Lock",
              "unit": "ms",
              "better": "lower",
              "stat": "p50",
              "layer": "wire",
              "n": "5 locks per row",
              "rows": [
                {
                  "id": "input-lock2-y-on",
                  "label": "Y, moving every millisecond",
                  "stock": {
                    "lo": 6.45,
                    "hi": 6.45,
                    "src": [
                      {
                        "file": "locks2_stock.json",
                        "ptr": "/results/0/still_through_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.336,
                    "hi": 0.336,
                    "src": [
                      {
                        "file": "locks2_medius_samehub_fix4.json",
                        "ptr": "/results/0/still_through_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lock2-y-pos-on",
                  "label": "Positive Y only, moving +1 and -1",
                  "stock": {
                    "lo": 5.9,
                    "hi": 5.9,
                    "src": [
                      {
                        "file": "locks2_stock.json",
                        "ptr": "/results/1/still_through_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.363,
                    "hi": 0.363,
                    "src": [
                      {
                        "file": "locks2_medius_samehub_fix4.json",
                        "ptr": "/results/1/still_through_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lock2-wheel-on",
                  "label": "Wheel, every 10 ms",
                  "stock": {
                    "lo": 0,
                    "hi": 0,
                    "src": [
                      {
                        "file": "locks2_stock.json",
                        "ptr": "/results/2/still_through_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0,
                    "hi": 0,
                    "src": [
                      {
                        "file": "locks2_medius_samehub_fix4.json",
                        "ptr": "/results/2/still_through_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lock2-right-on",
                  "label": "Right button, 50 ms clicks",
                  "stock": {
                    "lo": 0,
                    "hi": 0,
                    "src": [
                      {
                        "file": "locks2_stock.json",
                        "ptr": "/results/3/still_through_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 99.3,
                    "hi": 99.3,
                    "src": [
                      {
                        "file": "locks2_medius_samehub_fix4.json",
                        "ptr": "/results/3/still_through_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "note": "Medius lets a press already under way finish before the lock blocks the button. The PC never gets a release the real device didn't report"
                },
                {
                  "id": "input-lock2-key-on",
                  "label": "Key 'a', 50 ms taps",
                  "stock": {
                    "lo": 0,
                    "hi": 0,
                    "src": [
                      {
                        "file": "locks2_stock.json",
                        "ptr": "/results/4/still_through_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0,
                    "hi": 0,
                    "src": [
                      {
                        "file": "locks2_medius_samehub_fix4.json",
                        "ptr": "/results/4/still_through_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lock2-right-held-on",
                  "label": "Right button, held",
                  "stock": {
                    "lo": 7.38,
                    "hi": 7.38,
                    "src": [
                      {
                        "file": "locks2_stock.json",
                        "ptr": "/results/5/still_through_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 99.4,
                    "hi": 99.4,
                    "src": [
                      {
                        "file": "locks2_medius_samehub_fix4.json",
                        "ptr": "/results/5/still_through_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "note": "Medius lets a press already under way finish before the lock blocks the button. The PC never gets a release the real device didn't report"
                },
                {
                  "id": "input-lock2-key-held-on",
                  "label": "Key 'a', held",
                  "stock": {
                    "lo": 1.01,
                    "hi": 1.01,
                    "src": [
                      {
                        "file": "locks2_stock.json",
                        "ptr": "/results/6/still_through_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0,
                    "hi": 0,
                    "src": [
                      {
                        "file": "locks2_medius_samehub_fix4.json",
                        "ptr": "/results/6/still_through_after_lock/p50",
                        "unit": "us"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "kind": "measure",
              "label": "Native input back after the unlock, p50",
              "key": "Lock",
              "unit": "ms",
              "better": "lower",
              "stat": "p50",
              "layer": "wire",
              "n": "5 locks per row",
              "rows": [
                {
                  "id": "input-lock2-y-off",
                  "label": "Y, moving every millisecond",
                  "stock": {
                    "lo": 7.21,
                    "hi": 7.21,
                    "src": [
                      {
                        "file": "locks2_stock.json",
                        "ptr": "/results/0/back_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 1.51,
                    "hi": 1.51,
                    "src": [
                      {
                        "file": "locks2_medius_samehub_fix4.json",
                        "ptr": "/results/0/back_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lock2-y-pos-off",
                  "label": "Positive Y only, moving +1 and -1",
                  "stock": {
                    "lo": 7.61,
                    "hi": 7.61,
                    "src": [
                      {
                        "file": "locks2_stock.json",
                        "ptr": "/results/1/back_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 1.5,
                    "hi": 1.5,
                    "src": [
                      {
                        "file": "locks2_medius_samehub_fix4.json",
                        "ptr": "/results/1/back_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lock2-wheel-off",
                  "label": "Wheel, every 10 ms",
                  "stock": {
                    "lo": 2.89,
                    "hi": 2.89,
                    "src": [
                      {
                        "file": "locks2_stock.json",
                        "ptr": "/results/2/back_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 8.02,
                    "hi": 8.02,
                    "src": [
                      {
                        "file": "locks2_medius_samehub_fix4.json",
                        "ptr": "/results/2/back_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lock2-right-off",
                  "label": "Right button, 50 ms clicks",
                  "stock": {
                    "lo": 14.9,
                    "hi": 14.9,
                    "src": [
                      {
                        "file": "locks2_stock.json",
                        "ptr": "/results/3/back_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.729,
                    "hi": 0.729,
                    "src": [
                      {
                        "file": "locks2_medius_samehub_fix4.json",
                        "ptr": "/results/3/back_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lock2-key-off",
                  "label": "Key 'a', 50 ms taps",
                  "stock": {
                    "lo": 37.1,
                    "hi": 37.1,
                    "src": [
                      {
                        "file": "locks2_stock.json",
                        "ptr": "/results/4/back_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.818,
                    "hi": 0.818,
                    "src": [
                      {
                        "file": "locks2_medius_samehub_fix4.json",
                        "ptr": "/results/4/back_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lock2-right-held-off",
                  "label": "Right button, held",
                  "stock": {
                    "lo": 8.78,
                    "hi": 8.78,
                    "src": [
                      {
                        "file": "locks2_stock.json",
                        "ptr": "/results/5/back_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 0.586,
                    "hi": 0.586,
                    "src": [
                      {
                        "file": "locks2_medius_samehub_fix4.json",
                        "ptr": "/results/5/back_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-lock2-key-held-off",
                  "label": "Key 'a', held",
                  "stock": {
                    "lo": 1.96,
                    "hi": 1.96,
                    "src": [
                      {
                        "file": "locks2_stock.json",
                        "ptr": "/results/6/back_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 1.32,
                    "hi": 1.32,
                    "src": [
                      {
                        "file": "locks2_medius_samehub_fix4.json",
                        "ptr": "/results/6/back_after_unlock/p50",
                        "unit": "us"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "kind": "measure",
              "label": "Injected counts arriving while a lock is held",
              "key": "Lock and injection",
              "unit": "counts",
              "better": "higher",
              "layer": "evdev",
              "n": "10 s of injection per row",
              "commands": {
                "stock": "km.move",
                "medius": "MOVE"
              },
              "rows": [
                {
                  "id": "input-lock-total-axis-inj-y",
                  "label": "X locked, Y injected at 1 kHz",
                  "stock": {
                    "value": 9999,
                    "src": [
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/1/locked/y"
                      }
                    ],
                    "of": 10000
                  },
                  "medius": {
                    "value": 10000,
                    "src": [
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/1/locked/y"
                      }
                    ],
                    "of": 10000
                  }
                },
                {
                  "id": "input-lock-total-axis-inj-y125",
                  "label": "X locked, Y injected at 125 Hz",
                  "stock": {
                    "value": 1242,
                    "src": [
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/2/locked/y"
                      }
                    ],
                    "of": 1250
                  },
                  "medius": {
                    "value": 1250,
                    "src": [
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/2/locked/y"
                      }
                    ],
                    "of": 1250
                  }
                },
                {
                  "id": "input-lock-total-axis-inj-negx",
                  "label": "X locked, -1 X injected at 1 kHz",
                  "stock": {
                    "value": 9994,
                    "src": [
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/3/locked/x_neg"
                      }
                    ],
                    "of": 10000
                  },
                  "medius": {
                    "value": 10000,
                    "src": [
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/3/locked/x_neg"
                      }
                    ],
                    "of": 10000
                  }
                },
                {
                  "id": "input-lock-total-button-inj-y",
                  "label": "Left button locked, Y injected at 1 kHz",
                  "stock": {
                    "value": 9989,
                    "src": [
                      {
                        "file": "lock_leak_stock_samehub_r2.json",
                        "ptr": "/results/5/locked/y"
                      }
                    ],
                    "of": 10000
                  },
                  "medius": {
                    "value": 10000,
                    "src": [
                      {
                        "file": "lock_leak_medius_samehub_fix4.json",
                        "ptr": "/results/5/locked/y"
                      }
                    ],
                    "of": 10000
                  }
                }
              ]
            }
          ]
        },
        {
          "id": "input-box-timed",
          "title": "Clicks and typing timed by the box",
          "about": "Ten 50 ms clicks and a 30-character string timed by the box (stock's km.click and km.string, a Medius clip), against the same clicks timed by the PC. Read off the PC's USB bus, five runs each.",
          "tables": [
            {
              "kind": "measure",
              "label": "Shortest 50 ms click hold",
              "key": "Timed by",
              "unit": "ms",
              "layer": "wire",
              "n": "5 runs of 10 clicks",
              "commands": {
                "stock": "km.click",
                "medius": "CLIP"
              },
              "rows": [
                {
                  "id": "input-click-onbox-min",
                  "label": "The box",
                  "stock": {
                    "lo": 50,
                    "hi": 50,
                    "src": [
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/0/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/1/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/2/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/3/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/4/hold/min",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 49.7,
                    "hi": 50,
                    "src": [
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/0/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/1/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/2/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/3/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/4/hold/min",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-click-host-min",
                  "label": "The PC",
                  "stock": {
                    "lo": 50,
                    "hi": 50,
                    "src": [
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/5/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/6/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/7/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/8/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/9/hold/min",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 49.9,
                    "hi": 50,
                    "src": [
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/5/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/6/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/7/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/8/hold/min",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/9/hold/min",
                        "unit": "us"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "kind": "measure",
              "label": "Longest 50 ms click hold",
              "key": "Timed by",
              "unit": "ms",
              "layer": "wire",
              "n": "5 runs of 10 clicks",
              "commands": {
                "stock": "km.click",
                "medius": "CLIP"
              },
              "rows": [
                {
                  "id": "input-click-onbox-max",
                  "label": "The box",
                  "stock": {
                    "lo": 50,
                    "hi": 50.1,
                    "src": [
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/0/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/1/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/2/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/3/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/4/hold/max",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 50,
                    "hi": 50.1,
                    "src": [
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/0/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/1/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/2/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/3/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/4/hold/max",
                        "unit": "us"
                      }
                    ]
                  }
                },
                {
                  "id": "input-click-host-max",
                  "label": "The PC",
                  "stock": {
                    "lo": 50,
                    "hi": 50.1,
                    "src": [
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/5/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/6/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/7/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/8/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/9/hold/max",
                        "unit": "us"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 50,
                    "hi": 50.1,
                    "src": [
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/5/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/6/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/7/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/8/hold/max",
                        "unit": "us"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/9/hold/max",
                        "unit": "us"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "kind": "outcome",
              "label": "30 characters the box typed",
              "key": "String",
              "outcomes": [
                "Exact",
                "Changed"
              ],
              "commands": {
                "stock": "km.string",
                "medius": "CLIP"
              },
              "rows": [
                {
                  "id": "input-typing-box-exact",
                  "label": "the quick brown fox 0123456789, 5 runs",
                  "stock": {
                    "is": "Exact",
                    "src": [
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/10/exact"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/11/exact"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/12/exact"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/13/exact"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/14/exact"
                      }
                    ]
                  },
                  "medius": {
                    "is": "Exact",
                    "src": [
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/10/exact"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/11/exact"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/12/exact"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/13/exact"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/14/exact"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "kind": "measure",
              "label": "Time to type 30 characters",
              "key": "String",
              "unit": "ms",
              "layer": "wire",
              "n": "5 runs",
              "commands": {
                "stock": "km.string",
                "medius": "CLIP"
              },
              "rows": [
                {
                  "id": "input-typing-box-time",
                  "label": "First key down to last key up",
                  "stock": {
                    "lo": 2813,
                    "hi": 2982,
                    "src": [
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/10/total_ms",
                        "unit": "ms"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/11/total_ms",
                        "unit": "ms"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/12/total_ms",
                        "unit": "ms"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/13/total_ms",
                        "unit": "ms"
                      },
                      {
                        "file": "click_timing_stock.json",
                        "ptr": "/results/14/total_ms",
                        "unit": "ms"
                      }
                    ]
                  },
                  "medius": {
                    "lo": 57.9,
                    "hi": 59,
                    "src": [
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/10/total_ms",
                        "unit": "ms"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/11/total_ms",
                        "unit": "ms"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/12/total_ms",
                        "unit": "ms"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/13/total_ms",
                        "unit": "ms"
                      },
                      {
                        "file": "click_timing_medius_samehub_fix4.json",
                        "ptr": "/results/14/total_ms",
                        "unit": "ms"
                      }
                    ]
                  }
                }
              ]
            },
            {
              "kind": "outcome",
              "label": "30 characters sent by the PC as key presses back to back",
              "key": "String",
              "outcomes": [
                "Exact",
                "Characters lost"
              ],
              "commands": {
                "stock": "km.down, km.up",
                "medius": "INJECT"
              },
              "rows": [
                {
                  "id": "input-typing-pc-pairs",
                  "label": "the quick brown fox 0123456789",
                  "stock": {
                    "is": "Characters lost",
                    "src": [
                      {
                        "file": "keyboard_stock_samehub.json",
                        "ptr": "/results/4/typed"
                      },
                      {
                        "file": "keyboard_stock_samehub.json",
                        "ptr": "/results/4/exact"
                      }
                    ]
                  },
                  "medius": {
                    "is": "Exact",
                    "src": [
                      {
                        "file": "keyboard_medius_samehub_fix4.json",
                        "ptr": "/results/3/typed"
                      },
                      {
                        "file": "keyboard_medius_samehub_fix4.json",
                        "ptr": "/results/3/exact"
                      }
                    ]
                  }
                }
              ]
            }
          ]
        }
      ]
    }
  ],
  "defects": [],
  "pending": []
}
