From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yi Sun Subject: [PATCH v4 01/15] docs: create Memory Bandwidth Allocation (MBA) feature document Date: Sat, 23 Sep 2017 17:48:10 +0800 Message-ID: <1506160104-5890-2-git-send-email-yi.y.sun@linux.intel.com> References: <1506160104-5890-1-git-send-email-yi.y.sun@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([193.109.254.103]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1dvhLw-0004V5-ND for xen-devel@lists.xenproject.org; Sat, 23 Sep 2017 10:08:04 +0000 In-Reply-To: <1506160104-5890-1-git-send-email-yi.y.sun@linux.intel.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xen.org Sender: "Xen-devel" To: xen-devel@lists.xenproject.org Cc: Yi Sun , Andrew Cooper , Ian Jackson , Julien Grall , Jan Beulich , Chao Peng , Wei Liu , Daniel De Graaf , =?UTF-8?q?Roger=20Pau=20Monn=C3=A9?= List-Id: xen-devel@lists.xenproject.org VGhpcyBwYXRjaCBjcmVhdGVzIE1CQSBmZWF0dXJlIGRvY3VtZW50IGluIGRvYy9mZWF0dXJlcy8u IEl0IGRlc2NyaWJlcwprZXkgcG9pbnRzIHRvIGltcGxlbWVudCBNQkEgd2hpY2ggaXMgZGVzY3Jp YmVkIGluIGRldGFpbHMgaW4gSW50ZWwgU0RNCiJJbnRyb2R1Y3Rpb24gdG8gTWVtb3J5IEJhbmR3 aWR0aCBBbGxvY2F0aW9uIi4KClNpZ25lZC1vZmYtYnk6IFlpIFN1biA8eWkueS5zdW5AbGludXgu aW50ZWwuY29tPgotLS0KQ0M6IEphbiBCZXVsaWNoIDxqYmV1bGljaEBzdXNlLmNvbT4KQ0M6IEFu ZHJldyBDb29wZXIgPGFuZHJldy5jb29wZXIzQGNpdHJpeC5jb20+CkNDOiBXZWkgTGl1IDx3ZWku bGl1MkBjaXRyaXguY29tPgpDQzogSWFuIEphY2tzb24gPGlhbi5qYWNrc29uQGV1LmNpdHJpeC5j b20+CkNDOiBEYW5pZWwgRGUgR3JhYWYgPGRnZGVncmFAdHljaG8ubnNhLmdvdj4KQ0M6IFJvZ2Vy IFBhdSBNb25uw6kgPHJvZ2VyLnBhdUBjaXRyaXguY29tPgpDQzogS29ucmFkIFJ6ZXN6dXRlayBX aWxrIDxrb25yYWQud2lsa0BvcmFjbGUuY29tPgpDQzogQ2hhbyBQZW5nIDxjaGFvLnAucGVuZ0Bs aW51eC5pbnRlbC5jb20+CkNDOiBKdWxpZW4gR3JhbGwgPGp1bGllbi5ncmFsbEBhcm0uY29tPgoK djQ6CiAgICAtIGFkZCAnZG9tYWluLW5hbWUnIGFzIHBhcmFtZXRlciBvZiAncHNyLW1iYS1zaG93 L3Bzci1tYmEtc2V0Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAg LSBmaXggc29tZSB3b3JkaW5ncy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOp KQogICAgLSBleHBsYWluIGhvdyB1c2VyIGNhbiBrbm93IHRoZSBNQkFfTUFYLgogICAgICAoc3Vn Z2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIG1vdmUgdGhlIGRlc2NyaXB0aW9uIG9m ICdMaW5lYXIgbW9kZS9Ob24tbGluZWFyIG1vZGUnIGludG8gc2VjdGlvbgogICAgICBvZiAncHNy LW1iYS1zaG93Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQYXUgTW9ubsOpKQogICAgLSBj aGFuZ2UgJ3Blci10aHJlYWQnIHRvICdwZXItaHlwZXItdGhyZWFkJyB0byBtYWtlIGl0IGNsZWFy ZXIuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7DqSkKICAgIC0gdXBncmFkZSBy ZXZpc2lvbiBudW1iZXIuCnYzOgogICAgLSByZW1vdmUgJ2Nsb3NlZC1sb29wJyByZWxhdGVkIGRl c2NyaXB0aW9uLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIGV4 cGxhaW4gJ2xpbmVhcicgYW5kICdub24tbGluZWFyJyBiZWZvcmUgbWVudGlvbmluZyB0aGVtLgog ICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25uw6kpCiAgICAtIGFkanVzdCBkZXNyaXB0 aW9uIG9mICdwc3ItbWJhLXNldCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1IE1vbm7D qSkKICAgIC0gZXhwbGFpbiAnTUJBX01BWCcuCiAgICAgIChzdWdnZXN0ZWQgYnkgUm9nZXIgUGF1 IE1vbm7DqSkKICAgIC0gcmVtb3ZlICduPDY0Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBSb2dlciBQ YXUgTW9ubsOpKQogICAgLSBmaXggc29tZSB3b3JkaW5ncy4KICAgICAgKHN1Z2dlc3RlZCBieSBS b2dlciBQYXUgTW9ubsOpKQogICAgLSBhZGQgY29udGV4dCBpbiAnVGVzdGluZycgcGFydCB0byBt YWtlIHRoaW5ncyBtb3JlIGNsZWFyLgogICAgICAoc3VnZ2VzdGVkIGJ5IFJvZ2VyIFBhdSBNb25u w6kpCnYyOgogICAgLSBkZWNsYXJlICdIVycgaW4gVGVybWlub2xvZ3kuCiAgICAgIChzdWdnZXN0 ZWQgYnkgQ2hhbyBQZW5nKQogICAgLSByZXBsYWNlICdDT1MgSUQgb2YgVkNQVScgdG8gJ0NPUyBJ RCBvZiBkb21haW4nLgogICAgICAoc3VnZ2VzdGVkIGJ5IENoYW8gUGVuZykKICAgIC0gcmVwbGFj ZSAnQ09TIHJlZ2lzdGVyJyB0byAnVGhydGwgTVNSJy4KICAgICAgKHN1Z2dlc3RlZCBieSBDaGFv IFBlbmcpCiAgICAtIGFkZCBkZXNjcmlwdGlvbiBmb3IgJ3Bzci1tYmEtc2hvdycgdG8gc3RhdGUg dGhhdCB0aGUgZGVjaW1hbCB2YWx1ZSBpcwogICAgICBzaG93biBmb3IgbGluZWFyIG1vZGUgYnV0 IGhleGFkZWNpbWFsIHZhbHVlIGlzIHNob3duIGZvciBub24tbGluZWFyIG1vZGUuCiAgICAgIChz dWdnZXN0ZWQgYnkgQ2hhbyBQZW5nKQogICAgLSByZW1vdmUgY29udGVudCBpbiAnQXJlYXMgZm9y IGltcHJvdmVtZW50Jy4KICAgICAgKHN1Z2dlc3RlZCBieSBDaGFvIFBlbmcpCiAgICAtIHVzZSAn PD4nIHRvIHNwZWNpZnkgbWFuZGF0b3J5IGFyZ3VtZW50IHRvIGEgY29tbWFuZC4KICAgICAgKHN1 Z2dlc3RlZCBieSBXZWkgTGl1KQp2MToKICAgIC0gcmVtb3ZlIGEgc3BlY2lhbCBjaGFyYWN0ZXIg dG8gYXZvaWQgdGhlIGVycm9yIHdoZW4gYnVpbGRpbmcgcGFuZG9jLgotLS0KIGRvY3MvZmVhdHVy ZXMvaW50ZWxfcHNyX21iYS5wYW5kb2MgfCAyOTEgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKwogMSBmaWxlIGNoYW5nZWQsIDI5MSBpbnNlcnRpb25zKCspCiBjcmVhdGUgbW9k ZSAxMDA2NDQgZG9jcy9mZWF0dXJlcy9pbnRlbF9wc3JfbWJhLnBhbmRvYwoKZGlmZiAtLWdpdCBh L2RvY3MvZmVhdHVyZXMvaW50ZWxfcHNyX21iYS5wYW5kb2MgYi9kb2NzL2ZlYXR1cmVzL2ludGVs X3Bzcl9tYmEucGFuZG9jCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjdhNmE1 ODgKLS0tIC9kZXYvbnVsbAorKysgYi9kb2NzL2ZlYXR1cmVzL2ludGVsX3Bzcl9tYmEucGFuZG9j CkBAIC0wLDAgKzEsMjkxIEBACislIEludGVsIE1lbW9yeSBCYW5kd2lkdGggQWxsb2NhdGlvbiAo TUJBKSBGZWF0dXJlCislIFJldmlzaW9uIDEuNgorCitcY2xlYXJwYWdlCisKKyMgQmFzaWNzCisK Ky0tLS0tLS0tLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLQorICAgICAgICAgU3RhdHVzOiAqKlRlY2ggUHJldmlldyoqCisKK0FyY2hp dGVjdHVyZShzKTogSW50ZWwgeDg2CisKKyAgIENvbXBvbmVudChzKTogSHlwZXJ2aXNvciwgdG9v bHN0YWNrCisKKyAgICAgICBIYXJkd2FyZTogTUJBIGlzIHN1cHBvcnRlZCBvbiBTa3lsYWtlIFNl cnZlciBhbmQgYmV5b25kCistLS0tLS0tLS0tLS0tLS0tIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KKworIyBUZXJtaW5vbG9neQorCisqIENBVCAg ICAgICAgIENhY2hlIEFsbG9jYXRpb24gVGVjaG5vbG9neQorKiBDQk0gICAgICAgICBDYXBhY2l0 eSBCaXRNYXNrcworKiBDRFAgICAgICAgICBDb2RlIGFuZCBEYXRhIFByaW9yaXRpemF0aW9uCisq IENPUy9DTE9TICAgIENsYXNzIG9mIFNlcnZpY2UKKyogSFcgICAgICAgICAgSGFyZHdhcmUKKyog TUJBICAgICAgICAgTWVtb3J5IEJhbmR3aWR0aCBBbGxvY2F0aW9uCisqIE1TUnMgICAgICAgIE1h Y2hpbmUgU3BlY2lmaWMgUmVnaXN0ZXJzCisqIFBTUiAgICAgICAgIEludGVsIFBsYXRmb3JtIFNo YXJlZCBSZXNvdXJjZQorKiBUSFJUTCAgICAgICBUaHJvdHRsZSB2YWx1ZSBvciBkZWxheSB2YWx1 ZQorCisjIE92ZXJ2aWV3CisKK1RoZSBNZW1vcnkgQmFuZHdpZHRoIEFsbG9jYXRpb24gKE1CQSkg ZmVhdHVyZSBwcm92aWRlcyBpbmRpcmVjdCBhbmQgYXBwcm94aW1hdGUKK2NvbnRyb2wgb3ZlciBt ZW1vcnkgYmFuZHdpZHRoIGF2YWlsYWJsZSBwZXItY29yZS4gVGhpcyBmZWF0dXJlIHByb3ZpZGVz IE9TLworaHlwZXJ2aXNvciB0aGUgYWJpbGl0eSB0byBzbG93IG1pc2JlaGF2aW5nIGFwcHMvZG9t YWlucyBieSB1c2luZyBhIGNyZWRpdC1iYXNlZAordGhyb3R0bGluZyBtZWNoYW5pc20uCisKKyMg VXNlciBkZXRhaWxzCisKKyogRmVhdHVyZSBFbmFibGluZzoKKworICBBZGQgInBzcj1tYmEiIHRv IGJvb3QgbGluZSBwYXJhbWV0ZXIgdG8gZW5hYmxlIE1CQSBmZWF0dXJlLgorCisqIHhsIGludGVy ZmFjZXM6CisKKyAgMS4gYHBzci1tYmEtc2hvdyBbZG9tYWluLWlkfGRvbWFpbi1uYW1lXWA6CisK KyAgICAgU2hvdyBtZW1vcnkgYmFuZHdpZHRoIHRocm90dGxpbmcgZm9yIGRvbWFpbi4gVW5kZXIg ZGlmZmVyZW50IG1vZGVzLCBpdAorICAgICBzaG93cyBkaWZmZXJlbnQgdHlwZSBvZiBkYXRhLgor CisgICAgIFRoZXJlIGFyZSB0d28gbW9kZXM6CisgICAgIExpbmVhciBtb2RlOiB0aGUgaW5wdXQg cHJlY2lzaW9uIGlzIGRlZmluZWQgYXMgMTAwLShNQkFfTUFYKS4gRm9yIGluc3RhbmNlLAorICAg ICBpZiB0aGUgTUJBX01BWCB2YWx1ZSBpcyA5MCwgdGhlIGlucHV0IHByZWNpc2lvbiBpcyAxMCUu IFZhbHVlcyBub3QgYW4gZXZlbgorICAgICBtdWx0aXBsZSBvZiB0aGUgcHJlY2lzaW9uIChlLmcu LCAxMiUpIHdpbGwgYmUgcm91bmRlZCBkb3duIChlLmcuLCB0byAxMCUKKyAgICAgZGVsYXkgYXBw bGllZCkgYnkgSFcgYXV0b21hdGljYWxseS4gVGhlIHJlc3BvbnNlIG9mIHRocm90dGxpbmcgdmFs dWUgaXMKKyAgICAgbGluZWFyLgorCisgICAgIE5vbi1saW5lYXIgbW9kZTogaW5wdXQgZGVsYXkg dmFsdWVzIGFyZSBwb3dlcnMtb2YtdHdvIGZyb20gemVybyB0byB0aGUKKyAgICAgTUJBX01BWCB2 YWx1ZSBmcm9tIENQVUlELiBJbiB0aGlzIGNhc2UgYW55IHZhbHVlcyBub3QgYSBwb3dlciBvZiB0 d28gd2lsbAorICAgICBiZSByb3VuZGVkIGRvd24gdGhlIG5leHQgbmVhcmVzdCBwb3dlciBvZiB0 d28gYnkgSFcgYXV0b21hdGljYWxseS4gVGhlCisgICAgIHJlc3BvbnNlIG9mIHRocm90dGxpbmcg dmFsdWUgaXMgbm9uLWxpbmVhci4KKworICAgICBGb3IgbGluZWFyIG1vZGUsIGl0IHNob3dzIHRo ZSBkZWNpbWFsIHZhbHVlLiBGb3Igbm9uLWxpbmVhciBtb2RlLCBpdCBzaG93cworICAgICBoZXhh ZGVjaW1hbCB2YWx1ZS4KKworICAyLiBgcHNyLW1iYS1zZXQgW09QVElPTlNdIDxkb21haW4taWR8 ZG9tYWluLW5hbWU+IDx0aHJvdHRsaW5nPmA6CisKKyAgICAgU2V0IG1lbW9yeSBiYW5kd2lkdGgg dGhyb3R0bGluZyBmb3IgZG9tYWluLgorCisgICAgIE9wdGlvbnM6CisgICAgICctcyc6IFNwZWNp ZnkgdGhlIHNvY2tldCB0byBwcm9jZXNzLCBvdGhlcndpc2UgYWxsIHNvY2tldHMgYXJlIHByb2Nl c3NlZC4KKworICAgICBUaHJvdHRsaW5nIHZhbHVlIHNldCBpbiByZWdpc3RlciBpbXBsaWVzIHRo ZSBhcHByb3hpbWF0ZSBhbW91bnQgb2YgZGVsYXlpbmcKKyAgICAgdGhlIHRyYWZmaWMgYmV0d2Vl biBjb3JlIGFuZCBtZW1vcnkuIFRoZSBoaWdoZXIgdGhyb3R0bGluZyB2YWx1ZSByZXN1bHRzIGlu CisgICAgIGxvd2VyIGJhbmR3aWR0aC4gVGhlIG1heCB0aHJvdHRsaW5nIHZhbHVlIChNQkFfTUFY KSBzdXBwb3J0ZWQgY2FuIGJlCisgICAgIG9idGFpbmVkIHRocm91Z2ggQ1BVSUQgaW5zaWRlIGh5 cGVydmlzb3IuIFVzZXIgY2FuIGtub3cgaXQgdGhyb3VnaAorICAgICBgcHNyLWh3aW5mb2AuCisK KyMgVGVjaG5pY2FsIGRldGFpbHMKKworTUJBIGlzIGEgbWVtYmVyIG9mIEludGVsIFBTUiBmZWF0 dXJlcywgaXQgc2hhcmVzIHRoZSBiYXNlIFBTUiBpbmZyYXN0cnVjdHVyZQoraW4gWGVuLgorCisj IyBIYXJkd2FyZSBwZXJzcGVjdGl2ZQorCisgIE1CQSBkZWZpbmVzIGEgcmFuZ2Ugb2YgTVNScyB0 byBzdXBwb3J0IHNwZWNpZnlpbmcgYSBkZWxheSB2YWx1ZSAoVGhydGwpIHBlcgorICBDT1MsIHdp dGggZGV0YWlscyBiZWxvdy4KKworICBgYGAKKyAgICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgICB8IE1TUiAocGVyIHNvY2tldCkgICAgICAgICAgIHwg ICAgQWRkcmVzcyAgICAgfAorICAgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0t LS0tLS0tLS0tLSsKKyAgIHwgSUEzMl9MMl9RT1NfRXh0X0JXX1RocnRsXzAgfCAgICAgMHhENTAg ICAgICB8CisgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSstLS0tLS0tLS0tLS0tLS0t KworICAgfCAuLi4gICAgICAgICAgICAgICAgICAgICAgICB8ICAuLi4gICAgICAgICAgIHwKKyAg ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tKy0tLS0tLS0tLS0tLS0tLS0rCisgICB8IElB MzJfTDJfUU9TX0V4dF9CV19UaHJ0bF9uIHwgICAgIDB4RDUwK24gICAgfAorICAgKy0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0rLS0tLS0tLS0tLS0tLS0tLSsKKyAgYGBgCisKKyAgV2hlbiBj b250ZXh0IHN3aXRjaCBoYXBwZW5zLCB0aGUgQ09TIElEIG9mIGRvbWFpbiBpcyB3cml0dGVuIHRv IHBlci1oeXBlci0KKyAgdGhyZWFkIE1TUiBgSUEzMl9QUVJfQVNTT0NgLCBhbmQgdGhlbiBoYXJk d2FyZSBlbmZvcmNlcyBiYW5kd2lkdGggYWxsb2NhdGlvbgorICBhY2NvcmRpbmcgdG8gdGhlIHRo cm90dGxpbmcgdmFsdWUgc3RvcmVkIGluIHRoZSBUaHJ0bCBNU1IgcmVnaXN0ZXIuCisKKyMjIFRo ZSByZWxhdGlvbnNoaXAgYmV0d2VlbiBNQkEgYW5kIENBVC9DRFAKKworICBHZW5lcmFsbHkgc3Bl YWtpbmcsIE1CQSBpcyBjb21wbGV0ZWx5IGluZGVwZW5kZW50IG9mIENBVC9DRFAsIGFuZCBhbnkK KyAgY29tYmluYXRpb24gbWF5IGJlIGFwcGxpZWQgYXQgYW55IHRpbWUsIGUuZy4gZW5hYmxpbmcg TUJBIHdpdGggQ0FUCisgIGRpc2FibGVkLgorCisgIEJ1dCBpdCBuZWVkcyB0byBiZSBub3RpY2Vk IHRoYXQgTUJBIHNoYXJlcyBDT1MgaW5mcmFzdHJ1Y3R1cmUgd2l0aCBDQVQsCisgIGFsdGhvdWdo IE1CQSBpcyBlbnVtZXJhdGVkIGJ5IGRpZmZlcmVudCBDUFVJRCBsZWFmIGZyb20gQ0FUICh3aGlj aAorICBpbmRpY2F0ZXMgdGhhdCB0aGUgbWF4IENPUyBvZiBNQkEgbWF5IGJlIGRpZmZlcmVudCBm cm9tIENBVCkuIEluIHNvbWUKKyAgY2FzZXMsIGEgZG9tYWluIGlzIHBlcm1pdHRlZCB0byBoYXZl IGEgQ09TIHRoYXQgaXMgYmV5b25kIG9uZSAob3IgbW9yZSkKKyAgb2YgUFNSIGZlYXR1cmVzIGJ1 dCB3aXRoaW4gdGhlIG90aGVycy4gRm9yIGluc3RhbmNlLCBsZXQncyBhc3N1bWUgdGhlIG1heAor ICBDT1Mgb2YgTUJBIGlzIDggYnV0IHRoZSBtYXggQ09TIG9mIEwzIENBVCBpcyAxNiwgd2hlbiBh IGRvbWFpbiBpcyBhc3NpZ25lZAorICA5IGFzIENPUywgdGhlIEwzIENBVCBDQk0gYXNzb2NpYXRl ZCB0byBDT1MgOSB3b3VsZCBiZSBlbmZvcmNlZCwgYnV0IGZvciBNQkEsCisgIHRoZSBIVyB3b3Jr cyBhcyBkZWZhdWx0IHZhbHVlIGlzIHNldCBzaW5jZSBDT1MgOSBpcyBiZXlvbmQgdGhlIG1heCBD T1MgKDgpCisgIG9mIE1CQS4KKworIyMgRGVzaWduIE92ZXJ2aWV3CisKKyogQ29yZSBDT1MvVGhy dGwgYXNzb2NpYXRpb24KKworICBXaGVuIGVuZm9yY2luZyBNZW1vcnkgQmFuZHdpZHRoIEFsbG9j YXRpb24sIGFsbCBjb3JlcyBvZiBkb21haW5zIGhhdmUKKyAgdGhlIHNhbWUgZGVmYXVsdCBUaHJ0 bCBNU1IgKENPUzApIHdoaWNoIHN0b3JlcyB0aGUgc2FtZSBUaHJ0bCAoMCkuIFRoZQorICBkZWZh dWx0IFRocnRsIE1TUiBpcyB1c2VkIG9ubHkgaW4gaHlwZXJ2aXNvciBhbmQgaXMgdHJhbnNwYXJl bnQgdG8gdG9vbCBzdGFjaworICBhbmQgdXNlci4KKworICBTeXN0ZW0gYWRtaW5pc3RyYXRvcnMg Y2FuIGNoYW5nZSBQU1IgYWxsb2NhdGlvbiBwb2xpY3kgYXQgcnVudGltZSBieQorICB1c2luZyB0 aGUgdG9vbCBzdGFjay4gU2luY2UgTUJBIHNoYXJlcyBDT1MgSUQgd2l0aCBDQVQvQ0RQLCBhIENP UyBJRAorICBjb3JyZXNwb25kcyB0byBhIDItdHVwbGUsIGxpa2UgW0NCTSwgVGhydGxdIHdpdGgg b25seS1DQVQgZW5hYmxlZCwgd2hlbiBDRFAKKyAgaXMgZW5hYmxlZCwgdGhlIENPUyBJRCBjb3Jy ZXNwb25kcyB0byBhIDMtdHVwbGUsIGxpa2UgW0NvZGVfQ0JNLCBEYXRhX0NCTSwKKyAgVGhydGxd LiBJZiBuZWl0aGVyIENBVCBub3IgQ0RQIGlzIGVuYWJsZWQsIHRoaW5ncyBhcmUgZWFzaWVyLCBz aW5jZSBvbmUgQ09TCisgIElEIGNvcnJlc3BvbmRzIHRvIG9uZSBUaHJ0bC4KKworKiBWQ1BVIHNj aGVkdWxlCisKKyAgVGhpcyBwYXJ0IHJldXNlcyBDQVQgQ09TIGluZnJhc3RydWN0dXJlLgorCisq IE11bHRpLXNvY2tldHMKKworICBEaWZmZXJlbnQgc29ja2V0cyBtYXkgaGF2ZSBkaWZmZXJlbnQg TUJBIGFiaWxpdHkgKGxpa2UgbWF4IENPUykKKyAgYWx0aG91Z2ggaXQgaXMgY29uc2lzdGVudCBv biB0aGUgc2FtZSBzb2NrZXQuIFNvIHRoZSBjYXBhYmlsaXR5CisgIG9mIHBlci1zb2NrZXQgTUJB IGlzIHNwZWNpZmllZC4KKworICBUaGlzIHBhcnQgcmV1c2VzIENBVCBDT1MgaW5mcmFzdHJ1Y3R1 cmUuCisKKyMjIEltcGxlbWVudGF0aW9uIERlc2NyaXB0aW9uCisKKyogSHlwZXJ2aXNvciBpbnRl cmZhY2VzOgorCisgIDEuIEJvb3QgbGluZSBwYXJhbTogInBzcj1tYmEiIHRvIGVuYWJsZSB0aGUg ZmVhdHVyZS4KKworICAyLiBTWVNDVEw6CisgICAgICAgICAgLSBYRU5fU1lTQ1RMX1BTUl9NQkFf Z2V0X2luZm86IEdldCBzeXN0ZW0gTUJBIGluZm9ybWF0aW9uLgorCisgIDMuIERPTUNUTDoKKyAg ICAgICAgICAtIFhFTl9ET01DVExfUFNSX01CQV9PUF9HRVRfVEhSVEw6IEdldCB0aHJvdHRsaW5n IGZvciBhIGRvbWFpbi4KKyAgICAgICAgICAtIFhFTl9ET01DVExfUFNSX01CQV9PUF9TRVRfVEhS VEw6IFNldCB0aHJvdHRsaW5nIGZvciBhIGRvbWFpbi4KKworKiB4bCBpbnRlcmZhY2VzOgorCisg IDEuIHBzci1tYmEtc2hvdyBbZG9tYWluLWlkXQorICAgICAgICAgIFNob3cgc3lzdGVtL2RvbWFp biBydW50aW1lIE1CQSB0aHJvdHRsaW5nIHZhbHVlLiBGb3IgbGluZWFyIG1vZGUsCisgICAgICAg ICAgaXQgc2hvd3MgdGhlIGRlY2ltYWwgdmFsdWUuIEZvciBub24tbGluZWFyIG1vZGUsIGl0IHNo b3dzIGhleGFkZWNpbWFsCisgICAgICAgICAgdmFsdWUuCisgICAgICAgICAgPT4gWEVOX1NZU0NU TF9QU1JfTUJBX2dldF9pbmZvL1hFTl9ET01DVExfUFNSX01CQV9PUF9HRVRfVEhSVEwKKworICAy LiBwc3ItbWJhLXNldCBbT1BUSU9OU10gPGRvbWFpbi1pZD4gPHRocm90dGxpbmc+CisgICAgICAg ICAgU2V0IGJhbmR3aWR0aCB0aHJvdHRsaW5nIGZvciBhIGRvbWFpbi4KKyAgICAgICAgICA9PiBY RU5fRE9NQ1RMX1BTUl9NQkFfT1BfU0VUX1RIUlRMCisKKyAgMy4gcHNyLWh3aW5mbworICAgICAg ICAgIFNob3cgUFNSIEhXIGluZm9ybWF0aW9uLCBpbmNsdWRpbmcgTDMgQ0FUL0NEUC9MMiBDQVQv TUJBLgorICAgICAgICAgID0+IFhFTl9TWVNDVExfUFNSX01CQV9nZXRfaW5mbworCisqIEtleSBk YXRhIHN0cnVjdHVyZToKKworICAxLiBGZWF0dXJlIEhXIGluZm8KKworICAgICBgYGAKKyAgICAg c3RydWN0IHsKKyAgICAgICAgIHVuc2lnbmVkIGludCB0aHJ0bF9tYXg7CisgICAgICAgICBib29s IGxpbmVhcjsKKyAgICAgfSBtYmE7CisKKyAgICAgLSBNZW1iZXIgYHRocnRsX21heGAKKworICAg ICAgIGB0aHJ0bF9tYXhgIGlzIHRoZSBtYXggdGhyb3R0bGluZyB2YWx1ZSB0byBiZSBzZXQsIGku ZS4gTUJBX01BWC4KKworICAgICAtIE1lbWJlciBgbGluZWFyYAorCisgICAgICAgYGxpbmVhcmAg bWVhbnMgdGhlIHJlc3BvbnNlIG9mIGRlbGF5IHZhbHVlIGlzIGxpbmVhciBvciBub3QuCisKKyAg ICAgQXMgbWVudGlvbmVkIGFib3ZlLCBNQkEgaXMgYSBtZW1iZXIgb2YgSW50ZWwgUFNSIGZlYXR1 cmVzLCBpdCB3b3VsZAorICAgICBzaGFyZSB0aGUgYmFzZSBQU1IgaW5mcmFzdHJ1Y3R1cmUgaW4g WGVuLiBGb3IgZXhhbXBsZSwgdGhlICdjb3NfbWF4JworICAgICBpcyBhIGNvbW1vbiBIVyBwcm9w ZXJ0eSBmb3IgYWxsIGZlYXR1cmVzLiBTbywgZm9yIG90aGVyIGRhdGEgc3RydWN0dXJlCisgICAg IGRldGFpbHMsIHBsZWFzZSByZWZlciB0byAnaW50ZWxfcHNyX2NhdF9jZHAucGFuZG9jJy4KKwor IyBMaW1pdGF0aW9ucworCitNQkEgY2FuIG9ubHkgd29yayBvbiBIVyB3aGljaCBzdXBwb3J0cyBp dCAoY2hlY2sgYnkgQ1BVSUQpLgorCisjIFRlc3RpbmcKKworV2UgY2FuIGV4ZWN1dGUgdGhlc2Ug Y29tbWFuZHMgdG8gdmVyaWZ5IE1CQSBvbiBkaWZmZXJlbnQgSFdzIHN1cHBvcnRpbmcgdGhlbS4K KworRm9yIGV4YW1wbGU6CisgIDEuIFVzZXIgY2FuIGdldCB0aGUgTUJBIGhhcmR3YXJlIGluZm8g dGhyb3VnaCAncHNyLWh3aW5mbycgY29tbWFuZC4gRnJvbQorICAgICByZXN1bHQsIHVzZXIgY2Fu IGtub3cgaWYgdGhpcyBoYXJkd2FyZSB3b3JrcyB1bmRlciBsaW5lYXIgbW9kZSBvciBub24tCisg ICAgIGxpbmVhciBtb2RlLCB0aGUgbWF4IHRocm90dGxpbmcgdmFsdWUgKE1CQV9NQVgpIGFuZCBz byBvbi4KKworICAgIHJvb3RAOn4kIHhsIHBzci1od2luZm8gLS1tYmEKKyAgICBNZW1vcnkgQmFu ZHdpZHRoIEFsbG9jYXRpb24gKE1CQSk6CisgICAgU29ja2V0IElEICAgICAgIDogMAorICAgIExp bmVhciBNb2RlICAgICA6IEVuYWJsZWQKKyAgICBNYXhpbXVtIENPUyAgICAgOiA3CisgICAgTWF4 aW11bSBUaHJvdHRsaW5nIFZhbHVlOiA5MAorICAgIERlZmF1bHQgVGhyb3R0bGluZyBWYWx1ZTog MAorCisgIDIuIFRoZW4sIHVzZXIgY2FuIHNldCBhIHRocm90dGxpbmcgdmFsdWUgdG8gYSBkb21h aW4uIEZvciBleGFtcGxlLCBzZXQgJzB4YScsCisgICAgIGkuZSAxMCUgZGVsYXkuCisKKyAgICBy b290QDp+JCB4bCBwc3ItbWJhLXNldCAxIDB4YQorCisgIDMuIFVzZXIgY2FuIGNoZWNrIHRoZSBj dXJyZW50IGNvbmZpZ3VyYXRpb24gb2YgdGhlIGRvbWFpbiB0aHJvdWdoCisgICAgICdwc3ItbWFi LXNob3cnLiBGb3IgbGluZWFyIG1vZGUsIHRoZSBkZWNpbWFsIHZhbHVlIGlzIHNob3duLgorCisg ICAgcm9vdEA6fiQgeGwgcHNyLW1iYS1zaG93IDEKKyAgICBTb2NrZXQgSUQgICAgICAgOiAwCisg ICAgRGVmYXVsdCBUSFJUTCAgIDogMAorICAgICAgIElEICAgICAgICAgICAgICAgICAgICAgTkFN RSAgICAgICAgICAgIFRIUlRMCisgICAgICAgIDEgICAgICAgICAgICAgICAgIHVidW50dTE0ICAg ICAgICAgICAgIDEwCisKKyMgQXJlYXMgZm9yIGltcHJvdmVtZW50CisKK04vQQorCisjIEtub3du IGlzc3VlcworCitOL0EKKworIyBSZWZlcmVuY2VzCisKKyJJTlRFTCBSRVNPVVJDRSBESVJFQ1RP UiBURUNITk9MT0dZIChJTlRFTCBSRFQpIEFMTE9DQVRJT04gRkVBVFVSRVMiIFtJbnRlbCA2NCBh bmQgSUEtMzIgQXJjaGl0ZWN0dXJlcyBTb2Z0d2FyZSBEZXZlbG9wZXIgTWFudWFscywgdm9sM10o aHR0cDovL3d3dy5pbnRlbC5jb20vY29udGVudC93d3cvdXMvZW4vcHJvY2Vzc29ycy9hcmNoaXRl Y3R1cmVzLXNvZnR3YXJlLWRldmVsb3Blci1tYW51YWxzLmh0bWwpCisKKyMgSGlzdG9yeQorCist LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0KK0RhdGUgICAgICAgUmV2aXNpb24gVmVyc2lvbiAgTm90ZXMKKy0tLS0t LS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLQorMjAxNy0wMS0xMCAxLjAgICAgICBYZW4gNC45ICBEZXNpZ24gZG9jdW1lbnQg d3JpdHRlbgorMjAxNy0wNy0xMCAxLjEgICAgICBYZW4gNC4xMCBDaGFuZ2VzOgorICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAxLiBNb2RpZnkgZGF0YSBzdHJ1Y3R1cmUgYWNjb3JkaW5nIHRv IGxhdGVzdAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2RlczsKKyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgMi4gQWRkIGNvbnRlbnQgZm9yICdBcmVhcyBmb3IgaW1wcm92 ZW1lbnQnOworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLiBPdGhlciBtaW5vciBjaGFu Z2VzLgorMjAxNy0wOC0wOSAxLjIgICAgICBYZW4gNC4xMCBDaGFuZ2VzOgorICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAxLiBSZW1vdmUgYSBzcGVjaWFsIGNoYXJhY3RlciB0byBhdm9pZCBl cnJvciB3aGVuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJ1aWxkaW5nIHBhbmRv Yy4KKzIwMTctMDgtMTUgMS4zICAgICAgWGVuIDQuMTAgQ2hhbmdlczoKKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMS4gQWRkIHRlcm1pbm9sb2d5ICdIVycuCisgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIDIuIENoYW5nZSAnQ09TIElEIG9mIFZDUFUnIHRvICdDT1MgSUQgb2YgZG9t YWluJy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgMy4gQ2hhbmdlICdDT1MgcmVnaXN0 ZXInIHRvICdUaHJ0bCBNU1InLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LiBFeHBs YWluIHRoZSB2YWx1ZSBzaG93biBmb3IgJ3Bzci1tYmEtc2hvdycgdW5kZXIKKyAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgZGlmZmVyZW50IG1vZGVzLgorICAgICAgICAgICAgICAgICAg ICAgICAgICAgICA1LiBSZW1vdmUgY29udGVudCBpbiAnQXJlYXMgZm9yIGltcHJvdmVtZW50Jy4K KzIwMTctMDgtMTYgMS40ICAgICAgWGVuIDQuMTAgQ2hhbmdlczoKKyAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgMS4gQWRkICc8PicgZm9yIG1hbmRhdG9yeSBhcmd1bWVudC4KKzIwMTctMDgt MzAgMS41ICAgICAgWGVuIDQuMTAgQ2hhbmdlczoKKyAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgMS4gTW9kaWZ5IHdvcmRzIGluICdPdmVydmlldycgdG8gbWFrZSBpdCBlYXNpZXIgdG8KKyAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5kZXJzdGFuZC4KKyAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgMi4gRXhwbGFpbiAnbGluZWFyL25vbi1saW5lYXInIG1vZGVzIGJlZm9y ZSBtZW50aW9uCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoZW0uCisgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIDMuIEV4cGxhaW4gdGhyb3R0bGluZyB2YWx1ZSBtb3JlIGFj Y3VyYXRlLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0LiBFeHBsYWluICdNQkFfTUFY Jy4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgNS4gQ29ycmVjdCBzb21lIHdvcmRzIGlu ICdEZXNpZ24gT3ZlcnZpZXcnLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA2LiBDaGFu Z2UgJ21iYV9pbmZvJyB0byAnbWJhJyBhY2NvcmRpbmcgdG8gY29kZQorICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBjaGFuZ2VzLiBBbHNvLCBtb2RpZnkgY29udGVudHMgb2YgaXQuCisg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIDcuIEFkZCBjb250ZXh0IGluICdUZXN0aW5nJyBw YXJ0IHRvIG1ha2UgdGhpbmdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1vcmUg Y2xlYXIuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDguIFJlbW92ZSAnbjw2NCcgdG8g YXZvaWQgb3V0LW9mLXN5bmMuCisyMDE3LTA5LTIxIDEuNiAgICAgIFhlbiA0LjEwIENoYW5nZXM6 CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDEuIEFkZCAnZG9tYWluLW5hbWUnIGFzIHBh cmFtZXRlciBvZiAncHNyLW1iYS1zaG93LworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBwc3ItbWJhLXNldCcuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDIuIEZpeCBzb21l IHdvcmRpbmdzLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAzLiBFeHBsYWluIGhvdyB1 c2VyIGNhbiBrbm93IHRoZSBNQkFfTUFYLgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICA0 LiBNb3ZlIHRoZSBkZXNjcmlwdGlvbiBvZiAnTGluZWFyIG1vZGUvTm9uLWxpbmVhcgorICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlJyBpbnRvIHNlY3Rpb24gb2YgJ3Bzci1tYmEt c2hvdycuCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDUuIENoYW5nZSAncGVyLXRocmVh ZCcgdG8gJ3Blci1oeXBlci10aHJlYWQnLgorLS0tLS0tLS0tLSAtLS0tLS0tLSAtLS0tLS0tLSAt LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0tIAoxLjkuMQoKCl9f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBt YWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3RzLnhlbi5vcmcKaHR0cHM6Ly9saXN0cy54ZW4ub3Jn L3hlbi1kZXZlbAo=