From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Campbell Subject: Re: [OSSTEST PATCH 5/8] Schema: Support database schema updates Date: Thu, 10 Dec 2015 17:48:33 +0000 Message-ID: <1449769713.9759.111.camel@citrix.com> References: <1449767545-9410-1-git-send-email-ian.jackson@eu.citrix.com> <1449767545-9410-6-git-send-email-ian.jackson@eu.citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail6.bemta5.messagelabs.com ([195.245.231.135]) by lists.xen.org with esmtp (Exim 4.72) (envelope-from ) id 1a75Lc-0000ov-9F for xen-devel@lists.xenproject.org; Thu, 10 Dec 2015 17:49:44 +0000 In-Reply-To: <1449767545-9410-6-git-send-email-ian.jackson@eu.citrix.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Jackson , xen-devel@lists.xenproject.org List-Id: xen-devel@lists.xenproject.org T24gVGh1LCAyMDE1LTEyLTEwIGF0IDE3OjEyICswMDAwLCBJYW4gSmFja3NvbiB3cm90ZToKPiBk aWZmIC0tZ2l0IGEvc2NoZW1hL1JFQURNRS51cGRhdGVzIGIvc2NoZW1hL1JFQURNRS51cGRhdGVz Cj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPiBpbmRleCAwMDAwMDAwLi42MjI0MTBjCj4gLS0tIC9k ZXYvbnVsbAo+ICsrKyBiL3NjaGVtYS9SRUFETUUudXBkYXRlcwo+IEBAIC0wLDAgKzEsMTc5IEBA Cj4gK1NDSEVNQSBERUZJTklUSU9OIEFORCBTQ0hFTUEgVVBEQVRFUyAoUFJPRFVDVElPTiBgRVhF Q1VUSVZFJyBNT0RFKQo+ICs9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT0KPiArCj4gK1RvIGdlbmVyYXRlIGEgbmV3IERCLCB3 ZSBhcHBseSB0aGUgb3JpZ2luYWwgc2NoZW1hIChpbiBpbml0aWFsLnNxbCkKPiArYW5kIHRoZW4g YXBwbHkgYWxsIHRoZSB1cGRhdGVzLCBpbiBvcmRlci4KPiArCj4gK1dlIG1haW50YWluIGEgdGFi bGUgaW4gdGhlIERCIHdoaWNoIHJlY29yZHMgd2hpY2ggdXBkYXRlcyBhcmUgYXBwbGllZC4KPiAr Cj4gKwo+ICtTY2hlbWEgdXBkYXRlIHNuaXBwZXQgZm9ybWF0Cj4gKy0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0KPiArCj4gK1NjaGVtYSB1cGRhdGUgc25pcHBldHMgc2hvdWxkIGJlIGNhbGxl ZAo+ICvCoMKgwqBzY2hlbWEvPHVwZGF0ZW5hbWU+LnNxbAo+ICsKPiArVGhleSBzaG91bGQgY29u dGFpbiBEREwgY29tbWFuZHMgKEFMVEVSIFRBQkxFIGV0Yy4pIHRvIG1ha2Ugd2hhdGV2ZXIKPiAr Y2hhbmdlcyBhcmUgbmVlZGVkLgo+ICsKPiArVGhleSBNVVNUIE5PVCBjb250YWluIEJFR0lOIG9y IENPTU1JVC4KPiArCj4gK1RoZXkgbXVzdCBjb250YWluIGEgc3BlY2lhbCBjb21tZW50IG5lYXIg dGhlIHRvcDoKPiArCj4gK8KgwqAtLSAjI09TU1RFU1QjIyA8c2VxdWVuY2U+IDxzdGF0dXM+Cj4g Kwo+ICs8dXBkYXRlbmFtZT4gaXMgYSBzdHJpbmcgKC9eW2Etel1bMC05YS16LV0rJC8pIHdoaWNo IHVuaXF1ZWx5IGlkZW50aWZpZXMKPiArdGhlIHVwZGF0ZS7CoMKgSXQgbXVzdCBub3QgYmUgY2hh bmdlZCBiZWNhdXNlIGV4aXN0aW5nIGluc3RhbGxhdGlvbnMKPiArcmVseSBvbiB1cGRhdGVzIGhh dmluZyBzdGFibGUgbmFtZXMuCj4gKwo+ICs8c2VxdWVuY2U+IGlzIGEgcG9zaXRpdmUgaW50ZWdl ciwgd2hpY2ggc2hvdWxkIGJlIHVuaXF1ZS7CoMKgVXBkYXRlcyBhcmUKPiArYXBwbGllZCBpbiBv cmRlci4KCkRvbid0IHRoZXNlIGFsc28gbmVlZCB0byBiZSBtb25vdG9uaWNhbGx5IGluY3JlYXNp bmcgb3ZlciB0aW1lL2NvbW1pdHM/CgppLmUuIGNvbW1pdHRpbmcgKGFuZCBhcHBseWluZyB0aHJv dWdoIGFsbCB0aGUgc3RhdGVzKSBzZXF1ZW5jZSAjNDIgYW5kIHRoZW4KbGF0ZXIgY29tbWl0dGlu ZyAjMTIgd291bGQgYmUgYXQgYmVzdCBjb25mdXNpbmcgYW5kIGF0IHdvcnNlIHBlcmhhcHMKcHJv ZHVjZSBkaWZmZXJlbnQgcmVzdWx0cyB3aGVuIHJlY3JlYXRpbmcgdGhlIGRiICh3aGljaCwgSSB0 aGluaywgd291bGQgcnVuCiMxMiBmaXJzdCkuCgpTbyBtYXliZSB0aGUgcnVsZSBuZWVkcyB0byBi ZSBzb21ldGhpbmcgYWJvdXQgYmVpbmcgbGFyZ2VyIHRoYW4gdGhlIGxhcmdlc3QKY3VycmVudGx5 IGFwcGxpZWQgcGF0Y2g/CgoKPiArCj4gKzxzdGF0dXM+IHJlZmxlY3RzIHRoZSBjb21wYXRpYmls aXR5IG9mIHZhcmlvdXMgc2NoZW1hIHZlcnNpb25zLsKgwqBJdCBpcwo+ICthIGxpdGVyYWwgc3Ry aW5nIG5hbWluZyBvbmUgb2YgdGhlIHN0YXR1c2VzIHNob3duIGluIGBVcGRhdGUgb3JkZXJzJywK PiArYmVsb3cuCj4gKwo+ICs8c3RhdHVzPiBkZXBlbmRzIG9uIHRoZSBuYXR1cmUgb2YgdGhlIHNw ZWNpZmljIGRhdGFiYXNlIGNoYW5nZSwgYW5kCj4gK3RoZSBiZWhhdmlvdXIgYW5kIGNhcGFiaWxp dGllcyBvZiB0aGUgb3RoZXIgY29kZSBpbiB0aGUgc2FtZSByZXZpc2lvbgo+ICtvZiBvc3N0ZXN0 LmdpdC7CoMKgQnV0LCBzbyA8c3RhdHVzPiBkb2VzIG5vdCBkZXBlbmQgb24gdGhlIHN0YXRlIG9m IHRoZQo+ICtkYXRhYmFzZS7CoMKgQXBwbHlpbmcgYSBzY2hlbWEgdXBkYXRlIHRvIGEgZGF0YWJh c2UgZG9lcyBub3QgY2hhbmdlIGl0cwo+ICtgc3RhdHVzJy4KCiJCdXQsIHNvIC4uLiIgPyBJIHRo aW5rIG1heWJlIHMvQnV0LCBzL1MvIGlzIHdoYXQgeW91IG1lYW50PyBPciBtYXliZSB0aGVyZQp3 YXMgYSBtaXNzaW5nIHRob3VnaHQ/CgpJdCdzIG5vdCBzdGF0ZWQgb3V0cmlnaHQsIGJ1dCBBSVVJ IHRoZSA8c3RhdHVzPiBvZiBhbiB1cGRhdGUgY2hhbmdlcyBpbiBhCmNvbW1pdCB3aGljaCBlaXRo ZXIgYWRkcy9lZGl0cyBhIHNjaGVtYSB1cGRhdGUsIG9yIHdoaWNoIGFkZHMgY29kZSB3aGljaAph ZGRzIGNvbXBhdGliaWxpdHkvcmVxdWlyZW1lbnRzIGZvciBhIHBhcnRpY3VsYXIgc2NoZW1hIHVw ZGF0ZS4gSXMgdGhhdApyaWdodD8KCj4gK0luIHByaW5jaXBsZSwgZWFjaCB1cGRhdGUgY2FuIHNl cGFyYXRlbHkgYmUgaW4gYXBwbGllZCBvciBub3QgYXBwbGllZAo+ICtpbiBhbnkgb25lIG1vbWVu dCBpbiB0aW1lIChpbiB2YXJpb3VzIGRhdGFiYXNlcyksIGFuZCBzaW11bHRhbmVvdXNseQo+ICto YXZlIGRpZmZlcmVudCBzdGF0dXNlcyBpbiBkaWZmZXJlbnQgcmVsZXZhbnQgdmVyc2lvbnMgb2Yg b3NzdGVzdC5naXQuCj4gK1NvIG92ZXJhbGwgdGhlIHBvc3NpYmxlIHN0YXRlcyBvZiBhbiB1cGRh dGUgaW4gdGhlIHdob2xlIHdvcmxkIGFyZSB0aGUKPiArY3Jvc3MgcHJvZHVjdCBvZiAoaSkgc3Rh dHVzIGluIGVhY2ggcmVsZXZhbnQgb3NzdGVzdCByZXZpc2lvbiwgYW5kCj4gKyhpaSkgYXBwbGll ZG5lc3MgKGJvb2xlYW4pIGluIGVhY2ggcmVsZXZhbnQgZGF0YWJhc2UgaW5zdGFuY2UuCj4gKwo+ ICsKPiArVXBkYXRlIG9yZGVycwo+ICstLS0tLS0tLS0tLS0tCj4gKwo+ICtUaGVyZSBhcmUgZm91 ciByZWFzb25hYmxlIHBsYW5zIGZvciBzY2hlbWEgY2hhbmdlczoKPiArCj4gKyAqIEZ1bGx5IGlu dGVyY29tcGF0aWJsZTogYm90aCBvbGQgY29kZSBhbmQgbmV3IGNvZGUgYXJlIGVhY2gKPiArwqDC oMKgY29tcGF0aWJsZSB3aXRoIGJvdGggb2xkIHNjaGVtYSBhbmQgbmV3IHNjaGVtYS7CoMKgVGhl IGNvZGUgYW5kCj4gK8KgwqDCoHNjaGVtYSB1cGRhdGVzIG1heSBiZSBkb25lIGluIGFueSBvcmRl ci4KPiArCj4gK8KgwqDCoFN1Y2ggYSBzY2hlbWEgY2hhbmdlIGFsd2F5cyBoYXMgc3RhdHVzOgo+ ICvCoMKgwqDCoMKgwqBIYXJtbGVzcwoKV2hhdCBoYXBwZW5zIGlmIHNvbWUgc3Vic2VxdWVudCBj aGFuZ2UgKHBlcmhhcHMgYSBsb25nIHRpbWUgbGF0ZXIpIGNhdXNlcwp0aGUgY29kZSB0byByZXF1 aXJlIHRoZSBjaGFuZ2VzIG1hZGUgYnkgYSAiSGFybWxlc3MiIHNjaGVtYSB1cGRhdGU/CgpXb3Vs ZCB0aGF0IGJlIGEgYnVnIGluIHRoYXQgbGF0ZXIgY29kZSBmb3Igbm90IGNvcGluZyB3aXRoIHRo ZSBvbGQgc2NoZW1hLApvciBhIGJ1ZyBpbiB0aGUgY29tbWl0IGFkZGluZyBpdCBmb3Igbm90IHVw ZGF0aW5nIHRoZSBoZWFkZXIgb2YgdGhlIHNjaGVtYQp1cGRhdGUgKHRvICJOZWVkZWQiLCBwcmVz dW1hYmx5KSBvciBpcyBpdCBub3QgYW4gaXNzdWUgYmVjYXVzZSB0aGVyZSBpcwpzb21lIHBvaW50 IGF0IHdoaWNoIGEgc2NoZW1hIHVwZGF0ZSBiZWNvbWVzIHBhcnQgb2YgdGhlIGFzc3VtZWQgYmFz ZWxpbmU/Cgo+ICsKPiArICogRXhwbGljaXQgY29uZGl0aW9uYWw6IGZpcnN0IHVwZGF0ZSB0aGUg Y29kZSB0byB1bmRlcnN0YW5kIGJvdGgKPiArwqDCoMKgdmVyc2lvbnMgb2YgdGhlIHNjaGVtYTsg dGhlbiB1cGRhdGUgdGhlIHNjaGVtYTsgdGhlbiBkcm9wIHRoZQo+ICvCoMKgwqBjb21wYXRpYmls aXR5IGNvZGUuCj4gKwo+ICvCoMKgwqBTdWNoIGEgc2NoZW1hIGNoYW5nZSBhbHdheXMgaGFzIHN0 YXR1czoKPiArwqDCoMKgwqDCoMKgVW5maW5pc2hlZCAob3IgYWJzZW50KcKgwqDCoGluIG9sZCBj b2RlCj4gK8KgwqDCoMKgwqDCoFJlYWR5wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoGluIGludGVybWVkaWF0ZSBjb2RlCj4gK8KgwqDCoMKgwqDCoE5lZWRlZMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaW4gdGhlIGZpbmFsIGNvZGUKClNvLCBhIHBs YXVzaWJsZSBzZXF1ZW5jZSBvZiBjb21taXRzIHRvIG9zc3Rlc3QuZ2l0IG1pZ2h0IGJlOgoKMTog QWRkIHNjaGVtYS9mb28udXBkYXRlIHdpdGggaW5pdGlhbCBzdGF0dXMgIlVuZmluaXNoZWQiLgoy YTogQWRkIGNvZGUgdG8gcGFydGlhbGx5IGltcGxlbWVudCBjb21wYXQgd2l0aCB0aGUgbmV3IHNj aGVtYToKICAgICAgICBubyBzdGF0dXMgY2hhbmdlClsyYiwyYy4uLl0gbW9yZSBjb21wYXQgb3Ig dW5yZWxhdGVkIGNoYW5nZXMKMzogQWRkIGZpbmFsIGNvZGUgdG8gY29tcGxldGVseSBpbXBsZW1l bnQgY29tcGF0IHdpdGggdGhlIG5ldyBzY2hlbWE6CiAgICAgICAgc3RhdHVzIGNoYW5nZWQgdG8g IlJlYWR5IiBpbiB0aGF0IHNhbWUgY29tbWl0CjRhLGIsYzogTWF5YmUgb3RoZXIgdW5yZWxhdGVk IGNoYW5nZXMKNTogUmVtb3ZlIGFueSBwaWVjZSBjb2RlIHdoaWNoIHByb3ZpZGVzIHN1cHBvcnQg Zm9yIHRoZSBvbGQgc2NoZW1hOgogICAgICAgIHN0YXR1cyBjaGFuZ2VzIHRvICJOZWVkZWQiCjY6 IEV2ZW50dWFsbHkgcmVtb3ZlIHJlbW92ZSBvdGhlciBjb21wYXQgY29kZS4KCkkndmUgYnJva2Vu IGRvd24gdGhlIGFkZGl0aW9uL3JlbW92YWwgb2YgY29tcGF0IGNvZGUgaW50byBzdGFnZXMgdG8K aWxsdXN0cmF0ZSwgdGhhdCBjb2RlIG1pZ2h0IHJlYWxseSBhbGwgY29tZS9nbyBpbiBhIHNpbmds ZSBjb21taXQuCgooSSBzZWUgbm93IHRoYXQgdGhlcmUgaXMgYSBtb3JlIGNvbXByZWhlbnNpdmUg ZXhhbXBsZSBmdXJ0aGVyIGRvd24gdGhlIGRvYykKCj4gKwo+ICsgKiBDb2RlIGZpcnN0OiB0aGUg bmV3IGNvZGUgd29ya3Mgd2l0aCBlaXRoZXIgb2xkIG9yIG5ldyBzY2hlbWEsCj4gK8KgwqDCoGJ1 dCB0aGUgb2xkIGNvZGUgY2Fubm90IGNvcGUgd2l0aCB0aGUgbmV3IHNjaGVtYS4KPiArCj4gK8Kg wqDCoFN1Y2ggYSBzY2hlbWEgY2hhbmdlIGhhcyBzdGF0dXM6Cj4gK8KgwqDCoMKgwqDCoFVuZmlu aXNoZWQgKG9yIGFic2VudCnCoMKgwqBpbiBvbGQgY29kZQo+ICvCoMKgwqDCoMKgwqBSZWFkecKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbiBuZXcgY29kZQo+ICsKPiAr ICogU2NoZW1hIGZpcnN0OiB0aGUgbmV3IHNjaGVtYSB3b3JrcyB3aXRoIGFueSBjb2RlOyBidXQg dGhlIG9sZAo+ICvCoMKgwqBzY2hlbWEgZG9lcyBub3Qgd29yayB3aXRoIG5ldyBjb2RlLgo+ICsK PiArwqDCoMKgU3VjaCBhIHNjaGVtYSBjaGFuZ2UgaGFzIHN0YXR1czoKPiArwqDCoMKgwqDCoMKg UHJlcGFyYXRvcnnCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgaW4gb2xkIGNvZGUKPiArwqDC oMKgwqDCoMKgTmVlZGVkwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqBpbiB0 aGUgbmV3IGNvZGUKPiArCj4gKwo+ICtVcGRhdGUgb3JkZXIgZm9yIFBvcHVsYXRlLXRoZW4tcmVs eQo+ICstLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQo+ICsKPiArVGhpcyBpcyBm b3Igd2hlbiB3ZSB3YW50IHRvIHJlY29yZCBuZXcgaW5mb3JtYXRpb24gYW5kIHRoZW4gbGF0ZXIg cmVseQo+ICtvbiBpdC7CoMKgVGhlcmUgYXJlIHR5cGljYWxseSB0d28gc2NoZW1hIGNoYW5nZXM6 Cj4gKwo+ICsqIFRvIGFkZCB0aGUgY29sdW1uKHMpLsKgwqBJIHdpbGwgY2FsbCB0aGlzIGBhZGQn LsKgwqBJdCBpcyBhIGBTY2hlbWEKPiArwqDCoGZpcnN0JyBjaGFuZ2UsIGluIHRoZSB0YXhvbm9t eSBhYm92ZS4KPiArCj4gKyogVG8gYWRkIGFwcHJvcHJpYXRlIGNvbnN0cmFpbnRzLCB0byBwcmV2 ZW50IHRoZSBuZXcgaW5mb3JtYXRpb24gYmVpbmcKPiArwqDCoGxlZnQgYmxhbmsuwqDCoEkgd2ls bCBjYWxsIHRoaXMgYGNvbnN0cmFpbnQnLsKgwqBUaGlzIGlzIGEgYENvZGUgZmlyc3QnCj4gK8Kg wqBvciBgRXhwbGljaXQgY29uZGl0aW9uYWwnIGNoYW5nZSBpbiB0aGUgdGF4b25vbXkgYWJvdmUu Cj4gKwo+ICsxLiBDb21taXQ6IG5ldyBzY2hlbWEgdXBkYXRlIGBhZGQnLCBzdGF0dXMgUHJlcGFy YXRvcnkuCj4gKwo+ICsyLiBDb21taXQ6IG5ldyBzY2hlbWEgdXBkYXRlIGBjb25zdHJhaW50Jywg c3RhdHVzIFVuZmluaXNoZWQuCgpBdCB0aGlzIHBvaW50IHdlIHdhbnQgdG8gd2FpdCBmb3IgdGhv c2UgY29tbWl0cyB0byBwYXNzIHRoZSBwdXNoIGdhdGUsCmJlZm9yZSB3ZSBjYW4gYXBwbHkgYGFk ZCcsIHNpbmNlIGFwcGx5aW5nIGBhZGQnIHNob3VsZCBiZSBkb25lIGZyb20gYQoicHJvcGVybHkg YWNrZWQgdmVyc2lvbiBvZiBvc3N0ZXN0LmdpdCIuCgpUaGlzIGlzIG1hZGUgcHJldHR5IGNsZWFy IGJ5IHRoZSBmb2xsb3dpbmcgY29tbWVudGFyeSwgZm9yIGBBcHBseScgYnV0IEkKd2FudGVkIHRv IGNoZWNrIEknZCBnb3QgdGhlIHBsYWNlbWVudCBvZiB0aGUgd2FpdCBjb3JyZWN0LgoKPiArMy4g QXBwbHk6IGBhZGQnLgo+ICsKPiArNC4gT3B0aW9uYWxseSBjb21taXQ6IGNvZGUgdG8gcmVhZCBu ZXcgY29sdW1uLCBidXQgd2hpY2ggdG9sZXJhdGVzCj4gK8KgwqDCoGJvdGggY29tcGxldGUgYWJz ZW5jZSBvZiB0aGUgY29sdW1uLCBhbmQvb3IgaXQgY29udGFpbmluZyBOVUxMCj4gK8KgwqDCoChv ciB3aGF0ZXZlciB0aGUgREVGQVVMVCB2YWx1ZSBpcykuCj4gKwo+ICs1LiBDb21taXQ6IGNvZGUg dG8gcG9wdWxhdGUgbmV3IGNvbHVtbjsgY2hhbmdpbmcgYGFkZCcgdG8gc3RhdHVzCj4gK8KgwqDC oE5lZWRlZCBhbmQgYGNvbnN0cmFpbnQnIHRvIHN0YXR1cyBSZWFkeS4KPiArCj4gKzYuIE9wdGlv bmFsbHkgY29tbWl0OiBjb2RlIHdoaWNoIHJlYWQgbmV3IGNvbHVtbiwgYnV0IHdoaWNoIHRvbGVy YXRlcwo+ICvCoMKgwqBpdCBjb250YWluaW5nIE5VTEwvREVGQVVMVC7CoMKgKGBhZGQnIGlzIGFs cmVhZHkgTmVlZGVkLikKPiArCj4gKzcuIElmIG5lY2Vzc2FyeSBjb21taXQ6IGlkZW1wb3RlbnQg dXRpbGl0eSBzY3JpcHQgdG8gcG9wdWxhdGUgbWlzc2luZwo+ICvCoMKgwqBkYXRhLsKgwqAoQWx0 ZXJuYXRpdmVseSwgdGhpcyBjYW4gYmUgZG9uZSB3aXRoIERNTCBzdGF0ZW1lbnRzIGluIHRoZQo+ ICvCoMKgwqBgY29uc3RyYWludCcgc2NoZW1hIHVwZGF0ZSAuc3FsIGZpbGUuwqDCoFRoaXMgaXMg YmV0dGVyIGlmIGl0IGlzCj4gK8KgwqDCoHBvc3NpYmxlLikKPiArCj4gKzguIFdhaXQgZm9yIGFs bCBleGVjdXRpb25zIG9mIG9sZCBjb2RlIHRvIGZpbmlzaC7CoMKgKFRoaXMgb2J2aW91c2x5Cj4g K8KgwqDCoGltcGxpZXMgZmlyc3QgZ2V0dGluZyBhIHB1c2ggb2YgYWxsIHRoZSBjb21taXRzIG1l bnRpb25lZCBhYm92ZS4pCj4gKwo+ICs4LiBJZiBuZWNlc3NhcnksIGV4ZWN1dGUgdXRpbGl0eSBz Y3JpcHQgdG8gcG9wdWxhdGUgbWlzc2luZyBkYXRhLgo+ICsKPiArOS4gQXBwbHk6IGBjb25zdHJh aW50Jy4KPiArCj4gKzEwLiBPcHRpb25hbGx5IGNvbW1pdDogY29kZSB3aGljaCByZWxpZXMgb24g bmV3IGNvbHVtbiwgYW5kIGRvZXMgbm90Cj4gK8KgwqDCoG5lY2Vzc2FyaWx5IHRvbGVyYXRlIE5V TEwvREVGQVVMVDsgY2hhbmdpbmcgYGNvbnN0cmFpbnQnIHRvIE5lZWRlZC4KPiArCj4gKwo+ICtg Q29tbWl0JyBtZWFucyBjb21taXR0aW5nIHNvbWV3aGVyZSBwdWJsaWMgYW5kIHByb2JhYmx5IHB1 c2hpbmcgdG8KPiArb3NzdGVzdC5naXQjcHJldGVzdCwgYnV0IG5vdCBuZWNlc3NhcmlseSBnZXR0 aW5nIGEgcHVzaC7CoMKgKEl0Cj4gK25lY2Vzc2FyaWx5IHByZWNlZGVzIGFueSBmb3JtYWwgdGVz dGluZyBvZiB0aGUgcmVsZXZhbnQgY2hhbmdlcyBvbiBhCj4gK3Byb2R1Y3Rpb24gaW5zdGFuY2Uu KQo+ICsKPiArYEFwcGx5JyAoYW5kIGBleGVjdXRlIHV0aWxpdHkgc2NyaXB0Jykgc2hvdWxkIG9u bHkgYmUgZG9uZSB1c2luZyBhCj4gK3Byb3Blcmx5IGFja2VkIHZlcnNpb24gb2Ygb3NzdGVzdC5n aXQuwqDCoElmIHZlcmlmeWluZyB0aGUgc2FuaXR5IG9mIHRoZQo+ICtzY2hlbWEgY2hhbmdlIGlz IG5vbnRyaXZpYWwgdGhlbiBhZC1ob2MgdGVzdHMgbWF5IG5lZWQgdG8gaGF2ZSBiZWVuCj4gK3J1 biB3aXRoIGEgdGVzdGluZyBpbnN0YW5jZSBvZiB0aGUgZGF0YWJhc2UuwqDCoFVzaW5nIG9ubHkg YSBwdXNoZWQKPiArcHJvZHVjdGlvbiB2ZXJzaW9uIGlzIGEgZ29vZCBpZGVhIHRvIGF2b2lkIHRo ZSBwb3NzaWJpbGl0eSB0aGF0IHRoZQo+ICtwcm9kdWN0aW9uIGRhdGFiYXNlIG1pZ2h0IGNvbnRh aW4gY2hhbmdlcyB3aGljaCBhcmUgbm90IGV2aWRlbnQgaW4KPiArcHVibGlzaGVkIGNvZGUgKG9y IHdvcnNlLCB3aGljaCBhcmUgZGlmZmVyZW50IGluIGZ1dHVyZSB2ZXJzaW9ucykuCj4gKwo+ICtT dWJqZWN0IHRvIHRob3NlIGNvbmRpdGlvbnMsIGBBcHBseScgbWVhbnMgYW4gYWRtaW5pc3RyYXRv ciBydW5uaW5nCj4gKy4vbWctc2NoZW1hLXVwZGF0ZSBhcyBvc3N0ZXN0OyBpZiBgd2FpdCBmb3Ig ZXhlY3V0aW9ucyBvZiBvbGQgY29kZSB0bwo+ICtmaW5pc2ggaXMgbmVlZGVkJywgdGhpcyB3aWxs IHVzdWFsbHkgaW52b2x2ZSBwYXNzaW5nIGFuIGFwcHJvcHJpYXRlCj4gK2Atbycgb3B0aW9uLgo+ ICsKPiArCj4gK1N0YXR1c2VzIGFuZCBydWxlcyBmb3IgcHVzaCBhbmQgZGIgdXBkYXRlCj4gKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCj4gKwo+ICvCoMKgSGFybWxl c3MKPiArwqDCoFByZXBhcmF0b3J5Cj4gK8KgwqDCoMKgwqBObyByZXN0cmljdGlvbnMKPiArCj4g K8KgwqBVbmZpbmlzaGVkCj4gK8KgwqAoc3FsIGZyYWdtZW50IGVudGlyZWx5IG1pc3NpbmcgaXMg ZXF1aXZhbGVudCB0byBVbmZpbmlzaGVkKQo+ICvCoMKgwqDCoMKgU2NoZW1hIHVwZGF0ZTogcHJl dmVudGVkCgpJbiB0aGUgY2FzZSBvZiAiZW50aXJlbHkgbWlzc2luZyIgInByZXZlbnRlZCIgbXVz dCByZWFsbHkgbWVhbiAidGhlcmUgY2FuJ3QKcG9zc2libHkgYmUgYW55dGhpbmcgdG8gZG8vcHJl dmVudCI/Cgo+ICvCoMKgwqDCoMKgQ29kZSBwdXNoOiB1bnJlc3RyaWN0ZWQKPiArCj4gK8KgwqBS ZWFkeQo+ICvCoMKgwqDCoMKgU2NoZW1hIHVwZGF0ZTogbmVlZCBhbGwgbGl2ZSBjb2RlIHRvIGJl IFByZXBhcmF0b3J5L1JlYWR5L05lZWRlZAo+ICvCoMKgwqDCoMKgQ29kZSBwdXNoOiB1bnJlc3Ry aWN0ZWQKPiArCj4gK8KgwqBOZWVkZWQKPiArwqDCoMKgwqDCoFNjaGVtYSB1cGRhdGU6IG5lZWQg YWxsIGxpdmUgY29kZSB0byBiZSBQcmVwYXJhdG9yeS9SZWFkeS9OZWVkZWQKPiArwqDCoMKgwqDC oENvZGUgcHVzaDogZGVwZW5kcyBvbiBzY2hlbWEgdXBkYXRlCj4gKwo+ICsKPiArIkNvZGUgcHVz aDogZGVwZW5kcyBvbiBzY2hlbWEgdXBkYXRlIiBpcyBub3QgY3VycmVudGx5IGltcGxlbWVudGVk Lgo+ICtIb3dldmVyLCBtYW55IChtb3N0Pykgc3VjaCBjaGFuZ2VzIHdvdWxkIGNhdXNlIHRoZSBw dXNoIGdhdGUgaXRzZWxmIHRvCj4gK2ZhaWwuCj4gKwo+ICsiTmVlZCBhbGwgbGl2ZSBjb2RlIHRv IGJlIC4uLiIgbWVhbnMgdG8gbG9vayBmb3IgdGhlIHN0YXR1cyBvZiB0aGlzCj4gK3NjaGVtYSB1 cGRhdGUgaW4gb3RoZXIgcnVubmluZyB2ZXJzaW9ucyBvZiBvc3N0ZXN0LsKgwqBBbiBhdHRlbXB0 IGF0Cj4gK3RoaXMgaXMgcHJvdmlkZWQgaW4gdGhlIGZvcm0gb2YgdGhlIGAtbycgb3B0aW9uIHRv IG1nLXNjaGVtYS11cGRhdGUuCj4gK0l0IGlzIHRoZSBhZG1pbmlzdHJhdG9yJ3MgcmVzcG9uc2li aWxpdHkgdG8gc2VsZWN0IGFuIGFwcHJvcHJpYXRlCj4gK2FyZ3VtZW50IHRvIGAtbycuCgpJYW4u CgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpYZW4tZGV2 ZWwgbWFpbGluZyBsaXN0Clhlbi1kZXZlbEBsaXN0cy54ZW4ub3JnCmh0dHA6Ly9saXN0cy54ZW4u b3JnL3hlbi1kZXZlbAo=