You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

2119 lines
185 KiB

<!DOCTYPE html>
<html data-color-mode="light" data-light-theme="light" data-dark-theme="dark" lang="en"><head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<link rel="dns-prefetch" href="https://github.githubassets.com/">
<link rel="dns-prefetch" href="https://avatars.githubusercontent.com/">
<link rel="dns-prefetch" href="https://github-cloud.s3.amazonaws.com/">
<link rel="dns-prefetch" href="https://user-images.githubusercontent.com/">
<link crossorigin="anonymous" media="all" integrity="sha512-k9NM/a2xYY6wCRcWG7f3ROm4X5CJNikViGX0N8YIxs6sUYAe/j08/RSHXr3fA9wLIy87AMFCgXm6jbvhZhIXWw==" rel="stylesheet" href="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/frameworks-93d34cfdadb1618eb00917161bb7f744.css">
<link crossorigin="anonymous" media="all" integrity="sha512-FSQAq0EMs4fztkVYnaG6tYMYSthrQSMf9Yowkvapk08OAxsW4QUZZT9h9jSMmO7GB6rO1uRQdGRn8FwXE9lyyg==" rel="stylesheet" href="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/behaviors-152400ab410cb387f3b645589da1bab5.css">
<link crossorigin="anonymous" media="all" integrity="sha512-ADxBGP+/Ejuf3hdfXt1DPBnGrlQ47QqWJG2/uzyeofvKQGbkHG8l5dAmbOThfWzViBmMF+vy43i5TLs2M+J+4g==" rel="stylesheet" href="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/github-003c4118ffbf123b9fde175f5edd433c.css">
<script crossorigin="anonymous" defer="defer" integrity="sha512-8K2vvwbW+6H27Nad5ydg8PA2/aMD/LKq+EiK9s0U0hhVZxCI2tWBsYk9beAtisRw2j+Or5k2/F+6dk02nmj/PA==" type="application/javascript" src="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/environment-f0adafbf.js"></script>
<script crossorigin="anonymous" defer="defer" integrity="sha512-Of+WG2CISim899I88sYG7d/75B6gHRWbUDvUOJDh52ZKHoHClE8JQ4nZbvOrvIVTGKCUe68JogcDBUMVtQ7F8w==" type="application/javascript" src="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/chunk-frameworks-39ff961b.js"></script>
<script crossorigin="anonymous" defer="defer" integrity="sha512-7GvK4gfpB9Ztz8H6JMSvF2zkjlAfbaRjfl7n1VtRpOc7huXjL3iGa8FuQiFTvdPX1fd8IYbNtXZoEDZa3RVOrQ==" type="application/javascript" src="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/chunk-vendor-ec6bcae2.js"></script>
<script crossorigin="anonymous" defer="defer" integrity="sha512-CAFqUXjN32LIAgTsmlP6y/WpzDOFJvbkJpWm45xhNQyUmVa8hurwRVOEEV3fhYZbLpxPbml9zdrVssNIdav8hA==" type="application/javascript" src="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/behaviors-08016a51.js"></script>
<script crossorigin="anonymous" defer="defer" integrity="sha512-xDmMfbDOi7C1qDeTcUUIjKfOAG5qhfSNSHRf7wT0crqnTCqtHlO1jBZmRSpjbpn4RyitzX75K0wQ/dpHqO/gAg==" type="application/javascript" data-module-id="./chunk-contributions-spider-graph.js" data-src="https://github.githubassets.com/assets/chunk-contributions-spider-graph-c4398c7d.js"></script>
<script crossorigin="anonymous" defer="defer" integrity="sha512-obMR8mPKx8OvqRe34LgnUcxeJ1qujiA4ND3H6UX13ExMlA/WfHLjEzXRmgGRcRvN/8J1nzc+Z+jgz/PLTFy6zg==" type="application/javascript" data-module-id="./chunk-drag-drop.js" data-src="https://github.githubassets.com/assets/chunk-drag-drop-a1b311f2.js"></script>
<script crossorigin="anonymous" defer="defer" integrity="sha512-TGnbT/6B5dxVwEk7iOlwSY9mfqhfq8m05ec+KjdlfEwoieq73iBeyidClQUSmFa2snukwzF9peY8c7FJf9FARA==" type="application/javascript" data-module-id="./chunk-emoji-picker-element.js" data-src="https://github.githubassets.com/assets/chunk-emoji-picker-element-4c69db4f.js"></script>
<script crossorigin="anonymous" defer="defer" integrity="sha512-NwYkwzxETzKUYRXumHDsBIuggkh86KmJ1WrwWZW5wTvVPf047+wOmOHI5b4D65bfdtd3WbXJ7k+3ZWoxpIaqcA==" type="application/javascript" data-module-id="./chunk-insights-graph.js" data-src="https://github.githubassets.com/assets/chunk-insights-graph-370624c3.js"></script>
<script crossorigin="anonymous" defer="defer" integrity="sha512-o7Wgi+lb9ce+9dvjWvB30ar51Bw0wcGhFZfQIzNGZfJ/7GZwYxVCsqgA4Q2o8yRq1QDUL1G1NxR0/3o9FoQ9JQ==" type="application/javascript" data-module-id="./chunk-jump-to.js" data-src="https://github.githubassets.com/assets/chunk-jump-to-a3b5a08b.js"></script>
<script crossorigin="anonymous" defer="defer" integrity="sha512-tcH4xCRuMBAh1PruDaiwGnRIbHlF6bGLhxyCQ16uqok1cV5QFMguVPWJtN9KI0jGQOgN+Pha3+uOUXhXdfK/qw==" type="application/javascript" data-module-id="./chunk-profile-pins-element.js" data-src="https://github.githubassets.com/assets/chunk-profile-pins-element-b5c1f8c4.js"></script>
<script crossorigin="anonymous" defer="defer" integrity="sha512-E+H+wAtjiqutBvn2cnXzDIvmasIhYiS7i7JzOfFUwo+Ej8zT54OrJtP//RhwixnypgOpCF4JvqzYy6zOtORDmg==" type="application/javascript" data-module-id="./chunk-runner-groups.js" data-src="https://github.githubassets.com/assets/chunk-runner-groups-13e1fec0.js"></script>
<script crossorigin="anonymous" defer="defer" integrity="sha512-U+Pp1bYuA3fRqhike5Go//O/vsExaZLz00lrIby+rZ88yf03nQHz3wLZR9paWkakpD7TH5nS6AUpabCc7OFWpg==" type="application/javascript" data-module-id="./chunk-sortable-behavior.js" data-src="https://github.githubassets.com/assets/chunk-sortable-behavior-53e3e9d5.js"></script>
<script crossorigin="anonymous" defer="defer" integrity="sha512-QBwrFY4kzAVN0nZmTYJLeEhi5bQ+42rE8h1g384XeZb7n62BykcUICACtaDQ473aIrRf38RSR7WDfNEIVuSlTA==" type="application/javascript" data-module-id="./chunk-tweetsodium.js" data-src="https://github.githubassets.com/assets/chunk-tweetsodium-401c2b15.js"></script>
<script crossorigin="anonymous" defer="defer" integrity="sha512-su8FOuJFv0H16y8vmT+N3HiFpDQnHKiLz/UEdGxlCfgwnKBy202gaBmkcBpqXigRg+A8pMDXcSPIWSEW+IIKvQ==" type="application/javascript" data-module-id="./chunk-user-status-submit.js" data-src="https://github.githubassets.com/assets/chunk-user-status-submit-b2ef053a.js"></script>
<script crossorigin="anonymous" defer="defer" integrity="sha512-Ahh1vGV9jX7qzPdC1tA1y6PaLV9AbDPSlt2q8C7SUVVKTgoB5vDsUrKvaGh7Gj2Tv594XRcr0LjJdKA8HmL8iQ==" type="application/javascript" src="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/diffs-021875bc.js"></script>
<meta name="viewport" content="width=device-width">
<title>network: prevent IP spoofing on upstream (eth0) interface · QubesOS/qubes-core-agent-linux@74f5fb5</title>
<meta name="description" content="Qubes component: core-agent-linux. Contribute to QubesOS/qubes-core-agent-linux development by creating an account on GitHub.">
<link rel="search" type="application/opensearchdescription+xml" href="https://github.com/opensearch.xml" title="GitHub">
<link rel="fluid-icon" href="https://github.com/fluidicon.png" title="GitHub">
<meta property="fb:app_id" content="1401488693436528">
<meta name="apple-itunes-app" content="app-id=1477376905">
<meta name="twitter:image:src" content="https://avatars.githubusercontent.com/u/10213205?s=400&amp;v=4"><meta name="twitter:site" content="@github"><meta name="twitter:card" content="summary_large_image"><meta name="twitter:title" content="network: prevent IP spoofing on upstream (eth0) interface · QubesOS/qubes-core-agent-linux@74f5fb5"><meta name="twitter:description" content="Currently there is just one anti-spoofing firewall rule ensuring packets
coming through vif+ interfaces have the right source address. Add
another rule ensuring that addresses that belongs to VMs b...">
<meta property="og:image" content="https://avatars.githubusercontent.com/u/10213205?s=400&amp;v=4"><meta property="og:site_name" content="GitHub"><meta property="og:type" content="object"><meta property="og:title" content="network: prevent IP spoofing on upstream (eth0) interface · QubesOS/qubes-core-agent-linux@74f5fb5"><meta property="og:url" content="/QubesOS/qubes-core-agent-linux/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce"><meta property="og:description" content="Currently there is just one anti-spoofing firewall rule ensuring packets
coming through vif+ interfaces have the right source address. Add
another rule ensuring that addresses that belongs to VMs b..."><meta property="og:updated_time" content="1605041245">
<link rel="assets" href="https://github.githubassets.com/">
<link rel="shared-web-socket" href="wss://alive.github.com/_sockets/u/15262083/ws?session=eyJ2IjoiVjMiLCJ1IjoxNTI2MjA4MywicyI6NjQwMDI5MzcwLCJjIjo3NTMxNDA5NTAsInQiOjE2MTE3MTcyNDJ9--579653921a295fbf0dd036cdd496a62847cee3ffb020faf67950ca7f2bca6c04" data-refresh-url="/_alive">
<link rel="shared-web-socket-src" href="https://github.com/socket-worker-5029ae85.js">
<link rel="sudo-modal" href="https://github.com/sessions/sudo_modal">
<meta name="request-id" content="D8B6:23F8:2DF9BA3:3FA0E6F:6010DA74" data-pjax-transient="true"><meta name="html-safe-nonce" content="65f359bcd49984b78c8056aaabcb67d5f3b653dd9445821f567dfdeb3f4a7432" data-pjax-transient="true"><meta name="visitor-payload" content="eyJyZWZlcnJlciI6Imh0dHBzOi8vZ2l0aHViLmNvbS9zZWFyY2g/cD0zJnE9Y3ZlLTIwMTktMTQ4OTkmdHlwZT1Db21taXRzIiwicmVxdWVzdF9pZCI6IkQ4QjY6MjNGODoyREY5QkEzOjNGQTBFNkY6NjAxMERBNzQiLCJ2aXNpdG9yX2lkIjoiMjMxMDkyMTU0MzM2NDkyMDE2MyIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9" data-pjax-transient="true"><meta name="visitor-hmac" content="0305aeeb993a3d82a3eacba1046dcde729c631af1f7817e1923d5e7b1570f23f" data-pjax-transient="true">
<meta name="hovercard-subject-tag" content="repository:30624145" data-pjax-transient="">
<meta name="github-keyboard-shortcuts" content="repository,commits" data-pjax-transient="true">
<meta name="selected-link" value="repo_commits" data-pjax-transient="">
<meta name="google-site-verification" content="c1kuD-K2HIVF635lypcsWPoD4kilo5-jA_wBFyT4uMY">
<meta name="google-site-verification" content="KT5gs8h0wvaagLKAVWq8bbeNwnZZK1r1XQysX3xurLU">
<meta name="google-site-verification" content="ZzhVyEFwb7w3e0-uOTltm8Jsck2F5StVihD0exw2fsA">
<meta name="google-site-verification" content="GXs5KoUUkNCoaAZn7wPN-t01Pywp9M3sEjnt_3_ZWPc">
<meta name="octolytics-host" content="collector.githubapp.com"><meta name="octolytics-app-id" content="github"><meta name="octolytics-event-url" content="https://collector.githubapp.com/github-external/browser_event"><meta name="octolytics-actor-id" content="15262083"><meta name="octolytics-actor-login" content="wtolley"><meta name="octolytics-actor-hash" content="b5e813f81e93e6e7e0b419fb08704ba6d54fd4ebb62c842e6ac04149692f5a9d">
<meta name="analytics-location" content="/&lt;user-name&gt;/&lt;repo-name&gt;/commit/show" data-pjax-transient="true">
<meta name="hostname" content="github.com">
<meta name="user-login" content="wtolley">
<meta name="expected-hostname" content="github.com">
<meta name="js-proxy-site-detection-payload" content="NGIzNDk2YTA1NTNkNTVlZGRmM2M5M2JiNTU3ZGRjOTEwMDBmNTRjZjhlMDU0OGExYmE2NjYzMjdhMTg5OTdiZXx7InJlbW90ZV9hZGRyZXNzIjoiMTc0Ljc0LjE0My43MyIsInJlcXVlc3RfaWQiOiJEOEI2OjIzRjg6MkRGOUJBMzozRkEwRTZGOjYwMTBEQTc0IiwidGltZXN0YW1wIjoxNjExNzE3MjQyLCJob3N0IjoiZ2l0aHViLmNvbSJ9">
<meta name="enabled-features" content="MARKETPLACE_PENDING_INSTALLATIONS,JS_HTTP_CACHE_HEADERS,ACTIONS_SHORT_SHA_WARNING,TASK_LIST_AUTOCOMPLETE,MULTI_WORD_SUGGESTER">
<meta http-equiv="x-pjax-version" content="8133e064b1f142106c24ac3a9bd0c1ee4fb7901fa51550163e32af91b6a70802">
<link href="https://github.com/QubesOS/qubes-core-agent-linux/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce.diff" rel="alternate" type="text/plain+diff" data-pjax-transient="true">
<link href="https://github.com/QubesOS/qubes-core-agent-linux/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce.patch" rel="alternate" type="text/plain+patch" data-pjax-transient="true">
<meta name="diff-view" content="unified" data-pjax-transient="">
<link href="https://github.com/QubesOS/qubes-core-agent-linux/commits/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce.atom" rel="alternate" title="Recent Commits to qubes-core-agent-linux:74f5fb5ac7160f145e8383d39d7c41c240f1f0ce" type="application/atom+xml">
<meta name="go-import" content="github.com/QubesOS/qubes-core-agent-linux git https://github.com/QubesOS/qubes-core-agent-linux.git">
<meta name="octolytics-dimension-user_id" content="10213205"><meta name="octolytics-dimension-user_login" content="QubesOS"><meta name="octolytics-dimension-repository_id" content="30624145"><meta name="octolytics-dimension-repository_nwo" content="QubesOS/qubes-core-agent-linux"><meta name="octolytics-dimension-repository_public" content="true"><meta name="octolytics-dimension-repository_is_fork" content="false"><meta name="octolytics-dimension-repository_network_root_id" content="30624145"><meta name="octolytics-dimension-repository_network_root_nwo" content="QubesOS/qubes-core-agent-linux"><meta name="octolytics-dimension-repository_explore_github_marketplace_ci_cta_shown" content="false">
<meta name="browser-stats-url" content="https://api.github.com/_private/browser/stats">
<meta name="browser-errors-url" content="https://api.github.com/_private/browser/errors">
<meta name="browser-optimizely-client-errors-url" content="https://api.github.com/_private/browser/optimizely_client/errors">
<link rel="mask-icon" href="https://github.githubassets.com/pinned-octocat.svg" color="#000000">
<link rel="alternate icon" class="js-site-favicon" type="image/png" href="https://github.githubassets.com/favicons/favicon.png">
<link rel="icon" class="js-site-favicon" type="image/svg+xml" href="https://github.githubassets.com/favicons/favicon.svg">
<meta name="theme-color" content="#1e2327">
<meta name="color-scheme" content="light dark">
<link rel="manifest" href="https://github.com/manifest.json" crossorigin="use-credentials">
</head>
<body class="logged-in env-production page-responsive" data-new-gr-c-s-loaded="8.869.0">
<div class="position-relative js-header-wrapper ">
<a href="#start-of-content" class="p-3 bg-blue text-white show-on-focus js-skip-to-content">Skip to content</a>
<span class="progress-pjax-loader width-full js-pjax-loader-bar Progress position-fixed">
<span style="background-color: #79b8ff;width: 0%;" class="Progress-item progress-pjax-loader-bar "></span>
</span>
<header class="Header js-details-container Details px-3 px-md-4 px-lg-5 flex-wrap flex-md-nowrap" role="banner">
<div class="Header-item mt-n1 mb-n1 d-none d-md-flex">
<a class="Header-link " href="https://github.com/" data-hotkey="g d" aria-label="Homepage " data-ga-click="Header, go to dashboard, icon:logo">
<svg class="octicon octicon-mark-github v-align-middle" height="32" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg>
</a>
</div>
<div class="Header-item d-md-none">
<button class="Header-link btn-link js-details-target" type="button" aria-label="Toggle navigation" aria-expanded="false">
<svg height="24" class="octicon octicon-three-bars" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M1 2.75A.75.75 0 011.75 2h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 2.75zm0 5A.75.75 0 011.75 7h12.5a.75.75 0 110 1.5H1.75A.75.75 0 011 7.75zM1.75 12a.75.75 0 100 1.5h12.5a.75.75 0 100-1.5H1.75z"></path></svg>
</button>
</div>
<div class="Header-item Header-item--full flex-column flex-md-row width-full flex-order-2 flex-md-order-none mr-0 mr-md-3 mt-3 mt-md-0 Details-content--hidden-not-important d-md-flex">
<div class="header-search flex-auto js-site-search position-relative flex-self-stretch flex-md-self-auto mb-3 mb-md-0 mr-0 mr-md-3 scoped-search site-scoped-search js-jump-to" role="combobox" aria-owns="jump-to-results" aria-label="Search or jump to" aria-haspopup="listbox" aria-expanded="false">
<div class="position-relative">
<!-- '"` --><!-- </textarea></xmp> --><form class="js-site-search-form" role="search" aria-label="Site" data-scope-type="Repository" data-scope-id="30624145" data-scoped-search-url="/QubesOS/qubes-core-agent-linux/search" data-owner-scoped-search-url="/orgs/QubesOS/search" data-unscoped-search-url="/search" action="/QubesOS/qubes-core-agent-linux/search" accept-charset="UTF-8" method="get">
<label class="form-control input-sm header-search-wrapper p-0 js-chromeless-input-container header-search-wrapper-jump-to position-relative d-flex flex-justify-between flex-items-center">
<input type="text" class="form-control input-sm header-search-input jump-to-field js-jump-to-field js-site-search-focus js-site-search-field is-clearable" data-hotkey="s,/" name="q" placeholder="Search or jump to…" data-unscoped-placeholder="Search or jump to…" data-scoped-placeholder="Search or jump to…" autocapitalize="none" aria-autocomplete="list" aria-controls="jump-to-results" aria-label="Search or jump to…" data-jump-to-suggestions-path="/_graphql/GetSuggestedNavigationDestinations" spellcheck="false" autocomplete="off">
<input type="hidden" value="IMopKoMTBklA4MmJyZqgaIxSOUAVgtT52jPh7Lx5k8PhP4n1R5qf7iqV6WiuDEJH1u7wVyqj5tGXC5HbgLSpeQ==" data-csrf="true" class="js-data-jump-to-suggestions-path-csrf">
<input type="hidden" class="js-site-search-type-field" name="type">
<img src="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/search-key-slash.svg" alt="" class="mr-2 header-search-key-slash">
<div class="Box position-absolute overflow-hidden d-none jump-to-suggestions js-jump-to-suggestions-container">
<ul class="d-none js-jump-to-suggestions-template-container">
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-suggestion" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="suggestion">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg>
<svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg>
<svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
In this repository
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle"></span>
</div>
<div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle"></span>
</div>
</a>
</li>
</ul>
<ul class="d-none js-jump-to-no-results-template-container">
<li class="d-flex flex-justify-center flex-items-center f5 d-none js-jump-to-suggestion p-2">
<span class="text-gray">No suggested jump to results</span>
</li>
</ul>
<ul id="jump-to-results" role="listbox" class="p-0 m-0 js-navigation-container jump-to-suggestions-results-container js-jump-to-suggestions-results-container">
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-scoped-search d-none" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="scoped_search">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg>
<svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg>
<svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
In this repository
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle"></span>
</div>
<div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle"></span>
</div>
</a>
</li>
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-owner-scoped-search d-none" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="owner_scoped_search">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg>
<svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg>
<svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this organization">
In this organization
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle"></span>
</div>
<div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle"></span>
</div>
</a>
</li>
<li class="d-flex flex-justify-start flex-items-center p-0 f5 navigation-item js-navigation-item js-jump-to-global-search d-none" role="option">
<a tabindex="-1" class="no-underline d-flex flex-auto flex-items-center jump-to-suggestions-path js-jump-to-suggestion-path js-navigation-open p-2" href="" data-item-type="global_search">
<div class="jump-to-octicon js-jump-to-octicon flex-shrink-0 mr-2 text-center d-none">
<svg height="16" width="16" class="octicon octicon-repo flex-shrink-0 js-jump-to-octicon-repo d-none" title="Repository" aria-label="Repository" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg>
<svg height="16" width="16" class="octicon octicon-project flex-shrink-0 js-jump-to-octicon-project d-none" title="Project" aria-label="Project" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg>
<svg height="16" width="16" class="octicon octicon-search flex-shrink-0 js-jump-to-octicon-search d-none" title="Search" aria-label="Search" viewBox="0 0 16 16" version="1.1" role="img"><path fill-rule="evenodd" d="M11.5 7a4.499 4.499 0 11-8.998 0A4.499 4.499 0 0111.5 7zm-.82 4.74a6 6 0 111.06-1.06l3.04 3.04a.75.75 0 11-1.06 1.06l-3.04-3.04z"></path></svg>
</div>
<img class="avatar mr-2 flex-shrink-0 js-jump-to-suggestion-avatar d-none" alt="" aria-label="Team" src="" width="28" height="28">
<div class="jump-to-suggestion-name js-jump-to-suggestion-name flex-auto overflow-hidden text-left no-wrap css-truncate css-truncate-target">
</div>
<div class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none js-jump-to-badge-search">
<span class="js-jump-to-badge-search-text-default d-none" aria-label="in this repository">
In this repository
</span>
<span class="js-jump-to-badge-search-text-global d-none" aria-label="in all of GitHub">
All GitHub
</span>
<span aria-hidden="true" class="d-inline-block ml-1 v-align-middle"></span>
</div>
<div aria-hidden="true" class="border rounded-1 flex-shrink-0 bg-gray px-1 text-gray-light ml-1 f6 d-none d-on-nav-focus js-jump-to-badge-jump">
Jump to
<span class="d-inline-block ml-1 v-align-middle"></span>
</div>
</a>
</li>
<li class="d-flex flex-justify-center flex-items-center p-0 f5 js-jump-to-suggestion">
<svg viewBox="0 0 16 16" fill="none" style="box-sizing: content-box; color: var(--color-icon-primary);" class="m-3" width="32" height="32">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke">
<animateTransform attributeName="transform" type="rotate" from="0 8 8" to="360 8 8" dur="1s" repeatCount="indefinite"></animateTransform>
</path>
</svg>
</li>
</ul>
</div>
</label>
</form> </div>
</div>
<nav class="d-flex flex-column flex-md-row flex-self-stretch flex-md-self-auto" aria-label="Global">
<a class="Header-link py-md-3 d-block d-md-none py-2 border-top border-md-top-0 border-white-fade-15" data-ga-click="Header, click, Nav menu - item:dashboard:user" aria-label="Dashboard" href="https://github.com/dashboard">
Dashboard
</a>
<a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade-15" data-hotkey="g p" data-ga-click="Header, click, Nav menu - item:pulls context:user" aria-label="Pull requests you created" data-selected-links="/pulls /pulls/assigned /pulls/mentioned /pulls" href="https://github.com/pulls">
Pull<span class="d-inline d-md-none d-lg-inline"> request</span>s
</a>
<a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade-15" data-hotkey="g i" data-ga-click="Header, click, Nav menu - item:issues context:user" aria-label="Issues you created" data-selected-links="/issues /issues/assigned /issues/mentioned /issues" href="https://github.com/issues">
Issues
</a>
<div class="d-flex position-relative">
<a class="js-selected-navigation-item Header-link flex-auto mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade-15" data-ga-click="Header, click, Nav menu - item:marketplace context:user" data-octo-click="marketplace_click" data-octo-dimensions="location:nav_bar" data-selected-links=" /marketplace" href="https://github.com/marketplace">
Marketplace
</a> </div>
<a class="js-selected-navigation-item Header-link mt-md-n3 mb-md-n3 py-2 py-md-3 mr-0 mr-md-3 border-top border-md-top-0 border-white-fade-15" data-ga-click="Header, click, Nav menu - item:explore" data-selected-links="/explore /trending /trending/developers /integrations /integrations/feature/code /integrations/feature/collaborate /integrations/feature/ship showcases showcases_search showcases_landing /explore" href="https://github.com/explore">
Explore
</a>
<a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-3 border-top border-md-top-0 border-white-fade-15" href="https://github.com/settings/profile">
Settings
</a>
<a class="Header-link d-block d-md-none mr-0 mr-md-3 py-2 py-md-3 border-top border-md-top-0 border-white-fade-15" href="https://github.com/wtolley">
<img class="avatar avatar-user" src="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/15262083.png" alt="@wtolley" width="20" height="20">
wtolley
</a>
<!-- '"` --><!-- </textarea></xmp> --><form action="/logout" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="KhFe6EYR3Qyd8av7ZwRsKIM4/eI7nNPC8+ePaYDxeveUIbEtvyeCh5WloTt9hc2KUl7e23vpRFd6qTNmnPpxkg==">
<button type="submit" class="Header-link mr-0 mr-md-3 py-2 py-md-3 border-top border-md-top-0 border-white-fade-15 d-md-none btn-link d-block width-full text-left" data-ga-click="Header, sign out, icon:logout" style="padding-left: 2px;">
<svg class="octicon octicon-sign-out v-align-middle" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 2.75C2 1.784 2.784 1 3.75 1h2.5a.75.75 0 010 1.5h-2.5a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h2.5a.75.75 0 010 1.5h-2.5A1.75 1.75 0 012 13.25V2.75zm10.44 4.5H6.75a.75.75 0 000 1.5h5.69l-1.97 1.97a.75.75 0 101.06 1.06l3.25-3.25a.75.75 0 000-1.06l-3.25-3.25a.75.75 0 10-1.06 1.06l1.97 1.97z"></path></svg>
Sign out
</button>
</form></nav>
</div>
<div class="Header-item Header-item--full flex-justify-center d-md-none position-relative">
<a class="Header-link " href="https://github.com/" data-hotkey="g d" aria-label="Homepage " data-ga-click="Header, go to dashboard, icon:logo">
<svg class="octicon octicon-mark-github v-align-middle" height="32" viewBox="0 0 16 16" version="1.1" width="32" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg>
</a>
</div>
<div class="Header-item mr-0 mr-md-3 flex-order-1 flex-md-order-none">
<notification-indicator class="js-socket-channel" data-channel="eyJjIjoibm90aWZpY2F0aW9uLWNoYW5nZWQ6MTUyNjIwODMiLCJ0IjoxNjExNzE3MjQyfQ==--b5c84d2e01e62c45c31e03fa4ee2dc889667532252ed3201bc1754f18629111e" data-catalyst="">
<a href="https://github.com/notifications" class="Header-link notification-indicator position-relative tooltipped tooltipped-sw" aria-label="You have no unread notifications" data-hotkey="g n" data-ga-click="Header, go to notifications, icon:read" data-target="notification-indicator.link">
<span class="mail-status " data-target="notification-indicator.modifier"></span>
<svg class="octicon octicon-bell" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path><path fill-rule="evenodd" d="M8 1.5A3.5 3.5 0 004.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01l.001.006c0 .002.002.004.004.006a.017.017 0 00.006.004l.007.001h10.964l.007-.001a.016.016 0 00.006-.004.016.016 0 00.004-.006l.001-.007a.017.017 0 00-.003-.01l-1.703-2.554a1.75 1.75 0 01-.294-.97V5A3.5 3.5 0 008 1.5zM3 5a5 5 0 0110 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.518 1.518 0 0113.482 13H2.518a1.518 1.518 0 01-1.263-2.36l1.703-2.554A.25.25 0 003 7.947V5z"></path></svg>
</a>
</notification-indicator>
</div>
<div class="Header-item position-relative d-none d-md-flex">
<details class="details-overlay details-reset">
<summary class="Header-link" aria-label="Create new…" data-ga-click="Header, create new, icon:add" aria-haspopup="menu" role="button">
<svg class="octicon octicon-plus" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg> <span class="dropdown-caret"></span>
</summary>
<details-menu class="dropdown-menu dropdown-menu-sw" role="menu">
<a role="menuitem" class="dropdown-item" href="https://github.com/new" data-ga-click="Header, create new repository">
New repository
</a>
<a role="menuitem" class="dropdown-item" href="https://github.com/new/import" data-ga-click="Header, import a repository">
Import repository
</a>
<a role="menuitem" class="dropdown-item" href="https://gist.github.com/" data-ga-click="Header, create new gist">
New gist
</a>
<a role="menuitem" class="dropdown-item" href="https://github.com/organizations/new" data-ga-click="Header, create new organization">
New organization
</a>
</details-menu>
</details>
</div>
<div class="Header-item position-relative mr-0 d-none d-md-flex">
<details class="details-overlay details-reset js-feature-preview-indicator-container" data-feature-preview-indicator-src="/users/wtolley/feature_preview/indicator_check">
<summary class="Header-link" aria-label="View profile and more" data-ga-click="Header, show menu, icon:avatar" aria-haspopup="menu" role="button">
<img alt="@wtolley" src="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/15262083_003.png" class="avatar avatar-user " width="20" height="20">
<span class="feature-preview-indicator js-feature-preview-indicator" style="top: 1px;" hidden=""></span>
<span class="dropdown-caret"></span>
</summary>
<details-menu class="dropdown-menu dropdown-menu-sw" style="width: 180px" src="/users/15262083/menu" preload="" role="menu">
<include-fragment>
<p class="text-center mt-3" data-hide-on-error="">
<svg viewBox="0 0 16 16" fill="none" style="box-sizing: content-box; color: var(--color-icon-primary);" width="32" height="32">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke">
<animateTransform attributeName="transform" type="rotate" from="0 8 8" to="360 8 8" dur="1s" repeatCount="indefinite"></animateTransform>
</path>
</svg>
</p>
<p class="ml-1 mb-2 mt-2 text-gray-dark" data-show-on-error="">
<svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path></svg>
Sorry, something went wrong.
</p>
</include-fragment>
</details-menu>
</details>
</div>
</header>
</div>
<div id="start-of-content" class="show-on-focus"></div>
<div data-pjax-replace="" id="js-flash-container">
<template class="js-flash-template">
<div class="flash flash-full {{ className }}">
<div class=" px-2">
<button class="flash-close js-flash-close" type="button" aria-label="Dismiss this message">
<svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg>
</button>
<div>{{ message }}</div>
</div>
</div>
</template>
</div>
<include-fragment class="js-notification-shelf-include-fragment" data-base-src="https://github.com/notifications/beta/shelf"></include-fragment>
<div class="application-main " data-commit-hovercards-enabled="" data-discussion-hovercards-enabled="" data-issue-and-pr-hovercards-enabled="">
<div itemscope="" itemtype="http://schema.org/SoftwareSourceCode" class="">
<main id="js-repo-pjax-container" data-pjax-container="">
<div class="bg-gray-light pt-3 hide-full-screen mb-5">
<div class="d-flex mb-3 px-3 px-md-4 px-lg-5">
<div class="flex-auto min-width-0 width-fit mr-3">
<h1 class=" d-flex flex-wrap flex-items-center break-word f3 text-normal">
<svg class="octicon octicon-repo text-gray mr-2" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 014.5 0h8.75a.75.75 0 01.75.75v12.5a.75.75 0 01-.75.75h-2.5a.75.75 0 110-1.5h1.75v-2h-8a1 1 0 00-.714 1.7.75.75 0 01-1.072 1.05A2.495 2.495 0 012 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 011-1h8zM5 12.25v3.25a.25.25 0 00.4.2l1.45-1.087a.25.25 0 01.3 0L8.6 15.7a.25.25 0 00.4-.2v-3.25a.25.25 0 00-.25-.25h-3.5a.25.25 0 00-.25.25z"></path></svg>
<span class="author flex-self-stretch" itemprop="author">
<a class="url fn" rel="author" data-hovercard-type="organization" data-hovercard-url="/orgs/QubesOS/hovercard" href="https://github.com/QubesOS">QubesOS</a>
</span>
<span class="mx-1 flex-self-stretch color-text-secondary">/</span>
<strong itemprop="name" class="mr-2 flex-self-stretch">
<a data-pjax="#js-repo-pjax-container" class="" href="https://github.com/QubesOS/qubes-core-agent-linux">qubes-core-agent-linux</a>
</strong>
</h1>
</div>
<ul class="pagehead-actions flex-shrink-0 d-none d-md-inline" style="padding: 2px 0;">
<li>
<details id="funding-links-modal" class="details-reset details-overlay details-overlay-dark d-inline-block float-left">
<summary id="sponsor-button-repo" class="btn btn-sm" title="Sponsor QubesOS/qubes-core-agent-linux" data-ga-click="Repository, show sponsor modal, action:commit#show; text:Sponsor" role="button">
<svg class="octicon octicon-heart text-pink" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4.25 2.5c-1.336 0-2.75 1.164-2.75 3 0 2.15 1.58 4.144 3.365 5.682A20.565 20.565 0 008 13.393a20.561 20.561 0 003.135-2.211C12.92 9.644 14.5 7.65 14.5 5.5c0-1.836-1.414-3-2.75-3-1.373 0-2.609.986-3.029 2.456a.75.75 0 01-1.442 0C6.859 3.486 5.623 2.5 4.25 2.5zM8 14.25l-.345.666-.002-.001-.006-.003-.018-.01a7.643 7.643 0 01-.31-.17 22.075 22.075 0 01-3.434-2.414C2.045 10.731 0 8.35 0 5.5 0 2.836 2.086 1 4.25 1 5.797 1 7.153 1.802 8 3.02 8.847 1.802 10.203 1 11.75 1 13.914 1 16 2.836 16 5.5c0 2.85-2.045 5.231-3.885 6.818a22.08 22.08 0 01-3.744 2.584l-.018.01-.006.003h-.002L8 14.25zm0 0l.345.666a.752.752 0 01-.69 0L8 14.25z"></path></svg>
Sponsor
</summary>
<details-dialog class="anim-fade-in fast Box Box--overlay d-flex flex-column" src="/QubesOS/qubes-core-agent-linux/funding_links?fragment=1" preload="" role="dialog" aria-modal="true">
<div class="Box-header">
<button class="Box-btn-octicon btn-octicon float-right" type="button" aria-label="Close dialog" data-close-dialog="">
<svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg>
</button>
<h3 class="Box-title">
Sponsor QubesOS/qubes-core-agent-linux
</h3>
</div>
<div class="overflow-auto">
<include-fragment>
<svg aria-label="Loading..." viewBox="0 0 16 16" fill="none" style="box-sizing: content-box; color: var(--color-icon-primary);" class="my-3 mx-auto d-block" width="64" height="64">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke">
<animateTransform attributeName="transform" type="rotate" from="0 8 8" to="360 8 8" dur="1s" repeatCount="indefinite"></animateTransform>
</path>
</svg>
</include-fragment>
</div>
</details-dialog>
</details>
</li>
<li>
<notifications-list-subscription-form class="f5 position-relative d-flex" data-catalyst="">
<details class="details-reset details-overlay f5 position-relative" data-target="notifications-list-subscription-form.details" data-action="toggle:notifications-list-subscription-form#detailsToggled">
<summary class="btn btn-sm rounded-right-0" data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;WATCH_BUTTON&quot;,&quot;repository_id&quot;:30624145,&quot;originating_url&quot;:&quot;https://github.com/QubesOS/qubes-core-agent-linux/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce&quot;,&quot;user_id&quot;:15262083}}" data-hydro-click-hmac="35a1c20cc71c18d5b74de3e20d823e32bcaebbba2f7543a27774c61272fa096a" data-ga-click="Repository, click Watch settings, action:commit#show" aria-label="Notifications settings" role="button" aria-haspopup="menu">
<span data-menu-button="">
<span data-target="notifications-list-subscription-form.unwatchButtonCopy" hidden="">
<svg class="octicon octicon-eye" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z"></path></svg>
Unwatch
</span>
<span data-target="notifications-list-subscription-form.stopIgnoringButtonCopy" hidden="">
<svg class="octicon octicon-bell-slash" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1.5c-.997 0-1.895.416-2.534 1.086A.75.75 0 014.38 1.55 5 5 0 0113 5v2.373a.75.75 0 01-1.5 0V5A3.5 3.5 0 008 1.5zM4.182 4.31L1.19 2.143a.75.75 0 10-.88 1.214L3 5.305v2.642a.25.25 0 01-.042.139L1.255 10.64A1.518 1.518 0 002.518 13h11.108l1.184.857a.75.75 0 10.88-1.214l-1.375-.996a1.196 1.196 0 00-.013-.01L4.198 4.321a.733.733 0 00-.016-.011zm7.373 7.19L4.5 6.391v1.556c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01.015.015 0 00.005.012.017.017 0 00.006.004l.007.001h9.037zM8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path></svg>
Stop ignoring
</span>
<span data-target="notifications-list-subscription-form.watchButtonCopy">
<svg class="octicon octicon-eye" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.679 7.932c.412-.621 1.242-1.75 2.366-2.717C5.175 4.242 6.527 3.5 8 3.5c1.473 0 2.824.742 3.955 1.715 1.124.967 1.954 2.096 2.366 2.717a.119.119 0 010 .136c-.412.621-1.242 1.75-2.366 2.717C10.825 11.758 9.473 12.5 8 12.5c-1.473 0-2.824-.742-3.955-1.715C2.92 9.818 2.09 8.69 1.679 8.068a.119.119 0 010-.136zM8 2c-1.981 0-3.67.992-4.933 2.078C1.797 5.169.88 6.423.43 7.1a1.619 1.619 0 000 1.798c.45.678 1.367 1.932 2.637 3.024C4.329 13.008 6.019 14 8 14c1.981 0 3.67-.992 4.933-2.078 1.27-1.091 2.187-2.345 2.637-3.023a1.619 1.619 0 000-1.798c-.45-.678-1.367-1.932-2.637-3.023C11.671 2.992 9.981 2 8 2zm0 8a2 2 0 100-4 2 2 0 000 4z"></path></svg>
Watch
</span>
</span>
<span class="dropdown-caret"></span>
</summary>
<details-menu class="SelectMenu " role="menu" data-target="notifications-list-subscription-form.menu">
<div class="SelectMenu-modal notifications-component-menu-modal">
<header class="SelectMenu-header">
<h3 class="SelectMenu-title">Notifications</h3>
<button class="SelectMenu-closeButton" type="button" aria-label="Close menu" data-action="click:notifications-list-subscription-form#closeMenu">
<svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg>
</button>
</header>
<div class="SelectMenu-list">
<form data-target="notifications-list-subscription-form.form" data-action="submit:notifications-list-subscription-form#submitForm" action="/notifications/subscribe" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="kPTRPAMTqLFmJnEgAClUHADNl6DqUrYW+UdKQCREoYGArHJKx4rkIoESFjF0HOCCyvqzpgjF+LT7/B1l6JDPpA==">
<input type="hidden" name="repository_id" value="30624145">
<button type="submit" name="do" value="included" class="SelectMenu-item flex-items-start" role="menuitemradio" aria-checked="true" data-targets="notifications-list-subscription-form.subscriptionButtons">
<span class="f5">
<svg class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg>
</span>
<div>
<div class="f5 text-bold">
Participating and @mentions
</div>
<div class="text-small text-gray text-normal pb-1">
Only receive notifications from this repository when participating or @mentioned.
</div>
</div>
</button>
<button type="submit" name="do" value="subscribed" class="SelectMenu-item flex-items-start" role="menuitemradio" aria-checked="false" data-targets="notifications-list-subscription-form.subscriptionButtons">
<span class="f5">
<svg class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg>
</span>
<div>
<div class="f5 text-bold">
All Activity
</div>
<div class="text-small text-gray text-normal pb-1">
Notified of all notifications on this repository.
</div>
</div>
</button>
<button type="submit" name="do" value="ignore" class="SelectMenu-item flex-items-start" role="menuitemradio" aria-checked="false" data-targets="notifications-list-subscription-form.subscriptionButtons">
<span class="f5">
<svg class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg>
</span>
<div>
<div class="f5 text-bold">
Ignore
</div>
<div class="text-small text-gray text-normal pb-1">
Never be notified.
</div>
</div>
</button>
</form>
<button class="SelectMenu-item flex-items-start pr-3" type="button" role="menuitemradio" data-target="notifications-list-subscription-form.customButton" data-action="click:notifications-list-subscription-form#openCustomDialog" aria-haspopup="true" aria-checked="false">
<span class="f5">
<svg class="octicon octicon-check SelectMenu-icon SelectMenu-icon--check" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg>
</span>
<div>
<div class="d-flex flex-items-start flex-justify-between">
<div class="f5 text-bold">Custom</div>
<div class="f5 pr-1">
<svg class="octicon octicon-arrow-right" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 2.97a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06l2.97-2.97H3.75a.75.75 0 010-1.5h7.44L8.22 4.03a.75.75 0 010-1.06z"></path></svg>
</div>
</div>
<div class="text-small text-gray text-normal pb-1">
Select events you want to be notified of in addition to participating and @mentions.
</div>
</div>
</button>
</div>
</div>
</details-menu>
<details-dialog class="notifications-component-dialog " data-target="notifications-list-subscription-form.customDialog" role="dialog" aria-modal="true" hidden="">
<div class="SelectMenu-modal notifications-component-dialog-modal overflow-visible">
<form data-target="notifications-list-subscription-form.customform" data-action="submit:notifications-list-subscription-form#submitCustomForm" action="/notifications/subscribe" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="VI7lAHFkhCYtLaKfub0kp1M2sADW+54QbF3tTMXC3+VE1kZ2tf3ItcoZxY7NiJA5mQGUBjRs0LJu5rppCRaxwA==">
<input type="hidden" name="repository_id" value="30624145">
<header class="d-sm-none SelectMenu-header pb-0 border-bottom-0 px-2 px-sm-3">
<h1 class="f3 SelectMenu-title d-inline-flex">
<button class="bg-white border-0 px-2 py-0 m-0 link-gray f5" aria-label="Return to menu" type="button" data-action="click:notifications-list-subscription-form#closeCustomDialog">
<svg style="" class="octicon octicon-arrow-left" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z"></path></svg>
</button>
Custom
</h1>
</header>
<header class="d-none d-sm-flex flex-items-start pt-1">
<button class="border-0 px-2 pt-1 m-0 link-gray f5" style="background-color: transparent;" aria-label="Return to menu" type="button" data-action="click:notifications-list-subscription-form#closeCustomDialog">
<svg style="position: relative; left: 2px; top: 1px" class="octicon octicon-arrow-left" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.78 12.53a.75.75 0 01-1.06 0L2.47 8.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 1.06L4.81 7h7.44a.75.75 0 010 1.5H4.81l2.97 2.97a.75.75 0 010 1.06z"></path></svg>
</button>
<h1 class="pt-1 pr-4 pb-0 pl-0 f5 text-bold">
Custom
</h1>
</header>
<fieldset>
<legend>
<div class="text-small text-gray pt-0 pr-3 pb-3 pl-6 pl-sm-5 border-bottom mb-3">
Select events you want to be notified of in addition to participating and @mentions.
</div>
</legend>
<div class="form-checkbox mr-3 ml-6 ml-sm-5 mb-2 mt-0">
<label class="f5 text-normal">
<input type="checkbox" name="thread_types[]" value="Issue" data-targets="notifications-list-subscription-form.threadTypeCheckboxes" data-action="change:notifications-list-subscription-form#threadTypeCheckboxesUpdated">
Issues
</label>
<span class="tooltipped tooltipped-nw mr-2 p-1 float-right" aria-label="Issues are not enabled for this repo">
<svg style="fill: var(--color-icon-tertiary)" class="octicon octicon-info" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z"></path></svg>
</span>
</div>
<div class="form-checkbox mr-3 ml-6 ml-sm-5 mb-2 mt-0">
<label class="f5 text-normal">
<input type="checkbox" name="thread_types[]" value="PullRequest" data-targets="notifications-list-subscription-form.threadTypeCheckboxes" data-action="change:notifications-list-subscription-form#threadTypeCheckboxesUpdated">
Pull requests
</label>
</div>
<div class="form-checkbox mr-3 ml-6 ml-sm-5 mb-2 mt-0">
<label class="f5 text-normal">
<input type="checkbox" name="thread_types[]" value="Release" data-targets="notifications-list-subscription-form.threadTypeCheckboxes" data-action="change:notifications-list-subscription-form#threadTypeCheckboxesUpdated">
Releases
</label>
</div>
<div class="form-checkbox mr-3 ml-6 ml-sm-5 mb-2 mt-0">
<label class="f5 text-normal">
<input type="checkbox" name="thread_types[]" value="Discussion" data-targets="notifications-list-subscription-form.threadTypeCheckboxes" data-action="change:notifications-list-subscription-form#threadTypeCheckboxesUpdated">
Discussions
</label>
<span class="tooltipped tooltipped-nw mr-2 p-1 float-right" aria-label="Discussions are not enabled for this repo">
<svg style="fill: var(--color-icon-tertiary)" class="octicon octicon-info" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 1.5a6.5 6.5 0 100 13 6.5 6.5 0 000-13zM0 8a8 8 0 1116 0A8 8 0 010 8zm6.5-.25A.75.75 0 017.25 7h1a.75.75 0 01.75.75v2.75h.25a.75.75 0 010 1.5h-2a.75.75 0 010-1.5h.25v-2h-.25a.75.75 0 01-.75-.75zM8 6a1 1 0 100-2 1 1 0 000 2z"></path></svg>
</span>
</div>
</fieldset>
<div class="pt-2 pb-3 px-3 d-flex flex-justify-start flex-row-reverse">
<button type="submit" name="do" value="custom" class="btn btn-sm btn-primary ml-2" data-target="notifications-list-subscription-form.customSubmit" disabled="disabled">Apply</button>
<button class="btn btn-sm" type="button" data-action="click:notifications-list-subscription-form#resetForm" data-close-dialog="">Cancel</button>
</div>
</form> </div>
</details-dialog>
<div class="notifications-component-dialog-overlay"></div>
</details>
<a class="social-count" href="https://github.com/QubesOS/qubes-core-agent-linux/watchers" aria-label="10 users are watching this repository" data-target="notifications-list-subscription-form.socialCount">
10
</a>
<div class="Popover js-notice" style="top: 26px;left: -44%;">
<div class="Popover-message Popover-message--large p-4 mt-2 Box box-shadow-large">
<h4 class="mb-2 d-flex flex-items-center">
<span>🔖 Custom notification settings</span>
</h4>
<p class="text-gray">
Looking for a little more control? Now you can choose
which types of activity you’d like to be notified about per repository.
</p>
<form class="js-notice-dismiss" action="/settings/dismiss-notice/custom_notification_controls_subscription_notice" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="sU+b7y7ANdXqgInIfqQVP5Gzb2GAhg1Ibvi/5hoBNQIcy2sxNw5Vz5aI9nBkiRofXSss3j5TlAKLMkYVGFwH2A==">
<button type="submit" class="btn btn-outline mt-2 text-bold"><strong>Got it</strong></button>
</form> </div>
</div>
</notifications-list-subscription-form>
</li>
<li>
<div class="d-block js-toggler-container js-social-container starring-container ">
<form class="starred js-social-form" action="/QubesOS/qubes-core-agent-linux/unstar" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="fuIkkPYpOHvLcwOUm6yvEfy1pXhuXtrYvfA5osuzHi9He8rEi58GGob/QNua4sLDfBWI0RmTwPQVbJl3bKcyhw==">
<input type="hidden" name="context" value="repository">
<button type="submit" class="btn btn-sm btn-with-count js-toggler-target" aria-label="Unstar this repository" title="Unstar QubesOS/qubes-core-agent-linux" data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;UNSTAR_BUTTON&quot;,&quot;repository_id&quot;:30624145,&quot;originating_url&quot;:&quot;https://github.com/QubesOS/qubes-core-agent-linux/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce&quot;,&quot;user_id&quot;:15262083}}" data-hydro-click-hmac="b6aac0fc073f3039105ee3eb17d8e2cf9bf3c6cb27f367b3870d78d2f607f395" data-ga-click="Repository, click unstar button, action:commit#show; text:Unstar"> <svg class="octicon octicon-star-fill mr-1" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25z"></path></svg>
<span>
Unstar
</span></button> <a class="social-count js-social-count" href="https://github.com/QubesOS/qubes-core-agent-linux/stargazers" aria-label="26 users starred this repository">
26
</a>
</form>
<form class="unstarred js-social-form" action="/QubesOS/qubes-core-agent-linux/star" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="INRYbx9nM/xAaiGE7bLgGBpi99PiC6xlyvPAkKop9h5nhOidyxS/RdUvsCmGy8h2dFeTp4IXedTNKxs7A48upA==">
<input type="hidden" name="context" value="repository">
<button type="submit" class="btn btn-sm btn-with-count js-toggler-target" aria-label="Unstar this repository" title="Star QubesOS/qubes-core-agent-linux" data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;STAR_BUTTON&quot;,&quot;repository_id&quot;:30624145,&quot;originating_url&quot;:&quot;https://github.com/QubesOS/qubes-core-agent-linux/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce&quot;,&quot;user_id&quot;:15262083}}" data-hydro-click-hmac="8d69e31a0b1216b2f62b3ef18a6424377b3e316f31a3acb1127ea04646302e90" data-ga-click="Repository, click star button, action:commit#show; text:Star"> <svg class="octicon octicon-star mr-1" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8 .25a.75.75 0 01.673.418l1.882 3.815 4.21.612a.75.75 0 01.416 1.279l-3.046 2.97.719 4.192a.75.75 0 01-1.088.791L8 12.347l-3.766 1.98a.75.75 0 01-1.088-.79l.72-4.194L.818 6.374a.75.75 0 01.416-1.28l4.21-.611L7.327.668A.75.75 0 018 .25zm0 2.445L6.615 5.5a.75.75 0 01-.564.41l-3.097.45 2.24 2.184a.75.75 0 01.216.664l-.528 3.084 2.769-1.456a.75.75 0 01.698 0l2.77 1.456-.53-3.084a.75.75 0 01.216-.664l2.24-2.183-3.096-.45a.75.75 0 01-.564-.41L8 2.694v.001z"></path></svg>
<span>
Star
</span></button> <a class="social-count js-social-count" href="https://github.com/QubesOS/qubes-core-agent-linux/stargazers" aria-label="26 users starred this repository">
26
</a>
</form> </div>
</li>
<li>
<div class="float-left">
<details class="details-reset details-overlay details-overlay-dark ">
<summary class="btn btn-sm btn-with-count" title="Fork your own copy of QubesOS/qubes-core-agent-linux to your account" data-hydro-click="{&quot;event_type&quot;:&quot;repository.click&quot;,&quot;payload&quot;:{&quot;target&quot;:&quot;FORK_BUTTON&quot;,&quot;repository_id&quot;:30624145,&quot;originating_url&quot;:&quot;https://github.com/QubesOS/qubes-core-agent-linux/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce&quot;,&quot;user_id&quot;:15262083}}" data-hydro-click-hmac="a733797890b5be278b7c845a002747092077534145fe4fbb1447ad204b5b304f" data-ga-click="Repository, show fork modal, action:commit#show; text:Fork" role="button">
<svg class="octicon octicon-repo-forked" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5 3.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm0 2.122a2.25 2.25 0 10-1.5 0v.878A2.25 2.25 0 005.75 8.5h1.5v2.128a2.251 2.251 0 101.5 0V8.5h1.5a2.25 2.25 0 002.25-2.25v-.878a2.25 2.25 0 10-1.5 0v.878a.75.75 0 01-.75.75h-4.5A.75.75 0 015 6.25v-.878zm3.75 7.378a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm3-8.75a.75.75 0 100-1.5.75.75 0 000 1.5z"></path></svg>
Fork
</summary>
<details-dialog class="Box d-flex flex-column anim-fade-in fast Box--overlay " aria-label="Fork qubes-core-agent-linux" src="/QubesOS/qubes-core-agent-linux/fork?fragment=1" preload="" role="dialog" aria-modal="true">
<div class="Box-header">
<button class="Box-btn-octicon btn-octicon float-right" type="button" aria-label="Close dialog" data-close-dialog="">
<svg class="octicon octicon-x" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg>
</button>
<h1 class="Box-title">Fork qubes-core-agent-linux</h1>
</div>
<div class="text-center overflow-auto">
<include-fragment>
<div class="octocat-spinner my-5" aria-label="Loading..."></div>
<p class="f5 text-gray">If this dialog fails to load, you can visit <a href="https://github.com/QubesOS/qubes-core-agent-linux/fork">the fork page</a> directly.</p>
</include-fragment>
</div>
</details-dialog>
</details>
</div>
<a href="https://github.com/QubesOS/qubes-core-agent-linux/network/members" class="social-count" aria-label="78 users forked this repository">
78
</a>
</li>
</ul>
</div>
<nav aria-label="Repository" data-pjax="#js-repo-pjax-container" class="js-repo-nav js-sidenav-container-pjax js-responsive-underlinenav overflow-hidden UnderlineNav px-3 px-md-4 px-lg-5 bg-gray-light">
<ul class="UnderlineNav-body list-style-none ">
<li class="d-flex">
<a class="js-selected-navigation-item selected UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item" data-tab-item="i0code-tab" data-hotkey="g c" data-ga-click="Repository, Navigation click, Code tab" aria-current="page" data-selected-links="repo_source repo_downloads repo_commits repo_releases repo_tags repo_branches repo_packages repo_deployments /QubesOS/qubes-core-agent-linux" href="https://github.com/QubesOS/qubes-core-agent-linux">
<svg class="octicon octicon-code UnderlineNav-octicon d-none d-sm-inline" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z"></path></svg>
<span data-content="Code">Code</span>
<span title="Not available" class="Counter "></span>
</a>
</li>
<li class="d-flex">
<a class="js-selected-navigation-item UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item" data-tab-item="i1pull-requests-tab" data-hotkey="g p" data-ga-click="Repository, Navigation click, Pull requests tab" data-selected-links="repo_pulls checks /QubesOS/qubes-core-agent-linux/pulls" href="https://github.com/QubesOS/qubes-core-agent-linux/pulls">
<svg class="octicon octicon-git-pull-request UnderlineNav-octicon d-none d-sm-inline" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.177 3.073L9.573.677A.25.25 0 0110 .854v4.792a.25.25 0 01-.427.177L7.177 3.427a.25.25 0 010-.354zM3.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122v5.256a2.251 2.251 0 11-1.5 0V5.372A2.25 2.25 0 011.5 3.25zM11 2.5h-1V4h1a1 1 0 011 1v5.628a2.251 2.251 0 101.5 0V5A2.5 2.5 0 0011 2.5zm1 10.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0zM3.75 12a.75.75 0 100 1.5.75.75 0 000-1.5z"></path></svg>
<span data-content="Pull requests">Pull requests</span>
<span title="6" class="Counter ">6</span>
</a>
</li>
<li class="d-flex">
<a class="js-selected-navigation-item UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item" data-tab-item="i2actions-tab" data-hotkey="g a" data-ga-click="Repository, Navigation click, Actions tab" data-selected-links="repo_actions /QubesOS/qubes-core-agent-linux/actions" href="https://github.com/QubesOS/qubes-core-agent-linux/actions">
<svg class="octicon octicon-play UnderlineNav-octicon d-none d-sm-inline" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 8a6.5 6.5 0 1113 0 6.5 6.5 0 01-13 0zM8 0a8 8 0 100 16A8 8 0 008 0zM6.379 5.227A.25.25 0 006 5.442v5.117a.25.25 0 00.379.214l4.264-2.559a.25.25 0 000-.428L6.379 5.227z"></path></svg>
<span data-content="Actions">Actions</span>
<span title="Not available" class="Counter "></span>
</a>
</li>
<li class="d-flex">
<a class="js-selected-navigation-item UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item" data-tab-item="i3projects-tab" data-hotkey="g b" data-ga-click="Repository, Navigation click, Projects tab" data-selected-links="repo_projects new_repo_project repo_project /QubesOS/qubes-core-agent-linux/projects" href="https://github.com/QubesOS/qubes-core-agent-linux/projects">
<svg class="octicon octicon-project UnderlineNav-octicon d-none d-sm-inline" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.75 0A1.75 1.75 0 000 1.75v12.5C0 15.216.784 16 1.75 16h12.5A1.75 1.75 0 0016 14.25V1.75A1.75 1.75 0 0014.25 0H1.75zM1.5 1.75a.25.25 0 01.25-.25h12.5a.25.25 0 01.25.25v12.5a.25.25 0 01-.25.25H1.75a.25.25 0 01-.25-.25V1.75zM11.75 3a.75.75 0 00-.75.75v7.5a.75.75 0 001.5 0v-7.5a.75.75 0 00-.75-.75zm-8.25.75a.75.75 0 011.5 0v5.5a.75.75 0 01-1.5 0v-5.5zM8 3a.75.75 0 00-.75.75v3.5a.75.75 0 001.5 0v-3.5A.75.75 0 008 3z"></path></svg>
<span data-content="Projects">Projects</span>
<span title="0" class="Counter " hidden="hidden">0</span>
</a>
</li>
<li class="d-flex">
<a class="js-selected-navigation-item UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item" data-tab-item="i4security-tab" data-hotkey="g s" data-ga-click="Repository, Navigation click, Security tab" data-selected-links="security overview alerts policy token_scanning code_scanning /QubesOS/qubes-core-agent-linux/security" href="https://github.com/QubesOS/qubes-core-agent-linux/security">
<svg class="octicon octicon-shield UnderlineNav-octicon d-none d-sm-inline" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.467.133a1.75 1.75 0 011.066 0l5.25 1.68A1.75 1.75 0 0115 3.48V7c0 1.566-.32 3.182-1.303 4.682-.983 1.498-2.585 2.813-5.032 3.855a1.7 1.7 0 01-1.33 0c-2.447-1.042-4.049-2.357-5.032-3.855C1.32 10.182 1 8.566 1 7V3.48a1.75 1.75 0 011.217-1.667l5.25-1.68zm.61 1.429a.25.25 0 00-.153 0l-5.25 1.68a.25.25 0 00-.174.238V7c0 1.358.275 2.666 1.057 3.86.784 1.194 2.121 2.34 4.366 3.297a.2.2 0 00.154 0c2.245-.956 3.582-2.104 4.366-3.298C13.225 9.666 13.5 8.36 13.5 7V3.48a.25.25 0 00-.174-.237l-5.25-1.68zM9 10.5a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.75a.75.75 0 10-1.5 0v3a.75.75 0 001.5 0v-3z"></path></svg>
<span data-content="Security">Security</span>
</a>
</li>
<li class="d-flex">
<a class="js-selected-navigation-item UnderlineNav-item hx_underlinenav-item no-wrap js-responsive-underlinenav-item" data-tab-item="i5insights-tab" data-ga-click="Repository, Navigation click, Insights tab" data-selected-links="repo_graphs repo_contributors dependency_graph dependabot_updates pulse people /QubesOS/qubes-core-agent-linux/pulse" href="https://github.com/QubesOS/qubes-core-agent-linux/pulse">
<svg class="octicon octicon-graph UnderlineNav-octicon d-none d-sm-inline" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.5 1.75a.75.75 0 00-1.5 0v12.5c0 .414.336.75.75.75h14.5a.75.75 0 000-1.5H1.5V1.75zm14.28 2.53a.75.75 0 00-1.06-1.06L10 7.94 7.53 5.47a.75.75 0 00-1.06 0L3.22 8.72a.75.75 0 001.06 1.06L7 7.06l2.47 2.47a.75.75 0 001.06 0l5.25-5.25z"></path></svg>
<span data-content="Insights">Insights</span>
<span title="Not available" class="Counter "></span>
</a>
</li>
</ul> <div class="position-absolute right-0 pr-3 pr-md-4 pr-lg-5 js-responsive-underlinenav-overflow" style="visibility:hidden;">
<details class="details-overlay details-reset position-relative">
<summary role="button">
<div class="UnderlineNav-item mr-0 border-0">
<svg class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path d="M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path></svg>
<span class="sr-only">More</span>
</div>
</summary> <div>
<details-menu role="menu" class="dropdown-menu dropdown-menu-sw ">
<ul>
<li data-menu-item="i0code-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /QubesOS/qubes-core-agent-linux" href="https://github.com/QubesOS/qubes-core-agent-linux">
Code
</a> </li>
<li data-menu-item="i1pull-requests-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /QubesOS/qubes-core-agent-linux/pulls" href="https://github.com/QubesOS/qubes-core-agent-linux/pulls">
Pull requests
</a> </li>
<li data-menu-item="i2actions-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /QubesOS/qubes-core-agent-linux/actions" href="https://github.com/QubesOS/qubes-core-agent-linux/actions">
Actions
</a> </li>
<li data-menu-item="i3projects-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /QubesOS/qubes-core-agent-linux/projects" href="https://github.com/QubesOS/qubes-core-agent-linux/projects">
Projects
</a> </li>
<li data-menu-item="i4security-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /QubesOS/qubes-core-agent-linux/security" href="https://github.com/QubesOS/qubes-core-agent-linux/security">
Security
</a> </li>
<li data-menu-item="i5insights-tab" hidden="">
<a role="menuitem" class="js-selected-navigation-item dropdown-item" data-selected-links=" /QubesOS/qubes-core-agent-linux/pulse" href="https://github.com/QubesOS/qubes-core-agent-linux/pulse">
Insights
</a> </li>
</ul>
</details-menu>
</div></details> </div>
</nav>
</div>
<div class="container-xl clearfix new-discussion-timeline px-3 px-md-4 px-lg-5">
<div class="repository-content ">
<a href="https://github.com/QubesOS/qubes-core-agent-linux/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce" class="d-none js-permalink-shortcut" data-hotkey="y">Permalink</a>
<div id="spoof-warning" class="mt-0 pb-3" aria-hidden="" hidden="">
<div class="flash mt-0 flash-warn clearfix">
<svg class="octicon octicon-alert float-left mt-1" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path></svg>
<div class="overflow-hidden">This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.</div>
</div>
</div>
<div class="commit full-commit mt-0 px-2 pt-2 ">
<a href="https://github.com/QubesOS/qubes-core-agent-linux/tree/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce" class="btn btn-outline float-right" title="Browse the repository at this point in the history" rel="nofollow">Browse files</a>
<p class="commit-title">
network: prevent IP spoofing on upstream (eth0) interface
</p>
<div class="commit-desc"><pre>Currently there is just one anti-spoofing firewall rule ensuring packets
coming through vif+ interfaces have the right source address. Add
another rule ensuring that addresses that belongs to VMs behind those
vif+ interface do not appear on other interfaces (specifically eth0, but
also physical ones).
Normally it wouldn't be an issue because of rp_filter (doing the same
based on route table), default DROP in FORWARD chain and also conntrack
(the need to guess exact port numbers and sequence numbers). But it
appears all three mechanisms are ineffective in some cases:
- rp_filter in many distributions (including Fedora and Debian) was
switched to Loose Mode, which doesn't verify exact interface
- there is a rule in FORWARD table allowing established connections and
conntrack does not keep track of input/output interfaces
- CVE-2019-14899 allows to guess all the data needed to inject packets
Reported-by: Demi M. Obenour &lt;demiobenour@gmail.com&gt;</pre></div>
<div class="commit-branches">
<svg class="octicon octicon-git-branch" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M11.75 2.5a.75.75 0 100 1.5.75.75 0 000-1.5zm-2.25.75a2.25 2.25 0 113 2.122V6A2.5 2.5 0 0110 8.5H6a1 1 0 00-1 1v1.128a2.251 2.251 0 11-1.5 0V5.372a2.25 2.25 0 111.5 0v1.836A2.492 2.492 0 016 7h4a1 1 0 001-1v-.628A2.25 2.25 0 019.5 3.25zM4.25 12a.75.75 0 100 1.5.75.75 0 000-1.5zM3.5 3.25a.75.75 0 111.5 0 .75.75 0 01-1.5 0z"></path></svg>
<ul class="branches-list">
<li class="branch"><a href="https://github.com/QubesOS/qubes-core-agent-linux">master</a></li>
<li class="pull-request">(<a title="Merged Pull Request: Add permanent neighbor entries" href="https://github.com/QubesOS/qubes-core-agent-linux/pull/232">#232</a>)</li>
</ul>
<svg class="octicon octicon-tag" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.5 7.775V2.75a.25.25 0 01.25-.25h5.025a.25.25 0 01.177.073l6.25 6.25a.25.25 0 010 .354l-5.025 5.025a.25.25 0 01-.354 0l-6.25-6.25a.25.25 0 01-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 010 2.474l-5.026 5.026a1.75 1.75 0 01-2.474 0l-6.25-6.25A1.75 1.75 0 011 7.775zM6 5a1 1 0 100 2 1 1 0 000-2z"></path></svg>
<ul class="branches-tag-list js-details-container">
<li><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/v4.1.22">v4.1.22</a></li>
<li class="abbrev-tags"><span class="hidden-text-expander"><button type="button" class="ellipsis-expander js-details-target" aria-expanded="false"></button></span></li>
<li class="more-commit-details"><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/v4.1.21">v4.1.21</a></li>
<li class="more-commit-details"><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/v4.1.20">v4.1.20</a></li>
<li class="more-commit-details"><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/v4.1.19">v4.1.19</a></li>
<li class="more-commit-details"><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/mm_9943585d">mm_9943585d</a></li>
<li class="more-commit-details"><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/mm_95022f94">mm_95022f94</a></li>
<li class="more-commit-details"><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/mm_9801dd7d">mm_9801dd7d</a></li>
<li class="more-commit-details"><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/mm_66b3e628">mm_66b3e628</a></li>
<li class="more-commit-details"><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/mm_5ddc1184">mm_5ddc1184</a></li>
<li class="more-commit-details"><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/mm_0fac1aa4">mm_0fac1aa4</a></li>
<li class="more-commit-details"><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/mm_ff89b2b4">mm_ff89b2b4</a></li>
<li class="more-commit-details"><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/mm_f39ed27b">mm_f39ed27b</a></li>
<li class="more-commit-details"><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/mm_e71edb85">mm_e71edb85</a></li>
<li class="more-commit-details"><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/mm_e1ebbf28">mm_e1ebbf28</a></li>
<li class="more-commit-details"><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/mm_ba4e7f85">mm_ba4e7f85</a></li>
<li><a href="https://github.com/QubesOS/qubes-core-agent-linux/releases/tag/mm_b15ff53b">mm_b15ff53b</a></li>
</ul>
</div>
<div class="commit-meta p-2 d-flex flex-wrap">
<div class="AvatarStack flex-self-start AvatarStack--two">
<div class="AvatarStack-body" aria-label="marmarek and DemiMarie (non-author committer)">
<a class="avatar avatar-user" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/users/marmarek/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" style="width:20px;height:20px;" href="https://github.com/marmarek">
<img alt="@marmarek" src="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/726704.jpg" class=" avatar-user" width="20" height="20">
</a> <a class="avatar avatar-user" data-skip-pjax="true" data-hovercard-type="user" data-hovercard-url="/users/DemiMarie/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" style="width:20px;height:20px;" href="https://github.com/DemiMarie">
<img alt="@DemiMarie" src="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/6395399.jpg" class=" avatar-user" width="20" height="20">
</a> </div>
</div>
<div class="flex-self-start no-wrap mr-md-4 mr-0">
<a href="https://github.com/QubesOS/qubes-core-agent-linux/commits?author=marmarek" class="commit-author user-mention" title="View all commits by marmarek">marmarek</a>
authored and <a href="https://github.com/QubesOS/qubes-core-agent-linux/commits?author=DemiMarie" class="commit-author user-mention" title="View all commits by DemiMarie">DemiMarie</a>
committed
<relative-time datetime="2020-11-10T20:47:25Z" class="no-wrap" title="Nov 10, 2020, 1:47 PM MST">on Nov 10, 2020</relative-time>
<div class="d-none d-md-inline-block">
<details class="dropdown dropdown-signed-commit details-reset details-overlay js-dropdown-details d-inline-block ml-1">
<summary class="signed-commit-badge signed-commit-badge-medium verified" title="Commit signature">
Verified
</summary>
<div class="anim-scale-in" style="position: relative; z-index: 200;">
<div class="dropdown-menu dropdown-menu-s py-0 text-gray-dark text-left">
<div class="signed-commit-header TableObject">
<div class="TableObject-item">
<svg height="32" class="octicon octicon-verified mr-2" viewBox="0 0 24 24" version="1.1" width="32" aria-hidden="true"><path d="M17.03 9.78a.75.75 0 00-1.06-1.06l-5.47 5.47-2.47-2.47a.75.75 0 00-1.06 1.06l3 3a.75.75 0 001.06 0l6-6z"></path><path fill-rule="evenodd" d="M14.136 1.2a3.61 3.61 0 00-4.272 0L8.489 2.21a2.11 2.11 0 01-.929.384l-1.686.259a3.61 3.61 0 00-3.021 3.02L2.594 7.56a2.11 2.11 0 01-.384.929L1.2 9.864a3.61 3.61 0 000 4.272l1.01 1.375c.2.274.333.593.384.929l.259 1.686a3.61 3.61 0 003.02 3.021l1.687.259c.336.051.655.183.929.384l1.375 1.01a3.61 3.61 0 004.272 0l1.375-1.01a2.11 2.11 0 01.929-.384l1.686-.259a3.61 3.61 0 003.021-3.02l.259-1.687a2.11 2.11 0 01.384-.929l1.01-1.375a3.61 3.61 0 000-4.272l-1.01-1.375a2.11 2.11 0 01-.384-.929l-.259-1.686a3.61 3.61 0 00-3.02-3.021l-1.687-.259a2.11 2.11 0 01-.929-.384L14.136 1.2zm-3.384 1.209a2.11 2.11 0 012.496 0l1.376 1.01a3.61 3.61 0 001.589.658l1.686.258a2.11 2.11 0 011.765 1.766l.26 1.686a3.61 3.61 0 00.657 1.59l1.01 1.375a2.11 2.11 0 010 2.496l-1.01 1.376a3.61 3.61 0 00-.658 1.589l-.258 1.686a2.11 2.11 0 01-1.766 1.765l-1.686.26a3.61 3.61 0 00-1.59.657l-1.375 1.01a2.11 2.11 0 01-2.496 0l-1.376-1.01a3.61 3.61 0 00-1.589-.658l-1.686-.258a2.11 2.11 0 01-1.766-1.766l-.258-1.686a3.61 3.61 0 00-.658-1.59l-1.01-1.375a2.11 2.11 0 010-2.496l1.01-1.376a3.61 3.61 0 00.658-1.589l.258-1.686a2.11 2.11 0 011.766-1.766l1.686-.258a3.61 3.61 0 001.59-.658l1.375-1.01z"></path></svg>
</div>
<div class="TableObject-item--primary">
This commit was signed with a <strong class="signed-commit-verified-label">verified signature</strong>.
</div>
</div>
<div class="signed-commit-signer TableObject">
<a class="TableObject-item" aria-label="DemiMarie" href="https://github.com/DemiMarie">
<img src="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/6395399_002.jpg" alt="" class="avatar mr-2" width="32" height="32">
</a>
<span class="signed-commit-signer-name TableObject-item--primary">
<a class="signer" href="https://github.com/DemiMarie">DemiMarie</a>
Demi Marie Obenour
</span>
</div>
<div class="signed-commit-footer">
<span class="d-block">GPG key ID: <span class="text-gray">28A45C93B0B5B6E0</span></span>
<a href="https://docs.github.com/articles/signing-commits-with-gpg/">Learn about signing commits</a>
</div>
</div>
</div>
</details>
</div>
</div>
<div class="flex-auto no-wrap text-lg-right text-left overflow-x-auto">
<span class="sha-block ml-0" data-pjax="">
1 parent
<a class="sha" data-hotkey="p" href="https://github.com/QubesOS/qubes-core-agent-linux/commit/68b61c2c6d1b18dff4db1c06f6c82521202b7a2c">68b61c2</a>
</span>
<span class="sha-block">commit <span class="sha user-select-contain">74f5fb5ac7160f145e8383d39d7c41c240f1f0ce</span></span>
</div>
</div>
</div>
<table style="display: none">
<tbody id="js-inline-comments-single-container-template">
<tr class="inline-comments js-inline-comments-container">
<td class="line-comments js-line-comments js-quote-selection-container p-0 p-sm-2" data-quote-markdown=".js-comment-body" colspan="3">
<div class="js-line-comments">
<div class="comment-holder js-comments-holder">
</div>
<div class="inline-comment-form-container js-inline-comment-form-container review-comment-form-container">
<div class="f6 pb-2 d-flex flex-justify-between js-multi-line-preview" hidden="">
<div class="f6 text-gray">
Commenting on lines
<span class="js-multi-line-preview-start ">
</span> to <span class="js-multi-line-preview-end ">
</span>
</div>
</div>
<div class="inline-comment-form border-md border-0 p-md-0 p-2 ">
<!-- '"` --><!-- </textarea></xmp> --><form class="js-inline-comment-form" action="/QubesOS/qubes-core-agent-linux/commit_comment/create" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="Oxkbh/xAE3arGZi6Y9QxTK+lcgmMbU0mpmgMm2xLc4Xt1lfEUJFuqdvo5YgWftzNULo/dWcU5Bd6Ti1rRwHwyg==">
<input type="text" name="required_field_278b" class="form-control" hidden="hidden"><input type="hidden" name="timestamp" value="1611717242790" class="form-control"><input type="hidden" name="timestamp_secret" value="66a08e4d908dd4bf0dd5e06369f1cefe46faf0aca56ca0cf03c808e87578e9d9" class="form-control">
<input type="hidden" name="comment_context" value="diff">
<input type="hidden" name="commit_id" value="74f5fb5ac7160f145e8383d39d7c41c240f1f0ce">
<input type="hidden" name="position" value="">
<tab-container class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=30624145&amp;subject=74f5fb5ac7160f145e8383d39d7c41c240f1f0ce&amp;subject_type=Commit">
<input type="hidden" value="7n/uNHw44gu9VdvunYf36EdViX1Ddyz/vYDctG+lRdfyV9CjZfAOH738fGssvUL5YNLo7pY8r1iBO9oyUy+KJA==" data-csrf="true" class="js-data-preview-url-csrf">
<div class="comment-form-head tabnav d-flex flex-justify-between mb-2 p-0 tabnav--responsive flex-column border-bottom-0 mb-0 mb-lg-2 flex-items-stretch border-lg-bottom color-border-primary flex-lg-items-center flex-lg-row">
<div class="tabnav-tabs mx-0 mx-md-2 mt-0 mt-md-2 no-wrap d-flex flex-auto d-md-block" role="tablist">
<button type="button" class="btn-link tabnav-tab write-tab js-write-tab px-3 px-sm-6 px-md-3 flex-1 flex-md-auto" role="tab" aria-selected="true" tabindex="0">
Write
</button>
<button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab flex-1 flex-md-auto" role="tab" aria-selected="false" tabindex="-1">
Preview
</button>
</div>
<markdown-toolbar role="toolbar" aria-label="Composition" for="r36905 new_inline_comment_diff_${anchor}_${position}" class="js-details-container Details toolbar-commenting d-flex no-wrap flex-items-start flex-wrap px-2 pt-2 pt-lg-0 border-md-top border-lg-top-0" tabindex="0">
<div class="d-block d-md-none flex-auto">
<button data-md-button="" tabindex="-1" type="button" aria-label="Toggle text tools" aria-expanded="false" class="js-details-target btn-link toolbar-item no-underline py-2 mr-1">
<svg class="octicon octicon-typography" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.21 8.5L4.574 3.594 2.857 8.5H6.21zm.5 1.5l.829 2.487a.75.75 0 001.423-.474L5.735 2.332a1.216 1.216 0 00-2.302-.018l-3.39 9.688a.75.75 0 001.415.496L2.332 10H6.71zm3.13-4.358C10.53 4.374 11.87 4 13 4c1.5 0 3 .939 3 2.601v5.649a.75.75 0 01-1.448.275C13.995 12.82 13.3 13 12.5 13c-.77 0-1.514-.231-2.078-.709-.577-.488-.922-1.199-.922-2.041 0-.694.265-1.411.887-1.944C11 7.78 11.88 7.5 13 7.5h1.5v-.899c0-.54-.5-1.101-1.5-1.101-.869 0-1.528.282-1.84.858a.75.75 0 11-1.32-.716zM14.5 9H13c-.881 0-1.375.22-1.637.444-.253.217-.363.5-.363.806 0 .408.155.697.39.896.249.21.63.354 1.11.354.732 0 1.26-.209 1.588-.449.35-.257.412-.495.412-.551V9z"></path></svg>
<svg class="octicon octicon-chevron-up Details-content--shown" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.22 9.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L8 6.06 4.28 9.78a.75.75 0 01-1.06 0z"></path></svg>
<svg class="octicon octicon-chevron-down Details-content--hidden" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z"></path></svg>
</button>
</div>
<div class="flex-nowrap d-none d-md-inline-block mr-3">
<md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-sw mx-1" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header" role="button">
<svg class="octicon octicon-heading" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.75 2a.75.75 0 01.75.75V7h7V2.75a.75.75 0 011.5 0v10.5a.75.75 0 01-1.5 0V8.5h-7v4.75a.75.75 0 01-1.5 0V2.75A.75.75 0 013.75 2z"></path></svg>
</md-header>
<md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-sw mx-1 js-modifier-label-key" aria-label="Add bold text &lt;ctrl+b&gt;" data-ga-click="Markdown Toolbar, click, bold" role="button" hotkey="b">
<svg class="octicon octicon-bold" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 2a1 1 0 00-1 1v10a1 1 0 001 1h5.5a3.5 3.5 0 001.852-6.47A3.5 3.5 0 008.5 2H4zm4.5 5a1.5 1.5 0 100-3H5v3h3.5zM5 9v3h4.5a1.5 1.5 0 000-3H5z"></path></svg>
</md-bold>
<md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-sw mx-1 js-modifier-label-key" aria-label="Add italic text &lt;ctrl+i&gt;" data-ga-click="Markdown Toolbar, click, italic" role="button" hotkey="i">
<svg class="octicon octicon-italic" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 2.75A.75.75 0 016.75 2h6.5a.75.75 0 010 1.5h-2.505l-3.858 9H9.25a.75.75 0 010 1.5h-6.5a.75.75 0 010-1.5h2.505l3.858-9H6.75A.75.75 0 016 2.75z"></path></svg>
</md-italic>
</div>
<div class="d-flex d-md-inline-block mr-0 mr-md-3">
<md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 p-md-1 mx-1" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote" role="button">
<svg class="octicon octicon-quote" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.75 2.5a.75.75 0 000 1.5h10.5a.75.75 0 000-1.5H1.75zm4 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM2.5 7.75a.75.75 0 00-1.5 0v6a.75.75 0 001.5 0v-6z"></path></svg>
</md-quote>
<md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 p-md-1 mx-1" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code" role="button">
<svg class="octicon octicon-code" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z"></path></svg>
</md-code>
<button type="button" data-md-button="" tabindex="-1" class="toolbar-item text-center menu-target p-2 mx-1 d-md-none js-markdown-link-button" aria-label="Add a link" data-ga-click="Markdown Toolbar, click, saved reply">
<svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg>
</button>
<template class="js-markdown-link-dialog">
<div class="Box-header">
<h3 class="Box-title">Insert Link</h3>
</div>
<div class="Box-body overflow-auto">
<div>
<label class="d-block mb-1" for="js-dialog-link-text">Link Text</label>
<input type="text" class="mb-3 form-control input-block" id="js-dialog-link-text" autofocus="">
</div>
<div>
<label class="d-block mb-1" for="js-dialog-link-href">URL</label>
<input type="url" class="mb-3 form-control input-block" id="js-dialog-link-href">
</div>
<div class="pt-3 border-top">
<button type="button" class="btn btn-primary btn-block js-markdown-link-insert" data-close-dialog="" data-for-textarea="r36905 new_inline_comment_diff_${anchor}_${position}">
Add
</button>
</div>
</div>
</template>
<md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 p-md-1 d-none d-md-block mx-1 js-modifier-label-key" aria-label="Add a link &lt;ctrl+k&gt;" data-ga-click="Markdown Toolbar, click, link" role="button" hotkey="k">
<svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg>
</md-link>
</div>
<div class="d-none d-md-inline-block mr-3">
<md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-sw mx-1" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list" role="button">
<svg class="octicon octicon-list-unordered" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path></svg>
</md-unordered-list>
<md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-sw mx-1" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list" role="button">
<svg class="octicon octicon-list-ordered" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.003 2.5a.5.5 0 00-.723-.447l-1.003.5a.5.5 0 00.446.895l.28-.14V6H.5a.5.5 0 000 1h2.006a.5.5 0 100-1h-.503V2.5zM5 3.25a.75.75 0 01.75-.75h8.5a.75.75 0 010 1.5h-8.5A.75.75 0 015 3.25zm0 5a.75.75 0 01.75-.75h8.5a.75.75 0 010 1.5h-8.5A.75.75 0 015 8.25zm0 5a.75.75 0 01.75-.75h8.5a.75.75 0 010 1.5h-8.5a.75.75 0 01-.75-.75zM.924 10.32l.003-.004a.851.851 0 01.144-.153A.66.66 0 011.5 10c.195 0 .306.068.374.146a.57.57 0 01.128.376c0 .453-.269.682-.8 1.078l-.035.025C.692 11.98 0 12.495 0 13.5a.5.5 0 00.5.5h2.003a.5.5 0 000-1H1.146c.132-.197.351-.372.654-.597l.047-.035c.47-.35 1.156-.858 1.156-1.845 0-.365-.118-.744-.377-1.038-.268-.303-.658-.484-1.126-.484-.48 0-.84.202-1.068.392a1.858 1.858 0 00-.348.384l-.007.011-.002.004-.001.002-.001.001a.5.5 0 00.851.525zM.5 10.055l-.427-.26.427.26z"></path></svg>
</md-ordered-list>
<md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-sw mx-1" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list" role="button" hotkey="L">
<svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.5 2.75a.25.25 0 01.25-.25h10.5a.25.25 0 01.25.25v10.5a.25.25 0 01-.25.25H2.75a.25.25 0 01-.25-.25V2.75zM2.75 1A1.75 1.75 0 001 2.75v10.5c0 .966.784 1.75 1.75 1.75h10.5A1.75 1.75 0 0015 13.25V2.75A1.75 1.75 0 0013.25 1H2.75zm9.03 5.28a.75.75 0 00-1.06-1.06L6.75 9.19 5.28 7.72a.75.75 0 00-1.06 1.06l2 2a.75.75 0 001.06 0l4.5-4.5z"></path></svg>
</md-task-list>
</div>
<div class="d-flex d-xs-inline-block">
<md-mention tabindex="-1" class="flex-auto text-center toolbar-item tooltipped tooltipped-sw p-2 p-md-1 mx-1" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention" role="button">
<svg class="octicon octicon-mention" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4.75 2.37a6.5 6.5 0 006.5 11.26.75.75 0 01.75 1.298 8 8 0 113.994-7.273.754.754 0 01.006.095v1.5a2.75 2.75 0 01-5.072 1.475A4 4 0 1112 8v1.25a1.25 1.25 0 002.5 0V7.867a6.5 6.5 0 00-9.75-5.496V2.37zM10.5 8a2.5 2.5 0 10-5 0 2.5 2.5 0 005 0z"></path></svg>
</md-mention>
<label for="fc-r36905 new_inline_comment_diff_${anchor}_${position}" data-md-button="" tabindex="-1" class="d-block d-md-none btn-link flex-auto text-center toolbar-item tooltipped tooltipped-sw p-2 mx-1" aria-label="Attach an image or video">
<svg class="octicon octicon-image" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.75 2.5a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h.94a.76.76 0 01.03-.03l6.077-6.078a1.75 1.75 0 012.412-.06L14.5 10.31V2.75a.25.25 0 00-.25-.25H1.75zm12.5 11H4.81l5.048-5.047a.25.25 0 01.344-.009l4.298 3.889v.917a.25.25 0 01-.25.25zm1.75-.25V2.75A1.75 1.75 0 0014.25 1H1.75A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25zM5.5 6a.5.5 0 11-1 0 .5.5 0 011 0zM7 6a2 2 0 11-4 0 2 2 0 014 0z"></path></svg>
</label>
<md-ref tabindex="-1" class="flex-auto text-center toolbar-item tooltipped tooltipped-sw p-2 p-md-1 mx-1" aria-label="Reference an issue, pull request, or discussion" data-ga-click="Markdown Toolbar, click, reference" role="button">
<svg class="octicon octicon-cross-reference" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 1.25v4.146a.25.25 0 01-.427.177L14.03 4.03l-3.75 3.75a.75.75 0 11-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0111.604 1h4.146a.25.25 0 01.25.25zM2.75 3.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 01.75.75v2.19l2.72-2.72a.75.75 0 01.53-.22h4.5a.25.25 0 00.25-.25v-2.5a.75.75 0 111.5 0v2.5A1.75 1.75 0 0113.25 13H9.06l-2.573 2.573A1.457 1.457 0 014 14.543V13H2.75A1.75 1.75 0 011 11.25v-7.5C1 2.784 1.784 2 2.75 2h5.5a.75.75 0 010 1.5h-5.5z"></path></svg>
</md-ref>
<details class="details-reset details-overlay flex-auto toolbar-item select-menu select-menu-modal-right js-saved-reply-container hx_rsm" tabindex="-1">
<summary data-md-button="" tabindex="-1" class="text-center menu-target py-2 p-md-1 hx_rsm-trigger ml-1" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply" aria-haspopup="menu" role="button">
<svg class="octicon octicon-reply" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.78 1.97a.75.75 0 010 1.06L3.81 6h6.44A4.75 4.75 0 0115 10.75v2.5a.75.75 0 01-1.5 0v-2.5a3.25 3.25 0 00-3.25-3.25H3.81l2.97 2.97a.75.75 0 11-1.06 1.06L1.47 7.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0z"></path></svg>
<span class="dropdown-caret hide-sm"></span>
</summary>
<details-menu style="z-index: 99;" class="select-menu-modal position-absolute right-0 js-saved-reply-menu hx_rsm-modal" data-menu-input="r36905 new_inline_comment_diff_${anchor}_${position}_saved_reply_id" src="/settings/replies?context=none" preload="" role="menu">
<div class="select-menu-header d-flex">
<span class="select-menu-title flex-auto">Select a reply</span>
<code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
</div>
<include-fragment role="menuitem" aria-label="Loading">
<svg viewBox="0 0 16 16" fill="none" style="box-sizing: content-box; color: var(--color-icon-primary);" class="my-6 mx-auto d-block" width="32" height="32">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke">
<animateTransform attributeName="transform" type="rotate" from="0 8 8" to="360 8 8" dur="1s" repeatCount="indefinite"></animateTransform>
</path>
</svg>
</include-fragment>
</details-menu>
</details>
</div>
<div class="Details-content--hidden d-block d-md-none width-full">
<md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-sw py-2 pr-2 pl-1 mr-1" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header" role="button">
<svg class="octicon octicon-heading" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.75 2a.75.75 0 01.75.75V7h7V2.75a.75.75 0 011.5 0v10.5a.75.75 0 01-1.5 0V8.5h-7v4.75a.75.75 0 01-1.5 0V2.75A.75.75 0 013.75 2z"></path></svg>
</md-header>
<md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 mx-1 js-modifier-label-key" aria-label="Add bold text &lt;ctrl+b&gt;" data-ga-click="Markdown Toolbar, click, bold" role="button" hotkey="b">
<svg class="octicon octicon-bold" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 2a1 1 0 00-1 1v10a1 1 0 001 1h5.5a3.5 3.5 0 001.852-6.47A3.5 3.5 0 008.5 2H4zm4.5 5a1.5 1.5 0 100-3H5v3h3.5zM5 9v3h4.5a1.5 1.5 0 000-3H5z"></path></svg>
</md-bold>
<md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 mx-1 js-modifier-label-key" aria-label="Add italic text &lt;ctrl+i&gt;" data-ga-click="Markdown Toolbar, click, italic" role="button" hotkey="i">
<svg class="octicon octicon-italic" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 2.75A.75.75 0 016.75 2h6.5a.75.75 0 010 1.5h-2.505l-3.858 9H9.25a.75.75 0 010 1.5h-6.5a.75.75 0 010-1.5h2.505l3.858-9H6.75A.75.75 0 016 2.75z"></path></svg>
</md-italic>
<md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 mx-1" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list" role="button">
<svg class="octicon octicon-list-unordered" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path></svg>
</md-unordered-list>
<md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 mx-1" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list" role="button">
<svg class="octicon octicon-list-ordered" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.003 2.5a.5.5 0 00-.723-.447l-1.003.5a.5.5 0 00.446.895l.28-.14V6H.5a.5.5 0 000 1h2.006a.5.5 0 100-1h-.503V2.5zM5 3.25a.75.75 0 01.75-.75h8.5a.75.75 0 010 1.5h-8.5A.75.75 0 015 3.25zm0 5a.75.75 0 01.75-.75h8.5a.75.75 0 010 1.5h-8.5A.75.75 0 015 8.25zm0 5a.75.75 0 01.75-.75h8.5a.75.75 0 010 1.5h-8.5a.75.75 0 01-.75-.75zM.924 10.32l.003-.004a.851.851 0 01.144-.153A.66.66 0 011.5 10c.195 0 .306.068.374.146a.57.57 0 01.128.376c0 .453-.269.682-.8 1.078l-.035.025C.692 11.98 0 12.495 0 13.5a.5.5 0 00.5.5h2.003a.5.5 0 000-1H1.146c.132-.197.351-.372.654-.597l.047-.035c.47-.35 1.156-.858 1.156-1.845 0-.365-.118-.744-.377-1.038-.268-.303-.658-.484-1.126-.484-.48 0-.84.202-1.068.392a1.858 1.858 0 00-.348.384l-.007.011-.002.004-.001.002-.001.001a.5.5 0 00.851.525zM.5 10.055l-.427-.26.427.26z"></path></svg>
</md-ordered-list>
<md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 mx-1" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list" role="button" hotkey="L">
<svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.5 2.75a.25.25 0 01.25-.25h10.5a.25.25 0 01.25.25v10.5a.25.25 0 01-.25.25H2.75a.25.25 0 01-.25-.25V2.75zM2.75 1A1.75 1.75 0 001 2.75v10.5c0 .966.784 1.75 1.75 1.75h10.5A1.75 1.75 0 0015 13.25V2.75A1.75 1.75 0 0013.25 1H2.75zm9.03 5.28a.75.75 0 00-1.06-1.06L6.75 9.19 5.28 7.72a.75.75 0 00-1.06 1.06l2 2a.75.75 0 001.06 0l4.5-4.5z"></path></svg>
</md-task-list>
</div>
</markdown-toolbar>
</div>
<div class="comment-form-error js-comment-form-error" role="alert" hidden="">
There was an error creating your Commit.
</div>
<file-attachment class="js-upload-markdown-image is-default" input="fc-r36905 new_inline_comment_diff_${anchor}_${position}" role="tabpanel" data-tab-container-no-tabstop="true" data-upload-repository-id="30624145" data-upload-policy-url="/upload/policies/assets"><input type="hidden" value="70+4BaW5P63XAXfz+CdAZ1iN73GkII5j96dtzT/xkQ/lYuPF9UFtFNg3IiXccKysg1QPVm20Lrnn5HpHrOcB2A==" data-csrf="true" class="js-data-upload-policy-url-csrf">
<div class="write-content js-write-bucket tooltipped tooltipped-ne tooltipped-no-delay tooltipped-align-left-1 hide-reaction-suggestion upload-enabled mx-0 mt-2 mb-2 mx-md-2 hx_sm-hide-drag-drop js-reaction-suggestion" data-reaction-markup="Would you like to leave a reaction instead?">
<input type="hidden" name="saved_reply_id" id="r36905 new_inline_comment_diff_${anchor}_${position}_saved_reply_id" class="js-resettable-field" value="" data-reset-value="">
<text-expander keys=": @ #" data-issue-url="/suggestions/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce?issue_suggester=1&amp;repository=qubes-core-agent-linux&amp;user_id=QubesOS" data-mention-url="/suggestions/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce?mention_suggester=1&amp;repository=qubes-core-agent-linux&amp;user_id=QubesOS" multiword="#" data-emoji-url="/autocomplete/emoji">
<textarea name="comment[body]" id="r36905 new_inline_comment_diff_${anchor}_${position}" placeholder="Leave a comment" aria-label="Comment body" data-required-trimmed="Text field is empty" class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-session-resumable js-saved-reply-shortcut-comment-field" required=""></textarea>
</text-expander>
<label class="text-normal drag-and-drop hx_drag-and-drop position-relative d-flex flex-justify-between">
<input accept=".gif,.jpeg,.jpg,.mov,.mp4,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file" multiple="" class="manual-file-chooser manual-file-chooser-transparent top-0 right-0 bottom-0 left-0 width-full ml-0 form-control" id="fc-r36905 new_inline_comment_diff_${anchor}_${position}">
<span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
<span class="position-relative pr-2" style="pointer-events: none;">
<span class="default">
Attach files by dragging &amp; dropping, selecting or pasting them.
</span>
<span class="loading">
<svg viewBox="0 0 16 16" fill="none" style="box-sizing: content-box; color: var(--color-icon-primary);" class="v-align-text-bottom mr-1" width="16" height="16">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke">
<animateTransform attributeName="transform" type="rotate" from="0 8 8" to="360 8 8" dur="1s" repeatCount="indefinite"></animateTransform>
</path>
</svg> Uploading your files…
</span>
<span class="error bad-file">
We don’t support that file type.
<span class="drag-and-drop-error-info">
<span class="btn-link">Try again</span> with a
GIF, JPEG, JPG, MOV, MP4, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
</span>
</span>
<span class="error bad-permissions">
Attaching documents requires write permission to this repository.
<span class="drag-and-drop-error-info">
<span class="btn-link">Try again</span> with a GIF, JPEG, JPG, MOV, MP4, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
</span>
</span>
<span class="error repository-required">
We don’t support that file type.
<span class="drag-and-drop-error-info">
<span class="btn-link">Try again</span> with a GIF, JPEG, JPG, MOV, MP4, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
</span>
</span>
<span class="error too-big">
Yowza, that’s a big file
<span class="drag-and-drop-error-info">
<span class="btn-link">Try again</span> with a file smaller than 10MB.
</span>
</span>
<span class="error empty">
This file is empty.
<span class="drag-and-drop-error-info">
<span class="btn-link">Try again</span> with a file that’s not empty.
</span>
</span>
<span class="error hidden-file">
This file is hidden.
<span class="drag-and-drop-error-info">
<span class="btn-link">Try again</span> with another file.
</span>
</span>
<span class="error failed-request">
Something went really wrong, and we can’t process that file.
<span class="drag-and-drop-error-info">
<span class="btn-link">Try again.</span>
</span>
</span>
</span>
<span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
<a class="muted-link position-relative d-inline" href="https://guides.github.com/features/mastering-markdown/" target="_blank" data-ga-click="Markdown Toolbar, click, help" aria-label="Learn about styling with Markdown">
<svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"></path></svg>
</a>
</span>
</label>
<span class="js-sparkles-remaining-container" hidden=""></span>
</div>
</file-attachment>
<div role="tabpanel" class="js-preview-panel overflow-auto border-bottom mx-0 my-3 mx-md-2 mb-md-2" hidden="">
<input type="hidden" name="path" value="" class="js-path">
<input type="hidden" name="line" value="" class="js-line-number">
<input type="hidden" name="start_line" value="" class="js-start-line-number">
<input type="hidden" name="preview_side" value="" class="js-side">
<input type="hidden" name="preview_start_side" value="" class="js-start-side">
<input type="hidden" name="start_commit_oid" value="false" class="js-start-commit-oid">
<input type="hidden" name="end_commit_oid" value="false" class="js-end-commit-oid">
<input type="hidden" name="base_commit_oid" value="false" class="js-base-commit-oid">
<input type="hidden" name="comment_id" value="" class="js-comment-id">
<div class="comment js-suggested-changes-container" data-thread-side="">
<div class="comment-body markdown-body js-preview-body" data-skip-sizing="" style="max-height:50vh;">
<p>Nothing to preview</p>
</div>
</div>
</div>
<div class="comment-form-error mb-2 js-comment-update-error" hidden=""></div>
</tab-container>
<div class="form-actions float-md-right float-none px-md-2 px-0">
<div class="position-relative float-md-right float-none ml-md-1 ml-0">
<button name="single_comment" type="submit" value="1" class="btn review-simple-reply-button js-quick-submit-alternative mr-md-1 mr-0 width-full width-md-auto mb-md-0 mb-2 " data-disable-invalid="" data-disable-with="" disabled="disabled">
Add single comment
</button>
</div>
<button class="btn js-hide-inline-comment-form float-md-right float-none width-full width-md-auto" data-confirm-cancel-text="Are you sure you want to discard your unsaved changes?" type="button">Cancel</button>
</div>
</form> </div>
</div>
</div>
</td>
</tr>
</tbody>
</table>
<a name="diff-stat"></a>
<div id="toc" class="details-collapse table-of-contents js-details-container Details">
<div class="BtnGroup float-right ml-2" data-ga-load="Diff, view, Viewed Unified Diff">
<a class="btn btn-sm BtnGroup-item selected" aria-current="true" href="https://github.com/QubesOS/qubes-core-agent-linux/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce?branch=74f5fb5ac7160f145e8383d39d7c41c240f1f0ce&amp;diff=unified">
Unified
</a>
<a class="btn btn-sm BtnGroup-item" href="https://github.com/QubesOS/qubes-core-agent-linux/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce?branch=74f5fb5ac7160f145e8383d39d7c41c240f1f0ce&amp;diff=split">
Split
</a>
</div>
<div class="toc-diff-stats">
<svg class="octicon octicon-file-diff" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.75 1.5a.25.25 0 00-.25.25v12.5c0 .138.112.25.25.25h10.5a.25.25 0 00.25-.25V4.664a.25.25 0 00-.073-.177l-2.914-2.914a.25.25 0 00-.177-.073H2.75zM1 1.75C1 .784 1.784 0 2.75 0h7.586c.464 0 .909.184 1.237.513l2.914 2.914c.329.328.513.773.513 1.237v9.586A1.75 1.75 0 0113.25 16H2.75A1.75 1.75 0 011 14.25V1.75zm7 1.5a.75.75 0 01.75.75v1.5h1.5a.75.75 0 010 1.5h-1.5v1.5a.75.75 0 01-1.5 0V7h-1.5a.75.75 0 010-1.5h1.5V4A.75.75 0 018 3.25zm-3 8a.75.75 0 01.75-.75h4.5a.75.75 0 010 1.5h-4.5a.75.75 0 01-.75-.75z"></path></svg>
Showing
<button type="button" class="btn-link js-details-target" aria-expanded="false">
1 changed file
</button>
with
<strong>4 additions</strong>
and <strong>1 deletion</strong>.
</div>
<ol class="content collapse js-transitionable">
<li>
<span class="diffstat float-right">
<span class="text-green">
+4
</span>
<span class="text-red">
−1
</span>
<a href="#diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" class="tooltipped tooltipped-s" aria-label="5 lines changed">
<span class="diffstat-block-added"></span><span class="diffstat-block-added"></span><span class="diffstat-block-added"></span><span class="diffstat-block-added"></span><span class="diffstat-block-deleted"></span>
</a>
</span>
<svg title="modified" class="octicon octicon-diff-modified" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.75 2.5h10.5a.25.25 0 01.25.25v10.5a.25.25 0 01-.25.25H2.75a.25.25 0 01-.25-.25V2.75a.25.25 0 01.25-.25zM13.25 1H2.75A1.75 1.75 0 001 2.75v10.5c0 .966.784 1.75 1.75 1.75h10.5A1.75 1.75 0 0015 13.25V2.75A1.75 1.75 0 0013.25 1zM8 10a2 2 0 100-4 2 2 0 000 4z"></path></svg>
<a href="#diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21">network/vif-route-qubes</a>
</li>
</ol>
</div>
<div id="files" class="diff-view commentable">
<div class="js-diff-progressive-container">
<div id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" data-details-container-group="file" class="file js-file js-details-container js-targetable-element Details
Details--on open
show-inline-notes
" data-file-type="No extension" data-file-deleted="false">
<div class="file-header d-flex flex-md-row flex-column flex-md-items-center file-header--expandable js-file-header " data-path="network/vif-route-qubes" data-short-path="26462cc" data-anchor="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" data-file-type="No extension" data-file-deleted="false">
<div class="file-info flex-auto min-width-0 mb-md-0 mb-2">
<button type="button" class="btn-octicon js-details-target" aria-label="Toggle diff contents" aria-expanded="true" style="width: 22px;">
<svg class="octicon octicon-chevron-down Details-content--hidden" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z"></path></svg>
<svg class="octicon octicon-chevron-right Details-content--shown" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.22 3.22a.75.75 0 011.06 0l4.25 4.25a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06-1.06L9.94 8 6.22 4.28a.75.75 0 010-1.06z"></path></svg>
</button>
<span class="diffstat tooltipped tooltipped-e" aria-label="5 changes: 4 additions &amp; 1 deletion">5 <span class="diffstat-block-added"></span><span class="diffstat-block-added"></span><span class="diffstat-block-added"></span><span class="diffstat-block-added"></span><span class="diffstat-block-deleted"></span></span>
<a title="network/vif-route-qubes" class="link-gray-dark" href="#diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21">network/vif-route-qubes</a>
<clipboard-copy value="network/vif-route-qubes" data-copy-feedback="Copied!" aria-label="Copy" class="js-clipboard-copy zeroclipboard-link text-gray link-hover-blue" tabindex="0" role="button">
<svg class="octicon octicon-clippy d-inline-block mx-1 js-clipboard-clippy-icon" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M5.75 1a.75.75 0 00-.75.75v3c0 .414.336.75.75.75h4.5a.75.75 0 00.75-.75v-3a.75.75 0 00-.75-.75h-4.5zm.75 3V2.5h3V4h-3zm-2.874-.467a.75.75 0 00-.752-1.298A1.75 1.75 0 002 3.75v9.5c0 .966.784 1.75 1.75 1.75h8.5A1.75 1.75 0 0014 13.25v-9.5a1.75 1.75 0 00-.874-1.515.75.75 0 10-.752 1.298.25.25 0 01.126.217v9.5a.25.25 0 01-.25.25h-8.5a.25.25 0 01-.25-.25v-9.5a.25.25 0 01.126-.217z"></path></svg>
<svg class="octicon octicon-check js-clipboard-check-icon mx-1 d-inline-block d-none text-green" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg>
</clipboard-copy>
</div>
<div class="file-actions pt-0 mb-md-0 mb-2 ml-md-2 flex-shrink-0 flex-md-justify-end">
<div class="d-flex flex-justify-end">
<details class="js-file-header-dropdown dropdown details-overlay details-reset pr-2 pl-2">
<summary class="height-full" aria-haspopup="menu" role="button">
<div class="height-full d-flex flex-items-center link-gray">
<svg aria-label="Show options" class="octicon octicon-kebab-horizontal" viewBox="0 0 16 16" version="1.1" width="16" height="16" role="img"><path d="M8 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zM1.5 9a1.5 1.5 0 100-3 1.5 1.5 0 000 3zm13 0a1.5 1.5 0 100-3 1.5 1.5 0 000 3z"></path></svg>
</div>
</summary>
<details-menu class="dropdown-menu dropdown-menu-sw show-more-popover text-gray-dark position-absolute f5" style="width:185px; z-index:99; right: -4px;" role="menu">
<label role="menuitemradio" class="dropdown-item btn-link text-normal d-block pl-5" tabindex="0" aria-checked="true">
<span class="position-absolute" style="margin-left: -20px;"><svg class="octicon octicon-check" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path fill-rule="evenodd" d="M13.78 4.22a.75.75 0 010 1.06l-7.25 7.25a.75.75 0 01-1.06 0L2.22 9.28a.75.75 0 011.06-1.06L6 10.94l6.72-6.72a.75.75 0 011.06 0z"></path></svg></span>
<input type="checkbox" checked="checked" class="d-none js-toggle-file-notes">
Show comments
</label>
<div role="none" class="dropdown-divider"></div>
<a href="https://github.com/QubesOS/qubes-core-agent-linux/blob/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce/network/vif-route-qubes" class="pl-5 dropdown-item btn-link" rel="nofollow" role="menuitem" data-ga-click="View file, click, location:files_changed_dropdown">
View file
</a>
<button type="button" disabled="disabled" role="menuitem" class="pl-5 dropdown-item btn-link" aria-label="You must be signed in and have push access to make changes.">
Edit file
</button>
<button type="button" disabled="disabled" role="menuitem" class="pl-5 dropdown-item btn-link" aria-label="You must be signed in and have push access to delete this file.">
Delete file
</button>
<div role="none" class="dropdown-divider"></div>
</details-menu>
</details>
</div>
</div>
</div>
<div class="js-file-content Details-content--hidden" data-hydro-view="{&quot;event_type&quot;:&quot;pull_request.select_diff_range&quot;,&quot;payload&quot;:{&quot;actor_id&quot;:15262083,&quot;pull_request_id&quot;:null,&quot;repository_id&quot;:null,&quot;diff_type&quot;:&quot;UNIFIED&quot;,&quot;whitespace_ignored&quot;:false,&quot;originating_url&quot;:&quot;https://github.com/QubesOS/qubes-core-agent-linux/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce&quot;,&quot;user_id&quot;:15262083}}" data-hydro-view-hmac="d70e5447d713091c75796778c777db1794fd9b8f497a33c9ad992b1440b86442">
<div class="data highlight js-blob-wrapper " style="overflow-x: auto">
<table class="diff-table js-diff-table tab-size " data-tab-size="8" data-diff-anchor="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" data-paste-markdown-skip="">
<tbody><tr class="js-expandable-line" data-position="0">
<td class="blob-num blob-num-expandable" colspan="2">
<a href="#diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" class="js-expand directional-expander single-expander" title="Expand Up" aria-label="Expand Up" data-url="/QubesOS/qubes-core-agent-linux/blob_excerpt/345b1205b53599e903d4e13c4b27678e25125d6a?diff=unified&amp;direction=up&amp;in_wiki_context=&amp;last_left=&amp;last_right=&amp;left=129&amp;left_hunk_size=7&amp;mode=100755&amp;path=network%2Fvif-route-qubes&amp;right=129&amp;right_hunk_size=10" data-left-range="1-128" data-right-range="1-128">
<svg class="octicon octicon-fold-up" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.823 1.677L4.927 4.573A.25.25 0 005.104 5H7.25v3.236a.75.75 0 101.5 0V5h2.146a.25.25 0 00.177-.427L8.177 1.677a.25.25 0 00-.354 0zM13.75 11a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zm-3.75.75a.75.75 0 01.75-.75h.5a.75.75 0 010 1.5h-.5a.75.75 0 01-.75-.75zM7.75 11a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5zM4 11.75a.75.75 0 01.75-.75h.5a.75.75 0 010 1.5h-.5a.75.75 0 01-.75-.75zM1.75 11a.75.75 0 000 1.5h.5a.75.75 0 000-1.5h-.5z"></path></svg>
</a>
</td>
<td class="blob-code blob-code-inner blob-code-hunk">@@ -129,7 +129,10 @@ if [ "${ip}" ]; then</td>
</tr>
<tr data-hunk="b215b08097ecc5b9512eb483205cee3d0a8b50f558add82d6726cf97997c5adf">
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21L129" data-line-number="129" class="blob-num blob-num-context js-linkable-line-number"></td>
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21R129" data-line-number="129" class="blob-num blob-num-context js-linkable-line-number"></td>
<td class="blob-code blob-code-context">
<button class="btn-link add-line-comment js-add-line-comment js-add-single-line-comment" data-path="network/vif-route-qubes" data-anchor="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" data-position="1" data-side="right" data-line="129" data-original-line=" else" type="button" aria-label="Add line comment">
<svg class="octicon octicon-plus" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg>
</button>
<span class="blob-code-inner blob-code-marker" data-code-marker=" "> <span class="pl-k">else</span></span></td>
</tr>
<tr data-hunk="b215b08097ecc5b9512eb483205cee3d0a8b50f558add82d6726cf97997c5adf">
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21L130" data-line-number="130" class="blob-num blob-num-context js-linkable-line-number"></td>
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21R130" data-line-number="130" class="blob-num blob-num-context js-linkable-line-number"></td>
<td class="blob-code blob-code-context">
<button class="btn-link add-line-comment js-add-line-comment js-add-single-line-comment" data-path="network/vif-route-qubes" data-anchor="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" data-position="2" data-side="right" data-line="130" data-original-line=" ipt=iptables-restore" type="button" aria-label="Add line comment">
<svg class="octicon octicon-plus" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg>
</button>
<span class="blob-code-inner blob-code-marker" data-code-marker=" "> ipt=iptables-restore</span></td>
</tr>
<tr data-hunk="b215b08097ecc5b9512eb483205cee3d0a8b50f558add82d6726cf97997c5adf">
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21L131" data-line-number="131" class="blob-num blob-num-context js-linkable-line-number"></td>
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21R131" data-line-number="131" class="blob-num blob-num-context js-linkable-line-number"></td>
<td class="blob-code blob-code-context">
<button class="btn-link add-line-comment js-add-line-comment js-add-single-line-comment" data-path="network/vif-route-qubes" data-anchor="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" data-position="3" data-side="right" data-line="131" data-original-line=" fi" type="button" aria-label="Add line comment">
<svg class="octicon octicon-plus" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg>
</button>
<span class="blob-code-inner blob-code-marker" data-code-marker=" "> <span class="pl-k">fi</span></span></td>
</tr>
<tr data-hunk="b215b08097ecc5b9512eb483205cee3d0a8b50f558add82d6726cf97997c5adf">
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21L132" data-line-number="132" class="blob-num blob-num-deletion js-linkable-line-number"></td>
<td class="blob-num blob-num-deletion empty-cell"></td>
<td class="blob-code blob-code-deletion">
<button class="btn-link add-line-comment js-add-line-comment js-add-single-line-comment" data-path="network/vif-route-qubes" data-anchor="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" data-position="4" data-side="left" data-line="132" data-original-line="- echo -e &quot;*raw\\n$iptables_cmd -i ${vif} ! -s ${addr} -j DROP\\nCOMMIT&quot; | \" type="button" aria-label="Add line comment">
<svg class="octicon octicon-plus" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg>
</button>
<span class="blob-code-inner blob-code-marker" data-code-marker="-"> <span class="pl-c1">echo</span> -e <span class="pl-s"><span class="pl-pds">"</span>*raw<span class="pl-cce">\\</span>n<span class="pl-smi">$iptables_cmd</span> -i <span class="pl-smi">${vif}</span> ! -s <span class="pl-smi">${addr}</span> -j DROP<span class="pl-cce">\\</span>nCOMMIT<span class="pl-pds">"</span></span> <span class="pl-k">|</span> \</span></td>
</tr>
<tr data-hunk="b215b08097ecc5b9512eb483205cee3d0a8b50f558add82d6726cf97997c5adf">
<td class="blob-num blob-num-addition empty-cell"></td>
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21R132" data-line-number="132" class="blob-num blob-num-addition js-linkable-line-number"></td>
<td class="blob-code blob-code-addition">
<button class="btn-link add-line-comment js-add-line-comment js-add-single-line-comment" data-path="network/vif-route-qubes" data-anchor="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" data-position="5" data-side="right" data-line="132" data-original-line="+ printf '%s\n' &quot;*raw&quot; \" type="button" aria-label="Add line comment">
<svg class="octicon octicon-plus" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg>
</button>
<span class="blob-code-inner blob-code-marker" data-code-marker="+"> <span class="pl-c1">printf</span> <span class="pl-s"><span class="pl-pds">'</span>%s\n<span class="pl-pds">'</span></span> <span class="pl-s"><span class="pl-pds">"</span>*raw<span class="pl-pds">"</span></span> \</span></td>
</tr>
<tr data-hunk="b215b08097ecc5b9512eb483205cee3d0a8b50f558add82d6726cf97997c5adf">
<td class="blob-num blob-num-addition empty-cell"></td>
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21R133" data-line-number="133" class="blob-num blob-num-addition js-linkable-line-number"></td>
<td class="blob-code blob-code-addition">
<button class="btn-link add-line-comment js-add-line-comment js-add-single-line-comment" data-path="network/vif-route-qubes" data-anchor="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" data-position="6" data-side="right" data-line="133" data-original-line="+ &quot;$iptables_cmd -i ${vif} ! -s ${addr} -j DROP&quot; \" type="button" aria-label="Add line comment">
<svg class="octicon octicon-plus" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg>
</button>
<span class="blob-code-inner blob-code-marker" data-code-marker="+"> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$iptables_cmd</span> -i <span class="pl-smi">${vif}</span> ! -s <span class="pl-smi">${addr}</span> -j DROP<span class="pl-pds">"</span></span> \</span></td>
</tr>
<tr data-hunk="b215b08097ecc5b9512eb483205cee3d0a8b50f558add82d6726cf97997c5adf">
<td class="blob-num blob-num-addition empty-cell"></td>
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21R134" data-line-number="134" class="blob-num blob-num-addition js-linkable-line-number"></td>
<td class="blob-code blob-code-addition">
<button class="btn-link add-line-comment js-add-line-comment js-add-single-line-comment" data-path="network/vif-route-qubes" data-anchor="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" data-position="7" data-side="right" data-line="134" data-original-line="+ &quot;$iptables_cmd ! -i vif+ -s ${addr} -j DROP&quot; \" type="button" aria-label="Add line comment">
<svg class="octicon octicon-plus" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg>
</button>
<span class="blob-code-inner blob-code-marker" data-code-marker="+"> <span class="pl-s"><span class="pl-pds">"</span><span class="pl-smi">$iptables_cmd</span> ! -i vif+ -s <span class="pl-smi">${addr}</span> -j DROP<span class="pl-pds">"</span></span> \</span></td>
</tr>
<tr data-hunk="b215b08097ecc5b9512eb483205cee3d0a8b50f558add82d6726cf97997c5adf">
<td class="blob-num blob-num-addition empty-cell"></td>
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21R135" data-line-number="135" class="blob-num blob-num-addition js-linkable-line-number"></td>
<td class="blob-code blob-code-addition">
<button class="btn-link add-line-comment js-add-line-comment js-add-single-line-comment" data-path="network/vif-route-qubes" data-anchor="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" data-position="8" data-side="right" data-line="135" data-original-line="+ &quot;COMMIT&quot; | \" type="button" aria-label="Add line comment">
<svg class="octicon octicon-plus" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg>
</button>
<span class="blob-code-inner blob-code-marker" data-code-marker="+"> <span class="pl-s"><span class="pl-pds">"</span>COMMIT<span class="pl-pds">"</span></span> <span class="pl-k">|</span> \</span></td>
</tr>
<tr data-hunk="b215b08097ecc5b9512eb483205cee3d0a8b50f558add82d6726cf97997c5adf">
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21L133" data-line-number="133" class="blob-num blob-num-context js-linkable-line-number"></td>
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21R136" data-line-number="136" class="blob-num blob-num-context js-linkable-line-number"></td>
<td class="blob-code blob-code-context">
<button class="btn-link add-line-comment js-add-line-comment js-add-single-line-comment" data-path="network/vif-route-qubes" data-anchor="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" data-position="9" data-side="right" data-line="136" data-original-line=" ${cmdprefix} $ipt --noflush $ipt_arg" type="button" aria-label="Add line comment">
<svg class="octicon octicon-plus" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg>
</button>
<span class="blob-code-inner blob-code-marker" data-code-marker=" "> <span class="pl-smi">${cmdprefix}</span> <span class="pl-smi">$ipt</span> --noflush <span class="pl-smi">$ipt_arg</span></span></td>
</tr>
<tr data-hunk="b215b08097ecc5b9512eb483205cee3d0a8b50f558add82d6726cf97997c5adf">
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21L134" data-line-number="134" class="blob-num blob-num-context js-linkable-line-number"></td>
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21R137" data-line-number="137" class="blob-num blob-num-context js-linkable-line-number"></td>
<td class="blob-code blob-code-context">
<button class="btn-link add-line-comment js-add-line-comment js-add-single-line-comment" data-path="network/vif-route-qubes" data-anchor="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" data-position="10" data-side="right" data-line="137" data-original-line=" done" type="button" aria-label="Add line comment">
<svg class="octicon octicon-plus" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg>
</button>
<span class="blob-code-inner blob-code-marker" data-code-marker=" "> <span class="pl-k">done</span></span></td>
</tr>
<tr data-hunk="b215b08097ecc5b9512eb483205cee3d0a8b50f558add82d6726cf97997c5adf">
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21L135" data-line-number="135" class="blob-num blob-num-context js-linkable-line-number"></td>
<td id="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21R138" data-line-number="138" class="blob-num blob-num-context js-linkable-line-number"></td>
<td class="blob-code blob-code-context">
<button class="btn-link add-line-comment js-add-line-comment js-add-single-line-comment" data-path="network/vif-route-qubes" data-anchor="diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" data-position="11" data-side="right" data-line="138" data-original-line=" # if no IPv6 is assigned, block all IPv6 traffic on that interface" type="button" aria-label="Add line comment">
<svg class="octicon octicon-plus" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.75 2a.75.75 0 01.75.75V7h4.25a.75.75 0 110 1.5H8.5v4.25a.75.75 0 11-1.5 0V8.5H2.75a.75.75 0 010-1.5H7V2.75A.75.75 0 017.75 2z"></path></svg>
</button>
<span class="blob-code-inner blob-code-marker" data-code-marker=" "> <span class="pl-c"><span class="pl-c">#</span> if no IPv6 is assigned, block all IPv6 traffic on that interface</span></span></td>
</tr>
<tr class="js-expandable-line" data-position="">
<td class="blob-num blob-num-expandable" colspan="2">
<a href="#diff-26462cc0298d59cfba48aa53621a84c01d9d962060d521d36f579e51bdb47f21" class="js-expand directional-expander single-expander" title="Expand Down" aria-label="Expand Down" data-url="/QubesOS/qubes-core-agent-linux/blob_excerpt/345b1205b53599e903d4e13c4b27678e25125d6a?diff=unified&amp;direction=down&amp;in_wiki_context=&amp;last_left=135&amp;last_right=138&amp;left=176&amp;left_hunk_size=&amp;mode=100755&amp;path=network%2Fvif-route-qubes&amp;right=176&amp;right_hunk_size=" data-left-range="136-175" data-right-range="139-175">
<svg class="octicon octicon-fold-down" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.177 14.323l2.896-2.896a.25.25 0 00-.177-.427H8.75V7.764a.75.75 0 10-1.5 0V11H5.104a.25.25 0 00-.177.427l2.896 2.896a.25.25 0 00.354 0zM2.25 5a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM6 4.25a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5a.75.75 0 01.75.75zM8.25 5a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5zM12 4.25a.75.75 0 01-.75.75h-.5a.75.75 0 010-1.5h.5a.75.75 0 01.75.75zm2.25.75a.75.75 0 000-1.5h-.5a.75.75 0 000 1.5h.5z"></path></svg>
</a>
</td>
<td class="blob-code blob-code-inner blob-code-hunk"></td>
</tr>
</tbody></table>
</div>
</div>
</div>
</div>
</div>
<button type="button" class="js-toggle-all-file-notes" data-hotkey="i" style="display:none">Toggle all file notes</button>
<svg aria-hidden="true" width="320px" height="84px" viewBox="0 0 340 84" version="1.1" xmlns="http://www.w3.org/2000/svg" xlink="http://www.w3.org/1999/xlink" class="diff-placeholder-svg position-absolute bottom-0">
<defs>
<clipPath id="diff-placeholder">
<rect x="0" y="0" width="67.0175439" height="11.9298746" rx="2"></rect>
<rect x="18.9473684" y="47.7194983" width="100.701754" height="11.9298746" rx="2"></rect>
<rect x="0" y="71.930126" width="37.8947368" height="11.9298746" rx="2"></rect>
<rect x="127.017544" y="48.0703769" width="53.3333333" height="11.9298746" rx="2"></rect>
<rect x="187.719298" y="48.0703769" width="72.9824561" height="11.9298746" rx="2"></rect>
<rect x="76.8421053" y="0" width="140.350877" height="11.9298746" rx="2"></rect>
<rect x="17.8947368" y="23.8597491" width="140.350877" height="11.9298746" rx="2"></rect>
<rect x="166.315789" y="23.8597491" width="173.684211" height="11.9298746" rx="2"></rect>
</clipPath>
<linearGradient id="animated-diff-gradient" x1="0" x2="0" y1="0" y2="1" spreadMethod="reflect">
<stop offset="0" stop-color="#eee"></stop>
<stop offset="0.2" stop-color="#eee"></stop>
<stop offset="0.5" stop-color="#ddd"></stop>
<stop offset="0.8" stop-color="#eee"></stop>
<stop offset="1" stop-color="#eee"></stop>
<animateTransform attributeName="y1" values="0%; 100%; 0" dur="1s" repeatCount="3"></animateTransform>
<animateTransform attributeName="y2" values="100%; 200%; 0" dur="1s" repeatCount="3"></animateTransform>
</linearGradient>
</defs>
</svg>
<div id="all_commit_comments" class="js-quote-selection-container" data-quote-markdown=".js-comment-body">
<div class="mb-1 mb-md-3">
<div id="partial-visible-comments-header" class="d-flex flex-items-center flex-column-reverse flex-md-row">
<h4 class="flex-auto text-md-left text-center">
0 comments
on commit <code class="commit-sha">74f5fb5</code>
</h4>
<div class="flex-shrink-0 mb-2 mb-md-0">
</div>
</div>
</div>
<div id="comments" class="comment-holder ml-0 pl-0 ml-md-6 pl-md-3">
<!-- Rendered timeline since 2020-11-10 12:47:25 -->
<div id="partial-timeline-marker" class="js-timeline-marker js-socket-channel js-updatable-content" data-channel="eyJjIjoicmVwbzozMDYyNDE0NTpjb21taXQ6NzRmNWZiNWFjNzE2MGYxNDVlODM4M2QzOWQ3YzQxYzI0MGYxZjBjZSIsInQiOjE2MTE3MTcyNDJ9--7f35f06d567ab587db3ef11a80ff31b8c3cf21d1a183f645ff951135a8f98e3e" data-url="/QubesOS/qubes-core-agent-linux/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce/show_partial?partial=commit%2Ftimeline_marker&amp;since=1605041245" data-last-modified="Tue, 10 Nov 2020 20:47:25 GMT">
</div>
</div>
<div class="timeline-comment-wrapper timeline-new-comment js-comment-container ml-0 pl-0 ml-md-6 pl-md-3 ">
<div class="d-none d-md-block">
<span class="timeline-comment-avatar "><a class="d-inline-block" data-hovercard-type="user" data-hovercard-url="/users/wtolley/hovercard" data-octo-click="hovercard-link-click" data-octo-dimensions="link_type:self" href="https://github.com/wtolley"><img class="avatar avatar-user" src="network%20prevent%20IP%20spoofing%20on%20upstream%20(eth0)%20interface%20%C2%B7%20QubesOS_qubes-core-agent-linux@74f5fb5_files/15262083_002.png" alt="@wtolley" width="40" height="40"></a></span>
</div>
<!-- '"` --><!-- </textarea></xmp> --><form class="js-new-comment-form js-needs-timeline-marker-header" action="/QubesOS/qubes-core-agent-linux/commit_comment/create" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="JHyRvRBK8nb7+lGv35ICwo0K0KCl+0Mr7ifQ4MCCk0nys93+vJuPqYsLLJ2qOO9DchWd3E6C6hoyAfEQ68gQBg==">
<input type="text" name="required_field_30c6" class="form-control" hidden="hidden"><input type="hidden" name="timestamp" value="1611717242897" class="form-control"><input type="hidden" name="timestamp_secret" value="850def5654e9aeed74f72b44625f0f5c4811917cdc2f7c114693756484bd5c43" class="form-control">
<div class="border-0 border-md timeline-comment">
<input type="hidden" name="commit_id" value="74f5fb5ac7160f145e8383d39d7c41c240f1f0ce">
<input type="hidden" name="path" value="">
<tab-container class="js-previewable-comment-form previewable-comment-form write-selected" data-preview-url="/preview?markdown_unsupported=false&amp;repository=30624145&amp;sparkles_supported=false&amp;subject=74f5fb5ac7160f145e8383d39d7c41c240f1f0ce&amp;subject_type=Commit">
<input type="hidden" value="gNoThhAiBhOdX5t/oRx7EflLspz5JVE4f4WaeX/kLUOc8i0RCerqB532PPoQJs4A3szTDyxu0p9DPpz/Q27isA==" data-csrf="true" class="js-data-preview-url-csrf">
<div class="comment-form-head tabnav d-flex flex-justify-between mb-2 p-0 tabnav--responsive flex-column border-bottom-0 mb-0 mb-lg-2 flex-items-stretch border-lg-bottom color-border-primary flex-lg-items-center flex-lg-row">
<div class="tabnav-tabs mx-0 mx-md-2 mt-0 mt-md-2 no-wrap d-flex flex-auto d-md-block" role="tablist">
<button type="button" class="btn-link tabnav-tab write-tab js-write-tab px-3 px-sm-6 px-md-3 flex-1 flex-md-auto" role="tab" aria-selected="true" tabindex="0">
Write
</button>
<button type="button" class="btn-link tabnav-tab preview-tab js-preview-tab flex-1 flex-md-auto" role="tab" aria-selected="false" tabindex="-1">
Preview
</button>
</div>
<markdown-toolbar role="toolbar" aria-label="Composition" for="new_commit_comment_field" class="js-details-container Details toolbar-commenting d-flex no-wrap flex-items-start flex-wrap px-2 pt-2 pt-lg-0 border-md-top border-lg-top-0" tabindex="0">
<div class="d-block d-md-none flex-auto">
<button data-md-button="" tabindex="-1" type="button" aria-label="Toggle text tools" aria-expanded="false" class="js-details-target btn-link toolbar-item no-underline py-2 mr-1">
<svg class="octicon octicon-typography" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.21 8.5L4.574 3.594 2.857 8.5H6.21zm.5 1.5l.829 2.487a.75.75 0 001.423-.474L5.735 2.332a1.216 1.216 0 00-2.302-.018l-3.39 9.688a.75.75 0 001.415.496L2.332 10H6.71zm3.13-4.358C10.53 4.374 11.87 4 13 4c1.5 0 3 .939 3 2.601v5.649a.75.75 0 01-1.448.275C13.995 12.82 13.3 13 12.5 13c-.77 0-1.514-.231-2.078-.709-.577-.488-.922-1.199-.922-2.041 0-.694.265-1.411.887-1.944C11 7.78 11.88 7.5 13 7.5h1.5v-.899c0-.54-.5-1.101-1.5-1.101-.869 0-1.528.282-1.84.858a.75.75 0 11-1.32-.716zM14.5 9H13c-.881 0-1.375.22-1.637.444-.253.217-.363.5-.363.806 0 .408.155.697.39.896.249.21.63.354 1.11.354.732 0 1.26-.209 1.588-.449.35-.257.412-.495.412-.551V9z"></path></svg>
<svg class="octicon octicon-chevron-up Details-content--shown" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.22 9.78a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0l4.25 4.25a.75.75 0 01-1.06 1.06L8 6.06 4.28 9.78a.75.75 0 01-1.06 0z"></path></svg>
<svg class="octicon octicon-chevron-down Details-content--hidden" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M12.78 6.22a.75.75 0 010 1.06l-4.25 4.25a.75.75 0 01-1.06 0L3.22 7.28a.75.75 0 011.06-1.06L8 9.94l3.72-3.72a.75.75 0 011.06 0z"></path></svg>
</button>
</div>
<div class="flex-nowrap d-none d-md-inline-block mr-3">
<md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-sw mx-1" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header" role="button">
<svg class="octicon octicon-heading" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.75 2a.75.75 0 01.75.75V7h7V2.75a.75.75 0 011.5 0v10.5a.75.75 0 01-1.5 0V8.5h-7v4.75a.75.75 0 01-1.5 0V2.75A.75.75 0 013.75 2z"></path></svg>
</md-header>
<md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-sw mx-1 js-modifier-label-key" aria-label="Add bold text &lt;ctrl+b&gt;" data-ga-click="Markdown Toolbar, click, bold" role="button" hotkey="b">
<svg class="octicon octicon-bold" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 2a1 1 0 00-1 1v10a1 1 0 001 1h5.5a3.5 3.5 0 001.852-6.47A3.5 3.5 0 008.5 2H4zm4.5 5a1.5 1.5 0 100-3H5v3h3.5zM5 9v3h4.5a1.5 1.5 0 000-3H5z"></path></svg>
</md-bold>
<md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-sw mx-1 js-modifier-label-key" aria-label="Add italic text &lt;ctrl+i&gt;" data-ga-click="Markdown Toolbar, click, italic" role="button" hotkey="i">
<svg class="octicon octicon-italic" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 2.75A.75.75 0 016.75 2h6.5a.75.75 0 010 1.5h-2.505l-3.858 9H9.25a.75.75 0 010 1.5h-6.5a.75.75 0 010-1.5h2.505l3.858-9H6.75A.75.75 0 016 2.75z"></path></svg>
</md-italic>
</div>
<div class="d-flex d-md-inline-block mr-0 mr-md-3">
<md-quote tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 p-md-1 mx-1" aria-label="Insert a quote" data-ga-click="Markdown Toolbar, click, quote" role="button">
<svg class="octicon octicon-quote" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.75 2.5a.75.75 0 000 1.5h10.5a.75.75 0 000-1.5H1.75zm4 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM2.5 7.75a.75.75 0 00-1.5 0v6a.75.75 0 001.5 0v-6z"></path></svg>
</md-quote>
<md-code tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 p-md-1 mx-1" aria-label="Insert code" data-ga-click="Markdown Toolbar, click, code" role="button">
<svg class="octicon octicon-code" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4.72 3.22a.75.75 0 011.06 1.06L2.06 8l3.72 3.72a.75.75 0 11-1.06 1.06L.47 8.53a.75.75 0 010-1.06l4.25-4.25zm6.56 0a.75.75 0 10-1.06 1.06L13.94 8l-3.72 3.72a.75.75 0 101.06 1.06l4.25-4.25a.75.75 0 000-1.06l-4.25-4.25z"></path></svg>
</md-code>
<button type="button" data-md-button="" tabindex="-1" class="toolbar-item text-center menu-target p-2 mx-1 d-md-none js-markdown-link-button" aria-label="Add a link" data-ga-click="Markdown Toolbar, click, saved reply">
<svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg>
</button>
<template class="js-markdown-link-dialog">
<div class="Box-header">
<h3 class="Box-title">Insert Link</h3>
</div>
<div class="Box-body overflow-auto">
<div>
<label class="d-block mb-1" for="js-dialog-link-text">Link Text</label>
<input type="text" class="mb-3 form-control input-block" id="js-dialog-link-text" autofocus="">
</div>
<div>
<label class="d-block mb-1" for="js-dialog-link-href">URL</label>
<input type="url" class="mb-3 form-control input-block" id="js-dialog-link-href">
</div>
<div class="pt-3 border-top">
<button type="button" class="btn btn-primary btn-block js-markdown-link-insert" data-close-dialog="" data-for-textarea="new_commit_comment_field">
Add
</button>
</div>
</div>
</template>
<md-link tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 p-md-1 d-none d-md-block mx-1 js-modifier-label-key" aria-label="Add a link &lt;ctrl+k&gt;" data-ga-click="Markdown Toolbar, click, link" role="button" hotkey="k">
<svg class="octicon octicon-link" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z"></path></svg>
</md-link>
</div>
<div class="d-none d-md-inline-block mr-3">
<md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-sw mx-1" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list" role="button">
<svg class="octicon octicon-list-unordered" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path></svg>
</md-unordered-list>
<md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-sw mx-1" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list" role="button">
<svg class="octicon octicon-list-ordered" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.003 2.5a.5.5 0 00-.723-.447l-1.003.5a.5.5 0 00.446.895l.28-.14V6H.5a.5.5 0 000 1h2.006a.5.5 0 100-1h-.503V2.5zM5 3.25a.75.75 0 01.75-.75h8.5a.75.75 0 010 1.5h-8.5A.75.75 0 015 3.25zm0 5a.75.75 0 01.75-.75h8.5a.75.75 0 010 1.5h-8.5A.75.75 0 015 8.25zm0 5a.75.75 0 01.75-.75h8.5a.75.75 0 010 1.5h-8.5a.75.75 0 01-.75-.75zM.924 10.32l.003-.004a.851.851 0 01.144-.153A.66.66 0 011.5 10c.195 0 .306.068.374.146a.57.57 0 01.128.376c0 .453-.269.682-.8 1.078l-.035.025C.692 11.98 0 12.495 0 13.5a.5.5 0 00.5.5h2.003a.5.5 0 000-1H1.146c.132-.197.351-.372.654-.597l.047-.035c.47-.35 1.156-.858 1.156-1.845 0-.365-.118-.744-.377-1.038-.268-.303-.658-.484-1.126-.484-.48 0-.84.202-1.068.392a1.858 1.858 0 00-.348.384l-.007.011-.002.004-.001.002-.001.001a.5.5 0 00.851.525zM.5 10.055l-.427-.26.427.26z"></path></svg>
</md-ordered-list>
<md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-sw mx-1" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list" role="button" hotkey="L">
<svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.5 2.75a.25.25 0 01.25-.25h10.5a.25.25 0 01.25.25v10.5a.25.25 0 01-.25.25H2.75a.25.25 0 01-.25-.25V2.75zM2.75 1A1.75 1.75 0 001 2.75v10.5c0 .966.784 1.75 1.75 1.75h10.5A1.75 1.75 0 0015 13.25V2.75A1.75 1.75 0 0013.25 1H2.75zm9.03 5.28a.75.75 0 00-1.06-1.06L6.75 9.19 5.28 7.72a.75.75 0 00-1.06 1.06l2 2a.75.75 0 001.06 0l4.5-4.5z"></path></svg>
</md-task-list>
</div>
<div class="d-flex d-xs-inline-block">
<md-mention tabindex="-1" class="flex-auto text-center toolbar-item tooltipped tooltipped-sw p-2 p-md-1 mx-1" aria-label="Directly mention a user or team" data-ga-click="Markdown Toolbar, click, mention" role="button">
<svg class="octicon octicon-mention" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4.75 2.37a6.5 6.5 0 006.5 11.26.75.75 0 01.75 1.298 8 8 0 113.994-7.273.754.754 0 01.006.095v1.5a2.75 2.75 0 01-5.072 1.475A4 4 0 1112 8v1.25a1.25 1.25 0 002.5 0V7.867a6.5 6.5 0 00-9.75-5.496V2.37zM10.5 8a2.5 2.5 0 10-5 0 2.5 2.5 0 005 0z"></path></svg>
</md-mention>
<label for="fc-new_commit_comment_field" data-md-button="" tabindex="-1" class="d-block d-md-none btn-link flex-auto text-center toolbar-item tooltipped tooltipped-sw p-2 mx-1" aria-label="Attach an image or video">
<svg class="octicon octicon-image" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M1.75 2.5a.25.25 0 00-.25.25v10.5c0 .138.112.25.25.25h.94a.76.76 0 01.03-.03l6.077-6.078a1.75 1.75 0 012.412-.06L14.5 10.31V2.75a.25.25 0 00-.25-.25H1.75zm12.5 11H4.81l5.048-5.047a.25.25 0 01.344-.009l4.298 3.889v.917a.25.25 0 01-.25.25zm1.75-.25V2.75A1.75 1.75 0 0014.25 1H1.75A1.75 1.75 0 000 2.75v10.5C0 14.216.784 15 1.75 15h12.5A1.75 1.75 0 0016 13.25zM5.5 6a.5.5 0 11-1 0 .5.5 0 011 0zM7 6a2 2 0 11-4 0 2 2 0 014 0z"></path></svg>
</label>
<md-ref tabindex="-1" class="flex-auto text-center toolbar-item tooltipped tooltipped-sw p-2 p-md-1 mx-1" aria-label="Reference an issue, pull request, or discussion" data-ga-click="Markdown Toolbar, click, reference" role="button">
<svg class="octicon octicon-cross-reference" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M16 1.25v4.146a.25.25 0 01-.427.177L14.03 4.03l-3.75 3.75a.75.75 0 11-1.06-1.06l3.75-3.75-1.543-1.543A.25.25 0 0111.604 1h4.146a.25.25 0 01.25.25zM2.75 3.5a.25.25 0 00-.25.25v7.5c0 .138.112.25.25.25h2a.75.75 0 01.75.75v2.19l2.72-2.72a.75.75 0 01.53-.22h4.5a.25.25 0 00.25-.25v-2.5a.75.75 0 111.5 0v2.5A1.75 1.75 0 0113.25 13H9.06l-2.573 2.573A1.457 1.457 0 014 14.543V13H2.75A1.75 1.75 0 011 11.25v-7.5C1 2.784 1.784 2 2.75 2h5.5a.75.75 0 010 1.5h-5.5z"></path></svg>
</md-ref>
<details class="details-reset details-overlay flex-auto toolbar-item select-menu select-menu-modal-right js-saved-reply-container hx_rsm" tabindex="-1">
<summary data-md-button="" tabindex="-1" class="text-center menu-target py-2 p-md-1 hx_rsm-trigger ml-1" aria-label="Insert a reply" data-ga-click="Markdown Toolbar, click, saved reply" aria-haspopup="menu" role="button">
<svg class="octicon octicon-reply" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6.78 1.97a.75.75 0 010 1.06L3.81 6h6.44A4.75 4.75 0 0115 10.75v2.5a.75.75 0 01-1.5 0v-2.5a3.25 3.25 0 00-3.25-3.25H3.81l2.97 2.97a.75.75 0 11-1.06 1.06L1.47 7.28a.75.75 0 010-1.06l4.25-4.25a.75.75 0 011.06 0z"></path></svg>
<span class="dropdown-caret hide-sm"></span>
</summary>
<details-menu style="z-index: 99;" class="select-menu-modal position-absolute right-0 js-saved-reply-menu hx_rsm-modal" data-menu-input="new_commit_comment_field_saved_reply_id" src="/settings/replies?context=none" preload="" role="menu">
<div class="select-menu-header d-flex">
<span class="select-menu-title flex-auto">Select a reply</span>
<code><span class="border rounded-1 p-1 mr-2">ctrl .</span></code>
</div>
<include-fragment role="menuitem" aria-label="Loading">
<svg viewBox="0 0 16 16" fill="none" style="box-sizing: content-box; color: var(--color-icon-primary);" class="my-6 mx-auto d-block" width="32" height="32">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke">
<animateTransform attributeName="transform" type="rotate" from="0 8 8" to="360 8 8" dur="1s" repeatCount="indefinite"></animateTransform>
</path>
</svg>
</include-fragment>
</details-menu>
</details>
</div>
<div class="Details-content--hidden d-block d-md-none width-full">
<md-header tabindex="-1" class="toolbar-item tooltipped tooltipped-sw py-2 pr-2 pl-1 mr-1" aria-label="Add header text" data-ga-click="Markdown Toolbar, click, header" role="button">
<svg class="octicon octicon-heading" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.75 2a.75.75 0 01.75.75V7h7V2.75a.75.75 0 011.5 0v10.5a.75.75 0 01-1.5 0V8.5h-7v4.75a.75.75 0 01-1.5 0V2.75A.75.75 0 013.75 2z"></path></svg>
</md-header>
<md-bold tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 mx-1 js-modifier-label-key" aria-label="Add bold text &lt;ctrl+b&gt;" data-ga-click="Markdown Toolbar, click, bold" role="button" hotkey="b">
<svg class="octicon octicon-bold" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M4 2a1 1 0 00-1 1v10a1 1 0 001 1h5.5a3.5 3.5 0 001.852-6.47A3.5 3.5 0 008.5 2H4zm4.5 5a1.5 1.5 0 100-3H5v3h3.5zM5 9v3h4.5a1.5 1.5 0 000-3H5z"></path></svg>
</md-bold>
<md-italic tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 mx-1 js-modifier-label-key" aria-label="Add italic text &lt;ctrl+i&gt;" data-ga-click="Markdown Toolbar, click, italic" role="button" hotkey="i">
<svg class="octicon octicon-italic" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M6 2.75A.75.75 0 016.75 2h6.5a.75.75 0 010 1.5h-2.505l-3.858 9H9.25a.75.75 0 010 1.5h-6.5a.75.75 0 010-1.5h2.505l3.858-9H6.75A.75.75 0 016 2.75z"></path></svg>
</md-italic>
<md-unordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 mx-1" aria-label="Add a bulleted list" data-ga-click="Markdown Toolbar, click, unordered list" role="button">
<svg class="octicon octicon-list-unordered" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2 4a1 1 0 100-2 1 1 0 000 2zm3.75-1.5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zm0 5a.75.75 0 000 1.5h8.5a.75.75 0 000-1.5h-8.5zM3 8a1 1 0 11-2 0 1 1 0 012 0zm-1 6a1 1 0 100-2 1 1 0 000 2z"></path></svg>
</md-unordered-list>
<md-ordered-list tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 mx-1" aria-label="Add a numbered list" data-ga-click="Markdown Toolbar, click, ordered list" role="button">
<svg class="octicon octicon-list-ordered" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.003 2.5a.5.5 0 00-.723-.447l-1.003.5a.5.5 0 00.446.895l.28-.14V6H.5a.5.5 0 000 1h2.006a.5.5 0 100-1h-.503V2.5zM5 3.25a.75.75 0 01.75-.75h8.5a.75.75 0 010 1.5h-8.5A.75.75 0 015 3.25zm0 5a.75.75 0 01.75-.75h8.5a.75.75 0 010 1.5h-8.5A.75.75 0 015 8.25zm0 5a.75.75 0 01.75-.75h8.5a.75.75 0 010 1.5h-8.5a.75.75 0 01-.75-.75zM.924 10.32l.003-.004a.851.851 0 01.144-.153A.66.66 0 011.5 10c.195 0 .306.068.374.146a.57.57 0 01.128.376c0 .453-.269.682-.8 1.078l-.035.025C.692 11.98 0 12.495 0 13.5a.5.5 0 00.5.5h2.003a.5.5 0 000-1H1.146c.132-.197.351-.372.654-.597l.047-.035c.47-.35 1.156-.858 1.156-1.845 0-.365-.118-.744-.377-1.038-.268-.303-.658-.484-1.126-.484-.48 0-.84.202-1.068.392a1.858 1.858 0 00-.348.384l-.007.011-.002.004-.001.002-.001.001a.5.5 0 00.851.525zM.5 10.055l-.427-.26.427.26z"></path></svg>
</md-ordered-list>
<md-task-list tabindex="-1" class="toolbar-item tooltipped tooltipped-sw p-2 mx-1" aria-label="Add a task list" data-ga-click="Markdown Toolbar, click, task list" role="button" hotkey="L">
<svg class="octicon octicon-tasklist" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M2.5 2.75a.25.25 0 01.25-.25h10.5a.25.25 0 01.25.25v10.5a.25.25 0 01-.25.25H2.75a.25.25 0 01-.25-.25V2.75zM2.75 1A1.75 1.75 0 001 2.75v10.5c0 .966.784 1.75 1.75 1.75h10.5A1.75 1.75 0 0015 13.25V2.75A1.75 1.75 0 0013.25 1H2.75zm9.03 5.28a.75.75 0 00-1.06-1.06L6.75 9.19 5.28 7.72a.75.75 0 00-1.06 1.06l2 2a.75.75 0 001.06 0l4.5-4.5z"></path></svg>
</md-task-list>
</div>
</markdown-toolbar>
</div>
<div class="comment-form-error js-comment-form-error" role="alert" hidden="">
There was an error creating your Commit.
</div>
<file-attachment class="js-upload-markdown-image is-default" input="fc-new_commit_comment_field" role="tabpanel" data-tab-container-no-tabstop="true" data-upload-repository-id="30624145" data-upload-policy-url="/upload/policies/assets"><input type="hidden" value="75RTFs7hkG9tU+mPTVLUHGBIoIxIp/KfSCYPqhiw01vluQjWnhnC1mJlvFlpBTjXu5FAq4EzUkVYZRggi6ZDjA==" data-csrf="true" class="js-data-upload-policy-url-csrf">
<div class="write-content js-write-bucket tooltipped tooltipped-ne tooltipped-no-delay tooltipped-align-left-1 hide-reaction-suggestion upload-enabled mx-0 mt-2 mb-2 mx-md-2 hx_sm-hide-drag-drop js-reaction-suggestion" data-reaction-markup="Would you like to leave a reaction instead?">
<input type="hidden" name="saved_reply_id" id="new_commit_comment_field_saved_reply_id" class="js-resettable-field" value="" data-reset-value="">
<text-expander keys=": @ #" data-issue-url="/suggestions/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce?issue_suggester=1&amp;repository=qubes-core-agent-linux&amp;user_id=QubesOS" data-mention-url="/suggestions/commit/74f5fb5ac7160f145e8383d39d7c41c240f1f0ce?mention_suggester=1&amp;repository=qubes-core-agent-linux&amp;user_id=QubesOS" multiword="#" data-emoji-url="/autocomplete/emoji">
<textarea name="comment[body]" id="new_commit_comment_field" placeholder="Leave a comment" aria-label="Comment body" data-required-trimmed="Text field is empty" class="form-control input-contrast comment-form-textarea js-comment-field js-paste-markdown js-task-list-field js-quick-submit js-size-to-fit js-session-resumable js-saved-reply-shortcut-comment-field" required=""></textarea>
</text-expander>
<label class="text-normal drag-and-drop hx_drag-and-drop position-relative d-flex flex-justify-between">
<input accept=".gif,.jpeg,.jpg,.mov,.mp4,.png,.docx,.gz,.log,.pdf,.pptx,.txt,.xlsx,.zip" type="file" multiple="" class="manual-file-chooser manual-file-chooser-transparent top-0 right-0 bottom-0 left-0 width-full ml-0 form-control" id="fc-new_commit_comment_field">
<span class="bg-gray-light position-absolute top-0 left-0 width-full height-full rounded-1" style="pointer-events: none;"></span>
<span class="position-relative pr-2" style="pointer-events: none;">
<span class="default">
Attach files by dragging &amp; dropping, selecting or pasting them.
</span>
<span class="loading">
<svg viewBox="0 0 16 16" fill="none" style="box-sizing: content-box; color: var(--color-icon-primary);" class="v-align-text-bottom mr-1" width="16" height="16">
<circle cx="8" cy="8" r="7" stroke="currentColor" stroke-opacity="0.25" stroke-width="2" vector-effect="non-scaling-stroke"></circle>
<path d="M15 8a7.002 7.002 0 00-7-7" stroke="currentColor" stroke-width="2" stroke-linecap="round" vector-effect="non-scaling-stroke">
<animateTransform attributeName="transform" type="rotate" from="0 8 8" to="360 8 8" dur="1s" repeatCount="indefinite"></animateTransform>
</path>
</svg> Uploading your files…
</span>
<span class="error bad-file">
We don’t support that file type.
<span class="drag-and-drop-error-info">
<span class="btn-link">Try again</span> with a
GIF, JPEG, JPG, MOV, MP4, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
</span>
</span>
<span class="error bad-permissions">
Attaching documents requires write permission to this repository.
<span class="drag-and-drop-error-info">
<span class="btn-link">Try again</span> with a GIF, JPEG, JPG, MOV, MP4, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
</span>
</span>
<span class="error repository-required">
We don’t support that file type.
<span class="drag-and-drop-error-info">
<span class="btn-link">Try again</span> with a GIF, JPEG, JPG, MOV, MP4, PNG, DOCX, GZ, LOG, PDF, PPTX, TXT, XLSX or ZIP.
</span>
</span>
<span class="error too-big">
Yowza, that’s a big file
<span class="drag-and-drop-error-info">
<span class="btn-link">Try again</span> with a file smaller than 10MB.
</span>
</span>
<span class="error empty">
This file is empty.
<span class="drag-and-drop-error-info">
<span class="btn-link">Try again</span> with a file that’s not empty.
</span>
</span>
<span class="error hidden-file">
This file is hidden.
<span class="drag-and-drop-error-info">
<span class="btn-link">Try again</span> with another file.
</span>
</span>
<span class="error failed-request">
Something went really wrong, and we can’t process that file.
<span class="drag-and-drop-error-info">
<span class="btn-link">Try again.</span>
</span>
</span>
</span>
<span class="tooltipped tooltipped-nw" aria-label="Styling with Markdown is supported">
<a class="muted-link position-relative d-inline" href="https://guides.github.com/features/mastering-markdown/" target="_blank" data-ga-click="Markdown Toolbar, click, help" aria-label="Learn about styling with Markdown">
<svg class="octicon octicon-markdown v-align-bottom" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M14.85 3H1.15C.52 3 0 3.52 0 4.15v7.69C0 12.48.52 13 1.15 13h13.69c.64 0 1.15-.52 1.15-1.15v-7.7C16 3.52 15.48 3 14.85 3zM9 11H7V8L5.5 9.92 4 8v3H2V5h2l1.5 2L7 5h2v6zm2.99.5L9.5 8H11V5h2v3h1.5l-2.51 3.5z"></path></svg>
</a>
</span>
</label>
<span class="js-sparkles-remaining-container" hidden=""></span>
</div>
</file-attachment>
<div role="tabpanel" class="js-preview-panel overflow-auto border-bottom mx-0 my-3 mx-md-2 mb-md-2" hidden="">
<input type="hidden" name="path" value="" class="js-path">
<input type="hidden" name="line" value="" class="js-line-number">
<input type="hidden" name="start_line" value="" class="js-start-line-number">
<input type="hidden" name="preview_side" value="" class="js-side">
<input type="hidden" name="preview_start_side" value="" class="js-start-side">
<input type="hidden" name="start_commit_oid" value="" class="js-start-commit-oid">
<input type="hidden" name="end_commit_oid" value="" class="js-end-commit-oid">
<input type="hidden" name="base_commit_oid" value="" class="js-base-commit-oid">
<input type="hidden" name="comment_id" value="" class="js-comment-id">
<div class="comment js-suggested-changes-container" data-thread-side="">
<div class="comment-body markdown-body js-preview-body">
<p>Nothing to preview</p>
</div>
</div>
</div>
<div class="comment-form-error mb-2 js-comment-update-error" hidden=""></div>
</tab-container>
<div class="form-actions pr-0 pr-md-2">
<button type="submit" class="btn btn-primary" data-disable-invalid="" data-disable-with="" disabled="disabled">Comment on this commit</button>
</div>
</div>
</form>
</div>
</div>
<div class="thread-subscription-status js-socket-channel js-updatable-content" data-replace-remote-form-target="" data-channel="eyJjIjoibGlzdC1zdWJzY3JpcHRpb246cmVwb3NpdG9yeTozMDYyNDE0NToxNTI2MjA4MyIsInQiOjE2MTE3MTcyNDJ9--44d7ff73886dd2bbcc9c02c781dc19a8d52f8125cc57e347d5289da6b246db11 eyJjIjoidGhyZWFkLXN1YnNjcmlwdGlvbjo3NGY1ZmI1YWM3MTYwZjE0NWU4MzgzZDM5ZDdjNDFjMjQwZjFmMGNlOjE1MjYyMDgzIiwidCI6MTYxMTcxNzI0Mn0=--42a787dee79ef946b02a256e38a69ec62a5a01d2892c9b945272433c4f796345" data-url="/notifications/thread_subscription?repository_id=30624145&amp;thread_class=Commit&amp;thread_id=74f5fb5ac7160f145e8383d39d7c41c240f1f0ce">
<form data-replace-remote-form="true" class="thread-subscribe-form" action="/notifications/thread" accept-charset="UTF-8" method="post"><input type="hidden" name="authenticity_token" value="I6GnvBRvXev2/i8ay3cvHF6xaIiYGeKTvdzY36GeBDFTfqedxHoVwcdW2B10LtX+bdyh2gdZpCelSJyJfZjm9A=="> <input type="hidden" name="repository_id" value="30624145">
<input type="hidden" name="thread_id" value="74f5fb5ac7160f145e8383d39d7c41c240f1f0ce">
<input type="hidden" name="thread_class" value="Commit">
<input type="hidden" name="id" value="subscribe">
<button type="submit" class="btn btn-block btn-sm thread-subscribe-button" data-disable-with="">
<svg class="octicon octicon-bell" height="16" viewBox="0 0 16 16" version="1.1" width="16" aria-hidden="true"><path d="M8 16a2 2 0 001.985-1.75c.017-.137-.097-.25-.235-.25h-3.5c-.138 0-.252.113-.235.25A2 2 0 008 16z"></path><path fill-rule="evenodd" d="M8 1.5A3.5 3.5 0 004.5 5v2.947c0 .346-.102.683-.294.97l-1.703 2.556a.018.018 0 00-.003.01l.001.006c0 .002.002.004.004.006a.017.017 0 00.006.004l.007.001h10.964l.007-.001a.016.016 0 00.006-.004.016.016 0 00.004-.006l.001-.007a.017.017 0 00-.003-.01l-1.703-2.554a1.75 1.75 0 01-.294-.97V5A3.5 3.5 0 008 1.5zM3 5a5 5 0 0110 0v2.947c0 .05.015.098.042.139l1.703 2.555A1.518 1.518 0 0113.482 13H2.518a1.518 1.518 0 01-1.263-2.36l1.703-2.554A.25.25 0 003 7.947V5z"></path></svg> Subscribe
</button>
</form> <p class="reason text-small text-gray">You’re not receiving notifications from this thread.</p>
</div>
</div>
</div>
</main>
</div>
</div>
<div class="footer container-xl width-full p-responsive" role="contentinfo">
<div class="position-relative d-flex flex-row-reverse flex-lg-row flex-wrap flex-lg-nowrap flex-justify-center flex-lg-justify-between pt-6 pb-2 mt-6 f6 text-gray border-top border-gray-light ">
<ul class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0">
<li class="mr-3 mr-lg-0">© 2021 GitHub, Inc.</li>
<li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to terms, text:terms" href="https://github.com/site/terms">Terms</a></li>
<li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to privacy, text:privacy" href="https://github.com/site/privacy">Privacy</a></li>
<li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to security, text:security" href="https://github.com/security">Security</a></li>
<li class="mr-3 mr-lg-0"><a href="https://www.githubstatus.com/" data-ga-click="Footer, go to status, text:status">Status</a></li>
<li><a data-ga-click="Footer, go to help, text:Docs" href="https://docs.github.com/">Docs</a></li>
</ul>
<a aria-label="Homepage" title="GitHub" class="footer-octicon d-none d-lg-block mx-lg-4" href="https://github.com/">
<svg height="24" class="octicon octicon-mark-github" viewBox="0 0 16 16" version="1.1" width="24" aria-hidden="true"><path fill-rule="evenodd" d="M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0016 8c0-4.42-3.58-8-8-8z"></path></svg>
</a>
<ul class="list-style-none d-flex flex-wrap col-12 col-lg-5 flex-justify-center flex-lg-justify-between mb-2 mb-lg-0">
<li class="mr-3 mr-lg-0"><a data-ga-click="Footer, go to contact, text:contact" href="https://github.com/contact">Contact GitHub</a></li>
<li class="mr-3 mr-lg-0"><a href="https://github.com/pricing" data-ga-click="Footer, go to Pricing, text:Pricing">Pricing</a></li>
<li class="mr-3 mr-lg-0"><a href="https://docs.github.com/" data-ga-click="Footer, go to api, text:api">API</a></li>
<li class="mr-3 mr-lg-0"><a href="https://services.github.com/" data-ga-click="Footer, go to training, text:training">Training</a></li>
<li class="mr-3 mr-lg-0"><a href="https://github.blog/" data-ga-click="Footer, go to blog, text:blog">Blog</a></li>
<li><a data-ga-click="Footer, go to about, text:about" href="https://github.com/about">About</a></li>
</ul>
</div>
<div class="d-flex flex-justify-center pb-6">
<span class="f6 text-gray-light"></span>
</div>
</div>
<div id="ajax-error-message" class="ajax-error-message flash flash-error" hidden="">
<svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path></svg>
<button type="button" class="flash-close js-ajax-error-dismiss" aria-label="Dismiss error">
<svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg>
</button>
You can’t perform that action at this time.
</div>
<div class="js-stale-session-flash flash flash-warn flash-banner" hidden="">
<svg class="octicon octicon-alert" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M8.22 1.754a.25.25 0 00-.44 0L1.698 13.132a.25.25 0 00.22.368h12.164a.25.25 0 00.22-.368L8.22 1.754zm-1.763-.707c.659-1.234 2.427-1.234 3.086 0l6.082 11.378A1.75 1.75 0 0114.082 15H1.918a1.75 1.75 0 01-1.543-2.575L6.457 1.047zM9 11a1 1 0 11-2 0 1 1 0 012 0zm-.25-5.25a.75.75 0 00-1.5 0v2.5a.75.75 0 001.5 0v-2.5z"></path></svg>
<span class="js-stale-session-flash-signed-in" hidden="">You signed in with another tab or window. <a href="">Reload</a> to refresh your session.</span>
<span class="js-stale-session-flash-signed-out" hidden="">You signed out in another tab or window. <a href="">Reload</a> to refresh your session.</span>
</div>
<template id="site-details-dialog">
<details class="details-reset details-overlay details-overlay-dark lh-default text-gray-dark hx_rsm" open="">
<summary role="button" aria-label="Close dialog"></summary>
<details-dialog class="Box Box--overlay d-flex flex-column anim-fade-in fast hx_rsm-dialog hx_rsm-modal">
<button class="Box-btn-octicon m-0 btn-octicon position-absolute right-0 top-0" type="button" aria-label="Close dialog" data-close-dialog="">
<svg class="octicon octicon-x" viewBox="0 0 16 16" version="1.1" width="16" height="16" aria-hidden="true"><path fill-rule="evenodd" d="M3.72 3.72a.75.75 0 011.06 0L8 6.94l3.22-3.22a.75.75 0 111.06 1.06L9.06 8l3.22 3.22a.75.75 0 11-1.06 1.06L8 9.06l-3.22 3.22a.75.75 0 01-1.06-1.06L6.94 8 3.72 4.78a.75.75 0 010-1.06z"></path></svg>
</button>
<div class="octocat-spinner my-6 js-details-dialog-spinner"></div>
</details-dialog>
</details>
</template>
<div class="Popover js-hovercard-content position-absolute" style="display: none; outline: none;" tabindex="0">
<div class="Popover-message Popover-message--bottom-left Popover-message--large Box box-shadow-large" style="width:360px;">
</div>
</div>
<div aria-live="polite" class="sr-only"></div></body></html>