From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Cyrus-Session-Id: sloti22d1t05-2999314-1524573650-2-14756471733965230143 X-Sieve: CMU Sieve 3.0 X-Spam-known-sender: no X-Spam-score: 0.0 X-Spam-hits: BAYES_00 -1.9, HEADER_FROM_DIFFERENT_DOMAINS 0.25, MAILING_LIST_MULTI -1, ME_NOAUTH 0.01, RCVD_IN_DNSWL_HI -5, LANGUAGES en, BAYES_USED global, SA_VERSION 3.4.0 X-Spam-source: IP='209.132.180.67', Host='vger.kernel.org', Country='US', FromHeader='com', MailFrom='org' X-Spam-charsets: plain='us-ascii' X-Resolved-to: greg@kroah.com X-Delivered-to: greg@kroah.com X-Mail-from: linux-usb-owner@vger.kernel.org ARC-Seal: i=1; a=rsa-sha256; cv=none; d=messagingengine.com; s=fm2; t= 1524573648; b=f6xrK8gjWN7ds7KUF9Q8njHIkwzArifXlIhJf6LnRJXXHAAq8Y xPNkbnIBXoKmBSQfaluiMYc55e7j06hTOfzUkq0jRhIyZBkzqPzWLK8zUTE+gdCu ooKRtb7vfiKknvTYh7etk+/rgQdFyojLE0C/ySlR9pexJd1+ZDeliPl2M1LTIr4V ZXo89iHtq3VUkkE8KJOC7mYQyqu6Dp0ZejkL0N+VskXLCYBd6iEMBrnzXi+SCHAE OAvEc6ICWePkKo+D04/+/7WPM3+s5fa3ySKpBWrT6PuHWBal/ucLdZsK91FV09HE ZPelmC1MMYX6b0D1EL+6usnA2OkyQY6J8Saw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=date:from:to:cc:subject:message-id :references:mime-version:content-type:in-reply-to:sender :list-id; s=fm2; t=1524573648; bh=V3WZyG1eiWNgTO7O3YXNYXe2WfnrR7 VPcUj9Kr/Hx9Y=; b=pz4CrI7Kfkm2Fn4lRMTYrzqcyzUJENoui/usc0WBjmefMT lsvALhPvesBDVAu/HcHk7ZBi3ofmPmUDCa9gSY/zVO4owqO/H5JNmvAgRn4yoBCL ItvDuwKKVbJg9eol27hApFPHSOXiSO/BxsI42d+K5+GItVFQantcPtd2ZIB5cjWw UXRa+uhfOTHocnli7agobxrasnm6RAj1KrrorsxysmR3NkGu+klV+1T7lQqn4tpc Xjg0gMLOQGqlu8SSTfvyqxFIk1MlwTLxwZjMqccKGGxo6v60r1CawVZ4A28GlMDz 4z1WKzjYFdbpdXQ/9KzaS778ZJWUPeJRUkQPvRNQ== ARC-Authentication-Results: i=1; mx3.messagingengine.com; arc=none (no signatures found); dkim=none (no signatures found); dmarc=none (p=none,has-list-id=yes,d=none) header.from=linux.intel.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=linux-usb-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-cm=none score=0; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=linux.intel.com header.result=pass header_org.domain=intel.com header_org.result=pass header_is_org_domain=no; x-vs=clean score=-100 state=0 Authentication-Results: mx3.messagingengine.com; arc=none (no signatures found); dkim=none (no signatures found); dmarc=none (p=none,has-list-id=yes,d=none) header.from=linux.intel.com; iprev=pass policy.iprev=209.132.180.67 (vger.kernel.org); spf=none smtp.mailfrom=linux-usb-owner@vger.kernel.org smtp.helo=vger.kernel.org; x-aligned-from=fail; x-cm=none score=0; x-ptr=pass x-ptr-helo=vger.kernel.org x-ptr-lookup=vger.kernel.org; x-return-mx=pass smtp.domain=vger.kernel.org smtp.result=pass smtp_org.domain=kernel.org smtp_org.result=pass smtp_is_org_domain=no header.domain=linux.intel.com header.result=pass header_org.domain=intel.com header_org.result=pass header_is_org_domain=no; x-vs=clean score=-100 state=0 X-ME-VSCategory: clean X-CM-Envelope: MS4wfK15ufjdn4/aKnAmGGa9s2eUmW0T9cWef3vVhG54SfTDr/tzYOtSLH2Vw8ogp0HkHMS0PvBLm6Zu0zN19x7wokIQWrePDKlVSw7+ggggkm50JL4Y704j AodTyE5R3FfwFZs6hD5HDaiZRv/4Sa+pTvSIwqB30xspugM/zc9Scj7dyYInNb/Nhh5W9LevsPOaM4YmgaEiKxHP84zDF3yl9qjeN90a6CEtgvpRwah6gz+G X-CM-Analysis: v=2.3 cv=Tq3Iegfh c=1 sm=1 tr=0 a=UK1r566ZdBxH71SXbqIOeA==:117 a=UK1r566ZdBxH71SXbqIOeA==:17 a=kj9zAlcOel0A:10 a=Kd1tUaAdevIA:10 a=X3a0BiUdAAAA:8 a=QyXUC8HyAAAA:8 a=VwQbUJbxAAAA:8 a=Wfx6FqUvVNG8iojvu1YA:9 a=vHEYs1PvITFEz6TC:21 a=vUADb7RnNkBvcn-1:21 a=CjuIK1q_8ugA:10 a=d24Ss_oZLtcA:10 a=x8gzFH9gYPwA:10 a=aWu3muFgq6otJbhCXpL5:22 a=AjGcO6oz07-iQ99wixmX:22 X-ME-CMScore: 0 X-ME-CMCategory: none Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756957AbeDXMkn (ORCPT ); Tue, 24 Apr 2018 08:40:43 -0400 Received: from mga18.intel.com ([134.134.136.126]:18424 "EHLO mga18.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1755196AbeDXMkl (ORCPT ); Tue, 24 Apr 2018 08:40:41 -0400 X-Amp-Result: UNSCANNABLE X-Amp-File-Uploaded: False X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.49,322,1520924400"; d="scan'208";a="49490242" Date: Tue, 24 Apr 2018 15:40:36 +0300 From: Heikki Krogerus To: Adam Thomson Cc: Guenter Roeck , Greg Kroah-Hartman , Sebastian Reichel , Hans de Goede , Jun Li , linux-usb@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, support.opensource@diasemi.com Subject: Re: [PATCH v8 2/6] Documentation: power: Initial effort to document power_supply ABI Message-ID: <20180424124036.GD25723@kuha.fi.intel.com> References: <262928f7cd04c1691c78993520304f036ba207b2.1524490253.git.Adam.Thomson.Opensource@diasemi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <262928f7cd04c1691c78993520304f036ba207b2.1524490253.git.Adam.Thomson.Opensource@diasemi.com> User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-usb-owner@vger.kernel.org X-Mailing-List: linux-usb@vger.kernel.org X-getmail-retrieved-from-mailbox: INBOX X-Mailing-List: linux-kernel@vger.kernel.org List-ID: On Mon, Apr 23, 2018 at 03:10:57PM +0100, Adam Thomson wrote: > This commit adds generic ABI information regarding power_supply > properties. This is an initial attempt to try and align the usage > of these properties between drivers. As part of this commit, > common Battery and USB related properties have been listed. > > Signed-off-by: Adam Thomson Thank you a lot for doing this Adam! FWIW: Reviewed-by: Heikki Krogerus > --- > Documentation/ABI/testing/sysfs-class-power | 443 ++++++++++++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 444 insertions(+) > > diff --git a/Documentation/ABI/testing/sysfs-class-power b/Documentation/ABI/testing/sysfs-class-power > index f85ce9e..e046566 100644 > --- a/Documentation/ABI/testing/sysfs-class-power > +++ b/Documentation/ABI/testing/sysfs-class-power > @@ -1,3 +1,446 @@ > +===== General Properties ===== > + > +What: /sys/class/power_supply//manufacturer > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the name of the device manufacturer. > + > + Access: Read > + Valid values: Represented as string > + > +What: /sys/class/power_supply//model_name > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the name of the device model. > + > + Access: Read > + Valid values: Represented as string > + > +What: /sys/class/power_supply//serial_number > +Date: January 2008 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the serial number of the device. > + > + Access: Read > + Valid values: Represented as string > + > +What: /sys/class/power_supply//type > +Date: May 2010 > +Contact: linux-pm@vger.kernel.org > +Description: > + Describes the main type of the supply. > + > + Access: Read > + Valid values: "Battery", "UPS", "Mains", "USB" > + > +===== Battery Properties ===== > + > +What: /sys/class/power_supply//capacity > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Fine grain representation of battery capacity. > + Access: Read > + Valid values: 0 - 100 (percent) > + > +What: /sys/class/power_supply//capacity_alert_max > +Date: July 2012 > +Contact: linux-pm@vger.kernel.org > +Description: > + Maximum battery capacity trip-wire value where the supply will > + notify user-space of the event. This is normally used for the > + battery discharging scenario where user-space needs to know the > + battery has dropped to an upper level so it can take > + appropriate action (e.g. warning user that battery level is > + low). > + > + Access: Read, Write > + Valid values: 0 - 100 (percent) > + > +What: /sys/class/power_supply//capacity_alert_min > +Date: July 2012 > +Contact: linux-pm@vger.kernel.org > +Description: > + Minimum battery capacity trip-wire value where the supply will > + notify user-space of the event. This is normally used for the > + battery discharging scenario where user-space needs to know the > + battery has dropped to a lower level so it can take > + appropriate action (e.g. warning user that battery level is > + critically low). > + > + Access: Read, Write > + Valid values: 0 - 100 (percent) > + > +What: /sys/class/power_supply//capacity_level > +Date: June 2009 > +Contact: linux-pm@vger.kernel.org > +Description: > + Coarse representation of battery capacity. > + > + Access: Read > + Valid values: "Unknown", "Critical", "Low", "Normal", "High", > + "Full" > + > +What: /sys/class/power_supply//current_avg > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports an average IBAT current reading for the battery, over a > + fixed period. Normally devices will provide a fixed interval in > + which they average readings to smooth out the reported value. > + > + Access: Read > + Valid values: Represented in microamps > + > +What: /sys/class/power_supply//current_max > +Date: October 2010 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the maximum IBAT current allowed into the battery. > + > + Access: Read > + Valid values: Represented in microamps > + > +What: /sys/class/power_supply//current_now > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports an instant, single IBAT current reading for the battery. > + This value is not averaged/smoothed. > + > + Access: Read > + Valid values: Represented in microamps > + > +What: /sys/class/power_supply//charge_type > +Date: July 2009 > +Contact: linux-pm@vger.kernel.org > +Description: > + Represents the type of charging currently being applied to the > + battery. > + > + Access: Read > + Valid values: "Unknown", "N/A", "Trickle", "Fast" > + > +What: /sys/class/power_supply//charge_term_current > +Date: July 2014 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the charging current value which is used to determine > + when the battery is considered full and charging should end. > + > + Access: Read > + Valid values: Represented in microamps > + > +What: /sys/class/power_supply//health > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the health of the battery or battery side of charger > + functionality. > + > + Access: Read > + Valid values: "Unknown", "Good", "Overheat", "Dead", > + "Over voltage", "Unspecified failure", "Cold", > + "Watchdog timer expire", "Safety timer expire" > + > +What: /sys/class/power_supply//precharge_current > +Date: June 2017 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the charging current applied during pre-charging phase > + for a battery charge cycle. > + > + Access: Read > + Valid values: Represented in microamps > + > +What: /sys/class/power_supply//present > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports whether a battery is present or not in the system. > + > + Access: Read > + Valid values: > + 0: Absent > + 1: Present > + > +What: /sys/class/power_supply//status > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Represents the charging status of the battery. Normally this > + is read-only reporting although for some supplies this can be > + used to enable/disable charging to the battery. > + > + Access: Read, Write > + Valid values: "Unknown", "Charging", "Discharging", > + "Not charging", "Full" > + > +What: /sys/class/power_supply//technology > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Describes the battery technology supported by the supply. > + > + Access: Read > + Valid values: "Unknown", "NiMH", "Li-ion", "Li-poly", "LiFe", > + "NiCd", "LiMn" > + > +What: /sys/class/power_supply//temp > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the current TBAT battery temperature reading. > + > + Access: Read > + Valid values: Represented in 1/10 Degrees Celsius > + > +What: /sys/class/power_supply//temp_alert_max > +Date: July 2012 > +Contact: linux-pm@vger.kernel.org > +Description: > + Maximum TBAT temperature trip-wire value where the supply will > + notify user-space of the event. This is normally used for the > + battery charging scenario where user-space needs to know the > + battery temperature has crossed an upper threshold so it can > + take appropriate action (e.g. warning user that battery level is > + critically high, and charging has stopped). > + > + Access: Read > + Valid values: Represented in 1/10 Degrees Celsius > + > +What: /sys/class/power_supply//temp_alert_min > +Date: July 2012 > +Contact: linux-pm@vger.kernel.org > +Description: > + Minimum TBAT temperature trip-wire value where the supply will > + notify user-space of the event. This is normally used for the > + battery charging scenario where user-space needs to know the > + battery temperature has crossed a lower threshold so it can take > + appropriate action (e.g. warning user that battery level is > + high, and charging current has been reduced accordingly to > + remedy the situation). > + > + Access: Read > + Valid values: Represented in 1/10 Degrees Celsius > + > +What: /sys/class/power_supply//temp_max > +Date: July 2014 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the maximum allowed TBAT battery temperature for > + charging. > + > + Access: Read > + Valid values: Represented in 1/10 Degrees Celsius > + > +What: /sys/class/power_supply//temp_min > +Date: July 2014 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the minimum allowed TBAT battery temperature for > + charging. > + > + Access: Read > + Valid values: Represented in 1/10 Degrees Celsius > + > +What: /sys/class/power_supply//voltage_avg, > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports an average VBAT voltage reading for the battery, over a > + fixed period. Normally devices will provide a fixed interval in > + which they average readings to smooth out the reported value. > + > + Access: Read > + Valid values: Represented in microvolts > + > +What: /sys/class/power_supply//voltage_max, > +Date: January 2008 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the maximum safe VBAT voltage permitted for the battery, > + during charging. > + > + Access: Read > + Valid values: Represented in microvolts > + > +What: /sys/class/power_supply//voltage_min, > +Date: January 2008 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the minimum safe VBAT voltage permitted for the battery, > + during discharging. > + > + Access: Read > + Valid values: Represented in microvolts > + > +What: /sys/class/power_supply//voltage_now, > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports an instant, single VBAT voltage reading for the battery. > + This value is not averaged/smoothed. > + > + Access: Read > + Valid values: Represented in microvolts > + > +===== USB Properties ===== > + > +What: /sys/class/power_supply//current_avg > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports an average IBUS current reading over a fixed period. > + Normally devices will provide a fixed interval in which they > + average readings to smooth out the reported value. > + > + Access: Read > + Valid values: Represented in microamps > + > + > +What: /sys/class/power_supply//current_max > +Date: October 2010 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the maximum IBUS current the supply can support. > + > + Access: Read > + Valid values: Represented in microamps > + > +What: /sys/class/power_supply//current_now > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the IBUS current supplied now. This value is generally > + read-only reporting, unless the 'online' state of the supply > + is set to be programmable, in which case this value can be set > + within the reported min/max range. > + > + Access: Read, Write > + Valid values: Represented in microamps > + > +What: /sys/class/power_supply//input_current_limit > +Date: July 2014 > +Contact: linux-pm@vger.kernel.org > +Description: > + Details the incoming IBUS current limit currently set in the > + supply. Normally this is configured based on the type of > + connection made (e.g. A configured SDP should output a maximum > + of 500mA so the input current limit is set to the same value). > + > + Access: Read, Write > + Valid values: Represented in microamps > + > +What: /sys/class/power_supply//online, > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Indicates if VBUS is present for the supply. When the supply is > + online, and the supply allows it, then it's possible to switch > + between online states (e.g. Fixed -> Programmable for a PD_PPS > + USB supply so voltage and current can be controlled). > + > + Access: Read, Write > + Valid values: > + 0: Offline > + 1: Online Fixed - Fixed Voltage Supply > + 2: Online Programmable - Programmable Voltage Supply > + > +What: /sys/class/power_supply//temp > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the current supply temperature reading. This would > + normally be the internal temperature of the device itself (e.g > + TJUNC temperature of an IC) > + > + Access: Read > + Valid values: Represented in 1/10 Degrees Celsius > + > +What: /sys/class/power_supply//temp_alert_max > +Date: July 2012 > +Contact: linux-pm@vger.kernel.org > +Description: > + Maximum supply temperature trip-wire value where the supply will > + notify user-space of the event. This is normally used for the > + charging scenario where user-space needs to know the supply > + temperature has crossed an upper threshold so it can take > + appropriate action (e.g. warning user that the supply > + temperature is critically high, and charging has stopped to > + remedy the situation). > + > + Access: Read > + Valid values: Represented in 1/10 Degrees Celsius > + > +What: /sys/class/power_supply//temp_alert_min > +Date: July 2012 > +Contact: linux-pm@vger.kernel.org > +Description: > + Minimum supply temperature trip-wire value where the supply will > + notify user-space of the event. This is normally used for the > + charging scenario where user-space needs to know the supply > + temperature has crossed a lower threshold so it can take > + appropriate action (e.g. warning user that the supply > + temperature is high, and charging current has been reduced > + accordingly to remedy the situation). > + > + Access: Read > + Valid values: Represented in 1/10 Degrees Celsius > + > +What: /sys/class/power_supply//temp_max > +Date: July 2014 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the maximum allowed supply temperature for operation. > + > + Access: Read > + Valid values: Represented in 1/10 Degrees Celsius > + > +What: /sys/class/power_supply//temp_min > +Date: July 2014 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the mainimum allowed supply temperature for operation. > + > + Access: Read > + Valid values: Represented in 1/10 Degrees Celsius > + > +What: /sys/class/power_supply//voltage_max > +Date: January 2008 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the maximum VBUS voltage the supply can support. > + > + Access: Read > + Valid values: Represented in microvolts > + > +What: /sys/class/power_supply//voltage_min > +Date: January 2008 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the minimum VBUS voltage the supply can support. > + > + Access: Read > + Valid values: Represented in microvolts > + > +What: /sys/class/power_supply//voltage_now > +Date: May 2007 > +Contact: linux-pm@vger.kernel.org > +Description: > + Reports the VBUS voltage supplied now. This value is generally > + read-only reporting, unless the 'online' state of the supply > + is set to be programmable, in which case this value can be set > + within the reported min/max range. > + > + Access: Read, Write > + Valid values: Represented in microvolts > + > +===== Device Specific Properties ===== > + > What: /sys/class/power/ds2760-battery.*/charge_now > Date: May 2010 > KernelVersion: 2.6.35 > diff --git a/MAINTAINERS b/MAINTAINERS > index 0a1410d..700bfb7 100644 > --- a/MAINTAINERS > +++ b/MAINTAINERS > @@ -11242,6 +11242,7 @@ M: Sebastian Reichel > L: linux-pm@vger.kernel.org > T: git git://git.kernel.org/pub/scm/linux/kernel/git/sre/linux-power-supply.git > S: Maintained > +F: Documentation/ABI/testing/sysfs-class-power > F: Documentation/devicetree/bindings/power/supply/ > F: include/linux/power_supply.h > F: drivers/power/supply/ > -- > 1.9.1 -- heikki From mboxrd@z Thu Jan 1 00:00:00 1970 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 Subject: [v8,2/6] Documentation: power: Initial effort to document power_supply ABI From: Heikki Krogerus Message-Id: <20180424124036.GD25723@kuha.fi.intel.com> Date: Tue, 24 Apr 2018 15:40:36 +0300 To: Adam Thomson Cc: Guenter Roeck , Greg Kroah-Hartman , Sebastian Reichel , Hans de Goede , Jun Li , linux-usb@vger.kernel.org, linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org, support.opensource@diasemi.com List-ID: T24gTW9uLCBBcHIgMjMsIDIwMTggYXQgMDM6MTA6NTdQTSArMDEwMCwgQWRhbSBUaG9tc29uIHdy b3RlOgo+IFRoaXMgY29tbWl0IGFkZHMgZ2VuZXJpYyBBQkkgaW5mb3JtYXRpb24gcmVnYXJkaW5n IHBvd2VyX3N1cHBseQo+IHByb3BlcnRpZXMuIFRoaXMgaXMgYW4gaW5pdGlhbCBhdHRlbXB0IHRv IHRyeSBhbmQgYWxpZ24gdGhlIHVzYWdlCj4gb2YgdGhlc2UgcHJvcGVydGllcyBiZXR3ZWVuIGRy aXZlcnMuIEFzIHBhcnQgb2YgdGhpcyBjb21taXQsCj4gY29tbW9uIEJhdHRlcnkgYW5kIFVTQiBy ZWxhdGVkIHByb3BlcnRpZXMgaGF2ZSBiZWVuIGxpc3RlZC4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBB ZGFtIFRob21zb24gPEFkYW0uVGhvbXNvbi5PcGVuc291cmNlQGRpYXNlbWkuY29tPgoKVGhhbmsg eW91IGEgbG90IGZvciBkb2luZyB0aGlzIEFkYW0hIEZXSVc6CgpSZXZpZXdlZC1ieTogSGVpa2tp IEtyb2dlcnVzIDxoZWlra2kua3JvZ2VydXNAbGludXguaW50ZWwuY29tPgoKPiAtLS0KPiAgRG9j dW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNmcy1jbGFzcy1wb3dlciB8IDQ0MyArKysrKysrKysr KysrKysrKysrKysrKysrKysrCj4gIE1BSU5UQUlORVJTICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgIDEgKwo+ICAyIGZpbGVzIGNoYW5nZWQsIDQ0NCBpbnNlcnRpb25zKCspCj4g Cj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtcG93 ZXIgYi9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5nL3N5c2ZzLWNsYXNzLXBvd2VyCj4gaW5kZXgg Zjg1Y2U5ZS4uZTA0NjU2NiAxMDA2NDQKPiAtLS0gYS9Eb2N1bWVudGF0aW9uL0FCSS90ZXN0aW5n L3N5c2ZzLWNsYXNzLXBvd2VyCj4gKysrIGIvRG9jdW1lbnRhdGlvbi9BQkkvdGVzdGluZy9zeXNm cy1jbGFzcy1wb3dlcgo+IEBAIC0xLDMgKzEsNDQ2IEBACj4gKz09PT09IEdlbmVyYWwgUHJvcGVy dGllcyA9PT09PQo+ICsKPiArV2hhdDoJCS9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5LzxzdXBwbHlf bmFtZT4vbWFudWZhY3R1cmVyCj4gK0RhdGU6CQlNYXkgMjAwNwo+ICtDb250YWN0OglsaW51eC1w bUB2Z2VyLmtlcm5lbC5vcmcKPiArRGVzY3JpcHRpb246Cj4gKwkJUmVwb3J0cyB0aGUgbmFtZSBv ZiB0aGUgZGV2aWNlIG1hbnVmYWN0dXJlci4KPiArCj4gKwkJQWNjZXNzOiBSZWFkCj4gKwkJVmFs aWQgdmFsdWVzOiBSZXByZXNlbnRlZCBhcyBzdHJpbmcKPiArCj4gK1doYXQ6CQkvc3lzL2NsYXNz L3Bvd2VyX3N1cHBseS88c3VwcGx5X25hbWU+L21vZGVsX25hbWUKPiArRGF0ZToJCU1heSAyMDA3 Cj4gK0NvbnRhY3Q6CWxpbnV4LXBtQHZnZXIua2VybmVsLm9yZwo+ICtEZXNjcmlwdGlvbjoKPiAr CQlSZXBvcnRzIHRoZSBuYW1lIG9mIHRoZSBkZXZpY2UgbW9kZWwuCj4gKwo+ICsJCUFjY2Vzczog UmVhZAo+ICsJCVZhbGlkIHZhbHVlczogUmVwcmVzZW50ZWQgYXMgc3RyaW5nCj4gKwo+ICtXaGF0 OgkJL3N5cy9jbGFzcy9wb3dlcl9zdXBwbHkvPHN1cHBseV9uYW1lPi9zZXJpYWxfbnVtYmVyCj4g K0RhdGU6CQlKYW51YXJ5IDIwMDgKPiArQ29udGFjdDoJbGludXgtcG1Admdlci5rZXJuZWwub3Jn Cj4gK0Rlc2NyaXB0aW9uOgo+ICsJCVJlcG9ydHMgdGhlIHNlcmlhbCBudW1iZXIgb2YgdGhlIGRl dmljZS4KPiArCj4gKwkJQWNjZXNzOiBSZWFkCj4gKwkJVmFsaWQgdmFsdWVzOiBSZXByZXNlbnRl ZCBhcyBzdHJpbmcKPiArCj4gK1doYXQ6CQkvc3lzL2NsYXNzL3Bvd2VyX3N1cHBseS88c3VwcGx5 X25hbWU+L3R5cGUKPiArRGF0ZToJCU1heSAyMDEwCj4gK0NvbnRhY3Q6CWxpbnV4LXBtQHZnZXIu a2VybmVsLm9yZwo+ICtEZXNjcmlwdGlvbjoKPiArCQlEZXNjcmliZXMgdGhlIG1haW4gdHlwZSBv ZiB0aGUgc3VwcGx5Lgo+ICsKPiArCQlBY2Nlc3M6IFJlYWQKPiArCQlWYWxpZCB2YWx1ZXM6ICJC YXR0ZXJ5IiwgIlVQUyIsICJNYWlucyIsICJVU0IiCj4gKwo+ICs9PT09PSBCYXR0ZXJ5IFByb3Bl cnRpZXMgPT09PT0KPiArCj4gK1doYXQ6CQkvc3lzL2NsYXNzL3Bvd2VyX3N1cHBseS88c3VwcGx5 X25hbWU+L2NhcGFjaXR5Cj4gK0RhdGU6CQlNYXkgMjAwNwo+ICtDb250YWN0OglsaW51eC1wbUB2 Z2VyLmtlcm5lbC5vcmcKPiArRGVzY3JpcHRpb246Cj4gKwkJRmluZSBncmFpbiByZXByZXNlbnRh dGlvbiBvZiBiYXR0ZXJ5IGNhcGFjaXR5Lgo+ICsJCUFjY2VzczogUmVhZAo+ICsJCVZhbGlkIHZh bHVlczogMCAtIDEwMCAocGVyY2VudCkKPiArCj4gK1doYXQ6CQkvc3lzL2NsYXNzL3Bvd2VyX3N1 cHBseS88c3VwcGx5X25hbWU+L2NhcGFjaXR5X2FsZXJ0X21heAo+ICtEYXRlOgkJSnVseSAyMDEy Cj4gK0NvbnRhY3Q6CWxpbnV4LXBtQHZnZXIua2VybmVsLm9yZwo+ICtEZXNjcmlwdGlvbjoKPiAr CQlNYXhpbXVtIGJhdHRlcnkgY2FwYWNpdHkgdHJpcC13aXJlIHZhbHVlIHdoZXJlIHRoZSBzdXBw bHkgd2lsbAo+ICsJCW5vdGlmeSB1c2VyLXNwYWNlIG9mIHRoZSBldmVudC4gVGhpcyBpcyBub3Jt YWxseSB1c2VkIGZvciB0aGUKPiArCQliYXR0ZXJ5IGRpc2NoYXJnaW5nIHNjZW5hcmlvIHdoZXJl IHVzZXItc3BhY2UgbmVlZHMgdG8ga25vdyB0aGUKPiArCQliYXR0ZXJ5IGhhcyBkcm9wcGVkIHRv IGFuIHVwcGVyIGxldmVsIHNvIGl0IGNhbiB0YWtlCj4gKwkJYXBwcm9wcmlhdGUgYWN0aW9uIChl LmcuIHdhcm5pbmcgdXNlciB0aGF0IGJhdHRlcnkgbGV2ZWwgaXMKPiArCQlsb3cpLgo+ICsKPiAr CQlBY2Nlc3M6IFJlYWQsIFdyaXRlCj4gKwkJVmFsaWQgdmFsdWVzOiAwIC0gMTAwIChwZXJjZW50 KQo+ICsKPiArV2hhdDoJCS9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5LzxzdXBwbHlfbmFtZT4vY2Fw YWNpdHlfYWxlcnRfbWluCj4gK0RhdGU6CQlKdWx5IDIwMTIKPiArQ29udGFjdDoJbGludXgtcG1A dmdlci5rZXJuZWwub3JnCj4gK0Rlc2NyaXB0aW9uOgo+ICsJCU1pbmltdW0gYmF0dGVyeSBjYXBh Y2l0eSB0cmlwLXdpcmUgdmFsdWUgd2hlcmUgdGhlIHN1cHBseSB3aWxsCj4gKwkJbm90aWZ5IHVz ZXItc3BhY2Ugb2YgdGhlIGV2ZW50LiBUaGlzIGlzIG5vcm1hbGx5IHVzZWQgZm9yIHRoZQo+ICsJ CWJhdHRlcnkgZGlzY2hhcmdpbmcgc2NlbmFyaW8gd2hlcmUgdXNlci1zcGFjZSBuZWVkcyB0byBr bm93IHRoZQo+ICsJCWJhdHRlcnkgaGFzIGRyb3BwZWQgdG8gYSBsb3dlciBsZXZlbCBzbyBpdCBj YW4gdGFrZQo+ICsJCWFwcHJvcHJpYXRlIGFjdGlvbiAoZS5nLiB3YXJuaW5nIHVzZXIgdGhhdCBi YXR0ZXJ5IGxldmVsIGlzCj4gKwkJY3JpdGljYWxseSBsb3cpLgo+ICsKPiArCQlBY2Nlc3M6IFJl YWQsIFdyaXRlCj4gKwkJVmFsaWQgdmFsdWVzOiAwIC0gMTAwIChwZXJjZW50KQo+ICsKPiArV2hh dDoJCS9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5LzxzdXBwbHlfbmFtZT4vY2FwYWNpdHlfbGV2ZWwK PiArRGF0ZToJCUp1bmUgMjAwOQo+ICtDb250YWN0OglsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcK PiArRGVzY3JpcHRpb246Cj4gKwkJQ29hcnNlIHJlcHJlc2VudGF0aW9uIG9mIGJhdHRlcnkgY2Fw YWNpdHkuCj4gKwo+ICsJCUFjY2VzczogUmVhZAo+ICsJCVZhbGlkIHZhbHVlczogIlVua25vd24i LCAiQ3JpdGljYWwiLCAiTG93IiwgIk5vcm1hbCIsICJIaWdoIiwKPiArCQkJICAgICAgIkZ1bGwi Cj4gKwo+ICtXaGF0OgkJL3N5cy9jbGFzcy9wb3dlcl9zdXBwbHkvPHN1cHBseV9uYW1lPi9jdXJy ZW50X2F2Zwo+ICtEYXRlOgkJTWF5IDIwMDcKPiArQ29udGFjdDoJbGludXgtcG1Admdlci5rZXJu ZWwub3JnCj4gK0Rlc2NyaXB0aW9uOgo+ICsJCVJlcG9ydHMgYW4gYXZlcmFnZSBJQkFUIGN1cnJl bnQgcmVhZGluZyBmb3IgdGhlIGJhdHRlcnksIG92ZXIgYQo+ICsJCWZpeGVkIHBlcmlvZC4gTm9y bWFsbHkgZGV2aWNlcyB3aWxsIHByb3ZpZGUgYSBmaXhlZCBpbnRlcnZhbCBpbgo+ICsJCXdoaWNo IHRoZXkgYXZlcmFnZSByZWFkaW5ncyB0byBzbW9vdGggb3V0IHRoZSByZXBvcnRlZCB2YWx1ZS4K PiArCj4gKwkJQWNjZXNzOiBSZWFkCj4gKwkJVmFsaWQgdmFsdWVzOiBSZXByZXNlbnRlZCBpbiBt aWNyb2FtcHMKPiArCj4gK1doYXQ6CQkvc3lzL2NsYXNzL3Bvd2VyX3N1cHBseS88c3VwcGx5X25h bWU+L2N1cnJlbnRfbWF4Cj4gK0RhdGU6CQlPY3RvYmVyIDIwMTAKPiArQ29udGFjdDoJbGludXgt cG1Admdlci5rZXJuZWwub3JnCj4gK0Rlc2NyaXB0aW9uOgo+ICsJCVJlcG9ydHMgdGhlIG1heGlt dW0gSUJBVCBjdXJyZW50IGFsbG93ZWQgaW50byB0aGUgYmF0dGVyeS4KPiArCj4gKwkJQWNjZXNz OiBSZWFkCj4gKwkJVmFsaWQgdmFsdWVzOiBSZXByZXNlbnRlZCBpbiBtaWNyb2FtcHMKPiArCj4g K1doYXQ6CQkvc3lzL2NsYXNzL3Bvd2VyX3N1cHBseS88c3VwcGx5X25hbWU+L2N1cnJlbnRfbm93 Cj4gK0RhdGU6CQlNYXkgMjAwNwo+ICtDb250YWN0OglsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcK PiArRGVzY3JpcHRpb246Cj4gKwkJUmVwb3J0cyBhbiBpbnN0YW50LCBzaW5nbGUgSUJBVCBjdXJy ZW50IHJlYWRpbmcgZm9yIHRoZSBiYXR0ZXJ5Lgo+ICsJCVRoaXMgdmFsdWUgaXMgbm90IGF2ZXJh Z2VkL3Ntb290aGVkLgo+ICsKPiArCQlBY2Nlc3M6IFJlYWQKPiArCQlWYWxpZCB2YWx1ZXM6IFJl cHJlc2VudGVkIGluIG1pY3JvYW1wcwo+ICsKPiArV2hhdDoJCS9zeXMvY2xhc3MvcG93ZXJfc3Vw cGx5LzxzdXBwbHlfbmFtZT4vY2hhcmdlX3R5cGUKPiArRGF0ZToJCUp1bHkgMjAwOQo+ICtDb250 YWN0OglsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcKPiArRGVzY3JpcHRpb246Cj4gKwkJUmVwcmVz ZW50cyB0aGUgdHlwZSBvZiBjaGFyZ2luZyBjdXJyZW50bHkgYmVpbmcgYXBwbGllZCB0byB0aGUK PiArCQliYXR0ZXJ5Lgo+ICsKPiArCQlBY2Nlc3M6IFJlYWQKPiArCQlWYWxpZCB2YWx1ZXM6ICJV bmtub3duIiwgIk4vQSIsICJUcmlja2xlIiwgIkZhc3QiCj4gKwo+ICtXaGF0OgkJL3N5cy9jbGFz cy9wb3dlcl9zdXBwbHkvPHN1cHBseV9uYW1lPi9jaGFyZ2VfdGVybV9jdXJyZW50Cj4gK0RhdGU6 CQlKdWx5IDIwMTQKPiArQ29udGFjdDoJbGludXgtcG1Admdlci5rZXJuZWwub3JnCj4gK0Rlc2Ny aXB0aW9uOgo+ICsJCVJlcG9ydHMgdGhlIGNoYXJnaW5nIGN1cnJlbnQgdmFsdWUgd2hpY2ggaXMg dXNlZCB0byBkZXRlcm1pbmUKPiArCQl3aGVuIHRoZSBiYXR0ZXJ5IGlzIGNvbnNpZGVyZWQgZnVs bCBhbmQgY2hhcmdpbmcgc2hvdWxkIGVuZC4KPiArCj4gKwkJQWNjZXNzOiBSZWFkCj4gKwkJVmFs aWQgdmFsdWVzOiBSZXByZXNlbnRlZCBpbiBtaWNyb2FtcHMKPiArCj4gK1doYXQ6CQkvc3lzL2Ns YXNzL3Bvd2VyX3N1cHBseS88c3VwcGx5X25hbWU+L2hlYWx0aAo+ICtEYXRlOgkJTWF5IDIwMDcK PiArQ29udGFjdDoJbGludXgtcG1Admdlci5rZXJuZWwub3JnCj4gK0Rlc2NyaXB0aW9uOgo+ICsJ CVJlcG9ydHMgdGhlIGhlYWx0aCBvZiB0aGUgYmF0dGVyeSBvciBiYXR0ZXJ5IHNpZGUgb2YgY2hh cmdlcgo+ICsJCWZ1bmN0aW9uYWxpdHkuCj4gKwo+ICsJCUFjY2VzczogUmVhZAo+ICsJCVZhbGlk IHZhbHVlczogIlVua25vd24iLCAiR29vZCIsICJPdmVyaGVhdCIsICJEZWFkIiwKPiArCQkJICAg ICAgIk92ZXIgdm9sdGFnZSIsICJVbnNwZWNpZmllZCBmYWlsdXJlIiwgIkNvbGQiLAo+ICsJCQkg ICAgICAiV2F0Y2hkb2cgdGltZXIgZXhwaXJlIiwgIlNhZmV0eSB0aW1lciBleHBpcmUiCj4gKwo+ ICtXaGF0OgkJL3N5cy9jbGFzcy9wb3dlcl9zdXBwbHkvPHN1cHBseV9uYW1lPi9wcmVjaGFyZ2Vf Y3VycmVudAo+ICtEYXRlOgkJSnVuZSAyMDE3Cj4gK0NvbnRhY3Q6CWxpbnV4LXBtQHZnZXIua2Vy bmVsLm9yZwo+ICtEZXNjcmlwdGlvbjoKPiArCQlSZXBvcnRzIHRoZSBjaGFyZ2luZyBjdXJyZW50 IGFwcGxpZWQgZHVyaW5nIHByZS1jaGFyZ2luZyBwaGFzZQo+ICsJCWZvciBhIGJhdHRlcnkgY2hh cmdlIGN5Y2xlLgo+ICsKPiArCQlBY2Nlc3M6IFJlYWQKPiArCQlWYWxpZCB2YWx1ZXM6IFJlcHJl c2VudGVkIGluIG1pY3JvYW1wcwo+ICsKPiArV2hhdDoJCS9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5 LzxzdXBwbHlfbmFtZT4vcHJlc2VudAo+ICtEYXRlOgkJTWF5IDIwMDcKPiArQ29udGFjdDoJbGlu dXgtcG1Admdlci5rZXJuZWwub3JnCj4gK0Rlc2NyaXB0aW9uOgo+ICsJCVJlcG9ydHMgd2hldGhl ciBhIGJhdHRlcnkgaXMgcHJlc2VudCBvciBub3QgaW4gdGhlIHN5c3RlbS4KPiArCj4gKwkJQWNj ZXNzOiBSZWFkCj4gKwkJVmFsaWQgdmFsdWVzOgo+ICsJCQkwOiBBYnNlbnQKPiArCQkJMTogUHJl c2VudAo+ICsKPiArV2hhdDoJCS9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5LzxzdXBwbHlfbmFtZT4v c3RhdHVzCj4gK0RhdGU6CQlNYXkgMjAwNwo+ICtDb250YWN0OglsaW51eC1wbUB2Z2VyLmtlcm5l bC5vcmcKPiArRGVzY3JpcHRpb246Cj4gKwkJUmVwcmVzZW50cyB0aGUgY2hhcmdpbmcgc3RhdHVz IG9mIHRoZSBiYXR0ZXJ5LiBOb3JtYWxseSB0aGlzCj4gKwkJaXMgcmVhZC1vbmx5IHJlcG9ydGlu ZyBhbHRob3VnaCBmb3Igc29tZSBzdXBwbGllcyB0aGlzIGNhbiBiZQo+ICsJCXVzZWQgdG8gZW5h YmxlL2Rpc2FibGUgY2hhcmdpbmcgdG8gdGhlIGJhdHRlcnkuCj4gKwo+ICsJCUFjY2VzczogUmVh ZCwgV3JpdGUKPiArCQlWYWxpZCB2YWx1ZXM6ICJVbmtub3duIiwgIkNoYXJnaW5nIiwgIkRpc2No YXJnaW5nIiwKPiArCQkJICAgICAgIk5vdCBjaGFyZ2luZyIsICJGdWxsIgo+ICsKPiArV2hhdDoJ CS9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5LzxzdXBwbHlfbmFtZT4vdGVjaG5vbG9neQo+ICtEYXRl OgkJTWF5IDIwMDcKPiArQ29udGFjdDoJbGludXgtcG1Admdlci5rZXJuZWwub3JnCj4gK0Rlc2Ny aXB0aW9uOgo+ICsJCURlc2NyaWJlcyB0aGUgYmF0dGVyeSB0ZWNobm9sb2d5IHN1cHBvcnRlZCBi eSB0aGUgc3VwcGx5Lgo+ICsKPiArCQlBY2Nlc3M6IFJlYWQKPiArCQlWYWxpZCB2YWx1ZXM6ICJV bmtub3duIiwgIk5pTUgiLCAiTGktaW9uIiwgIkxpLXBvbHkiLCAiTGlGZSIsCj4gKwkJCSAgICAg ICJOaUNkIiwgIkxpTW4iCj4gKwo+ICtXaGF0OgkJL3N5cy9jbGFzcy9wb3dlcl9zdXBwbHkvPHN1 cHBseV9uYW1lPi90ZW1wCj4gK0RhdGU6CQlNYXkgMjAwNwo+ICtDb250YWN0OglsaW51eC1wbUB2 Z2VyLmtlcm5lbC5vcmcKPiArRGVzY3JpcHRpb246Cj4gKwkJUmVwb3J0cyB0aGUgY3VycmVudCBU QkFUIGJhdHRlcnkgdGVtcGVyYXR1cmUgcmVhZGluZy4KPiArCj4gKwkJQWNjZXNzOiBSZWFkCj4g KwkJVmFsaWQgdmFsdWVzOiBSZXByZXNlbnRlZCBpbiAxLzEwIERlZ3JlZXMgQ2Vsc2l1cwo+ICsK PiArV2hhdDoJCS9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5LzxzdXBwbHlfbmFtZT4vdGVtcF9hbGVy dF9tYXgKPiArRGF0ZToJCUp1bHkgMjAxMgo+ICtDb250YWN0OglsaW51eC1wbUB2Z2VyLmtlcm5l bC5vcmcKPiArRGVzY3JpcHRpb246Cj4gKwkJTWF4aW11bSBUQkFUIHRlbXBlcmF0dXJlIHRyaXAt d2lyZSB2YWx1ZSB3aGVyZSB0aGUgc3VwcGx5IHdpbGwKPiArCQlub3RpZnkgdXNlci1zcGFjZSBv ZiB0aGUgZXZlbnQuIFRoaXMgaXMgbm9ybWFsbHkgdXNlZCBmb3IgdGhlCj4gKwkJYmF0dGVyeSBj aGFyZ2luZyBzY2VuYXJpbyB3aGVyZSB1c2VyLXNwYWNlIG5lZWRzIHRvIGtub3cgdGhlCj4gKwkJ YmF0dGVyeSB0ZW1wZXJhdHVyZSBoYXMgY3Jvc3NlZCBhbiB1cHBlciB0aHJlc2hvbGQgc28gaXQg Y2FuCj4gKwkJdGFrZSBhcHByb3ByaWF0ZSBhY3Rpb24gKGUuZy4gd2FybmluZyB1c2VyIHRoYXQg YmF0dGVyeSBsZXZlbCBpcwo+ICsJCWNyaXRpY2FsbHkgaGlnaCwgYW5kIGNoYXJnaW5nIGhhcyBz dG9wcGVkKS4KPiArCj4gKwkJQWNjZXNzOiBSZWFkCj4gKwkJVmFsaWQgdmFsdWVzOiBSZXByZXNl bnRlZCBpbiAxLzEwIERlZ3JlZXMgQ2Vsc2l1cwo+ICsKPiArV2hhdDoJCS9zeXMvY2xhc3MvcG93 ZXJfc3VwcGx5LzxzdXBwbHlfbmFtZT4vdGVtcF9hbGVydF9taW4KPiArRGF0ZToJCUp1bHkgMjAx Mgo+ICtDb250YWN0OglsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcKPiArRGVzY3JpcHRpb246Cj4g KwkJTWluaW11bSBUQkFUIHRlbXBlcmF0dXJlIHRyaXAtd2lyZSB2YWx1ZSB3aGVyZSB0aGUgc3Vw cGx5IHdpbGwKPiArCQlub3RpZnkgdXNlci1zcGFjZSBvZiB0aGUgZXZlbnQuIFRoaXMgaXMgbm9y bWFsbHkgdXNlZCBmb3IgdGhlCj4gKwkJYmF0dGVyeSBjaGFyZ2luZyBzY2VuYXJpbyB3aGVyZSB1 c2VyLXNwYWNlIG5lZWRzIHRvIGtub3cgdGhlCj4gKwkJYmF0dGVyeSB0ZW1wZXJhdHVyZSBoYXMg Y3Jvc3NlZCBhIGxvd2VyIHRocmVzaG9sZCBzbyBpdCBjYW4gdGFrZQo+ICsJCWFwcHJvcHJpYXRl IGFjdGlvbiAoZS5nLiB3YXJuaW5nIHVzZXIgdGhhdCBiYXR0ZXJ5IGxldmVsIGlzCj4gKwkJaGln aCwgYW5kIGNoYXJnaW5nIGN1cnJlbnQgaGFzIGJlZW4gcmVkdWNlZCBhY2NvcmRpbmdseSB0bwo+ ICsJCXJlbWVkeSB0aGUgc2l0dWF0aW9uKS4KPiArCj4gKwkJQWNjZXNzOiBSZWFkCj4gKwkJVmFs aWQgdmFsdWVzOiBSZXByZXNlbnRlZCBpbiAxLzEwIERlZ3JlZXMgQ2Vsc2l1cwo+ICsKPiArV2hh dDoJCS9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5LzxzdXBwbHlfbmFtZT4vdGVtcF9tYXgKPiArRGF0 ZToJCUp1bHkgMjAxNAo+ICtDb250YWN0OglsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcKPiArRGVz Y3JpcHRpb246Cj4gKwkJUmVwb3J0cyB0aGUgbWF4aW11bSBhbGxvd2VkIFRCQVQgYmF0dGVyeSB0 ZW1wZXJhdHVyZSBmb3IKPiArCQljaGFyZ2luZy4KPiArCj4gKwkJQWNjZXNzOiBSZWFkCj4gKwkJ VmFsaWQgdmFsdWVzOiBSZXByZXNlbnRlZCBpbiAxLzEwIERlZ3JlZXMgQ2Vsc2l1cwo+ICsKPiAr V2hhdDoJCS9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5LzxzdXBwbHlfbmFtZT4vdGVtcF9taW4KPiAr RGF0ZToJCUp1bHkgMjAxNAo+ICtDb250YWN0OglsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcKPiAr RGVzY3JpcHRpb246Cj4gKwkJUmVwb3J0cyB0aGUgbWluaW11bSBhbGxvd2VkIFRCQVQgYmF0dGVy eSB0ZW1wZXJhdHVyZSBmb3IKPiArCQljaGFyZ2luZy4KPiArCj4gKwkJQWNjZXNzOiBSZWFkCj4g KwkJVmFsaWQgdmFsdWVzOiBSZXByZXNlbnRlZCBpbiAxLzEwIERlZ3JlZXMgQ2Vsc2l1cwo+ICsK PiArV2hhdDoJCS9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5LzxzdXBwbHlfbmFtZT4vdm9sdGFnZV9h dmcsCj4gK0RhdGU6CQlNYXkgMjAwNwo+ICtDb250YWN0OglsaW51eC1wbUB2Z2VyLmtlcm5lbC5v cmcKPiArRGVzY3JpcHRpb246Cj4gKwkJUmVwb3J0cyBhbiBhdmVyYWdlIFZCQVQgdm9sdGFnZSBy ZWFkaW5nIGZvciB0aGUgYmF0dGVyeSwgb3ZlciBhCj4gKwkJZml4ZWQgcGVyaW9kLiBOb3JtYWxs eSBkZXZpY2VzIHdpbGwgcHJvdmlkZSBhIGZpeGVkIGludGVydmFsIGluCj4gKwkJd2hpY2ggdGhl eSBhdmVyYWdlIHJlYWRpbmdzIHRvIHNtb290aCBvdXQgdGhlIHJlcG9ydGVkIHZhbHVlLgo+ICsK PiArCQlBY2Nlc3M6IFJlYWQKPiArCQlWYWxpZCB2YWx1ZXM6IFJlcHJlc2VudGVkIGluIG1pY3Jv dm9sdHMKPiArCj4gK1doYXQ6CQkvc3lzL2NsYXNzL3Bvd2VyX3N1cHBseS88c3VwcGx5X25hbWU+ L3ZvbHRhZ2VfbWF4LAo+ICtEYXRlOgkJSmFudWFyeSAyMDA4Cj4gK0NvbnRhY3Q6CWxpbnV4LXBt QHZnZXIua2VybmVsLm9yZwo+ICtEZXNjcmlwdGlvbjoKPiArCQlSZXBvcnRzIHRoZSBtYXhpbXVt IHNhZmUgVkJBVCB2b2x0YWdlIHBlcm1pdHRlZCBmb3IgdGhlIGJhdHRlcnksCj4gKwkJZHVyaW5n IGNoYXJnaW5nLgo+ICsKPiArCQlBY2Nlc3M6IFJlYWQKPiArCQlWYWxpZCB2YWx1ZXM6IFJlcHJl c2VudGVkIGluIG1pY3Jvdm9sdHMKPiArCj4gK1doYXQ6CQkvc3lzL2NsYXNzL3Bvd2VyX3N1cHBs eS88c3VwcGx5X25hbWU+L3ZvbHRhZ2VfbWluLAo+ICtEYXRlOgkJSmFudWFyeSAyMDA4Cj4gK0Nv bnRhY3Q6CWxpbnV4LXBtQHZnZXIua2VybmVsLm9yZwo+ICtEZXNjcmlwdGlvbjoKPiArCQlSZXBv cnRzIHRoZSBtaW5pbXVtIHNhZmUgVkJBVCB2b2x0YWdlIHBlcm1pdHRlZCBmb3IgdGhlIGJhdHRl cnksCj4gKwkJZHVyaW5nIGRpc2NoYXJnaW5nLgo+ICsKPiArCQlBY2Nlc3M6IFJlYWQKPiArCQlW YWxpZCB2YWx1ZXM6IFJlcHJlc2VudGVkIGluIG1pY3Jvdm9sdHMKPiArCj4gK1doYXQ6CQkvc3lz L2NsYXNzL3Bvd2VyX3N1cHBseS88c3VwcGx5X25hbWU+L3ZvbHRhZ2Vfbm93LAo+ICtEYXRlOgkJ TWF5IDIwMDcKPiArQ29udGFjdDoJbGludXgtcG1Admdlci5rZXJuZWwub3JnCj4gK0Rlc2NyaXB0 aW9uOgo+ICsJCVJlcG9ydHMgYW4gaW5zdGFudCwgc2luZ2xlIFZCQVQgdm9sdGFnZSByZWFkaW5n IGZvciB0aGUgYmF0dGVyeS4KPiArCQlUaGlzIHZhbHVlIGlzIG5vdCBhdmVyYWdlZC9zbW9vdGhl ZC4KPiArCj4gKwkJQWNjZXNzOiBSZWFkCj4gKwkJVmFsaWQgdmFsdWVzOiBSZXByZXNlbnRlZCBp biBtaWNyb3ZvbHRzCj4gKwo+ICs9PT09PSBVU0IgUHJvcGVydGllcyA9PT09PQo+ICsKPiArV2hh dDogCQkvc3lzL2NsYXNzL3Bvd2VyX3N1cHBseS88c3VwcGx5X25hbWU+L2N1cnJlbnRfYXZnCj4g K0RhdGU6CQlNYXkgMjAwNwo+ICtDb250YWN0OglsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcKPiAr RGVzY3JpcHRpb246Cj4gKwkJUmVwb3J0cyBhbiBhdmVyYWdlIElCVVMgY3VycmVudCByZWFkaW5n IG92ZXIgYSBmaXhlZCBwZXJpb2QuCj4gKwkJTm9ybWFsbHkgZGV2aWNlcyB3aWxsIHByb3ZpZGUg YSBmaXhlZCBpbnRlcnZhbCBpbiB3aGljaCB0aGV5Cj4gKwkJYXZlcmFnZSByZWFkaW5ncyB0byBz bW9vdGggb3V0IHRoZSByZXBvcnRlZCB2YWx1ZS4KPiArCj4gKwkJQWNjZXNzOiBSZWFkCj4gKwkJ VmFsaWQgdmFsdWVzOiBSZXByZXNlbnRlZCBpbiBtaWNyb2FtcHMKPiArCj4gKwo+ICtXaGF0OiAJ CS9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5LzxzdXBwbHlfbmFtZT4vY3VycmVudF9tYXgKPiArRGF0 ZToJCU9jdG9iZXIgMjAxMAo+ICtDb250YWN0OglsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcKPiAr RGVzY3JpcHRpb246Cj4gKwkJUmVwb3J0cyB0aGUgbWF4aW11bSBJQlVTIGN1cnJlbnQgdGhlIHN1 cHBseSBjYW4gc3VwcG9ydC4KPiArCj4gKwkJQWNjZXNzOiBSZWFkCj4gKwkJVmFsaWQgdmFsdWVz OiBSZXByZXNlbnRlZCBpbiBtaWNyb2FtcHMKPiArCj4gK1doYXQ6IAkJL3N5cy9jbGFzcy9wb3dl cl9zdXBwbHkvPHN1cHBseV9uYW1lPi9jdXJyZW50X25vdwo+ICtEYXRlOgkJTWF5IDIwMDcKPiAr Q29udGFjdDoJbGludXgtcG1Admdlci5rZXJuZWwub3JnCj4gK0Rlc2NyaXB0aW9uOgo+ICsJCVJl cG9ydHMgdGhlIElCVVMgY3VycmVudCBzdXBwbGllZCBub3cuIFRoaXMgdmFsdWUgaXMgZ2VuZXJh bGx5Cj4gKwkJcmVhZC1vbmx5IHJlcG9ydGluZywgdW5sZXNzIHRoZSAnb25saW5lJyBzdGF0ZSBv ZiB0aGUgc3VwcGx5Cj4gKwkJaXMgc2V0IHRvIGJlIHByb2dyYW1tYWJsZSwgaW4gd2hpY2ggY2Fz ZSB0aGlzIHZhbHVlIGNhbiBiZSBzZXQKPiArCQl3aXRoaW4gdGhlIHJlcG9ydGVkIG1pbi9tYXgg cmFuZ2UuCj4gKwo+ICsJCUFjY2VzczogUmVhZCwgV3JpdGUKPiArCQlWYWxpZCB2YWx1ZXM6IFJl cHJlc2VudGVkIGluIG1pY3JvYW1wcwo+ICsKPiArV2hhdDoJCS9zeXMvY2xhc3MvcG93ZXJfc3Vw cGx5LzxzdXBwbHlfbmFtZT4vaW5wdXRfY3VycmVudF9saW1pdAo+ICtEYXRlOgkJSnVseSAyMDE0 Cj4gK0NvbnRhY3Q6CWxpbnV4LXBtQHZnZXIua2VybmVsLm9yZwo+ICtEZXNjcmlwdGlvbjoKPiAr CQlEZXRhaWxzIHRoZSBpbmNvbWluZyBJQlVTIGN1cnJlbnQgbGltaXQgY3VycmVudGx5IHNldCBp biB0aGUKPiArCQlzdXBwbHkuIE5vcm1hbGx5IHRoaXMgaXMgY29uZmlndXJlZCBiYXNlZCBvbiB0 aGUgdHlwZSBvZgo+ICsJCWNvbm5lY3Rpb24gbWFkZSAoZS5nLiBBIGNvbmZpZ3VyZWQgU0RQIHNo b3VsZCBvdXRwdXQgYSBtYXhpbXVtCj4gKwkJb2YgNTAwbUEgc28gdGhlIGlucHV0IGN1cnJlbnQg bGltaXQgaXMgc2V0IHRvIHRoZSBzYW1lIHZhbHVlKS4KPiArCj4gKwkJQWNjZXNzOiBSZWFkLCBX cml0ZQo+ICsJCVZhbGlkIHZhbHVlczogUmVwcmVzZW50ZWQgaW4gbWljcm9hbXBzCj4gKwo+ICtX aGF0OgkJL3N5cy9jbGFzcy9wb3dlcl9zdXBwbHkvPHN1cHBseV9uYW1lPi9vbmxpbmUsCj4gK0Rh dGU6CQlNYXkgMjAwNwo+ICtDb250YWN0OglsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcKPiArRGVz Y3JpcHRpb246Cj4gKwkJSW5kaWNhdGVzIGlmIFZCVVMgaXMgcHJlc2VudCBmb3IgdGhlIHN1cHBs eS4gV2hlbiB0aGUgc3VwcGx5IGlzCj4gKwkJb25saW5lLCBhbmQgdGhlIHN1cHBseSBhbGxvd3Mg aXQsIHRoZW4gaXQncyBwb3NzaWJsZSB0byBzd2l0Y2gKPiArCQliZXR3ZWVuIG9ubGluZSBzdGF0 ZXMgKGUuZy4gRml4ZWQgLT4gUHJvZ3JhbW1hYmxlIGZvciBhIFBEX1BQUwo+ICsJCVVTQiBzdXBw bHkgc28gdm9sdGFnZSBhbmQgY3VycmVudCBjYW4gYmUgY29udHJvbGxlZCkuCj4gKwo+ICsJCUFj Y2VzczogUmVhZCwgV3JpdGUKPiArCQlWYWxpZCB2YWx1ZXM6Cj4gKwkJCTA6IE9mZmxpbmUKPiAr CQkJMTogT25saW5lIEZpeGVkIC0gRml4ZWQgVm9sdGFnZSBTdXBwbHkKPiArCQkJMjogT25saW5l IFByb2dyYW1tYWJsZSAtIFByb2dyYW1tYWJsZSBWb2x0YWdlIFN1cHBseQo+ICsKPiArV2hhdDoJ CS9zeXMvY2xhc3MvcG93ZXJfc3VwcGx5LzxzdXBwbHlfbmFtZT4vdGVtcAo+ICtEYXRlOgkJTWF5 IDIwMDcKPiArQ29udGFjdDoJbGludXgtcG1Admdlci5rZXJuZWwub3JnCj4gK0Rlc2NyaXB0aW9u Ogo+ICsJCVJlcG9ydHMgdGhlIGN1cnJlbnQgc3VwcGx5IHRlbXBlcmF0dXJlIHJlYWRpbmcuIFRo aXMgd291bGQKPiArCQlub3JtYWxseSBiZSB0aGUgaW50ZXJuYWwgdGVtcGVyYXR1cmUgb2YgdGhl IGRldmljZSBpdHNlbGYgKGUuZwo+ICsJCVRKVU5DIHRlbXBlcmF0dXJlIG9mIGFuIElDKQo+ICsK PiArCQlBY2Nlc3M6IFJlYWQKPiArCQlWYWxpZCB2YWx1ZXM6IFJlcHJlc2VudGVkIGluIDEvMTAg RGVncmVlcyBDZWxzaXVzCj4gKwo+ICtXaGF0OgkJL3N5cy9jbGFzcy9wb3dlcl9zdXBwbHkvPHN1 cHBseV9uYW1lPi90ZW1wX2FsZXJ0X21heAo+ICtEYXRlOgkJSnVseSAyMDEyCj4gK0NvbnRhY3Q6 CWxpbnV4LXBtQHZnZXIua2VybmVsLm9yZwo+ICtEZXNjcmlwdGlvbjoKPiArCQlNYXhpbXVtIHN1 cHBseSB0ZW1wZXJhdHVyZSB0cmlwLXdpcmUgdmFsdWUgd2hlcmUgdGhlIHN1cHBseSB3aWxsCj4g KwkJbm90aWZ5IHVzZXItc3BhY2Ugb2YgdGhlIGV2ZW50LiBUaGlzIGlzIG5vcm1hbGx5IHVzZWQg Zm9yIHRoZQo+ICsJCWNoYXJnaW5nIHNjZW5hcmlvIHdoZXJlIHVzZXItc3BhY2UgbmVlZHMgdG8g a25vdyB0aGUgc3VwcGx5Cj4gKwkJdGVtcGVyYXR1cmUgaGFzIGNyb3NzZWQgYW4gdXBwZXIgdGhy ZXNob2xkIHNvIGl0IGNhbiB0YWtlCj4gKwkJYXBwcm9wcmlhdGUgYWN0aW9uIChlLmcuIHdhcm5p bmcgdXNlciB0aGF0IHRoZSBzdXBwbHkKPiArCQl0ZW1wZXJhdHVyZSBpcyBjcml0aWNhbGx5IGhp Z2gsIGFuZCBjaGFyZ2luZyBoYXMgc3RvcHBlZCB0bwo+ICsJCXJlbWVkeSB0aGUgc2l0dWF0aW9u KS4KPiArCj4gKwkJQWNjZXNzOiBSZWFkCj4gKwkJVmFsaWQgdmFsdWVzOiBSZXByZXNlbnRlZCBp biAxLzEwIERlZ3JlZXMgQ2Vsc2l1cwo+ICsKPiArV2hhdDoJCS9zeXMvY2xhc3MvcG93ZXJfc3Vw cGx5LzxzdXBwbHlfbmFtZT4vdGVtcF9hbGVydF9taW4KPiArRGF0ZToJCUp1bHkgMjAxMgo+ICtD b250YWN0OglsaW51eC1wbUB2Z2VyLmtlcm5lbC5vcmcKPiArRGVzY3JpcHRpb246Cj4gKwkJTWlu aW11bSBzdXBwbHkgdGVtcGVyYXR1cmUgdHJpcC13aXJlIHZhbHVlIHdoZXJlIHRoZSBzdXBwbHkg d2lsbAo+ICsJCW5vdGlmeSB1c2VyLXNwYWNlIG9mIHRoZSBldmVudC4gVGhpcyBpcyBub3JtYWxs eSB1c2VkIGZvciB0aGUKPiArCQljaGFyZ2luZyBzY2VuYXJpbyB3aGVyZSB1c2VyLXNwYWNlIG5l ZWRzIHRvIGtub3cgdGhlIHN1cHBseQo+ICsJCXRlbXBlcmF0dXJlIGhhcyBjcm9zc2VkIGEgbG93 ZXIgdGhyZXNob2xkIHNvIGl0IGNhbiB0YWtlCj4gKwkJYXBwcm9wcmlhdGUgYWN0aW9uIChlLmcu IHdhcm5pbmcgdXNlciB0aGF0IHRoZSBzdXBwbHkKPiArCQl0ZW1wZXJhdHVyZSBpcyBoaWdoLCBh bmQgY2hhcmdpbmcgY3VycmVudCBoYXMgYmVlbiByZWR1Y2VkCj4gKwkJYWNjb3JkaW5nbHkgdG8g cmVtZWR5IHRoZSBzaXR1YXRpb24pLgo+ICsKPiArCQlBY2Nlc3M6IFJlYWQKPiArCQlWYWxpZCB2 YWx1ZXM6IFJlcHJlc2VudGVkIGluIDEvMTAgRGVncmVlcyBDZWxzaXVzCj4gKwo+ICtXaGF0OgkJ L3N5cy9jbGFzcy9wb3dlcl9zdXBwbHkvPHN1cHBseV9uYW1lPi90ZW1wX21heAo+ICtEYXRlOgkJ SnVseSAyMDE0Cj4gK0NvbnRhY3Q6CWxpbnV4LXBtQHZnZXIua2VybmVsLm9yZwo+ICtEZXNjcmlw dGlvbjoKPiArCQlSZXBvcnRzIHRoZSBtYXhpbXVtIGFsbG93ZWQgc3VwcGx5IHRlbXBlcmF0dXJl IGZvciBvcGVyYXRpb24uCj4gKwo+ICsJCUFjY2VzczogUmVhZAo+ICsJCVZhbGlkIHZhbHVlczog UmVwcmVzZW50ZWQgaW4gMS8xMCBEZWdyZWVzIENlbHNpdXMKPiArCj4gK1doYXQ6CQkvc3lzL2Ns YXNzL3Bvd2VyX3N1cHBseS88c3VwcGx5X25hbWU+L3RlbXBfbWluCj4gK0RhdGU6CQlKdWx5IDIw MTQKPiArQ29udGFjdDoJbGludXgtcG1Admdlci5rZXJuZWwub3JnCj4gK0Rlc2NyaXB0aW9uOgo+ ICsJCVJlcG9ydHMgdGhlIG1haW5pbXVtIGFsbG93ZWQgc3VwcGx5IHRlbXBlcmF0dXJlIGZvciBv cGVyYXRpb24uCj4gKwo+ICsJCUFjY2VzczogUmVhZAo+ICsJCVZhbGlkIHZhbHVlczogUmVwcmVz ZW50ZWQgaW4gMS8xMCBEZWdyZWVzIENlbHNpdXMKPiArCj4gK1doYXQ6IAkJL3N5cy9jbGFzcy9w b3dlcl9zdXBwbHkvPHN1cHBseV9uYW1lPi92b2x0YWdlX21heAo+ICtEYXRlOgkJSmFudWFyeSAy MDA4Cj4gK0NvbnRhY3Q6CWxpbnV4LXBtQHZnZXIua2VybmVsLm9yZwo+ICtEZXNjcmlwdGlvbjoK PiArCQlSZXBvcnRzIHRoZSBtYXhpbXVtIFZCVVMgdm9sdGFnZSB0aGUgc3VwcGx5IGNhbiBzdXBw b3J0Lgo+ICsKPiArCQlBY2Nlc3M6IFJlYWQKPiArCQlWYWxpZCB2YWx1ZXM6IFJlcHJlc2VudGVk IGluIG1pY3Jvdm9sdHMKPiArCj4gK1doYXQ6IAkJL3N5cy9jbGFzcy9wb3dlcl9zdXBwbHkvPHN1 cHBseV9uYW1lPi92b2x0YWdlX21pbgo+ICtEYXRlOgkJSmFudWFyeSAyMDA4Cj4gK0NvbnRhY3Q6 CWxpbnV4LXBtQHZnZXIua2VybmVsLm9yZwo+ICtEZXNjcmlwdGlvbjoKPiArCQlSZXBvcnRzIHRo ZSBtaW5pbXVtIFZCVVMgdm9sdGFnZSB0aGUgc3VwcGx5IGNhbiBzdXBwb3J0Lgo+ICsKPiArCQlB Y2Nlc3M6IFJlYWQKPiArCQlWYWxpZCB2YWx1ZXM6IFJlcHJlc2VudGVkIGluIG1pY3Jvdm9sdHMK PiArCj4gK1doYXQ6IAkJL3N5cy9jbGFzcy9wb3dlcl9zdXBwbHkvPHN1cHBseV9uYW1lPi92b2x0 YWdlX25vdwo+ICtEYXRlOgkJTWF5IDIwMDcKPiArQ29udGFjdDoJbGludXgtcG1Admdlci5rZXJu ZWwub3JnCj4gK0Rlc2NyaXB0aW9uOgo+ICsJCVJlcG9ydHMgdGhlIFZCVVMgdm9sdGFnZSBzdXBw bGllZCBub3cuIFRoaXMgdmFsdWUgaXMgZ2VuZXJhbGx5Cj4gKwkJcmVhZC1vbmx5IHJlcG9ydGlu ZywgdW5sZXNzIHRoZSAnb25saW5lJyBzdGF0ZSBvZiB0aGUgc3VwcGx5Cj4gKwkJaXMgc2V0IHRv IGJlIHByb2dyYW1tYWJsZSwgaW4gd2hpY2ggY2FzZSB0aGlzIHZhbHVlIGNhbiBiZSBzZXQKPiAr CQl3aXRoaW4gdGhlIHJlcG9ydGVkIG1pbi9tYXggcmFuZ2UuCj4gKwo+ICsJCUFjY2VzczogUmVh ZCwgV3JpdGUKPiArCQlWYWxpZCB2YWx1ZXM6IFJlcHJlc2VudGVkIGluIG1pY3Jvdm9sdHMKPiAr Cj4gKz09PT09IERldmljZSBTcGVjaWZpYyBQcm9wZXJ0aWVzID09PT09Cj4gKwo+ICBXaGF0OgkJ L3N5cy9jbGFzcy9wb3dlci9kczI3NjAtYmF0dGVyeS4qL2NoYXJnZV9ub3cKPiAgRGF0ZToJCU1h eSAyMDEwCj4gIEtlcm5lbFZlcnNpb246CTIuNi4zNQo+IGRpZmYgLS1naXQgYS9NQUlOVEFJTkVS UyBiL01BSU5UQUlORVJTCj4gaW5kZXggMGExNDEwZC4uNzAwYmZiNyAxMDA2NDQKPiAtLS0gYS9N QUlOVEFJTkVSUwo+ICsrKyBiL01BSU5UQUlORVJTCj4gQEAgLTExMjQyLDYgKzExMjQyLDcgQEAg TToJU2ViYXN0aWFuIFJlaWNoZWwgPHNyZUBrZXJuZWwub3JnPgo+ICBMOglsaW51eC1wbUB2Z2Vy Lmtlcm5lbC5vcmcKPiAgVDoJZ2l0IGdpdDovL2dpdC5rZXJuZWwub3JnL3B1Yi9zY20vbGludXgv a2VybmVsL2dpdC9zcmUvbGludXgtcG93ZXItc3VwcGx5LmdpdAo+ICBTOglNYWludGFpbmVkCj4g K0Y6CURvY3VtZW50YXRpb24vQUJJL3Rlc3Rpbmcvc3lzZnMtY2xhc3MtcG93ZXIKPiAgRjoJRG9j dW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL3Bvd2VyL3N1cHBseS8KPiAgRjoJaW5jbHVk ZS9saW51eC9wb3dlcl9zdXBwbHkuaAo+ICBGOglkcml2ZXJzL3Bvd2VyL3N1cHBseS8KPiAtLSAK PiAxLjkuMQo=