From mboxrd@z Thu Jan 1 00:00:00 1970 From: Konrad Rzeszutek Wilk Subject: [PATCH v8.1] xSplice v1 design and implementation. Date: Wed, 13 Apr 2016 18:01:41 -0400 Message-ID: <1460584928-32440-1-git-send-email-konrad.wilk@oracle.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta6.messagelabs.com ([85.158.143.247]) by lists.xenproject.org with esmtp (Exim 4.84_2) (envelope-from ) id 1aqSrq-00046h-Np for xen-devel@lists.xenproject.org; Wed, 13 Apr 2016 22:02:34 +0000 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, konrad@kernel.org, ross.lagerwall@citrix.com, mpohlack@amazon.com, andrew.cooper3@citrix.com, sasha.levin@oracle.com List-Id: xen-devel@lists.xenproject.org SGV5IQoKQ2hhbmdlbG9nOgp2ODogc2luY2UgaHR0cDovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMv aHRtbC94ZW4tZGV2ZWwvMjAxNi0wNC9tc2cwMTg3My5odG1sCiAtIFBvc3RpbmcgdGhlIF9SSUdI VF8gc2V0IG9mIHBhdGNoZXMuCgp2NzogaHR0cDovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRt bC94ZW4tZGV2ZWwvMjAxNi0wNC9tc2cwMTQ3Ni5odG1sCiAtIEluZ2VzdGVkIG5ld2VyIHZlcnNp b24gb2YgeDg2L21tOiBJbnRyb2R1Y2UgbW9kaWZ5X3hlbl9tYXBwaW5ncygpCiAtIEltcGxlbWVu dGVkIGZhc3RlciBzeW1ib2wgdGFibGUgbG9va3VwIChORVcpCiAtIENhcnJpZWQgb3V0IHRlc3Rz IG9uIGxhcmdlIENQVSBtYWNoaW5lICgyNDBDUFVzKQogLSBNYWRlIHRoZSBzdHJ1Y3QgeHNwbGlj ZV9wYXRjaF9mdW5jIHdvcmsgb24gQVJNMzIgYW5kIGNoYW5nZWQgaXRzIHNpemUKICAgKDY0Yml0 IGl0IGlzIDY0Ynl0ZXMsIDMyYml0IGlzIDUyIGJ5dGVzIC0gYW5kIHRoZSBvZmZzZXQgaXMgZGlm ZmVyZW50IHRvbykKIC0gQ2hhbmdlZCBhIGJ1bmNoIG9mIHByaW50ayB0byBkcHJpbnRrLCBhZGp1 c3RlZCBYRU5MT0dfIGxldmVscy4KIC0gUmVzdXJyZWN0ZWQgdGhlIFhFTlZFUl9idWlsZF9pZC4K IC0gUmV2ZXJ0ZWQgVkVSU0lPTl9vcC4KdjY6IGh0dHA6Ly9saXN0cy54ZW4ub3JnL2FyY2hpdmVz L2h0bWwveGVuLWRldmVsLzIwMTYtMDQvbXNnMDA4NzEuaHRtbAogLSBBY3RlZCBvbiBhbGwgY29t bWVudHMgZnJvbSBBbmRyZXcsIEp1bGllbiwgYW5kIEphbi4KIC0gR290IGhlbHAgZnJvbSBBbmRy ZXcgb24gb25lIG9mIHRoZW0gb3ZlciB0aGUgd2Vla2VuZC4KIC0gRHJvcHBlZDogeHNwbGljZTog QWRkIC54c3BsaWNlLmhvb2tzIGZ1bmN0aW9ucyBhbmQgdGVzdC1jYXNlLAogICB4c3BsaWNlOiBB ZGQgc3VwcG9ydCBmb3Igc2hhZG93IHZhcmlhYmxlcy4KdjU6IGh0dHA6Ly9saXN0cy54ZW4ub3Jn L2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTYtMDMvbXNnMDMyODYuaHRtbAogLSBBY3RlZCBh dCBhbGwgY29tbWVudHMgZnJvbSBKYW4uCnY0OiBodHRwOi8vbGlzdHMueGVuLm9yZy9hcmNoaXZl cy9odG1sL3hlbi1kZXZlbC8yMDE2LTAzL21zZzAxNzc2Lmh0bWwKIC0gTG90cyBvZiByZXZpZXcu IExvdHMgb2YgcmV3b3JrLiBTb21lIHBhdGNoZXMgY2hlY2tlZCBpbi4KdjM6IGh0dHA6Ly93d3cu Z29zc2FtZXItdGhyZWFkcy5jb20vbGlzdHMveGVuL2RldmVsLzQxODI2MgogICAgYW5kIAogICAg aHR0cDovL2xpc3RzLnhlbnByb2plY3Qub3JnL2FyY2hpdmVzL2h0bWwveGVuLWRldmVsLzIwMTYt MDIvbXNnMDQxMDYuaHRtbAogLSBBY3Qgb24gYWxsIHJldmlld3MuCiAtIFJlZG8gdGhlIGZsb3cg b2YgcGF0Y2hlcwp2MjogaHR0cDovL2xpc3RzLnhlbi5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4tZGV2 ZWwvMjAxNi0wMS9tc2cwMTU5Ny5odG1sCiAtIFVwZGF0ZWQgY29kZS9kb2NzL2Rlc2lnbiB3aXRo IHJldmlldyBjb21tZW50cy4KIC0gTWFrZSB4ZW4gYWxzbyBoYXZlIGFuIFBUX05PVEUKIC0gQWRk ZWQgbW9yZSBvZiBSb3NzJ3MgcGF0Y2hlcwogLSBDb21iaW5lZCBidWlsZC1pZCBwYXRjaHNldCB3 aXRoIHRoaXMuCihzaW5jZSB0aGUgUkZDIGFuZCB0aGUgU2VhdHRsZSBYZW4gcHJlc2VudGF0aW9u KQogLSBGaW5pc2hlZCBvZmYgc29tZSBvZiB0aGUgd29yayBhcm91bmQgdGhlIGJ1aWxkLWlkLgog LSBTZXR0bGVkIG9uIHRoZSBwcmVlbXB0aW9uIG1lY2hhbmlzbS4KIC0gQ2xlYW5lZCB0aGUgcGF0 Y2hlcyBhIGxvdCB1cCwgYnJva2UgdGhlbSB1cCB0byBlYXN5CiAgIHJldmlldyBmb3IgbWFpbnRh aW5lcnMuCnYxOiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4t ZGV2ZWwvMjAxNS0wOS9tc2cwMjExNi5odG1sCiAgLSBQdXQgYWxsIHRoZSBkZXNpZ24gY29tbWVu dHMgaW4gdGhlIGNvZGUKUHJvdG90eXBlOiBodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvYXJj aGl2ZXMvaHRtbC94ZW4tZGV2ZWwvMjAxNS0xMC9tc2cwMjU5NS5odG1sCltQb3N0aW5nIGJ5IFJv c3NdCiAtIFRvb2sgYWxsIHJldmlld3MgaW50byBhY2NvdW50LgogLSBSZWRpZCB0aGUgcGF0Y2hl cwoKCipUb29scyBNYWludGFpbmVycyoKClNpbmNlIHY3LCB0d28gbmV3IHBhdGNoZXMsIHBsZWFz ZSByZXZpZXc6CgogICAgWEVOVkVSX2J1aWxkX2lkL2xpYnhjOiBQcm92aWRlIGxkLWVtYmVkZGVk IGJ1aWxkLWlkCiAgICBsaWJ4bDogaW5mbzogRGlzcGxheSBidWlsZF9pZCBvZiB0aGUgaHlwZXJ2 aXNvci4KCipNYWludGFpbmVycyoKCkxlZ2VuZDoKICogICAgLSBTZWUgYmVsb3cKIFIgICAgLSBS ZXZpZXdlZCAKIFIrICAgLSBSZXZpZXdlZCBieSB0d28gZm9sa3MKIEEgICAgLSBBY2tlZCBieSBt YWludGFpbmVyIG9mIHRoZSBhcmVhIChoeXBlcnZpc29yIG9yIHRvb2xzdGFjaykKCiogICAgIFJl dmVydCAibGlieGMvbGlieGwvcHl0aG9uL3hlbnN0YXQvb2NhbWw6IFVzZSBuZXcKKiAgICAgUmV2 ZXJ0ICJIWVBFUkNBTExfdmVyc2lvbl9vcC4gTmV3IGh5cGVyY2FsbCBtaXJyb3JpbmcKICBBICAg eHNwbGljZTogRGVzaWduIGRvY3VtZW50CiAgIFIgIHhlbi94c3BsaWNlOiBIeXBlcnZpc29yIGlt cGxlbWVudGF0aW9uIG9mIFhFTl9YU1BMSUNFX29wCiAgQVIgIGxpYnhjOiBJbXBsZW1lbnRhdGlv biBvZiBYRU5fWFNQTElDRV9vcCBpbiBsaWJ4YwogIEFSICB4ZW4teHNwbGljZTogVG9vbCB0byBt YW5pcHVsYXRlIHhzcGxpY2UgcGF5bG9hZHMKICBBUiAgYXJtL3g4NjogVXNlIHN0cnVjdCB2aXJ0 dWFsX3JlZ2lvbiB0byBkbyBidWcsIHN5bWJvbCwgYW5kICh4ODYpIGV4Y2VwdGlvbiB0YWJsZXMg bG9va3VwLgogICAgICAgIFtKdWxpZW4gQWNrZWQgdGhlIEFSTSBwYXJ0XQogIEFSICBhcm0veDg2 L3ZtYXA6IEFkZCB2bWFsbG9jX3hlbiwgdmZyZWVfeGVuIGFuZCB2bV9pbml0X3R5cGUKICAgICAg ICBbSnVsaWVuIEFja2VkIHRoZSBBUk0gcGFydF0KICAgUisgIHg4Ni9tbTogSW50cm9kdWNlIG1v ZGlmeV94ZW5fbWFwcGluZ3MoKQogICBSICB4c3BsaWNlOiBBZGQgaGVscGVyIGVsZiByb3V0aW5l cwogICBSICB4c3BsaWNlOiBJbXBsZW1lbnQgcGF5bG9hZCBsb2FkaW5nCiogIFIgIHhzcGxpY2U6 IEltcGxlbWVudCBzdXBwb3J0IGZvciBhcHBseWluZy9yZXZlcnRpbmcvcmVwbGFjaW5nIHBhdGNo ZXMuCiAgIFIgIHg4Ni94ZW5faGVsbG9fd29ybGQueHNwbGljZTogVGVzdCBwYXlsb2FkIGZvciBw YXRjaGluZyAneGVuX2V4dHJhX3ZlcnNpb24nLgogICBSICB4c3BsaWNlLHN5bWJvbHM6IEltcGxl bWVudCBzeW1ib2wgbmFtZSByZXNvbHV0aW9uIG9uIGFkZHJlc3MuCiogICAgIHhzcGxpY2UsIHN5 bWJvbHM6IEltcGxlbWVudCBmYXN0IHN5bWJvbCBuYW1lcyAtPiB2aXJ0dWFsIGFkZHJlc3NlcyBs b29rdXAKICAgUiAgeDg2LCB4c3BsaWNlOiBQcmludCBwYXlsb2FkJ3Mgc3ltYm9sIG5hbWUgYW5k IHBheWxvYWQgbmFtZSBpbiBiYWNrdHJhY2VzCiAgIFIgIHhzcGxpY2U6IEFkZCBzdXBwb3J0IGZv ciBidWcgZnJhbWVzLgogICBSICB4c3BsaWNlOiBBZGQgc3VwcG9ydCBmb3IgZXhjZXB0aW9uIHRh Ymxlcy4KICAgUiAgeHNwbGljZTogQWRkIHN1cHBvcnQgZm9yIGFsdGVybmF0aXZlcwogIEFSICBi dWlsZF9pZDogUHJvdmlkZSBsZC1lbWJlZGRlZCBidWlsZC1pZHMKICAgICAgICBbSnVsaWVuIEFj a2VkIHRoZSBBUk0gcGFydF0KICBBUiAgeHNwbGljZTogUHJpbnQgYnVpbGRfaWQgaW4ga2V5aGFu ZGxlciBhbmQgb24gYm9vdHVwLgoqICAgICBYRU5WRVJfYnVpbGRfaWQvbGlieGM6IFByb3ZpZGUg bGQtZW1iZWRkZWQgYnVpbGQtaWQKKiAgICAgbGlieGw6IGluZm86IERpc3BsYXkgYnVpbGRfaWQg b2YgdGhlIGh5cGVydmlzb3IuCiAgIFIgIHhzcGxpY2U6IFN0YWNraW5nIGJ1aWxkLWlkIGRlcGVu ZGVuY3kgY2hlY2tpbmcuCiAgIFIgIHhzcGxpY2UveGVuX3JlcGxhY2Vfd29ybGQ6IFRlc3QtY2Fz ZSBmb3IgWFNQTElDRV9BQ1RJT05fUkVQTEFDRQogICBSICB4c3BsaWNlOiBQcmV2ZW50IGR1cGxp Y2F0ZSBwYXlsb2FkcyBmcm9tIGJlaW5nIGxvYWRlZC4KICAgUiAgTUFJTlRBSU5FUlMveHNwbGlj ZTogQWRkIG15c2VsZiBhbmQgUm9zcyBhcyB0aGUgbWFpbnRhaW5lcnMuCgpTaW5jZSB2NywgdGhl CiBbUEFUQ0ggdjguMSAwMS8yN10gUmV2ZXJ0ICJsaWJ4Yy9saWJ4bC9weXRob24veGVuc3RhdC9v Y2FtbDogVXNlIG5ldwogW1BBVENIIHY4LjEgMDIvMjddIFJldmVydCAiSFlQRVJDQUxMX3ZlcnNp b25fb3AuIE5ldyBoeXBlcmNhbGwgbWlycm9yaW5nCgogW1BBVENIIHY4LjEgMTUvMjddIHhzcGxp Y2UsIHN5bWJvbHM6IEltcGxlbWVudCBmYXN0IHN5bWJvbCBuYW1lcyAtPgogW1BBVENIIHY4LjEg MjIvMjddIFhFTlZFUl9idWlsZF9pZC9saWJ4YzogUHJvdmlkZSBsZC1lbWJlZGRlZCBidWlsZC1p ZAogW1BBVENIIHY4LjEgMjMvMjddIGxpYnhsOiBpbmZvOiBEaXNwbGF5IGJ1aWxkX2lkIG9mIHRo ZSBoeXBlcnZpc29yLgoKaGF2ZW4ndCBiZWVuIHJldmlld2VkICh0aGV5IGFyZSBuZXcpLiBUaG91 Z2h0IGhvbmVzdGx5IHRoZSByZXZlcnRzIGRvbid0IHJlYWxseQpuZWVkIGEgcmV2aWV3LgoKSnVs aWVuLCBTdGVmYW5vLCBJIGRyb3BwZWQgSnVsaWVuJ3MgQWNrIG9uCgogW1BBVENIIHY4LjEgMTEv MjddIHhzcGxpY2U6IEltcGxlbWVudCBwYXlsb2FkIGxvYWRpbmcKCmFzIEphbidzIGV4cHJlc3Nl ZCBhIGRlc2lyZSBub3QgdG8gaGF2ZSBCSVRTX1BFUl9MT05HIGV4cG9zZWQKaW4gdGhlIHB1Ymxp YyBoZWFkZXJzLiBJJ3ZlIHB1dCBDT05GSUdfQVJNXzMyIGluIHRoZXJlLiBPbiBJUkMKU3RlZmFu byB3YXMgT0sgKHJlbHVjYW50bHkpIHdpdGggaXQuCgpQYXRjaHNldCBoYXMgYmVlbiB0ZXN0ZWQg b24gQVJNICh0d2Vha2luZyB0aGUgS2NvbmZpZyB0byBidWlsZCB4U3BsaWNlIGFuZCB0aGVuCmJv b3RpbmcgYW5kIHVzaW5nIGl0IHVuZGVyIEFSTSBDdWJpZVRydWNrIC0gZ3JhbnRlZCB0aGVyZSBp cyBubyBwYXRjaGluZwp5ZXQgYnV0IHRoZSBoeXBlcmNhbGxzIHdvcmspLCBBUk02NCAob25seSBi dWlsdCBpdCksIGFuZCB4ODYgKGxlZ2FjeSBhbmQgRUZJKQoKKlZFUlNJT05fT1AgYmVpbmcgcmV2 ZXJ0ZWQ/KgoKSWFuICh0aGFuayB5b3UgdGFraW5nIHRoZSBzdHJlc3NmdWwgcm9sZSBvZiB0aWVi cmVha2VyKSBwb2ludGVkIG91dCB0aGF0CmF0IHRoZSBlbmQgb2YgdGhlIGRheSAtIGxlc3MgY29k ZSBmcm9tIGEgbWFpbnRhaW5jZSBwZXJzcGVjdGl2ZSBpcyBlYXNpZXIuCkhlbmNlIHRoZSByZXZl cnQuIFdlIGNhbiBhbHdheXMgcmV2aXNpdCB0aGlzIGluIFhlbiA0LjggOi0pCgoqQXJlIHRoZXJl IGFueSBUT0RPcyBsZWZ0IGZyb20gdjUsdjYsdjcgcmV2aWV3cz8qCgpKdXN0IGhvdyB0aGUgc3lz Y3RsLmggZGVmaW5pdGlvbiBmb3IgJ3N0cnVjdCB4c3BsaWNlX3BhdGNoX2Z1bmMnIHNob3VsZCBi ZToKCiNkZWZpbmUgWFNQTElDRV9QQVlMT0FEX1ZFUlNJT04gMQovKgogKiAueHNwbGljZS5mdW5j cyBzdHJ1Y3R1cmUgbGF5b3V0IGRlZmluZWQgaW4gdGhlIGBQYXlsb2FkIGZvcm1hdGAKICogc2Vj dGlvbiBpbiB0aGUgeFNwbGljZSBkZXNpZ24gZG9jdW1lbnQuCiAqCiAqIFRoZSBzaXplIHNob3Vs ZCBiZSBleGFjdGx5IDY0IGJ5dGVzICg2NCkgb3IgNTIgYnl0ZXMgKDMyKS4KICoKICogV2UgZ3Vh cmQgdGhpcyB3aXRoIF9fWEVOX18gYXMgdG9vbHN0YWNrcyBkbyBub3QgbmVlZCB0byB1c2UgaXQu CiAqLwojaWZkZWYgX19YRU5fXwpzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jIHsKICAgIGNvbnN0 IGNoYXIgKm5hbWU7ICAgICAgIC8qIE5hbWUgb2YgZnVuY3Rpb24gdG8gYmUgcGF0Y2hlZC4gKi8K I2lmIENPTkZJR19BUk1fMzIKICAgIHVpbnQzMl90IG5ld19hZGRyOwogICAgdWludDMyX3Qgb2xk X2FkZHI7CiNlbHNlCiAgICB1aW50NjRfdCBuZXdfYWRkcjsKICAgIHVpbnQ2NF90IG9sZF9hZGRy OyAgICAgIC8qIENhbiBiZSB6ZXJvIGFuZCBuYW1lIHdpbGwgYmUgbG9va2VkIHVwLiAqLwojZW5k aWYKICAgIHVpbnQzMl90IG5ld19zaXplOwogICAgdWludDMyX3Qgb2xkX3NpemU7CiAgICB1aW50 OF90IHZlcnNpb247ICAgICAgICAvKiBNVVNUIGJlIFhTUExJQ0VfUEFZTE9BRF9WRVJTSU9OLiAq LwogICAgdWludDhfdCBwYWRbMzFdOyAgICAgICAgLyogTVVTVCBiZSB6ZXJvIGZpbGxlZC4gKi8K fTsKdHlwZWRlZiBzdHJ1Y3QgeHNwbGljZV9wYXRjaF9mdW5jIHhzcGxpY2VfcGF0Y2hfZnVuY190 OwojZW5kaWYKClBsZWFzZSBub3RlIHRoZSBfX1hFTl9fIHNvIGV2ZW4gaWYgdG9vbHN0YWNrIGRv ZXMgaW5jbHVkZSB0aGUgcHVibGljL3N5c2N0bC5oCml0IHdvbid0IGZpbmQgaXQgdGhlIHN0cnVj dHVyZS4KCldpdGggdGhpcyBJIGFtIGFibGUgdG8gY29tcGlsZSBlYXJseS10ZXN0LWNhc2VzLXBy b3RvdHlwZS13b3JrIHhTcGxpY2Ugb24gQVJNMzIuCgoqV2hhdCBpcyB4U3BsaWNlPyoKCkEgbWVj aGFuaXNtIHRvIGJpbmFyaWx5IHBhdGNoIHRoZSBydW5uaW5nIGh5cGVydmlzb3Igd2l0aCBuZXcK b3Bjb2RlcyB0aGF0IGhhdmUgY29tZSBhYm91dCBkdWUgdG8gcHJpbWFyaWx5IHNlY3VyaXR5IHVw ZGF0ZXMuCgoqV2hhdCB3aWxsIHRoaXMgcGF0Y2hzZXQgZG8gb25jZSBJJ3ZlIGl0KgoKUGF0Y2gg dGhlIGh5cGVydmlzb3IuCgoqV2h5IGFyZSB5b3UgZW1haWxpbmcgbWU/KgoKUGxlYXNlIHBsZWFz ZSByZXZpZXcgYXMgbWFueSBwYXRjaGVzIGFzIHBvc3NpYmxlLgoKKk9LLCB3aGF0IGRvIHlvdSBo YXZlPyoKClRoZXkgYXJlIGxvY2F0ZWQgYXQgYSBnaXQgdHJlZToKICBnaXQ6Ly94ZW5iaXRzLnhl bi5vcmcvcGVvcGxlL2tvbnJhZHdpbGsveGVuLmdpdCAgIHhzcGxpY2UudjguZHJvcF9WRVJTSU9O X29wCgooQ29weWluZyBmcm9tIFJvc3MncyBlbWFpbCk6CgpNdWNoIG9mIHRoZSB3b3JrIGlzIGlt cGxlbWVudGluZyBhIGJhc2ljIHZlcnNpb24gb2YgdGhlIExpbnV4IGtlcm5lbCBtb2R1bGUKbG9h ZGVyLiBUaGUgY29kZToKKiBMb2FkaW5nIG9mIHhTcGxpY2UgRUxGIHBheWxvYWRzLgoqIENvcHlp bmcgYWxsb2NhdGVkIHNlY3Rpb25zIGludG8gYSBuZXcgZXhlY3V0YWJsZSByZWdpb24gb2YgbWVt b3J5LgoqIFJlc29sdmluZyBzeW1ib2xzLgoqIEFwcGx5aW5nIHJlbG9jYXRpb25zLgoqIFBhdGNo aW5nIG9mIGFsdGluc3RydWN0aW9ucy4KKiBTcGVjaWFsIGhhbmRsaW5nIG9mIGJ1ZyBmcmFtZXMg YW5kIGV4Y2VwdGlvbiB0YWJsZXMuCiogVW5sb2FkaW5nIG9mIHhTcGxpY2UgRUxGIHBheWxvYWRz LgoqIENvbXBpbGluZyBhIHNhbXBsZSB4U3BsaWNlIEVMRiBwYXlsb2FkCiogUmVzb2x2aW5nIHN5 bWJvbHMKKiBVc2luZyBidWlsZC1pZCBkZXBlbmRlbmNpZXMKKiBTdXBwb3J0IGZvciBzaGFkb3cg dmFyaWFibGUgZnJhbWV3b3JrCiogU3VwcG9ydCBmb3IgZXhlY3V0aW5nIEVMRiBwYXlsb2FkIGZ1 bmN0aW9ucyBvbiBsb2FkL3VubG9hZC4KClRoZSBvdGhlciBtYWluIGJpdCBvZiB0aGlzIHdvcmsg aXMgYXBwbHlpbmcgYW5kIHJldmVydGluZyB0aGUgcGF0Y2hlcyBzYWZlbHkuCkFzIGltcGxlbWVu dGVkLCB0aGUgY29kZSBpcyBwYXRjaGVkIHdpdGggZWFjaCBDUFUgd2FpdGluZyBpbiB0aGUKcmV0 dXJuLXRvLWd1ZXN0IHBhdGggKGkuZS4gd2l0aCBubyBzdGFjaykgb3Igb24gdGhlIGNwdS1pZGxl IHBhdGgKd2hpY2ggYXBwZWFycyB0byBiZSB0aGUgc2FmZXN0IHdheSBvZiBwYXRjaGluZy4gV2hp bGUgaXQgaXMgc2FmZSB3ZSBzaG91bGQKc3RpbGwgKGluIHRoZSBuZXh0IHdhdmUgb2YgcGF0Y2hl cykgdG8gdmVyaWZ5IHRvIG5vdCBwYXRjaCBjZXRhaW4gY3JpdGljYWwKc2VjdGlvbnMgKHNheSB0 aGUgY29kZSBkb2luZyB0aGUgcGF0Y2hpbmcpCgpBbGwgb2YgdGhlIGZvbGxvd2luZyBzaG91bGQg d29yazoKKiBBcHBseWluZyBwYXRjaGVzIHNhZmVseS4KKiBSZXZlcnRpbmcgcGF0Y2hlcyBzYWZl bHkuCiogUmVwbGFjaW5nIHBhdGNoZXMgc2FmZWx5IChlLmcuIHJldmVydGluZyBhbnkgYXBwbGll ZCBwYXRjaGVzIGFuZCBhcHBseWluZwogICBhIG5ldyBwYXRjaCkuCiogQnVnIGZyYW1lcyBhcyBw YXJ0IG9mIG1vZHVsZXMuIFRoaXMgbWVhbnMgYWRkaW5nIG9yCiAgY2hhbmdpbmcgV0FSTiwgQVNT RVJULCBCVUcsIGFuZCBydW5faW5fZXhjZXB0aW9uX2hhbmRsZXIgd29ya3MgY29ycmVjdGx5Lgog IExpbmUgbnVtYmVyIG9ubHkgY2hhbmdlcyBfYXJlIGlnbm9yZWRfLgoqIEV4Y2VwdGlvbiB0YWJs ZXMgYXMgcGFydCBvZiBtb2R1bGVzLiBFLmcuIHdybXNyX3NhZmUgYW5kIGNvcHlfdG9fdXNlciB3 b3JrCiAgY29ycmVjdGx5IHdoZW4gdXNlZCBpbiBhIHBhdGNoIG1vZHVsZS4KKiBTdGFja2luZyBv ZiBwYXRjaGVzIG9uIHRvcCBvZiBlYWNoIG90aGVyCiogUmVzb2x2aW5nIHN5bWJvbHMgKGV2ZW4g b2YgcGF0Y2hlcykKCipMaW1pdGF0aW9ucyoKClRoZSBhYm92ZSBpcyBlbm91Z2ggdG8gZnVsbHkg aW1wbGVtZW50IGFuIHVwZGF0ZSBzeXN0ZW0gd2hlcmUgbXVsdGlwbGUgc291cmNlCnBhdGNoZXMg YXJlIGNvbWJpbmVkICh1c2luZyBjb21iaW5lZGlmZikgYW5kIGJ1aWx0IGludG8gYSBzaW5nbGUg YmluYXJ5CndoaWNoIHRoZW4gYXRvbWljYWxseSByZXBsYWNlcyBhbnkgZXhpc3RpbmcgbG9hZGVk IHBhdGNoZXMKKHRoaXMgaXMgd2h5IFJvc3MgYWRkZWQgYSBSRVBMQUNFIG9wZXJhdGlvbikuIFRo aXMgaXMgdGhlIGFwcHJvYWNoIHVzZWQKYnkga1BhdGNoIGFuZCBrR3JhZnQuCgpNdWx0aXBsZSBj b21wbGV0ZWx5IGluZGVwZW5kZW50IHBhdGNoZXMgY2FuIGFsc28gYmUgbG9hZGVkIGJ1dCB1bmV4 cGVjdGVkCmludGVyYWN0aW9ucyBtYXkgb2NjdXIuCgpBcyBpdCBzdGFuZHMsIHRoZSBwYXRjaGVz IGFyZSBzdGF0aWNhbGx5IGxpbmtlZCB3aGljaCBtZWFucyB0aGF0IGluZGVwZW5kZW50CnBhdGNo ZXMgY2Fubm90IGJlIGxpbmtlZCBhZ2FpbnN0IG9uZSBhbm90aGVyIChlLmcuIGlmIG9uZSBpbnRy b2R1Y2VzIGEKbmV3IHN5bWJvbCkuIFVzaW5nIHRoZSBjb21iaW5lZGlmZiBhcHByb2FjaCBhYm92 ZSBmaXhlcyB0aGlzLgoKQmFja3RyYWNlcyBjb250YWluaW5nIGZ1bmN0aW9ucyBmcm9tIGEgcGF0 Y2ggbW9kdWxlIGRvIG5vdCBzaG93IHRoZSBzeW1ib2wgbmFtZS4KClRoZXJlIGlzIG5vIGNoZWNr aW5nIHRoYXQgYSBwYXRjaCB3aGljaCBpcyBsb2FkZWQgaXMgYnVpbHQgZm9yIHRoZQpjb3JyZWN0 IGh5cGVydmlzb3IgKG5lZWQgdG8gdXNlIGJ1aWxkLWlkKS4KCkJpbmFyeSBwYXRjaGluZyB3b3Jr cyBhdCB0aGUgZnVuY3Rpb24gbGV2ZWwuCgoqVGVzdGluZyoKCllvdSBjYW4gdXNlIHRoZSBleGFt cGxlIGNvZGUgaW5jbHVkZWQgaW4gdGhpcyBwYXRjaHNldDoKCiMgeGwgaW5mbyB8IGdyZXAgZXh0 cmEKeGVuX2V4dHJhICAgICAgICAgICAgICA6IC11bnN0YWJsZQojIHhlbi14c3BsaWNlIGxvYWQg L3Vzci9saWIvZGVidWcveGVuX2hlbGxvX3dvcmxkLnhzcGxpY2UKVXBsb2FkaW5nIC91c3IvbGli L2RlYnVnL3hlbl9oZWxsb193b3JsZC54c3BsaWNlICgyMDcxIGJ5dGVzKQpQZXJmb3JtaW5nIGNo ZWNrOiBjb21wbGV0ZWQKUGVyZm9ybWluZyBhcHBseTouIGNvbXBsZXRlZAojIHhsIGluZm8gfCBn cmVwIGV4dHJhCnhlbl9leHRyYSAgICAgICAgICAgICAgOiBIZWxsbyBXb3JsZAojIHhlbi14c3Bs aWNlIHJldmVydCB4ZW5faGVsbG9fd29ybGQKUGVyZm9ybWluZyByZXZlcnQ6LiBjb21wbGV0ZWQK IyB4ZW4teHNwbGljZSB1bmxvYWQgeGVuX2hlbGxvX3dvcmxkClBlcmZvcm1pbmcgdW5sb2FkOiBj b21wbGV0ZWQKIyB4bCBpbmZvIHwgZ3JlcCBleHRyYQp4ZW5fZXh0cmEgICAgICAgICAgICAgIDog LXVuc3RhYmxlCgpPciB5b3UgY2FuIHVzZSBnaXQ6Ly94ZW5iaXRzLnhlbi5vcmcvcGVvcGxlL2tv bnJhZHdpbGsveHNwbGljZS1idWlsZC10b29scy5naXQKd2hpY2ggZ2VuZXJhdGVzIHRoZSBFTEYg cGF5bG9hZHMuCgpUaGlzIGxpbmsgaGFzIGEgbmljZSBkZXNjcmlwdGlvbiBvZiBob3cgdG8gdXNl IHRoZSB0b29sOgpodHRwOi8vbGlzdHMueGVucHJvamVjdC5vcmcvYXJjaGl2ZXMvaHRtbC94ZW4t ZGV2ZWwvMjAxNS0xMC9tc2cwMjU5NS5odG1sCgogLmdpdGlnbm9yZSAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgfCAgICA1ICsKIENvbmZpZy5tayAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIHwgICAxMiArCiBNQUlOVEFJTkVSUyAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgMTAgKwogZG9jcy9taXNjL3hzcGxpY2UubWFya2Rvd24gICAgICAg ICAgICAgICAgICAgfCAxMTE2ICsrKysrKysrKysrKysrKysrKysKIHRvb2xzL2ZsYXNrL3BvbGlj eS9wb2xpY3kvbW9kdWxlcy94ZW4veGVuLnRlIHwgICAgOSArLQogdG9vbHMvbGlieGMvaW5jbHVk ZS94ZW5jdHJsLmggICAgICAgICAgICAgICAgfCAgIDk0ICstCiB0b29scy9saWJ4Yy94Y19jb3Jl LmMgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMzUgKy0KIHRvb2xzL2xpYnhjL3hjX2RvbV9i b290LmMgICAgICAgICAgICAgICAgICAgIHwgICAxMiArLQogdG9vbHMvbGlieGMveGNfZG9tYWlu LmMgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICstCiB0b29scy9saWJ4Yy94Y19taXNjLmMg ICAgICAgICAgICAgICAgICAgICAgICB8ICAzNTUgKysrKysrCiB0b29scy9saWJ4Yy94Y19wcml2 YXRlLmMgICAgICAgICAgICAgICAgICAgICB8ICAgNjAgKy0KIHRvb2xzL2xpYnhjL3hjX3ByaXZh dGUuaCAgICAgICAgICAgICAgICAgICAgIHwgICAxOCArLQogdG9vbHMvbGlieGMveGNfcmVzdW1l LmMgICAgICAgICAgICAgICAgICAgICAgfCAgICAzICstCiB0b29scy9saWJ4Yy94Y19zcl9zYXZl LmMgICAgICAgICAgICAgICAgICAgICB8ICAgIDkgKy0KIHRvb2xzL2xpYnhjL3hnX3NhdmVfcmVz dG9yZS5oICAgICAgICAgICAgICAgIHwgICAgNiArLQogdG9vbHMvbGlieGwvbGlieGwuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgfCAgMTA4ICstCiB0b29scy9saWJ4bC9saWJ4bC5oICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwogdG9vbHMvbGlieGwvbGlieGxfdHlwZXMuaWRs ICAgICAgICAgICAgICAgICAgfCAgICAxICsKIHRvb2xzL2xpYnhsL3hsX2NtZGltcGwuYyAgICAg ICAgICAgICAgICAgICAgIHwgICAgMSArCiB0b29scy9taXNjL01ha2VmaWxlICAgICAgICAgICAg ICAgICAgICAgICAgICB8ICAgIDQgKwogdG9vbHMvbWlzYy94ZW4teHNwbGljZS5jICAgICAgICAg ICAgICAgICAgICAgfCAgNDYzICsrKysrKysrCiB0b29scy9vY2FtbC9saWJzL3hjL3hlbmN0cmxf c3R1YnMuYyAgICAgICAgICB8ICAgMzkgKy0KIHRvb2xzL3B5dGhvbi94ZW4vbG93bGV2ZWwveGMv eGMuYyAgICAgICAgICAgIHwgICAzMCArLQogdG9vbHMveGVuc3RhdC9saWJ4ZW5zdGF0L3NyYy94 ZW5zdGF0LmMgICAgICAgfCAgIDEyICstCiB0b29scy94ZW50cmFjZS94ZW5jdHguYyAgICAgICAg ICAgICAgICAgICAgICB8ICAgIDMgKy0KIHhlbi9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgOCArLQogeGVuL2FyY2gvYXJtL01ha2VmaWxlICAgICAgICAgICAg ICAgICAgICAgICAgfCAgICA1ICstCiB4ZW4vYXJjaC9hcm0va2VybmVsLmMgICAgICAgICAgICAg ICAgICAgICAgICB8ICAgIDIgKy0KIHhlbi9hcmNoL2FybS9tbS5jICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHwgICAgMiArLQogeGVuL2FyY2gvYXJtL3NldHVwLmMgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgICA0ICsKIHhlbi9hcmNoL2FybS90cmFwcy5jICAgICAgICAgICAgICAgICAg ICAgICAgIHwgICA0MCArLQogeGVuL2FyY2gvYXJtL3hlbi5sZHMuUyAgICAgICAgICAgICAgICAg ICAgICAgfCAgIDE1ICstCiB4ZW4vYXJjaC9hcm0veHNwbGljZS5jICAgICAgICAgICAgICAgICAg ICAgICB8ICAgODcgKysKIHhlbi9hcmNoL3g4Ni9NYWtlZmlsZSAgICAgICAgICAgICAgICAgICAg ICAgIHwgICA1OCArLQogeGVuL2FyY2gveDg2L2FsdGVybmF0aXZlLmMgICAgICAgICAgICAgICAg ICAgfCAgIDQyICstCiB4ZW4vYXJjaC94ODYvYm9vdC9ta2VsZjMyLmMgICAgICAgICAgICAgICAg ICB8ICAxMjkgKystCiB4ZW4vYXJjaC94ODYvZG9tYWluLmMgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgIDIgKwogeGVuL2FyY2gveDg2L2V4dGFibGUuYyAgICAgICAgICAgICAgICAgICAgICAg fCAgIDQxICstCiB4ZW4vYXJjaC94ODYvaHZtL2h2bS5jICAgICAgICAgICAgICAgICAgICAgICB8 ICAgIDEgLQogeGVuL2FyY2gveDg2L21tLmMgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAg IDc3ICstCiB4ZW4vYXJjaC94ODYvc2V0dXAuYyAgICAgICAgICAgICAgICAgICAgICAgICB8ICAg MjggKy0KIHhlbi9hcmNoL3g4Ni90ZXN0L01ha2VmaWxlICAgICAgICAgICAgICAgICAgIHwgICA4 NSArKwogeGVuL2FyY2gveDg2L3Rlc3QveGVuX2J5ZV93b3JsZC5jICAgICAgICAgICAgfCAgIDM0 ICsKIHhlbi9hcmNoL3g4Ni90ZXN0L3hlbl9ieWVfd29ybGRfZnVuYy5jICAgICAgIHwgICAyNCAr CiB4ZW4vYXJjaC94ODYvdGVzdC94ZW5faGVsbG9fd29ybGQuYyAgICAgICAgICB8ICAgMzMgKwog eGVuL2FyY2gveDg2L3Rlc3QveGVuX2hlbGxvX3dvcmxkX2Z1bmMuYyAgICAgfCAgIDM4ICsKIHhl bi9hcmNoL3g4Ni90ZXN0L3hlbl9yZXBsYWNlX3dvcmxkLmMgICAgICAgIHwgICAzNCArCiB4ZW4v YXJjaC94ODYvdGVzdC94ZW5fcmVwbGFjZV93b3JsZF9mdW5jLmMgICB8ICAgMjQgKwogeGVuL2Fy Y2gveDg2L3RyYXBzLmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDQ1ICstCiB4ZW4vYXJj aC94ODYveDg2XzY0L2NvbXBhdC9lbnRyeS5TICAgICAgICAgICB8ICAgIDIgLQogeGVuL2FyY2gv eDg2L3g4Nl82NC9lbnRyeS5TICAgICAgICAgICAgICAgICAgfCAgICAyIC0KIHhlbi9hcmNoL3g4 Ni94ZW4ubGRzLlMgICAgICAgICAgICAgICAgICAgICAgIHwgICAyOCArCiB4ZW4vYXJjaC94ODYv eHNwbGljZS5jICAgICAgICAgICAgICAgICAgICAgICB8ICAyNjQgKysrKysKIHhlbi9jb21tb24v S2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAyOCArCiB4ZW4vY29tbW9uL01h a2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDMgKwogeGVuL2NvbW1vbi9jb21w YXQva2VybmVsLmMgICAgICAgICAgICAgICAgICAgfCAgICAyIC0KIHhlbi9jb21tb24va2VybmVs LmMgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDIyNiArKy0tCiB4ZW4vY29tbW9uL3N5bWJv bHMtZHVtbXkuYyAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwogeGVuL2NvbW1vbi9zeW1ib2xz LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTE4ICstCiB4ZW4vY29tbW9uL3N5c2N0bC5j ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDYgKwogeGVuL2NvbW1vbi92ZXJzaW9uLmMg ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDcwICsrCiB4ZW4vY29tbW9uL3ZpcnR1YWxfcmVn aW9uLmMgICAgICAgICAgICAgICAgICB8ICAxNDggKysrCiB4ZW4vY29tbW9uL3ZtYXAuYyAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAyMDIgKystLQogeGVuL2NvbW1vbi92c3ByaW50Zi5j ICAgICAgICAgICAgICAgICAgICAgICAgfCAgIDE5ICstCiB4ZW4vY29tbW9uL3hzcGxpY2UuYyAg ICAgICAgICAgICAgICAgICAgICAgICB8IDE1NDEgKysrKysrKysrKysrKysrKysrKysrKysrKysK IHhlbi9jb21tb24veHNwbGljZV9lbGYuYyAgICAgICAgICAgICAgICAgICAgIHwgIDQ5NSArKysr KysrKysKIHhlbi9kcml2ZXJzL2FjcGkvb3NsLmMgICAgICAgICAgICAgICAgICAgICAgIHwgICAg MiArLQogeGVuL2luY2x1ZGUvYXNtLXg4Ni9hbHRlcm5hdGl2ZS5oICAgICAgICAgICAgfCAgICA0 ICsKIHhlbi9pbmNsdWRlL2FzbS14ODYvY3VycmVudC5oICAgICAgICAgICAgICAgIHwgICAxMCAr LQogeGVuL2luY2x1ZGUvYXNtLXg4Ni91YWNjZXNzLmggICAgICAgICAgICAgICAgfCAgICAyICsK IHhlbi9pbmNsdWRlL3B1YmxpYy9hcmNoLWFybS5oICAgICAgICAgICAgICAgIHwgICAgMiAtCiB4 ZW4vaW5jbHVkZS9wdWJsaWMvc3lzY3RsLmggICAgICAgICAgICAgICAgICB8ICAxOTMgKysrKwog eGVuL2luY2x1ZGUvcHVibGljL3ZlcnNpb24uaCAgICAgICAgICAgICAgICAgfCAgIDgyICstCiB4 ZW4vaW5jbHVkZS9wdWJsaWMveGVuLmggICAgICAgICAgICAgICAgICAgICB8ICAgIDEgLQogeGVu L2luY2x1ZGUveGVuL2VsZnN0cnVjdHMuaCAgICAgICAgICAgICAgICAgfCAgICA3ICsKIHhlbi9p bmNsdWRlL3hlbi9oeXBlcmNhbGwuaCAgICAgICAgICAgICAgICAgIHwgICAgNCAtCiB4ZW4vaW5j bHVkZS94ZW4vbW0uaCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDIgKwogeGVuL2luY2x1 ZGUveGVuL3N5bWJvbHMuaCAgICAgICAgICAgICAgICAgICAgfCAgIDExICsKIHhlbi9pbmNsdWRl L3hlbi92ZXJzaW9uLmggICAgICAgICAgICAgICAgICAgIHwgICAgMSArCiB4ZW4vaW5jbHVkZS94 ZW4vdmlydHVhbF9yZWdpb24uaCAgICAgICAgICAgICB8ICAgNDcgKwogeGVuL2luY2x1ZGUveGVu L3ZtYXAuaCAgICAgICAgICAgICAgICAgICAgICAgfCAgIDIxICstCiB4ZW4vaW5jbHVkZS94ZW4v eHNwbGljZS5oICAgICAgICAgICAgICAgICAgICB8ICAxNDYgKysrCiB4ZW4vaW5jbHVkZS94ZW4v eHNwbGljZV9lbGYuaCAgICAgICAgICAgICAgICB8ICAgNTggKwogeGVuL2luY2x1ZGUveHNtL2R1 bW15LmggICAgICAgICAgICAgICAgICAgICAgfCAgIDIxIC0KIHhlbi9pbmNsdWRlL3hzbS94c20u aCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgNiAtCiB4ZW4vdG9vbHMvc3ltYm9scy5jICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICAgOTMgKy0KIHhlbi94c20vZHVtbXkuYyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSAtCiB4ZW4veHNtL2ZsYXNrL2hvb2tzLmMgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgNDAgKy0KIHhlbi94c20vZmxhc2svcG9saWN5L2FjY2Vz c192ZWN0b3JzICAgICAgICAgIHwgICAyNSArLQogODkgZmlsZXMgY2hhbmdlZCwgNjQ5NiBpbnNl cnRpb25zKCspLCA3MTUgZGVsZXRpb25zKC0pCgoKQW5kcmV3IENvb3BlciAoMSk6CiAgICAgIHg4 Ni9tbTogSW50cm9kdWNlIG1vZGlmeV94ZW5fbWFwcGluZ3MoKQoKS29ucmFkIFJ6ZXN6dXRlayBX aWxrICgxNyk6CiAgICAgIFJldmVydCAibGlieGMvbGlieGwvcHl0aG9uL3hlbnN0YXQvb2NhbWw6 IFVzZSBuZXcgWEVOX1ZFUlNJT04gaHlwZXJjYWxsIgogICAgICBSZXZlcnQgIkhZUEVSQ0FMTF92 ZXJzaW9uX29wLiBOZXcgaHlwZXJjYWxsIG1pcnJvcmluZyBYRU5WRVJfIGJ1dCBzYW5lLiIKICAg ICAgeHNwbGljZTogRGVzaWduIGRvY3VtZW50CiAgICAgIHhlbi94c3BsaWNlOiBIeXBlcnZpc29y IGltcGxlbWVudGF0aW9uIG9mIFhFTl9YU1BMSUNFX29wCiAgICAgIGxpYnhjOiBJbXBsZW1lbnRh dGlvbiBvZiBYRU5fWFNQTElDRV9vcCBpbiBsaWJ4YwogICAgICB4ZW4teHNwbGljZTogVG9vbCB0 byBtYW5pcHVsYXRlIHhzcGxpY2UgcGF5bG9hZHMKICAgICAgYXJtL3g4NjogVXNlIHN0cnVjdCB2 aXJ0dWFsX3JlZ2lvbiB0byBkbyBidWcsIHN5bWJvbCwgYW5kICh4ODYpIGV4Y2VwdGlvbiB0YWJs ZXMgbG9va3VwLgogICAgICBhcm0veDg2L3ZtYXA6IEFkZCB2bWFsbG9jX3hlbiwgdmZyZWVfeGVu IGFuZCB2bV9pbml0X3R5cGUKICAgICAgeDg2L3hlbl9oZWxsb193b3JsZC54c3BsaWNlOiBUZXN0 IHBheWxvYWQgZm9yIHBhdGNoaW5nICd4ZW5fZXh0cmFfdmVyc2lvbicuCiAgICAgIHhzcGxpY2Us IHN5bWJvbHM6IEltcGxlbWVudCBmYXN0IHN5bWJvbCBuYW1lcyAtPiB2aXJ0dWFsIGFkZHJlc3Nl cyBsb29rdXAKICAgICAgYnVpbGRfaWQ6IFByb3ZpZGUgbGQtZW1iZWRkZWQgYnVpbGQtaWRzCiAg ICAgIHhzcGxpY2U6IFByaW50IGJ1aWxkX2lkIGluIGtleWhhbmRsZXIgYW5kIG9uIGJvb3R1cC4K ICAgICAgWEVOVkVSX2J1aWxkX2lkL2xpYnhjOiBQcm92aWRlIGxkLWVtYmVkZGVkIGJ1aWxkLWlk CiAgICAgIGxpYnhsOiBpbmZvOiBEaXNwbGF5IGJ1aWxkX2lkIG9mIHRoZSBoeXBlcnZpc29yLgog ICAgICB4c3BsaWNlOiBTdGFja2luZyBidWlsZC1pZCBkZXBlbmRlbmN5IGNoZWNraW5nLgogICAg ICB4c3BsaWNlL3hlbl9yZXBsYWNlX3dvcmxkOiBUZXN0LWNhc2UgZm9yIFhTUExJQ0VfQUNUSU9O X1JFUExBQ0UKICAgICAgTUFJTlRBSU5FUlMveHNwbGljZTogQWRkIG15c2VsZiBhbmQgUm9zcyBh cyB0aGUgbWFpbnRhaW5lcnMuCgpSb3NzIExhZ2Vyd2FsbCAoOSk6CiAgICAgIHhzcGxpY2U6IEFk ZCBoZWxwZXIgZWxmIHJvdXRpbmVzCiAgICAgIHhzcGxpY2U6IEltcGxlbWVudCBwYXlsb2FkIGxv YWRpbmcKICAgICAgeHNwbGljZTogSW1wbGVtZW50IHN1cHBvcnQgZm9yIGFwcGx5aW5nL3JldmVy dGluZy9yZXBsYWNpbmcgcGF0Y2hlcy4KICAgICAgeHNwbGljZSxzeW1ib2xzOiBJbXBsZW1lbnQg c3ltYm9sIG5hbWUgcmVzb2x1dGlvbiBvbiBhZGRyZXNzLgogICAgICB4ODYsIHhzcGxpY2U6IFBy aW50IHBheWxvYWQncyBzeW1ib2wgbmFtZSBhbmQgcGF5bG9hZCBuYW1lIGluIGJhY2t0cmFjZXMK ICAgICAgeHNwbGljZTogQWRkIHN1cHBvcnQgZm9yIGJ1ZyBmcmFtZXMuCiAgICAgIHhzcGxpY2U6 IEFkZCBzdXBwb3J0IGZvciBleGNlcHRpb24gdGFibGVzLgogICAgICB4c3BsaWNlOiBBZGQgc3Vw cG9ydCBmb3IgYWx0ZXJuYXRpdmVzCiAgICAgIHhzcGxpY2U6IFByZXZlbnQgZHVwbGljYXRlIHBh eWxvYWRzIGZyb20gYmVpbmcgbG9hZGVkLgoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fClhlbi1kZXZlbCBtYWlsaW5nIGxpc3QKWGVuLWRldmVsQGxpc3Rz Lnhlbi5vcmcKaHR0cDovL2xpc3RzLnhlbi5vcmcveGVuLWRldmVsCg==