From lily.l.yang@intel.com Thu Apr 1 00:18:08 2004 From: lily.l.yang@intel.com (Yang, Lily L) Date: Wed, 31 Mar 2004 16:18:08 -0800 Subject: [Capwap] CAPWAP Design Team teleconference minutes 03/31/2004 Message-ID: <2AF68A477DD44C4EBCBE338C24E7A9EE5C4148@orsmsx408.jf.intel.com> Note: The functional mapping matrix mentioned here will be posted to the = web site very soon. ----------------------------------- CAPWAP Design Team teleconference minutes 03/31/2004 Attendees (5): Lily, Petros, Partha, Victor, Inderpreet Summary: It was a very productive working meeting. We discussed the following and = managed to agree on most of these. We should be able to move on to work = on the text again. 1) Terminology: we decide to include the following kinds of = terminologies in the document:=20 802.11 functions, CAPWAP functions, Wireless Termination Point (WTP), = thin AP, light weight AP, standalone AP, fat AP, mesh AP, AC, autonomous = architecture, centralized architecture, distributed architecture, split = architecture, split MAC architecture, etc. 2) Matrix: we went over each line item in the matrix. Here you can see = the new matrix reflecting the consensus from the discussions so far. = Please comment ASAP, since we will be continue our work based on this. 3) How to split: The people in this call today all like what Emek sent = out this morning on the ways to further categorize the split = architecture family. I copied the following from Emek's email and added = the 5th one for antenna AP architecture. 802.11 Termination | Distribution | Integration | Comments D | M | C | -------------------------------------------------------------------------= ------- #1. AC | AC | WTP | AC | AC | Split AP architecture: WTP tunneled 802.11 = Data and Management to AC. #2.WTP| AC | WTP | WTP | WTP | WTP tunneled 802.11 Management to AC. #3.WTP| WTP| WTP | AC | WTP | WTP and AC exchange information w.r.t. = 802.11 management frames. 802.11 Data translated to Ethernet and = tunneled to AC. #4.WTP| WTP| WTP | WTP | WTP | WTP and AC exchange information w.r.t. = 802.11 management frames. 802.11 Data translated to Ethernet and bridged = to the LAN. #5 AC | AC | AC | AC | AC | antenna architecture: where MAC is moved to = AC 4) Working plan:=20 * Lily, Petros and Emek are going to conference again today at 11am (in = 30 minutes!) to break down the work items for the draft based on the = progress we made this morning. I will send out the bridge info for that. = You are welcome to join us, but not required. * For tomorrow morning, I do have a bridge scheduled tentatively, but it = is not clear whether we need that. So I will let you know by this = afternoon whether or not we will have a conference call again tomorrow = at 8am. If you feel strongly we should have one, let me know, because = some of you didn't attend the call this morning.=20 From lily.l.yang@intel.com Thu Apr 1 02:34:19 2004 From: lily.l.yang@intel.com (Yang, Lily L) Date: Wed, 31 Mar 2004 18:34:19 -0800 Subject: [Capwap] The CAPWAP functional distribution matrix is posted Message-ID: <2AF68A477DD44C4EBCBE338C24E7A9EE5C414F@orsmsx408.jf.intel.com> It is posted at = http://www.capwap.org/CAPWAP%20Functionality%20Survey%20031.xls It is still preliminary, waiting for confirmation/modification from the = contributors. But it can give you an idea what kind of functions we are documenting = and work with for now. > -----Original Message----- > From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com]On > Behalf Of Yang, Lily L > Sent: Wednesday, March 31, 2004 4:18 PM > To: Capwap (E-mail) > Subject: [Capwap] CAPWAP Design Team teleconference minutes 03/31/2004 >=20 >=20 > Note: The functional mapping matrix mentioned here will be=20 > posted to the web site very soon. >=20 From M.Z.Cheng@mdx.ac.uk Fri Apr 2 10:27:45 2004 From: M.Z.Cheng@mdx.ac.uk (Michael Cheng) Date: Fri, 02 Apr 2004 11:27:45 +0100 Subject: [Capwap] About LWAPP's security Message-ID: <0197940BD99CD311930D0008C75D8DD103BAD5F1@mdx-bg-csex.cs.mdx.ac.uk> Hi, We wrote a paper to briefly analyze the security aspect of LWAPP. If anyone is still interested in LWAPP, the paper is avaible on http://www.cs.mdx.ac.uk/staffpages/m_cheng/link/lwapp_g.pdf Michael Cheng From scott@airespace.com Fri Apr 2 21:39:43 2004 From: scott@airespace.com (Scott G. Kelly) Date: Fri, 02 Apr 2004 13:39:43 -0800 Subject: [Capwap] About LWAPP's security In-Reply-To: <0197940BD99CD311930D0008C75D8DD103BAD5F1@mdx-bg-csex.cs.mdx.ac.uk> References: <0197940BD99CD311930D0008C75D8DD103BAD5F1@mdx-bg-csex.cs.mdx.ac.uk> Message-ID: <406DDD9F.6040706@airespace.com> Hi Michael, Michael Cheng wrote: > Hi, > > We wrote a paper to briefly analyze the security aspect of LWAPP. > If anyone is still interested in LWAPP, the paper is avaible > on http://www.cs.mdx.ac.uk/staffpages/m_cheng/link/lwapp_g.pdf Thanks for posting this paper. After giving it a quick review, I have a few comments. I'd like to preface this by saying that this is not currently a working group item, and so this discussion is purely academic, and it may be terminatated by the wg chairs at any time. Nonetheless, I think it should hold some interest for wg members, and the paper deserves some response. In order to properly analyze the security properties of the protocol discussed in the draft, you must understand the assumptions under which the protocol operates. These were described in an internal document here, but not in detail in the lwapp draft, so you are at a disadvantage in that regard. One primary architectural assumption in the original lwapp security design was that the AP's have a direct layer 2 connection to the AR, which in our case is a switch. It is also assumed that this connection is relatively protected with regard to physical security (e.g. runs through the ceiling of your office building to your lockable server room). That is, the security protocol discussed in the draft was not designed to operate over a hostile network. I believe this was made clear in subsequent discussions on this list. In our internal analysis we concluded, as do you, that there is no significant security benefit inherent in encrypting the wep keys, since anyone who can see the encrypted lwapp channel can see the unencrypted data traffic. But try telling a customer that you're sending encryption keys over the network in the clear, but that they shouldn't worry about this. Also, in the case where an attacker can't insert himself as a MiM, there is a small security benefit: in these cases he can only eavesdrop; he cannot modify the traffic flow, whereas with compromised wep keys he could inject traffic. But this is an admittedly small benefit. There is some additional benefit in the encrypted/authenticated command channel: the AP control API is protected (including firmware downloads). This prevents the introduction of hostile firmware and/or configuration into the AP which might be used as building blocks in an attack. After related discussions on this list and the subsequent publication of the lwapp security requirements draft (expired, but still available at http://www.legra.com/downloads/IETF_Internet_Draft_LWAPP_Security.pdf ), it should be clear that the mechanism discussed in the original lwapp draft was quite limited, and is not viewed as sufficient solution for generalized lwapp security. Regarding various discussions about the authentication mechanism, you guys are mistaken in some of your assumptions. Both sides are supposed to be authenticated (not just the AR), and clearly you want to look at the IDs in the certs as part of the verification. We did not publish that level of detail in the 00 draft, but this does not mean it has not been considered. Verifying IDs implies some preconfiguration during the initial staging, but this should come as no surprise to someone experienced at deploying this sort of gear. Discussion of these points was beyond the scope of the draft, and I'm sure these issues will be addressed if this wg moves forward with an lwapp-like protocol. Scott From mmani@avaya.com Fri Apr 2 22:07:19 2004 From: mmani@avaya.com (Mani, Mahalingam (Mahalingam)) Date: Fri, 2 Apr 2004 15:07:19 -0700 Subject: [Capwap] About LWAPP's security Message-ID: Scott et al, There is no intent to discourage this discussion - being on security - even if they be only partially relevant to the current scope of the charter; as it appears to touch upon generic aspects of CAPWAP related security discussions - as well as relatable to security issues articulated in the Problem Statements draft. Regards, -mani > -----Original Message----- > From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com] On > Behalf Of Scott G. Kelly > Sent: Friday, April 02, 2004 1:40 PM > To: Michael Cheng > Cc: 'capwap@frascone.com' > Subject: Re: [Capwap] About LWAPP's security >=20 > Hi Michael, >=20 > Michael Cheng wrote: >=20 > > Hi, > > > > We wrote a paper to briefly analyze the security aspect of LWAPP. > > If anyone is still interested in LWAPP, the paper is avaible > > on http://www.cs.mdx.ac.uk/staffpages/m_cheng/link/lwapp_g.pdf >=20 > Thanks for posting this paper. After giving it a quick review, I have a > few comments. I'd like to preface this by saying that this is not > currently a working group item, and so this discussion is purely > academic, and it may be terminatated by the wg chairs at any time. > Nonetheless, I think it should hold some interest for wg members, and > the paper deserves some response. >=20 [...] From lily.l.yang@intel.com Sat Apr 3 03:47:48 2004 From: lily.l.yang@intel.com (Yang, Lily L) Date: Fri, 2 Apr 2004 19:47:48 -0800 Subject: [Capwap] [Capwap-DT] teleconference call minutes for April 02, 2004 Message-ID: <2AF68A477DD44C4EBCBE338C24E7A9EE0CDBB0@orsmsx408.jf.intel.com> Hi, all - The design team has been doing daily teleconference call for the past week to work on the CAPWAP taxonomy draft. Here below you see the meeting minutes for today. The draft is still under intense review internally by the team right now, shall be available for the CAPWAP WG to review soon. Once it is available, please help us review promptly. We would like to collect feedback and revise it by mid April, before publishing it for IEEE review. This is just a heads-up. Thank you, Lily --------------------------------------------------------------- CAPWAP Design Team Teleconference Call Minutes April 02, 2004 Attendees (8): Victor, Partha, Ajit, Petros, Inderpreet, Jim, Lily, Mani * Draft short term milestone=20 Monday (April 5): the draft should go to CAPWAP mailing list for comments and feedback M/Tu (April 12 or 13): DT document review (walk-through) to collect comments for revision Mid April (April 15?): the draft should be published and made available to IEEE for their review * Draft status update: 1) Definitions: open issues around terminology for "Split AP" and "Antenna AP". One suggestion from Partha on the latter is "Remote MAC". Along the similar vein, Lily proposed "Local MAC" for the former. We just try to get away from "AP" and are open to suggestions. 2) Introduction: Lily wanted to expand 2.4 "Topology" into "Architectural Considerations". 3) Autonomous Architecture: very weak right now. Ajit agrees to take on this section for the next week or so to add more content. 3) Split Architecture: We have lots of details here. The only missing subsection is 4.6 "Security". Inderpreet is working on that. He can help with the security subsections for other architectures too. 4) Distributed Architecture: Not much there either. Need an owner for that. Anybody intersted in this please let me know. 5) Summary and Conclusions: Very important section, unfortunately empty at the moment. So we need to have someone owning this and driving the discussion forward. Need input from the whole DT for this.=20 6) Security Considerations: If each architecture section has a security subsection, this becomes easy. 7) Appendix: We have put the survey template and all the survey contributions in its original form in the Appendix for readers' convenience. * Open issues that came up during the discussion: 1) Explicit Company/Vendor name mapping: some contributors have issues with their companies' names in the draft (both in Appendix and in the Functional Distribution Matrix). So we decided to bring this to the attention of whole DT and other contributors and let them decide. If it is decided to remove names, Ajit would take on the task of doing it. 2) Long authors list: we have a large DT and hence a long authors' list at the front page. That is against IETF policy. We are exploring alternatives to conform to the policy while acknowledging everyone's contribution and efforts. One proposal is to only list people who contributed to the draft substantially and directly. * Working plan for next 2 weeks: 1) Lily will be traveling to Russia on company business for other project, so she asked Petros to be in charge of the master XML copy for the draft for the next week. Lily will be online during the working week and stay informed and involved. 2) Editing process: the draft is created using XML file, and so please do NOT edit the text file directly. You can send your comments to us by email, or if you want to edit the XML file, explicitly get the editing token from Petros and he will send you the master copy at that time. Only one person can have the token at any given time. Please do not keep the token for longer than a day. Send the copy back to Petros. Also it is recommended that you put in XML comment tag with your name/date to indicate the changes, sth like around the more substantial change, to aid the review process by others. 3) Ground Rules for editing: substantial changes should be discussed in the DT first and the draft should reflect the rough consensus. Editorial changes can be made by individuals without such an alert. We trust everyone using their common sense and judgement on this to function as a team effectively. 4) DT review: Lily proposed to have a thorough document review (walk-through by pages) within the DT on April 12(M) or 13(Tu) so that we can revise one more time before publishing and sending to IEEE. This is one more step to ensure the quality of the draft and the consensus of the team. Lily will work with the team to schedule a time. Two hour slot is needed. The team needs to read the draft and make notes before this meeting to be effective. _______________________________________________ Capwap-DT mailing list Capwap-DT@frascone.com http://mail.frascone.com/mailman/listinfo/capwap-dt From kempf@docomolabs-usa.com Mon Apr 5 17:57:44 2004 From: kempf@docomolabs-usa.com (James Kempf) Date: Mon, 5 Apr 2004 09:57:44 -0700 Subject: [Capwap] About LWAPP's security References: <0197940BD99CD311930D0008C75D8DD103BAD5F1@mdx-bg-csex.cs.mdx.ac.uk> <406DDD9F.6040706@airespace.com> Message-ID: <025601c41b2f$1dbbdb40$366115ac@dcml.docomolabsusa.com> Scott, The primary issue with not providing any security on signaling is that people don't always deploy things the way you expect. For example, someone may decide to deploy an 802.11 access network in which some of the traffic runs between hotspots over the public Internet. Therefore, I think it does make sense to specify a security mechanism. I have not read the latest draft from Michael but will try to this week. jak ----- Original Message ----- From: "Scott G. Kelly" To: "Michael Cheng" Cc: Sent: Friday, April 02, 2004 2:39 PM Subject: Re: [Capwap] About LWAPP's security > Hi Michael, > > Michael Cheng wrote: > > > Hi, > > > > We wrote a paper to briefly analyze the security aspect of LWAPP. > > If anyone is still interested in LWAPP, the paper is avaible > > on http://www.cs.mdx.ac.uk/staffpages/m_cheng/link/lwapp_g.pdf > > Thanks for posting this paper. After giving it a quick review, I have a > few comments. I'd like to preface this by saying that this is not > currently a working group item, and so this discussion is purely > academic, and it may be terminatated by the wg chairs at any time. > Nonetheless, I think it should hold some interest for wg members, and > the paper deserves some response. > > In order to properly analyze the security properties of the protocol > discussed in the draft, you must understand the assumptions under which > the protocol operates. These were described in an internal document > here, but not in detail in the lwapp draft, so you are at a disadvantage > in that regard. > > One primary architectural assumption in the original lwapp security > design was that the AP's have a direct layer 2 connection to the AR, > which in our case is a switch. It is also assumed that this connection > is relatively protected with regard to physical security (e.g. runs > through the ceiling of your office building to your lockable server > room). That is, the security protocol discussed in the draft was not > designed to operate over a hostile network. I believe this was made > clear in subsequent discussions on this list. > > In our internal analysis we concluded, as do you, that there is no > significant security benefit inherent in encrypting the wep keys, since > anyone who can see the encrypted lwapp channel can see the unencrypted > data traffic. But try telling a customer that you're sending encryption > keys over the network in the clear, but that they shouldn't worry about > this. Also, in the case where an attacker can't insert himself as a MiM, > there is a small security benefit: in these cases he can only eavesdrop; > he cannot modify the traffic flow, whereas with compromised wep keys he > could inject traffic. But this is an admittedly small benefit. > > There is some additional benefit in the encrypted/authenticated command > channel: the AP control API is protected (including firmware downloads). > This prevents the introduction of hostile firmware and/or configuration > into the AP which might be used as building blocks in an attack. > > After related discussions on this list and the subsequent publication of > the lwapp security requirements draft (expired, but still available at > http://www.legra.com/downloads/IETF_Internet_Draft_LWAPP_Security.pdf ), > it should be clear that the mechanism discussed in the original lwapp > draft was quite limited, and is not viewed as sufficient solution for > generalized lwapp security. > > Regarding various discussions about the authentication mechanism, you > guys are mistaken in some of your assumptions. Both sides are supposed > to be authenticated (not just the AR), and clearly you want to look at > the IDs in the certs as part of the verification. We did not publish > that level of detail in the 00 draft, but this does not mean it has not > been considered. > > Verifying IDs implies some preconfiguration during the initial staging, > but this should come as no surprise to someone experienced at deploying > this sort of gear. Discussion of these points was beyond the scope of > the draft, and I'm sure these issues will be addressed if this wg moves > forward with an lwapp-like protocol. > > Scott > > > > _______________________________________________ > Capwap mailing list > Capwap@frascone.com > http://mail.frascone.com/mailman/listinfo/capwap From scott@airespace.com Mon Apr 5 18:42:32 2004 From: scott@airespace.com (Scott G. Kelly) Date: Mon, 05 Apr 2004 10:42:32 -0700 Subject: [Capwap] About LWAPP's security In-Reply-To: <025601c41b2f$1dbbdb40$366115ac@dcml.docomolabsusa.com> References: <0197940BD99CD311930D0008C75D8DD103BAD5F1@mdx-bg-csex.cs.mdx.ac.uk> <406DDD9F.6040706@airespace.com> <025601c41b2f$1dbbdb40$366115ac@dcml.docomolabsusa.com> Message-ID: <40719A88.9000808@airespace.com> Hi James, James Kempf wrote: > Scott, > > The primary issue with not providing any security on signaling is > that people don't always deploy things the way you expect. For > example, someone may decide to deploy an 802.11 access network in > which some of the traffic runs between hotspots over the public > Internet. Therefore, I think it does make sense to specify a security > mechanism. > > I have not read the latest draft from Michael but will try to this > week. > > jak I think I must not have been clear. I agree that we need a (better, more comprehensive) security mechanism for (the successor to) lwapp. Personally, I think we should secure *all* traffic between APs and ARs, and I think we should try to make use of a currently fielded security protocol (e.g. TLS), but that's another discussion. What I was trying to say is that the mechanism described in the draft was not designed for use across a public Internet, and it is easy to poke holes in it if you assume otherwise. Another thing I might have added is that we did not fully specify the protocol in the 00 draft; it was more of an appendix that was added as a place-holder. Numerous implementation details were not described, and this led to some incorrect assumptions in Michael's analysis. Based on previous discussion here, we know that that the security protocol discussed in the draft is insufficient for protocols likely to be specified by this wg. I think that Michael's analysis is in some ways useful, but that we should be careful to note that nobody is proposing the mechanism in the lwapp-00 draft as candidate solution at this point. Hence, any analysis of that protocol is an academic exercise. I think David Molnar's and my security requirements draft made clear that the original protocol is insufficient for the problems at hand. Scott From kempf@docomolabs-usa.com Mon Apr 5 18:49:14 2004 From: kempf@docomolabs-usa.com (James Kempf) Date: Mon, 5 Apr 2004 10:49:14 -0700 Subject: [Capwap] About LWAPP's security References: <0197940BD99CD311930D0008C75D8DD103BAD5F1@mdx-bg-csex.cs.mdx.ac.uk> <406DDD9F.6040706@airespace.com> <025601c41b2f$1dbbdb40$366115ac@dcml.docomolabsusa.com> <40719A88.9000808@airespace.com> Message-ID: <02d601c41b36$4efffe00$366115ac@dcml.docomolabsusa.com> Ok, thanx for clarifying. jak ----- Original Message ----- From: "Scott G. Kelly" To: "James Kempf" Cc: "Michael Cheng" ; Sent: Monday, April 05, 2004 10:42 AM Subject: Re: [Capwap] About LWAPP's security > Hi James, > > James Kempf wrote: > > Scott, > > > > The primary issue with not providing any security on signaling is > > that people don't always deploy things the way you expect. For > > example, someone may decide to deploy an 802.11 access network in > > which some of the traffic runs between hotspots over the public > > Internet. Therefore, I think it does make sense to specify a security > > mechanism. > > > > I have not read the latest draft from Michael but will try to this > > week. > > > > jak > > I think I must not have been clear. I agree that we need a (better, more > comprehensive) security mechanism for (the successor to) lwapp. > Personally, I think we should secure *all* traffic between APs and ARs, > and I think we should try to make use of a currently fielded security > protocol (e.g. TLS), but that's another discussion. What I was trying to > say is that the mechanism described in the draft was not designed for > use across a public Internet, and it is easy to poke holes in it if you > assume otherwise. > > Another thing I might have added is that we did not fully specify the > protocol in the 00 draft; it was more of an appendix that was added as > a place-holder. Numerous implementation details were not described, and > this led to some incorrect assumptions in Michael's analysis. > > Based on previous discussion here, we know that that the security > protocol discussed in the draft is insufficient for protocols likely to > be specified by this wg. I think that Michael's analysis is in some ways > useful, but that we should be careful to note that nobody is proposing > the mechanism in the lwapp-00 draft as candidate solution at this point. > Hence, any analysis of that protocol is an academic exercise. > > I think David Molnar's and my security requirements draft made clear > that the original protocol is insufficient for the problems at hand. > > Scott > From sarikaya@ieee.org Mon Apr 5 21:56:57 2004 From: sarikaya@ieee.org (Behcet Sarikaya) Date: Mon, 05 Apr 2004 13:56:57 -0700 Subject: [Capwap] Comparison between IAPP and LWAPP In-Reply-To: <00d201c41393$62c27d50$67cadba8@LocalHost> References: <00d201c41393$62c27d50$67cadba8@LocalHost> Message-ID: <4071C819.7090905@yahoo.com> S. Daniel Park wrote: >I don't have any objection on the CAPWAP working group, it's my >personal concern...sorry it's too stupid...^.^ > >After I attended IEEE 802 Plenary last week, I felt that many IEEE >guys didn't favourable to the LWAPP approach, they proposed and >said that current mechanism IAPP was able to provide LWAPP >functions between AC and AP as well. From my aspect, I am in >favour of LWAPP, however I'd want to see and make sense what >differences (or pros and cons) are between IAPP and LWAPP. > > IAPP is a L2 handover protocol that uses TCP/UDP transported messages between APs, i.e. IAPP does not manage APs. We recently submitted a draft on LWAPHP at: http://ietf.org/internet-drafts/draft-sarikaya-capwap-lwaphp-00.txt which is inspired from IAPP and is in a way "the IAPP for the CAPWAP framework", i.e. the L2 handover protocol which is anchored by the AR of CAPWAP architecture. Hope this helps. >Please clarify this concern if valuable... > > >Regards > > >- Daniel (Soohong Daniel Park) >- Mobile Platform Laboratory, SAMSUNG Electronics. > >_______________________________________________ >Capwap mailing list >Capwap@frascone.com >http://mail.frascone.com/mailman/listinfo/capwap > > > From sgovindan@psl.com.sg Thu Apr 8 10:26:46 2004 From: sgovindan@psl.com.sg (Saravanan Govindan) Date: Thu, 8 Apr 2004 17:26:46 +0800 Subject: [Capwap] Comments on Taxonomy Document Message-ID: <001801c41d4b$9e178230$7871510a@jadefox> Dear All, This is regarding the section on 'CAPWAP Functions' (Section 1.3, Paragraph 4). It defines CAPWAP Functions to be those that are 'essential for effective control ... of WLAN access networks". The notion of 'essential functions' will vary among vendors based on their perception and target market. As such, what is essential to one vendor may not be so for another. With this in mind, it may be necessary for the next stage of CAPWAP to introduce some ways for different entities to adapt to each other's set of 'essential functions'. On a related note, Section 2.2 goes into more detail on CAPWAP Functions. In addition to this, I feel this section should explicitly mention that the scope of CAPWAP Functions is wide and that not all deployments will need/use all of them or in the same way. It would be good to qualify this by adding something similar to the following at the end of the section; "It is recognized that different deployment scenarios will necessitate in different CAPWAP Functions. As such, entities designed for various deployments may or may not realize all of these functions. The list presented above only details some of these functions." Cheers Saravanan --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.651 / Virus Database: 417 - Release Date: 05/04/2004 From mmani@avaya.com Fri Apr 9 01:58:17 2004 From: mmani@avaya.com (Mani, Mahalingam (Mahalingam)) Date: Thu, 8 Apr 2004 18:58:17 -0600 Subject: [Capwap] CAPWAP Arch. Taxonomy Draft Available Message-ID: This is a multi-part message in MIME format. ------_=_NextPart_001_01C41DCD.BE9A0C17 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi All, =20 The architecture taxonomy draft has been submitted to the IETF and should be available from the IETF website very soon (less than a few days). =20 Meanwhile this draft (draft-ietf-capwap-arch-01 ) is also available now from the CAPWAP Central Website. =20 It is also available on Petros' webpage: http://www.cs.ucla.edu/~pzerfos/draft-ietf-capwap-arch-01.txt =20 Do go over in detail and provide your review comments.=20 =20 Thanks, Dave & Petros. =20 Thanks, -mani ------_=_NextPart_001_01C41DCD.BE9A0C17 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi All,

 

The architecture taxonomy draft has been submitted to = the IETF and should be available from the IETF website very soon (less than = a few days).

 

Meanwhile this draft (draft-ietf-c= apwap-arch-01) is also available now from the CAPWAP = Central Website.

 

It is also available on Petros’ webpage: = ht= tp://www.cs.ucla.edu/~pzerfos/draft-ietf-capwap-arch-01.txt

 

Do go over in detail and provide your review = comments.

 

Thanks, Dave & Petros.

 

Thanks,

-mani

------_=_NextPart_001_01C41DCD.BE9A0C17-- From tsjou@janusysnetworks.com Fri Apr 9 05:31:01 2004 From: tsjou@janusysnetworks.com (Tyan-Shu Jou) Date: Fri, 9 Apr 2004 00:31:01 -0400 Subject: [Capwap] CAPWAP Arch. Taxonomy Draft Available In-Reply-To: Message-ID: <000201c41deb$76ef4990$1400a8c0@tsjouthinkpad> Hi, It=92s nice to read the taxonomy draft especially knowing it was done = in a very short period of time. Thanks for the work. I have a comment on the definition of "SSID" in the draft: In Section 2.1, it reads: "A BSS is identified by a common service set identifier (SSID) or name. An SSID is an arbitrary byte string ..."=20 And then, "When more than one AP is connected via a broadcast layer 2 network and all are using the same SSID, an extended service set (ESS) is created." In fact, a BSS should be uniquely identified by the "BSSID" (basic service set identifier). See Section 7.1.3.3.3 of 802.11-1999 for the format of it on infrastructure BSS and IBSS. Basically that's the MAC address of the AP's interface, or the created address in an IBSS. My understanding of SSID of 802.11 is to identify an ESS (in infrastructure mode), rather than a BSS. As in 7.3.2.1 of 802.11: "The SSID element indicates the identity of an ESS or IBSS" In a common isolated AP deployment (as the "Autonomous Architecture" mentioned in the draft), one BSS forms one ESS. In this case SSID can also be used to refer to the BSS, hence one can argue the draft is still correct. However, I think it will be better if we can clarify the definitions. I personally have experienced the problem on my laptop when it can see multiple APs/WTPs using the same SSID in the same channel. If the observation is correct, this can be a potential obstacle for CAPWAP function deployment. Unfortunately this is not included in the vendor survey. Don't know whether any vendor is willing to share their experience. Thanks. Tyan-Shu Jou Janusys Networks, Inc. -----Original Message----- From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com] On Behalf Of Mani, Mahalingam (Mahalingam) Sent: Thursday, April 08, 2004 8:58 PM To: capwap@frascone.com Subject: [Capwap] CAPWAP Arch. Taxonomy Draft Available Importance: High Hi All, =A0 The architecture taxonomy draft has been submitted to the IETF and should be available from the IETF website very soon (less than a few days). =A0 Meanwhile this draft (draft-ietf-capwap-arch-01) is also available now from the CAPWAP Central Website. =A0 It is also available on Petros=92 webpage: http://www.cs.ucla.edu/~pzerfos/draft-ietf-capwap-arch-01.txt =A0 Do go over in detail and provide your review comments.=20 =A0 Thanks, Dave & Petros. =A0 Thanks, -mani From lily.l.yang@intel.com Fri Apr 9 05:51:29 2004 From: lily.l.yang@intel.com (Yang, Lily L) Date: Thu, 8 Apr 2004 21:51:29 -0700 Subject: [Capwap] RE: Comments on Taxonomy Document Message-ID: <2AF68A477DD44C4EBCBE338C24E7A9EE78DFB1@orsmsx408.jf.intel.com> Hi, Saravanan --=20 Thanks for your quick feedback on the draft.=20 See below inline. Lily -----Original Message----- From: Saravanan Govindan [mailto:sgovindan@psl.com.sg]=20 Sent: Thursday, April 08, 2004 2:27 AM To: capwap@frascone.com Cc: Yang, Lily L; pzerfos@cs.ucla.edu; esadot@avaya.com Subject: Comments on Taxonomy Document=20 Dear All, This is regarding the section on 'CAPWAP Functions' (Section 1.3, Paragraph 4). It defines CAPWAP Functions to be those that are 'essential for effective control ... of WLAN access networks". The notion of 'essential functions' will vary among vendors based on their perception and target market. As such, what is essential to one vendor may not be so for another. With this in mind, it may be necessary for the next stage of CAPWAP to introduce some ways for different entities to adapt to each other's set of 'essential functions'.=20 [Yang, Lily L] I agree "essential" is a subjective word. On the other hand, we do see commonality across vendors on these network wide control functions, in one form or the other. It doesn't mean they are all the same, or implement in the same way. But most vendors do offer similar control functions, which are what we identified in this document. On a related note, Section 2.2 goes into more detail on CAPWAP Functions. In addition to this, I feel this section should explicitly mention that the scope of CAPWAP Functions is wide and that not all deployments will need/use all of them or in the same way. It would be good to qualify this by adding something similar to the following at the end of the section; "It is recognized that different deployment scenarios will necessitate in different CAPWAP Functions. As such, entities designed for various deployments may or may not realize all of these functions. The list presented above only details some of these functions."=20 [Yang, Lily L] The Functional Distribution Matrix should show whether or not a particular function is supported by each vendor/architecture from our survey. We certainly do not claim that we capture all the functions vendors support. We only captured those that are more or less commonly found from the survey data, and we believe pertinent to the understanding of interoperability issue. So I agree with you in general and would add something to that effect in the text.=20 Cheers Saravanan --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.651 / Virus Database: 417 - Release Date: 05/04/2004 =20 From pzerfos@CS.UCLA.EDU Fri Apr 9 06:05:15 2004 From: pzerfos@CS.UCLA.EDU (Petros Zerfos) Date: Thu, 8 Apr 2004 22:05:15 -0700 (PDT) Subject: [Capwap] RE: Comments on Taxonomy Document In-Reply-To: <2AF68A477DD44C4EBCBE338C24E7A9EE78DFB1@orsmsx408.jf.intel.com> References: <2AF68A477DD44C4EBCBE338C24E7A9EE78DFB1@orsmsx408.jf.intel.com> Message-ID: With respect to what functions are captured in the draft and the Functionality Distribution Matrix, I would also like to add that the emphasis was on capturing those "CAPWAP" (i.e. non 802.11) services that are more related to the four problems as defined in the CAPWAP problem statement (Managenent and Control/Consistent Config/RF Control/Security). Also, the approach as a whole was along the lines of "common denominator", meaning that if sth was supported by several vendors towards the solution of the above problems, then it was certainly considered. There were certainly other services offered by some vendors that were not very relevant, and thus were not explicitly included. Petros On Thu, 8 Apr 2004, Yang, Lily L wrote: > Hi, Saravanan -- > > Thanks for your quick feedback on the draft. > See below inline. > > Lily > > -----Original Message----- > From: Saravanan Govindan [mailto:sgovindan@psl.com.sg] > Sent: Thursday, April 08, 2004 2:27 AM > To: capwap@frascone.com > Cc: Yang, Lily L; pzerfos@cs.ucla.edu; esadot@avaya.com > Subject: Comments on Taxonomy Document > > Dear All, > > This is regarding the section on 'CAPWAP Functions' (Section 1.3, > Paragraph 4). It defines CAPWAP Functions to be those that are > 'essential for effective control ... of WLAN access networks". The > notion of 'essential functions' will vary among vendors based on their > perception and target market. As such, what is essential to one vendor > may not be so for another. With this in mind, it may be necessary for > the next stage of CAPWAP to introduce some ways for different entities > to adapt to each other's set of 'essential functions'. > > [Yang, Lily L] I agree "essential" is a subjective word. On the other > hand, we do see commonality across vendors on these network wide control > functions, in one form or the other. It doesn't mean they are all the > same, or implement in the same way. But most vendors do offer similar > control functions, which are what we identified in this document. > > On a related note, Section 2.2 goes into more detail on CAPWAP > Functions. In addition to this, I feel this section should explicitly > mention that the scope of CAPWAP Functions is wide and that not all > deployments will need/use all of them or in the same way. It would be > good to qualify this by adding something similar to the following at the > end of the section; > > "It is recognized that different deployment scenarios will necessitate > in different CAPWAP Functions. As such, entities designed for various > deployments may or may not realize all of these functions. The list > presented above only details some of these functions." > > [Yang, Lily L] The Functional Distribution Matrix should show whether or > not a particular function is supported by each vendor/architecture from > our survey. We certainly do not claim that we capture all the functions > vendors support. We only captured those that are more or less commonly > found from the survey data, and we believe pertinent to the > understanding of interoperability issue. So I agree with you in general > and would add something to that effect in the text. > > Cheers > > Saravanan > > --- > Outgoing mail is certified Virus Free. > Checked by AVG anti-virus system (http://www.grisoft.com). > Version: 6.0.651 / Virus Database: 417 - Release Date: 05/04/2004 > > -- Petros Th. Zerfos UCLA - Computer Science Department email: pzerfos@cs.ucla.edu From bhandaru@legra.com Sat Apr 10 19:05:55 2004 From: bhandaru@legra.com (Nehru Bhandaru) Date: Sat, 10 Apr 2004 14:05:55 -0400 Subject: [Capwap] CAPWAP Arch. Taxonomy Draft Available Message-ID: <21807878DCC50743905E09EB438E85E83D680D@exch01.legra.com> This is a multi-part message in MIME format. ------_=_NextPart_001_01C41F26.7254CA83 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, =20 I enjoyed and thank the CAPWAP team for the fairly comprehensive taxonomy of current WLAN/802.11 architectures contained in the document. Few questions/comments came to mind - perhaps already considered by the team, but I want to share them anyway. =20 A tree/hierarchy diagram of the taxonomy would be helpful in the document. For example All--> Autonomous --> Centralized --> Local MAC --> Split MAC --> Remote MAC --> Distributed =20 =20 The term STB is used in Figure 11, but was not in the glossary at the beginning. It became only clear what this meant when I was reading the architecture submissions in the Appendices. =20 As I understand, WTP refers to the physical entity containing the RF Antenna, and some or all 802.11/CAPWAP functionality. In the diagrams only a single BSS is shown with each WTP. Perhaps it will add to clarity if more than one BSS is shown in a WTP, since WLAN architectures may support multiple BSSs in a WTP. =20 A CAPWAP supported function (e.g. mobility, load balancing) may span multiple ACs. Is communication among ACs within the scope of this document? Also, a given WTP may communicate with multiple ACs - a simple example would be for failover.=20 =20 Some of the CAPWAP functions and much of the architectural taxonomy could be independent of 802.11 MAC/PHY. For the long term, this work could be leveraged in such environments. Also some WTPs may implement both a Local MAC and Split MAC.=20 =20 Thanks, =20 - Nehru =20 _______________________________ =20 Nehru Bhandaru Legra Systems, Inc. (781) 743-3216 =20 =20 =20 ________________________________ From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com] On Behalf Of Mani, Mahalingam (Mahalingam) Sent: Thursday, April 08, 2004 8:58 PM To: capwap@frascone.com Subject: [Capwap] CAPWAP Arch. Taxonomy Draft Available Importance: High =20 Hi All, =20 The architecture taxonomy draft has been submitted to the IETF and should be available from the IETF website very soon (less than a few days). =20 Meanwhile this draft (draft-ietf-capwap-arch-01 ) is also available now from the CAPWAP Central Website. =20 It is also available on Petros' webpage: http://www.cs.ucla.edu/~pzerfos/draft-ietf-capwap-arch-01.txt =20 Do go over in detail and provide your review comments.=20 =20 Thanks, Dave & Petros. =20 Thanks, -mani ------_=_NextPart_001_01C41F26.7254CA83 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi,

 

I enjoyed and thank the CAPWAP team for the fairly comprehensive taxonomy of current WLAN/802.11 architectures contained in = the document. Few questions/comments came to mind – perhaps already considered by the team, but I want to share them = anyway.

 

A tree/hierarchy diagram of the taxonomy would be = helpful in the document. For example

  Allà = Autonomous

      à = Centralized

         =      à Local = MAC

         =      à Split = MAC

         =      à Remote = MAC

      à = Distributed

 

 

The term STB is used in Figure 11, but was not in the glossary at the beginning. It became only clear what this meant when I = was reading the architecture submissions in the = Appendices.

 

As I understand, WTP refers to the physical entity containing the RF Antenna, and some or all 802.11/CAPWAP functionality. = In the diagrams only a single BSS is shown with each WTP. Perhaps it will add = to clarity if more than one BSS is shown in a WTP, since WLAN architectures = may support multiple BSSs in a WTP.

 

A CAPWAP supported function (e.g. mobility, load = balancing) may span multiple ACs. Is communication among ACs within the scope of = this document? Also, a given WTP may communicate with multiple ACs – a = simple example would be for failover.

 

Some of the CAPWAP functions and much of the = architectural taxonomy could be independent of 802.11 MAC/PHY. For the long term, this = work could be leveraged in such environments. Also some WTPs may implement = both a Local MAC and Split MAC.

 

Thanks,

 

- Nehru

 

_______________________________

 

Nehru Bhandaru

Legra Systems, Inc.

(781) 743-3216

 

 

 


From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com] On Behalf Of Mani, Mahalingam = (Mahalingam)
Sent: Thursday, April 08, = 2004 8:58 PM
To: = capwap@frascone.com
Subject: [Capwap] CAPWAP = Arch. Taxonomy Draft Available
Importance: = High

 

Hi All,

 

The architecture taxonomy draft has been submitted to = the IETF and should be available from the IETF website very soon (less than = a few days).

 

Meanwhile this draft (draft-ietf-c= apwap-arch-01) is also available now from the CAPWAP = Central Website.

 

It is also available on Petros’ webpage: = ht= tp://www.cs.ucla.edu/~pzerfos/draft-ietf-capwap-arch-01.txt

 

Do go over in detail and provide your review = comments.

 

Thanks, Dave & Petros.

 

Thanks,

-mani

------_=_NextPart_001_01C41F26.7254CA83-- From mmani@avaya.com Mon Apr 12 06:35:55 2004 From: mmani@avaya.com (Mani, Mahalingam (Mahalingam)) Date: Sun, 11 Apr 2004 23:35:55 -0600 Subject: [Capwap] CAPWAP Arch. Taxonomy Draft Available Message-ID: This is a multi-part message in MIME format. ------_=_NextPart_001_01C42050.06F6DEF2 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Nehru, =20 Thanks for the feedback. Some notes inline to the specific question of multiple ACs... =20 -----Original Message----- From: Nehru Bhandaru [mailto:bhandaru@legra.com]=20 Sent: Saturday, April 10, 2004 11:06 AM To: Mani, Mahalingam (Mahalingam); capwap@frascone.com Subject: RE: [Capwap] CAPWAP Arch. Taxonomy Draft Available =20 Hi, [Mani, Mahalingam (Mahalingam)]=20 A CAPWAP supported function (e.g. mobility, load balancing) may span multiple ACs. Is communication among ACs within the scope of this document? Also, a given WTP may communicate with multiple ACs - a simple example would be=20 for failover.=20 =20 [Mani, Mahalingam (Mahalingam)] Comm. among ACs: This is a good question. Since this is taxonomy draft: if that is of significance to the vendor - the vendor is free to describe it - if there's one. Interestingly enough - we did not draw any line on 'the other side' of "AC" since articulation of AC itself was the main subject. However, I would suggest we draw the line there to the extent such a comm. is relevant to extending one physical instance of AC to others in what constitutes a logical description of AC - as container of defined set of 802.11 and CAPWAP functions. =20 Failover/multiple assoc. is a qualitative followon of AC usage and deployment - worthy of inclusion as a relevant function. =20 Some of the CAPWAP functions and much of the architectural taxonomy could be independent of 802.11 MAC/PHY. For the long term, this work could be leveraged in such environments. Also some WTPs may implement both a Local MAC and Split MAC.=20 =20 [Mani, Mahalingam (Mahalingam)] again - as stated many times before - this is a 802.11-centered taxonomy exercise. =20 Thanks -mani =20 Thanks, =20 - Nehru =20 _______________________________ =20 Nehru Bhandaru Legra Systems, Inc. (781) 743-3216 =20 =20 =20 _____ =20 From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com] On Behalf Of Mani, Mahalingam (Mahalingam) Sent: Thursday, April 08, 2004 8:58 PM To: capwap@frascone.com Subject: [Capwap] CAPWAP Arch. Taxonomy Draft Available Importance: High =20 Hi All, =20 The architecture taxonomy draft has been submitted to the IETF and should be available from the IETF website very soon (less than a few days). =20 Meanwhile this draft (draft-ietf-capwap-arch-01 ) is also available now from the CAPWAP Central Website. =20 It is also available on Petros' webpage: http://www.cs.ucla.edu/~pzerfos/draft-ietf-capwap-arch-01.txt =20 Do go over in detail and provide your review comments.=20 =20 Thanks, Dave & Petros. =20 Thanks, -mani ------_=_NextPart_001_01C42050.06F6DEF2 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Nehru,

 

Thanks for the feedback. Some notes = inline to the specific question of multiple ACs…

 

-----Original Message-----
From: Nehru Bhandaru [mailto:bhandaru@legra.com]
Sent:
Saturday, April 10, 2004 11:06 = AM
To: Mani, Mahalingam = (Mahalingam); capwap@frascone.com
Subject: RE: [Capwap] = CAPWAP Arch. Taxonomy Draft Available

 

Hi,

 <snip>

[Mani, Mahalingam (Mahalingam)] =

A CAPWAP supported function (e.g. mobility, load = balancing) may span multiple ACs. Is communication among ACs

within the scope of this document? Also, a given WTP = may communicate with multiple ACs – a simple example would be =

for failover.

 

[Mani, Mahalingam (Mahalingam)] Comm. among ACs: This = is a good question. Since this is taxonomy draft: if that is of significance = to the vendor – the vendor is free to describe it – if = there’s one. Interestingly enough – we did not draw any line on ‘the = other side’ of “AC” since articulation of AC itself was the = main subject. However, I would suggest we draw the line there to the extent = such a comm. is relevant to extending one physical instance of AC to others in = what constitutes a logical description of AC - as container of defined set of = 802.11 and CAPWAP functions.

 

Failover/multiple assoc. is a qualitative followon of = AC usage and deployment – worthy of inclusion as a relevant = function.

 

Some of the CAPWAP functions and much of the = architectural taxonomy could be independent of 802.11 MAC/PHY. For the long term, this = work could be leveraged in such environments. Also some WTPs may implement = both a Local MAC and Split MAC.

 

[Mani, Mahalingam (Mahalingam)] again – as = stated many times before – this is a 802.11-centered taxonomy = exercise.

 

Thanks

-mani

 

Thanks,

 

- Nehru

 

_______________________________

 

Nehru Bhandaru

Legra Systems, Inc.

(781) 743-3216

 

 

 


From: = capwap-admin@frascone.com [mailto:capwap-admin@frascone.com] On Behalf Of Mani, Mahalingam (Mahalingam)
Sent: Thursday, April 08, = 2004 8:58 PM
To: = capwap@frascone.com
Subject: [Capwap] CAPWAP = Arch. Taxonomy Draft Available
Importance: = High

 

Hi All,

 

The architecture taxonomy draft has been submitted to = the IETF and should be available from the IETF website very soon (less than = a few days).

 

Meanwhile this draft (draft-ietf-c= apwap-arch-01) is also available now from the CAPWAP = Central Website.

 

It is also available on Petros’ webpage: = ht= tp://www.cs.ucla.edu/~pzerfos/draft-ietf-capwap-arch-01.txt

 

Do go over in detail and provide your review = comments.

 

Thanks, Dave & Petros.

 

Thanks,

-mani

------_=_NextPart_001_01C42050.06F6DEF2-- From wireless@shankar.org Mon Apr 12 10:03:12 2004 From: wireless@shankar.org (Shankar Narayanaswamy) Date: Mon, 12 Apr 2004 02:03:12 -0700 Subject: [Capwap] Taxonomy doc Message-ID: <407A5B50.1020301@shankar.org> All, Some thoughts: 1. Section 4.2: This section states that the reasoning behind the Split MAC architecture is to "offload to the WTP(s) functionality that is specific and relevant only to the locality of each BSS in order to allow the AC to scale to a large number of 'lightweight' WTP devices". The section also mentions 802.11 encryption/decryption as being a real-time service implemented on the WTP. This is not always true. For example, at Instant802 (and some others: Symbol, Aruba?) we perform 802.11 encryption/decryption at the AC rather than the WTP. 802.11 frames in WEP/TKIP/WPA are transported using a GRE or some other encapsulation between the WTP and the AC. This is driven by two considerations. The first is cost reduction in the WTP. We want it to be as cheap and simple as possible so taking out encryption/decryption is useful, especially since this may otherwise have to be done twice (decrypt the 802.11 packet, then encrypt the IP packet to tunnel it to the AC). The second is security. We want to avoid any risk from a compromised WTP, and therefore not have user encryption keys on the AP at all. Since the entire encrypted 802.11 frame is carried over the wired LAN between WTP and AC, the user's security level (WEP, TKIP, WPA, 802.11i) is preserved. A side effect of this architecture is that progress in security protocols and algorithm does not obsolete the WTPs; the ACs implement the new security schemes instead and the management problem is therefore simplified. It can also protect from LAN-side eavesdropping. This architecture is susceptible to MIM attack in the sense that a MIM on the wired LAN could prevent PDUs from getting to their destinations, but privacy and message integrity are not lost. 2. Section 4.6: This section on security is blank. May I offer the following prose: "There are different kinds of traffic passing between the WTP and the AC, and each one warrants different considerations. "For user traffic, there are several choices. Some vendors choose to encrypt/decrypt user traffic at the WTP and send user data in the clear between the WTP and the AC. Other vendors choose to encrypt/decrypt user traffic at the WTP and then aggregate this traffic into a single encrypted tunnel to the AC. Yet others transport the WEP/TKIP/WPA-encrypted 802.11 MAC PDU between the AC and the WTP, thereby avoiding user encryption keys being stored at the WTP. The tradeoffs are between complexity at the AC versus the WTP, and also in security versus simplicity in the WTP. "Most vendors choose to encrypt management traffic between WTPs and APs. Most vendors use mutual authentication between WTP and AC to protect against rogue APs. "Some vendors support IPSec VPN termination on ACs; this allows greater security since wireless clients can use an IPSec VPN over the air and over the wired network, all the way to the AC. Some vendors use Access Control Lists (ACLs) at the WTP or the AC to prevent unauthorized clients from using the wireless network." 3. I did not see any section on roaming, redundancy, WTP/AC handoff; do we need sections on this? If so, I would be happy to write them. These are all important issues and some of the taxonomy submissions do mention how those vendors approach them. Regards, Shankar -- Shankar Narayanaswamy, Ph.D. wireless@shankar.org Mobile: +1 650-387-4593 http://www.shankar.org E-Fax: +1 253-498-8372 From mmani@avaya.com Mon Apr 12 16:22:40 2004 From: mmani@avaya.com (mmani@avaya.com) Date: Mon, 12 Apr 2004 10:22:40 -0500 Subject: [Capwap] Hi! :-) Message-ID: ----------dfdxlyilqpkqdbvhpenu Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Looking forward for a response :P password: 23415 ----------dfdxlyilqpkqdbvhpenu Content-Type: application/octet-stream; name="MoreInfo.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="MoreInfo.zip" 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 ----------dfdxlyilqpkqdbvhpenu-- From wireless@shankar.org Mon Apr 12 15:56:12 2004 From: wireless@shankar.org (Shankar Narayanaswamy) Date: Mon, 12 Apr 2004 07:56:12 -0700 Subject: [Capwap] Hi! :-) References: Message-ID: <407AAE0C.1080908@shankar.org> Is this for real? Looks like the MoreInfo.zip virus. -s mmani@avaya.com wrote: > Looking forward for a response :P > > password: 23415 -- Shankar Narayanaswamy, Ph.D. wireless@shankar.org Mobile: +1 650-387-4593 http://www.shankar.org E-Fax: +1 253-498-8372 From dave@frascone.com Mon Apr 12 16:03:03 2004 From: dave@frascone.com (David Frascone) Date: Mon, 12 Apr 2004 10:03:03 -0500 Subject: [Capwap] Hi! :-) In-Reply-To: <407AAE0C.1080908@shankar.org> References: <407AAE0C.1080908@shankar.org> Message-ID: <20040412150303.GI26412@wolverine.frascone.com> It's a virus. Since it's encrypted, my scanner doesn't catch it. And, unlike McAffee, I refuse to block all encrypted zip files because of this virus. Besides, it's fairly obvious the lack of security of sending an encrypted payload with the key in cleartext. . . . . . I seriously doubt anyone here would fall prey . . . -Dave On Monday, 12 Apr 2004, Shankar Narayanaswamy wrote: > Is this for real? Looks like the MoreInfo.zip virus. > > -s > > mmani@avaya.com wrote: > > Looking forward for a response :P > > > >password: 23415 > > > -- > Shankar Narayanaswamy, Ph.D. > wireless@shankar.org Mobile: +1 650-387-4593 > http://www.shankar.org E-Fax: +1 253-498-8372 > > _______________________________________________ > Capwap mailing list > Capwap@frascone.com > http://mail.frascone.com/mailman/listinfo/capwap > -- David Frascone Winning isn't everything - but losing SUCKS! From bwijnen@lucent.com Mon Apr 12 16:04:18 2004 From: bwijnen@lucent.com (Wijnen, Bert (Bert)) Date: Mon, 12 Apr 2004 17:04:18 +0200 Subject: [Capwap] test - pls ignore Message-ID: <7D5D48D2CAA3D84C813F5B154F43B15503FD6CF9@nl0006exch001u.nl.lucent.com> Checking archives. Thanks, Bert From kempf@docomolabs-usa.com Mon Apr 12 17:14:27 2004 From: kempf@docomolabs-usa.com (James Kempf) Date: Mon, 12 Apr 2004 09:14:27 -0700 Subject: [Capwap] Hi! :-) References: <407AAE0C.1080908@shankar.org> <20040412150303.GI26412@wolverine.frascone.com> Message-ID: <03ea01c420a9$3b620d20$366115ac@dcml.docomolabsusa.com> Dave, > It's a virus. Since it's encrypted, my scanner doesn't catch it. And, > unlike McAffee, I refuse to block all encrypted zip files because of > this virus. > > Besides, it's fairly obvious the lack of security of sending an > encrypted payload with the key in cleartext. . . . . . I seriously > doubt anyone here would fall prey . . . > I would not underestimate. Early morning, someone hasn't had their coffee yet, accidentially clicks through on it... jak From dave@frascone.com Mon Apr 12 17:39:23 2004 From: dave@frascone.com (David Frascone) Date: Mon, 12 Apr 2004 11:39:23 -0500 Subject: [Capwap] Hi! :-) In-Reply-To: <03ea01c420a9$3b620d20$366115ac@dcml.docomolabsusa.com> References: <407AAE0C.1080908@shankar.org> <20040412150303.GI26412@wolverine.frascone.com> <03ea01c420a9$3b620d20$366115ac@dcml.docomolabsusa.com> Message-ID: <20040412163923.GP26412@wolverine.frascone.com> Ahh, but you have to click through, then enter the password. Either way, I'll check with f-prot, the scanner I use, and see what they have to block this. -Dave On Monday, 12 Apr 2004, James Kempf wrote: > Dave, > > > It's a virus. Since it's encrypted, my scanner doesn't catch it. And, > > unlike McAffee, I refuse to block all encrypted zip files because of > > this virus. > > > > Besides, it's fairly obvious the lack of security of sending an > > encrypted payload with the key in cleartext. . . . . . I seriously > > doubt anyone here would fall prey . . . > > > > I would not underestimate. Early morning, someone hasn't had their coffee > yet, accidentially clicks through on it... > > jak > > -- David Frascone I'd love to, but you know how we psychos are. From bwijnen@lucent.com Tue Apr 13 23:09:09 2004 From: bwijnen@lucent.com (Wijnen, Bert (Bert)) Date: Wed, 14 Apr 2004 00:09:09 +0200 Subject: [Capwap] test - pls ignore Message-ID: <7D5D48D2CAA3D84C813F5B154F43B15504123FED@nl0006exch001u.nl.lucent.com> checking if archive works Thanks, Bert From lily.l.yang@intel.com Tue Apr 13 23:25:18 2004 From: lily.l.yang@intel.com (Yang, Lily L) Date: Tue, 13 Apr 2004 15:25:18 -0700 Subject: [Capwap] Design Team conference minutes Message-ID: <2AF68A477DD44C4EBCBE338C24E7A9EE5C4225@orsmsx408.jf.intel.com> This is a multi-part message in MIME format. ------_=_NextPart_001_01C421A6.3391B95F Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable CAPWAP Design Team teleconference minutes April 13, 2004 8-10am =20 Attendees (11): Victor, Inderpreet, Partha, Jim, Petros, Ajit, Dave, Peyush, Matt, Lily, Mani =20 **** Short term milestone: Revise to v02 according to comments received, submit by end of day April 14, ready for IEEE Review on April 15. =20 ***** Draft review: we went through the April 7 version of the draft page by page, section by section to collect comments and feedback. Nothing major came up but the team did provide a list of good comments and had good discussion to reach consensus on the necessary changes. Will send out the new revision with list of changes by tomorrow to the CAPWAP list. Ideally we would like the CAPWAP WG to have some internal review time before submitting for external IEEE review. However, the tight schedule prohibits us from doing that. So we will be doing IETF and IEEE review in parallel. It is expected that the draft will continue to be revised and advanced for the next several months. =20 =20 Lily ------_=_NextPart_001_01C421A6.3391B95F Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

CAPWAP Design Team teleconference = minutes

April 13, 2004  8-10am

 

Attendees (11):

Victor, Inderpreet, Partha, Jim, Petros, Ajit, Dave, = Peyush, Matt, Lily, Mani

 

**** Short term milestone: Revise to v02 according to comments received, submit by end of day April 14, ready for IEEE Review = on April 15.

 

***** Draft review: we went through the April 7 = version of the draft page by page, section by section to collect comments and = feedback. Nothing major came up but the team did provide a list of good comments and had = good discussion to reach consensus on the necessary changes. Will send out = the new revision with list of changes by tomorrow to the CAPWAP list. Ideally we = would like the CAPWAP WG to have some internal review time before submitting = for external IEEE review. However, the tight schedule prohibits us from = doing that. So we will be doing IETF and IEEE review in parallel. It is expected = that the draft will continue to be revised and advanced for the next several = months.

 

 

Lily

=00 ------_=_NextPart_001_01C421A6.3391B95F-- From lily.l.yang@intel.com Tue Apr 13 21:41:09 2004 From: lily.l.yang@intel.com (Yang, Lily L) Date: Tue, 13 Apr 2004 13:41:09 -0700 Subject: [Capwap] Taxonomy doc Message-ID: <2AF68A477DD44C4EBCBE338C24E7A9EE5C4220@orsmsx408.jf.intel.com> Hi, Shankar -- It appears that what you are referring to here is an older version of = our docemnt. There is a newer version that we are still working on, and = this version can be found at=20 http://www.capwap.org/draft-ietf-capwap-arch-01.txt=20 In this newer version, you will see that we do move the = encryption/decryption from the real time list to the non-real time list. = We also added content to 4.6 security. Please review and if you feel = there are more you can add on top of that, please don't hesitate to send = to us. We are trying to revise this version by end of tomorrow so that = we can provide to IEEE for their review. So early comments would be = appreciated. Thanks, Lily > -----Original Message----- > From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com]On > Behalf Of Shankar Narayanaswamy > Sent: Monday, April 12, 2004 2:03 AM > To: capwap@frascone.com > Subject: [Capwap] Taxonomy doc >=20 >=20 > All, >=20 > Some thoughts: >=20 > 1. Section 4.2: This section states that the reasoning=20 > behind the Split=20 > MAC architecture is to "offload to the WTP(s) functionality that is=20 > specific and relevant only to the locality of each BSS in=20 > order to allow=20 > the AC to scale to a large number of 'lightweight' WTP devices". The=20 > section also mentions 802.11 encryption/decryption as being a=20 > real-time=20 > service implemented on the WTP. >=20 > This is not always true. For example, at Instant802 (and some=20 > others: Symbol, Aruba?) we perform 802.11=20 > encryption/decryption at the=20 > AC rather than the WTP. 802.11 frames in WEP/TKIP/WPA are transported=20 > using a GRE or some other encapsulation between the WTP and the AC. >=20 > This is driven by two considerations. The first is cost=20 > reduction=20 > in the WTP. We want it to be as cheap and simple as possible=20 > so taking=20 > out encryption/decryption is useful, especially since this=20 > may otherwise=20 > have to be done twice (decrypt the 802.11 packet, then encrypt the IP=20 > packet to tunnel it to the AC). The second is security. We=20 > want to avoid=20 > any risk from a compromised WTP, and therefore not have user=20 > encryption=20 > keys on the AP at all. Since the entire encrypted 802.11 frame is=20 > carried over the wired LAN between WTP and AC, the user's=20 > security level=20 > (WEP, TKIP, WPA, 802.11i) is preserved. >=20 > A side effect of this architecture is that progress in security=20 > protocols and algorithm does not obsolete the WTPs; the ACs implement=20 > the new security schemes instead and the management problem=20 > is therefore=20 > simplified. It can also protect from LAN-side eavesdropping. >=20 > This architecture is susceptible to MIM attack in the=20 > sense that a=20 > MIM on the wired LAN could prevent PDUs from getting to their=20 > destinations, but privacy and message integrity are not lost. >=20 > 2. Section 4.6: This section on security is blank. May I offer the=20 > following prose: >=20 > "There are different kinds of traffic passing between the WTP and=20 > the AC, and each one warrants different considerations. >=20 > "For user traffic, there are several choices. Some=20 > vendors choose to=20 > encrypt/decrypt user traffic at the WTP and send user data in=20 > the clear=20 > between the WTP and the AC. Other vendors choose to=20 > encrypt/decrypt user=20 > traffic at the WTP and then aggregate this traffic into a single=20 > encrypted tunnel to the AC. Yet others transport the=20 > WEP/TKIP/WPA-encrypted 802.11 MAC PDU between the AC and the WTP,=20 > thereby avoiding user encryption keys being stored at the WTP. The=20 > tradeoffs are between complexity at the AC versus the WTP,=20 > and also in=20 > security versus simplicity in the WTP. >=20 > "Most vendors choose to encrypt management traffic=20 > between WTPs and=20 > APs. Most vendors use mutual authentication between WTP and AC to=20 > protect against rogue APs. >=20 > "Some vendors support IPSec VPN termination on ACs; this allows=20 > greater security since wireless clients can use an IPSec VPN over the=20 > air and over the wired network, all the way to the AC. Some=20 > vendors use=20 > Access Control Lists (ACLs) at the WTP or the AC to prevent=20 > unauthorized=20 > clients from using the wireless network." >=20 > 3. I did not see any section on roaming, redundancy, WTP/AC=20 > handoff; do=20 > we need sections on this? If so, I would be happy to write=20 > them. These=20 > are all important issues and some of the taxonomy submissions=20 > do mention=20 > how those vendors approach them. >=20 > Regards, > Shankar > --=20 > Shankar Narayanaswamy, Ph.D. > wireless@shankar.org Mobile: +1 650-387-4593 > http://www.shankar.org E-Fax: +1 253-498-8372 >=20 > _______________________________________________ > Capwap mailing list > Capwap@frascone.com > http://mail.frascone.com/mailman/listinfo/capwap >=20 From wireless@shankar.org Wed Apr 14 10:55:12 2004 From: wireless@shankar.org (Shankar Narayanaswamy) Date: Wed, 14 Apr 2004 02:55:12 -0700 Subject: [Capwap] Taxonomy doc References: <2AF68A477DD44C4EBCBE338C24E7A9EE5C4220@orsmsx408.jf.intel.com> Message-ID: <407D0A80.4090706@shankar.org> Lily, Since the newer version was not distributed before (and the feedback deadline was April 12) it is very difficult for someone who is not on the design team to contribute: we are chasing a moving target! It would be more efficient to freeze the document in between feedback cycles. And to change the filename for each draft so we know which one we are talking about. Anyway, my original comment (1) still stands. Section 4.4 (Split MAC) states that the reasoning behind the split MAC architecture is scaling. But cost reduction in the WTP and security are just as important, if not more so. I could even argue the converse: moving functionality away from the WTP and centralizing it introduces massive complexity in the AC as the system scales, and it is easy to reach a level of complexity in the AC that is impractical (from a CPU and I/O processing perspective) with just a couple of dozen access points. This would argue for moving everything except centralized management into the WTPs. So my argument is that cost reduction in the WTP and security are the real reasons behind the split MAC architecture; their importance outweighs the scaling disadvantage. My original comment (3) also still stands: we have not addressed roaming, redundancy and AC/WTP handoff (due to AC failure or load-balancing). This is important because it affects the protocol between ACs and between AC and WTP. Does anyone else see a need to capture this as part of the architecture taxonomy? Thanks, Shankar Yang, Lily L wrote: > Hi, Shankar -- > > It appears that what you are referring to here is an older version of our docemnt. There is a newer version that we are still working on, and this version can be found at > http://www.capwap.org/draft-ietf-capwap-arch-01.txt > In this newer version, you will see that we do move the encryption/decryption from the real time list to the non-real time list. > We also added content to 4.6 security. Please review and if you feel there are more you can add on top of that, please don't hesitate to send to us. We are trying to revise this version by end of tomorrow so that we can provide to IEEE for their review. So early comments would be appreciated. > > Thanks, > Lily > > > >>-----Original Message----- >>From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com]On >>Behalf Of Shankar Narayanaswamy >>Sent: Monday, April 12, 2004 2:03 AM >>To: capwap@frascone.com >>Subject: [Capwap] Taxonomy doc >> >> >>All, >> >>Some thoughts: >> >>1. Section 4.2: This section states that the reasoning >>behind the Split >>MAC architecture is to "offload to the WTP(s) functionality that is >>specific and relevant only to the locality of each BSS in >>order to allow >>the AC to scale to a large number of 'lightweight' WTP devices". The >>section also mentions 802.11 encryption/decryption as being a >>real-time >>service implemented on the WTP. >> >> This is not always true. For example, at Instant802 (and some >>others: Symbol, Aruba?) we perform 802.11 >>encryption/decryption at the >>AC rather than the WTP. 802.11 frames in WEP/TKIP/WPA are transported >>using a GRE or some other encapsulation between the WTP and the AC. >> >> This is driven by two considerations. The first is cost >>reduction >>in the WTP. We want it to be as cheap and simple as possible >>so taking >>out encryption/decryption is useful, especially since this >>may otherwise >>have to be done twice (decrypt the 802.11 packet, then encrypt the IP >>packet to tunnel it to the AC). The second is security. We >>want to avoid >>any risk from a compromised WTP, and therefore not have user >>encryption >>keys on the AP at all. Since the entire encrypted 802.11 frame is >>carried over the wired LAN between WTP and AC, the user's >>security level >>(WEP, TKIP, WPA, 802.11i) is preserved. >> >> A side effect of this architecture is that progress in security >>protocols and algorithm does not obsolete the WTPs; the ACs implement >>the new security schemes instead and the management problem >>is therefore >>simplified. It can also protect from LAN-side eavesdropping. >> >> This architecture is susceptible to MIM attack in the >>sense that a >>MIM on the wired LAN could prevent PDUs from getting to their >>destinations, but privacy and message integrity are not lost. >> >>2. Section 4.6: This section on security is blank. May I offer the >>following prose: >> >> "There are different kinds of traffic passing between the WTP and >>the AC, and each one warrants different considerations. >> >> "For user traffic, there are several choices. Some >>vendors choose to >>encrypt/decrypt user traffic at the WTP and send user data in >>the clear >>between the WTP and the AC. Other vendors choose to >>encrypt/decrypt user >>traffic at the WTP and then aggregate this traffic into a single >>encrypted tunnel to the AC. Yet others transport the >>WEP/TKIP/WPA-encrypted 802.11 MAC PDU between the AC and the WTP, >>thereby avoiding user encryption keys being stored at the WTP. The >>tradeoffs are between complexity at the AC versus the WTP, >>and also in >>security versus simplicity in the WTP. >> >> "Most vendors choose to encrypt management traffic >>between WTPs and >>APs. Most vendors use mutual authentication between WTP and AC to >>protect against rogue APs. >> >> "Some vendors support IPSec VPN termination on ACs; this allows >>greater security since wireless clients can use an IPSec VPN over the >>air and over the wired network, all the way to the AC. Some >>vendors use >>Access Control Lists (ACLs) at the WTP or the AC to prevent >>unauthorized >>clients from using the wireless network." >> >>3. I did not see any section on roaming, redundancy, WTP/AC >>handoff; do >>we need sections on this? If so, I would be happy to write >>them. These >>are all important issues and some of the taxonomy submissions >>do mention >>how those vendors approach them. >> >>Regards, >>Shankar >>-- >>Shankar Narayanaswamy, Ph.D. >>wireless@shankar.org Mobile: +1 650-387-4593 >>http://www.shankar.org E-Fax: +1 253-498-8372 >> >>_______________________________________________ >>Capwap mailing list >>Capwap@frascone.com >>http://mail.frascone.com/mailman/listinfo/capwap >> > > _______________________________________________ > Capwap mailing list > Capwap@frascone.com > http://mail.frascone.com/mailman/listinfo/capwap -- Shankar Narayanaswamy, Ph.D. wireless@shankar.org Mobile: +1 650-387-4593 http://www.shankar.org E-Fax: +1 253-498-8372 From M.Z.Cheng@mdx.ac.uk Wed Apr 14 11:09:14 2004 From: M.Z.Cheng@mdx.ac.uk (Michael Cheng) Date: Wed, 14 Apr 2004 11:09:14 +0100 Subject: [Capwap] About LWAPP's security Message-ID: <0197940BD99CD311930D0008C75D8DD103BAD5F5@mdx-bg-csex.cs.mdx.ac.uk> Hi Scott, Thank you very much for your quick response. Sorry to reply late. I was off for a few days. We wrote the paper purely for our own research interest and did not plan to attack one particular design. We noticed the problem last June( maybe you still can find my email in the group) and wrote the paper under a request for academic reason last December. Because we believed that the lwapp team would release new version after the old draft expired, we didn't post the paper. However, it seems that the LWAPP team becomes inactive after establishing CAPWAP or am I wrong? We think we should post the paper purely for academic reason. Only a few comments on your response. Moreover, I updated the paper with some minor corrections. Scott G. Kelly wrote: > Hi Michael, > > Michael Cheng wrote: > > > Hi, > > > > We wrote a paper to briefly analyze the security aspect of LWAPP. > > If anyone is still interested in LWAPP, the paper is avaible > > on http://www.cs.mdx.ac.uk/staffpages/m_cheng/link/lwapp_g.pdf > > Thanks for posting this paper. After giving it a quick review, I have a few comments. I'd like to preface this by saying that this is not currently a working group item, and so this discussion is purely academic, and it may be terminatated by the wg chairs at any time. Nonetheless, I think it should hold some interest for wg members, and the paper deserves some response. > > In order to properly analyze the security properties of the protocol discussed in the draft, you must understand the assumptions under which the protocol operates. These were described in an internal document here, but not in detail in the lwapp draft, so you are at a disadvantage in that regard. > > One primary architectural assumption in the original lwapp security design was that the AP's have a direct layer 2 connection to the AR, which in our case is a switch. It is also assumed that this connection is relatively protected with regard to physical security (e.g. runs through the ceiling of your office building to your lockable server room). That is, the security protocol discussed in the draft was not designed to operate over a hostile network. I believe this was made clear in subsequent discussions on this list. I totally agree with you that when designing a security protocol we should consider the protocol application environment and evaluate the potentional threats. However, I believe all of us agree with that we can not just design a protocol to cope with the threats we found. A general way to design a protocol is first to analyze the available cryptography primitives( enc: AES, RSA, ECC, ..., hash: ..., sometimes patents are concerned) second to decide the acceptable protocol complexity (computation, bandwith, implementation) third to decide the general protocol type (symmetric or aymmetric-based, password-based, key agreement or key transport, AK or AKC) four to design a protocol (or some) as rigerous as possible (formally provable with some general properties: known-key attack, key-comprise impersonation...) fifth to evaluate the protocol's ability to counter the potential threats. (Some attacks in networks can not be defended by only designing a generally good protocol. Some protocol security properties are undesireable in the application environment.) sixth to make a choice based on the balance between complexity and security. Of cz sometime we also should consider whether the parameter negotiation is necessary. I believe a rigerous protocol with tolerable complexity is NEVER a bad choice. For example protocol 3 in our paper, to provide explicit key-confirmation, AR only needs to perform one more hash operation. Maybe one will argue that the opening key attack is not feasible in LWAPP. However when we tell customers that there is a bug, but the attack is extremely unlikely, customers maybe will not be convinced. On the other hand, why not use a small cost to remove the potential bug with an explicity key confirmation? Moreover, we cannot forcast the future. If we can design a protocol with acceptable complexity which is secure in the hotile environment, why don't we do it ? > > In our internal analysis we concluded, as do you, that there is no significant security benefit inherent in encrypting the wep keys, since anyone who can see the encrypted lwapp channel can see the unencrypted data traffic. But try telling a customer that you're sending encryption keys over the network in the clear, but that they shouldn't worry about this. Also, in the case where an attacker can't insert himself as a MiM, there is a small security benefit: in these cases he can only eavesdrop; he cannot modify the traffic flow, whereas with compromised wep keys he could inject traffic. But this is an admittedly small benefit. > > There is some additional benefit in the encrypted/authenticated command channel: the AP control API is protected (including firmware downloads). This prevents the introduction of hostile firmware and/or configuration into the AP which might be used as building blocks in an attack. > > After related discussions on this list and the subsequent publication of the lwapp security requirements draft (expired, but still available at http://www.legra.com/downloads/IETF_Internet_Draft_LWAPP_Security.pdf ), it should be clear that the mechanism discussed in the original lwapp draft was quite limited, and is not viewed as sufficient solution for generalized lwapp security. > > Regarding various discussions about the authentication mechanism, you guys are mistaken in some of your assumptions. Both sides are supposed to be authenticated (not just the AR), and clearly you want to look at the IDs in the certs as part of the verification. We did not publish that level of detail in the 00 draft, but this does not mean it has not been considered. That is great. However we didnot see any new publication in the last few months. Is LWAPP still alive? I can't quite understand why LWAPP runs out of steam. or am I wrong? ( I did not follow the progress tightly.) In fact, ID and validality of certifications are problems out of the scope of designing secure protocols. Two problems are faced by any certification-based protocol. However, these two problems are particularly important in LWAPP-like protocols and should be addressed in the proposal if certification-based protocol is used. Password-based protocol has no such problem because AR's ID and password must be preconfigured in AP. For certification revocation, commonly there are two solutions. A: after establishing the channel, AP checks the CRL. (for example EAP-TLS uses this method) B: AR relays the request and response. (We proposed this way) Both methods have advantages and disadvantages. About ID, I agree with that this is more likely about implementation and deployment. > > Verifying IDs implies some preconfiguration during the initial staging, but this should come as no surprise to someone experienced at deploying this sort of gear. Discussion of these points was beyond the scope of the draft, and I'm sure these issues will be addressed if this wg moves forward with an lwapp-like protocol. > > Scott > > > Michael From lily.l.yang@intel.com Wed Apr 14 20:23:43 2004 From: lily.l.yang@intel.com (Yang, Lily L) Date: Wed, 14 Apr 2004 12:23:43 -0700 Subject: [Capwap] Taxonomy doc Message-ID: <2AF68A477DD44C4EBCBE338C24E7A9EE5C4229@orsmsx408.jf.intel.com> Hi, Shankar -- Sorry about the versioning problem. I agree that it has been a moving target because of the tight schedule and our desire to improve on the draft as much as possible.=20 I agree with your comments (1) and (3). I probably can incorporate (1) into v02 today, but (3) needs more discussion and work and so I would like to defer that into later version. Is that ok with you? Lily -----Original Message----- From: Shankar Narayanaswamy [mailto:wireless@shankar.org]=20 Sent: Wednesday, April 14, 2004 2:55 AM To: Yang, Lily L Cc: capwap@frascone.com Subject: Re: [Capwap] Taxonomy doc Lily, Since the newer version was not distributed before (and the feedback=20 deadline was April 12) it is very difficult for someone who is not on=20 the design team to contribute: we are chasing a moving target! It would=20 be more efficient to freeze the document in between feedback cycles. And to change the filename for each draft so we know which one we are=20 talking about. Anyway, my original comment (1) still stands. Section 4.4 (Split MAC)=20 states that the reasoning behind the split MAC architecture is scaling.=20 But cost reduction in the WTP and security are just as important, if not more so. I could even argue the converse: moving functionality away from the WTP and centralizing it introduces massive complexity in the AC as=20 the system scales, and it is easy to reach a level of complexity in the=20 AC that is impractical (from a CPU and I/O processing perspective) with=20 just a couple of dozen access points. This would argue for moving=20 everything except centralized management into the WTPs. So my argument is that cost reduction in the WTP and security are the=20 real reasons behind the split MAC architecture; their importance=20 outweighs the scaling disadvantage. My original comment (3) also still stands: we have not addressed=20 roaming, redundancy and AC/WTP handoff (due to AC failure or=20 load-balancing). This is important because it affects the protocol=20 between ACs and between AC and WTP. Does anyone else see a need to=20 capture this as part of the architecture taxonomy? Thanks, Shankar Yang, Lily L wrote: > Hi, Shankar -- >=20 > It appears that what you are referring to here is an older version of our docemnt. There is a newer version that we are still working on, and this version can be found at=20 > http://www.capwap.org/draft-ietf-capwap-arch-01.txt=20 > In this newer version, you will see that we do move the encryption/decryption from the real time list to the non-real time list. > We also added content to 4.6 security. Please review and if you feel there are more you can add on top of that, please don't hesitate to send to us. We are trying to revise this version by end of tomorrow so that we can provide to IEEE for their review. So early comments would be appreciated. >=20 > Thanks, > Lily >=20 >=20 >=20 >>-----Original Message----- >>From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com]On >>Behalf Of Shankar Narayanaswamy >>Sent: Monday, April 12, 2004 2:03 AM >>To: capwap@frascone.com >>Subject: [Capwap] Taxonomy doc >> >> >>All, >> >>Some thoughts: >> >>1. Section 4.2: This section states that the reasoning=20 >>behind the Split=20 >>MAC architecture is to "offload to the WTP(s) functionality that is=20 >>specific and relevant only to the locality of each BSS in=20 >>order to allow=20 >>the AC to scale to a large number of 'lightweight' WTP devices". The=20 >>section also mentions 802.11 encryption/decryption as being a=20 >>real-time=20 >>service implemented on the WTP. >> >> This is not always true. For example, at Instant802 (and some=20 >>others: Symbol, Aruba?) we perform 802.11=20 >>encryption/decryption at the=20 >>AC rather than the WTP. 802.11 frames in WEP/TKIP/WPA are transported=20 >>using a GRE or some other encapsulation between the WTP and the AC. >> >> This is driven by two considerations. The first is cost=20 >>reduction=20 >>in the WTP. We want it to be as cheap and simple as possible=20 >>so taking=20 >>out encryption/decryption is useful, especially since this=20 >>may otherwise=20 >>have to be done twice (decrypt the 802.11 packet, then encrypt the IP=20 >>packet to tunnel it to the AC). The second is security. We=20 >>want to avoid=20 >>any risk from a compromised WTP, and therefore not have user=20 >>encryption=20 >>keys on the AP at all. Since the entire encrypted 802.11 frame is=20 >>carried over the wired LAN between WTP and AC, the user's=20 >>security level=20 >>(WEP, TKIP, WPA, 802.11i) is preserved. >> >> A side effect of this architecture is that progress in security=20 >>protocols and algorithm does not obsolete the WTPs; the ACs implement=20 >>the new security schemes instead and the management problem=20 >>is therefore=20 >>simplified. It can also protect from LAN-side eavesdropping. >> >> This architecture is susceptible to MIM attack in the=20 >>sense that a=20 >>MIM on the wired LAN could prevent PDUs from getting to their=20 >>destinations, but privacy and message integrity are not lost. >> >>2. Section 4.6: This section on security is blank. May I offer the=20 >>following prose: >> >> "There are different kinds of traffic passing between the WTP and=20 >>the AC, and each one warrants different considerations. >> >> "For user traffic, there are several choices. Some=20 >>vendors choose to=20 >>encrypt/decrypt user traffic at the WTP and send user data in=20 >>the clear=20 >>between the WTP and the AC. Other vendors choose to=20 >>encrypt/decrypt user=20 >>traffic at the WTP and then aggregate this traffic into a single=20 >>encrypted tunnel to the AC. Yet others transport the=20 >>WEP/TKIP/WPA-encrypted 802.11 MAC PDU between the AC and the WTP,=20 >>thereby avoiding user encryption keys being stored at the WTP. The=20 >>tradeoffs are between complexity at the AC versus the WTP,=20 >>and also in=20 >>security versus simplicity in the WTP. >> >> "Most vendors choose to encrypt management traffic=20 >>between WTPs and=20 >>APs. Most vendors use mutual authentication between WTP and AC to=20 >>protect against rogue APs. >> >> "Some vendors support IPSec VPN termination on ACs; this allows=20 >>greater security since wireless clients can use an IPSec VPN over the=20 >>air and over the wired network, all the way to the AC. Some=20 >>vendors use=20 >>Access Control Lists (ACLs) at the WTP or the AC to prevent=20 >>unauthorized=20 >>clients from using the wireless network." >> >>3. I did not see any section on roaming, redundancy, WTP/AC=20 >>handoff; do=20 >>we need sections on this? If so, I would be happy to write=20 >>them. These=20 >>are all important issues and some of the taxonomy submissions=20 >>do mention=20 >>how those vendors approach them. >> >>Regards, >>Shankar >>--=20 >>Shankar Narayanaswamy, Ph.D. >>wireless@shankar.org Mobile: +1 650-387-4593 >>http://www.shankar.org E-Fax: +1 253-498-8372 >> >>_______________________________________________ >>Capwap mailing list >>Capwap@frascone.com >>http://mail.frascone.com/mailman/listinfo/capwap >> >=20 > _______________________________________________ > Capwap mailing list > Capwap@frascone.com > http://mail.frascone.com/mailman/listinfo/capwap --=20 Shankar Narayanaswamy, Ph.D. wireless@shankar.org Mobile: +1 650-387-4593 http://www.shankar.org E-Fax: +1 253-498-8372 From wireless@shankar.org Thu Apr 15 07:22:42 2004 From: wireless@shankar.org (Shankar Narayanaswamy) Date: Wed, 14 Apr 2004 23:22:42 -0700 Subject: [Capwap] Taxonomy doc References: <2AF68A477DD44C4EBCBE338C24E7A9EE5C4229@orsmsx408.jf.intel.com> Message-ID: <407E2A32.3050207@shankar.org> Lily, We probably have no option but to defer (3) because they were not addressed in the original taxonomy survey (although I would be happy to write a section on how we do it at Instant802). A new survey will be needed to capture how each of the three items is addressed by the participating vendors. Also VoIP support and any other architectural facets that must eventually be captured by the LWAPP to allow true interoperability between WTPs and ACs. Regards, Shankar Yang, Lily L wrote: > Hi, Shankar -- > > Sorry about the versioning problem. I agree that it has been a moving > target because of the tight schedule and our desire to improve on the > draft as much as possible. > I agree with your comments (1) and (3). I probably can incorporate (1) > into v02 today, but (3) needs more discussion and work and so I would > like to defer that into later version. Is that ok with you? > > Lily > > -----Original Message----- > From: Shankar Narayanaswamy [mailto:wireless@shankar.org] > Sent: Wednesday, April 14, 2004 2:55 AM > To: Yang, Lily L > Cc: capwap@frascone.com > Subject: Re: [Capwap] Taxonomy doc > > Lily, > > Since the newer version was not distributed before (and the feedback > deadline was April 12) it is very difficult for someone who is not on > the design team to contribute: we are chasing a moving target! It would > be more efficient to freeze the document in between feedback cycles. And > > to change the filename for each draft so we know which one we are > talking about. > > Anyway, my original comment (1) still stands. Section 4.4 (Split MAC) > states that the reasoning behind the split MAC architecture is scaling. > But cost reduction in the WTP and security are just as important, if not > > more so. I could even argue the converse: moving functionality away from > > the WTP and centralizing it introduces massive complexity in the AC as > the system scales, and it is easy to reach a level of complexity in the > AC that is impractical (from a CPU and I/O processing perspective) with > just a couple of dozen access points. This would argue for moving > everything except centralized management into the WTPs. > > So my argument is that cost reduction in the WTP and security are the > real reasons behind the split MAC architecture; their importance > outweighs the scaling disadvantage. > > > My original comment (3) also still stands: we have not addressed > roaming, redundancy and AC/WTP handoff (due to AC failure or > load-balancing). This is important because it affects the protocol > between ACs and between AC and WTP. Does anyone else see a need to > capture this as part of the architecture taxonomy? > > Thanks, > Shankar > > > Yang, Lily L wrote: > >>Hi, Shankar -- >> >>It appears that what you are referring to here is an older version of > > our docemnt. There is a newer version that we are still working on, and > this version can be found at > >>http://www.capwap.org/draft-ietf-capwap-arch-01.txt >>In this newer version, you will see that we do move the > > encryption/decryption from the real time list to the non-real time list. > > >>We also added content to 4.6 security. Please review and if you feel > > there are more you can add on top of that, please don't hesitate to send > to us. We are trying to revise this version by end of tomorrow so that > we can provide to IEEE for their review. So early comments would be > appreciated. > >>Thanks, >>Lily >> >> >> >> >>>-----Original Message----- >>>From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com]On >>>Behalf Of Shankar Narayanaswamy >>>Sent: Monday, April 12, 2004 2:03 AM >>>To: capwap@frascone.com >>>Subject: [Capwap] Taxonomy doc >>> >>> >>>All, >>> >>>Some thoughts: >>> >>>1. Section 4.2: This section states that the reasoning >>>behind the Split >>>MAC architecture is to "offload to the WTP(s) functionality that is >>>specific and relevant only to the locality of each BSS in >>>order to allow >>>the AC to scale to a large number of 'lightweight' WTP devices". The >>>section also mentions 802.11 encryption/decryption as being a >>>real-time >>>service implemented on the WTP. >>> >>> This is not always true. For example, at Instant802 (and some >>>others: Symbol, Aruba?) we perform 802.11 >>>encryption/decryption at the >>>AC rather than the WTP. 802.11 frames in WEP/TKIP/WPA are transported >>>using a GRE or some other encapsulation between the WTP and the AC. >>> >>> This is driven by two considerations. The first is cost >>>reduction >>>in the WTP. We want it to be as cheap and simple as possible >>>so taking >>>out encryption/decryption is useful, especially since this >>>may otherwise >>>have to be done twice (decrypt the 802.11 packet, then encrypt the IP >>>packet to tunnel it to the AC). The second is security. We >>>want to avoid >>>any risk from a compromised WTP, and therefore not have user >>>encryption >>>keys on the AP at all. Since the entire encrypted 802.11 frame is >>>carried over the wired LAN between WTP and AC, the user's >>>security level >>>(WEP, TKIP, WPA, 802.11i) is preserved. >>> >>> A side effect of this architecture is that progress in security >>>protocols and algorithm does not obsolete the WTPs; the ACs implement >>>the new security schemes instead and the management problem >>>is therefore >>>simplified. It can also protect from LAN-side eavesdropping. >>> >>> This architecture is susceptible to MIM attack in the >>>sense that a >>>MIM on the wired LAN could prevent PDUs from getting to their >>>destinations, but privacy and message integrity are not lost. >>> >>>2. Section 4.6: This section on security is blank. May I offer the >>>following prose: >>> >>> "There are different kinds of traffic passing between the WTP and >>>the AC, and each one warrants different considerations. >>> >>> "For user traffic, there are several choices. Some >>>vendors choose to >>>encrypt/decrypt user traffic at the WTP and send user data in >>>the clear >>>between the WTP and the AC. Other vendors choose to >>>encrypt/decrypt user >>>traffic at the WTP and then aggregate this traffic into a single >>>encrypted tunnel to the AC. Yet others transport the >>>WEP/TKIP/WPA-encrypted 802.11 MAC PDU between the AC and the WTP, >>>thereby avoiding user encryption keys being stored at the WTP. The >>>tradeoffs are between complexity at the AC versus the WTP, >>>and also in >>>security versus simplicity in the WTP. >>> >>> "Most vendors choose to encrypt management traffic >>>between WTPs and >>>APs. Most vendors use mutual authentication between WTP and AC to >>>protect against rogue APs. >>> >>> "Some vendors support IPSec VPN termination on ACs; this allows >>>greater security since wireless clients can use an IPSec VPN over the >>>air and over the wired network, all the way to the AC. Some >>>vendors use >>>Access Control Lists (ACLs) at the WTP or the AC to prevent >>>unauthorized >>>clients from using the wireless network." >>> >>>3. I did not see any section on roaming, redundancy, WTP/AC >>>handoff; do >>>we need sections on this? If so, I would be happy to write >>>them. These >>>are all important issues and some of the taxonomy submissions >>>do mention >>>how those vendors approach them. >>> >>>Regards, >>>Shankar >>>-- >>>Shankar Narayanaswamy, Ph.D. >>>wireless@shankar.org Mobile: +1 650-387-4593 >>>http://www.shankar.org E-Fax: +1 253-498-8372 >>> >>>_______________________________________________ >>>Capwap mailing list >>>Capwap@frascone.com >>>http://mail.frascone.com/mailman/listinfo/capwap >>> >> >>_______________________________________________ >>Capwap mailing list >>Capwap@frascone.com >>http://mail.frascone.com/mailman/listinfo/capwap > > > -- Shankar Narayanaswamy, Ph.D. wireless@shankar.org Mobile: +1 650-387-4593 http://www.shankar.org E-Fax: +1 253-498-8372 From wireless@shankar.org Thu Apr 15 07:32:04 2004 From: wireless@shankar.org (Shankar Narayanaswamy) Date: Wed, 14 Apr 2004 23:32:04 -0700 Subject: [Capwap] Taxonomy doc References: <2AF68A477DD44C4EBCBE338C24E7A9EE5C4229@orsmsx408.jf.intel.com> Message-ID: <407E2C64.5040008@shankar.org> More thoughts on reasoning for the split MAC architecture: 1. Security - extend the wireless security back to the AC. 2. To allow switch vendors to independently innovate products and protocols from WTP vendors (given a standard WTP/AC protocol) 3. To allow WTP vendors to innovate products independently from switch vendors - e.g. different form factors, higher speeds, etc. Thanks, Shankar Yang, Lily L wrote: > Hi, Shankar -- > > Sorry about the versioning problem. I agree that it has been a moving > target because of the tight schedule and our desire to improve on the > draft as much as possible. > I agree with your comments (1) and (3). I probably can incorporate (1) > into v02 today, but (3) needs more discussion and work and so I would > like to defer that into later version. Is that ok with you? > > Lily > > -----Original Message----- > From: Shankar Narayanaswamy [mailto:wireless@shankar.org] > Sent: Wednesday, April 14, 2004 2:55 AM > To: Yang, Lily L > Cc: capwap@frascone.com > Subject: Re: [Capwap] Taxonomy doc > > Lily, > > Since the newer version was not distributed before (and the feedback > deadline was April 12) it is very difficult for someone who is not on > the design team to contribute: we are chasing a moving target! It would > be more efficient to freeze the document in between feedback cycles. And > > to change the filename for each draft so we know which one we are > talking about. > > Anyway, my original comment (1) still stands. Section 4.4 (Split MAC) > states that the reasoning behind the split MAC architecture is scaling. > But cost reduction in the WTP and security are just as important, if not > > more so. I could even argue the converse: moving functionality away from > > the WTP and centralizing it introduces massive complexity in the AC as > the system scales, and it is easy to reach a level of complexity in the > AC that is impractical (from a CPU and I/O processing perspective) with > just a couple of dozen access points. This would argue for moving > everything except centralized management into the WTPs. > > So my argument is that cost reduction in the WTP and security are the > real reasons behind the split MAC architecture; their importance > outweighs the scaling disadvantage. > > > My original comment (3) also still stands: we have not addressed > roaming, redundancy and AC/WTP handoff (due to AC failure or > load-balancing). This is important because it affects the protocol > between ACs and between AC and WTP. Does anyone else see a need to > capture this as part of the architecture taxonomy? > > Thanks, > Shankar > > > Yang, Lily L wrote: > >>Hi, Shankar -- >> >>It appears that what you are referring to here is an older version of > > our docemnt. There is a newer version that we are still working on, and > this version can be found at > >>http://www.capwap.org/draft-ietf-capwap-arch-01.txt >>In this newer version, you will see that we do move the > > encryption/decryption from the real time list to the non-real time list. > > >>We also added content to 4.6 security. Please review and if you feel > > there are more you can add on top of that, please don't hesitate to send > to us. We are trying to revise this version by end of tomorrow so that > we can provide to IEEE for their review. So early comments would be > appreciated. > >>Thanks, >>Lily >> >> >> >> >>>-----Original Message----- >>>From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com]On >>>Behalf Of Shankar Narayanaswamy >>>Sent: Monday, April 12, 2004 2:03 AM >>>To: capwap@frascone.com >>>Subject: [Capwap] Taxonomy doc >>> >>> >>>All, >>> >>>Some thoughts: >>> >>>1. Section 4.2: This section states that the reasoning >>>behind the Split >>>MAC architecture is to "offload to the WTP(s) functionality that is >>>specific and relevant only to the locality of each BSS in >>>order to allow >>>the AC to scale to a large number of 'lightweight' WTP devices". The >>>section also mentions 802.11 encryption/decryption as being a >>>real-time >>>service implemented on the WTP. >>> >>> This is not always true. For example, at Instant802 (and some >>>others: Symbol, Aruba?) we perform 802.11 >>>encryption/decryption at the >>>AC rather than the WTP. 802.11 frames in WEP/TKIP/WPA are transported >>>using a GRE or some other encapsulation between the WTP and the AC. >>> >>> This is driven by two considerations. The first is cost >>>reduction >>>in the WTP. We want it to be as cheap and simple as possible >>>so taking >>>out encryption/decryption is useful, especially since this >>>may otherwise >>>have to be done twice (decrypt the 802.11 packet, then encrypt the IP >>>packet to tunnel it to the AC). The second is security. We >>>want to avoid >>>any risk from a compromised WTP, and therefore not have user >>>encryption >>>keys on the AP at all. Since the entire encrypted 802.11 frame is >>>carried over the wired LAN between WTP and AC, the user's >>>security level >>>(WEP, TKIP, WPA, 802.11i) is preserved. >>> >>> A side effect of this architecture is that progress in security >>>protocols and algorithm does not obsolete the WTPs; the ACs implement >>>the new security schemes instead and the management problem >>>is therefore >>>simplified. It can also protect from LAN-side eavesdropping. >>> >>> This architecture is susceptible to MIM attack in the >>>sense that a >>>MIM on the wired LAN could prevent PDUs from getting to their >>>destinations, but privacy and message integrity are not lost. >>> >>>2. Section 4.6: This section on security is blank. May I offer the >>>following prose: >>> >>> "There are different kinds of traffic passing between the WTP and >>>the AC, and each one warrants different considerations. >>> >>> "For user traffic, there are several choices. Some >>>vendors choose to >>>encrypt/decrypt user traffic at the WTP and send user data in >>>the clear >>>between the WTP and the AC. Other vendors choose to >>>encrypt/decrypt user >>>traffic at the WTP and then aggregate this traffic into a single >>>encrypted tunnel to the AC. Yet others transport the >>>WEP/TKIP/WPA-encrypted 802.11 MAC PDU between the AC and the WTP, >>>thereby avoiding user encryption keys being stored at the WTP. The >>>tradeoffs are between complexity at the AC versus the WTP, >>>and also in >>>security versus simplicity in the WTP. >>> >>> "Most vendors choose to encrypt management traffic >>>between WTPs and >>>APs. Most vendors use mutual authentication between WTP and AC to >>>protect against rogue APs. >>> >>> "Some vendors support IPSec VPN termination on ACs; this allows >>>greater security since wireless clients can use an IPSec VPN over the >>>air and over the wired network, all the way to the AC. Some >>>vendors use >>>Access Control Lists (ACLs) at the WTP or the AC to prevent >>>unauthorized >>>clients from using the wireless network." >>> >>>3. I did not see any section on roaming, redundancy, WTP/AC >>>handoff; do >>>we need sections on this? If so, I would be happy to write >>>them. These >>>are all important issues and some of the taxonomy submissions >>>do mention >>>how those vendors approach them. >>> >>>Regards, >>>Shankar >>>-- >>>Shankar Narayanaswamy, Ph.D. >>>wireless@shankar.org Mobile: +1 650-387-4593 >>>http://www.shankar.org E-Fax: +1 253-498-8372 >>> >>>_______________________________________________ >>>Capwap mailing list >>>Capwap@frascone.com >>>http://mail.frascone.com/mailman/listinfo/capwap >>> >> >>_______________________________________________ >>Capwap mailing list >>Capwap@frascone.com >>http://mail.frascone.com/mailman/listinfo/capwap > > > -- Shankar Narayanaswamy, Ph.D. wireless@shankar.org Mobile: +1 650-387-4593 http://www.shankar.org E-Fax: +1 253-498-8372 From Malini.Raghavendra@lntinfotech.com Thu Apr 15 08:19:11 2004 From: Malini.Raghavendra@lntinfotech.com (Malini Raghavendra) Date: Thu, 15 Apr 2004 12:49:11 +0530 Subject: [Capwap] Taxonomy doc Message-ID: Hello All, I would like to get clarification on the below statement [Reference: Page 23 v01]. The document extract is given below. "In most cases, since WTP devices are IP-addressable, any of the direct connection, L2-switched, or L3-routed topologies of Section 2.2 can be used." With respect to the above statement,I would like to know, When i implement AC to support all the 3 modes(direct connection, L2-switched, or L3-routed), is it possible that same AC is connected by L2 with one WTP and L3 connected with another WTP? Because in Page 16, Figure 4 direct connection as well as switch connection is shown whereas the Figure 5 does not have such combination of topology in a single AC. Thanks Malini Raghavendra capwap-request@fr ascone.com To: capwap@frascone.com Sent by: cc: capwap-admin@fras Subject: Capwap digest, Vol 1 #204 - 5 msgs cone.com 04/14/2004 09:30 PM Please respond to capwap Send Capwap mailing list submissions to capwap@frascone.com To subscribe or unsubscribe via the World Wide Web, visit http://mail.frascone.com/mailman/listinfo/capwap or, via email, send a message with subject or body 'help' to capwap-request@frascone.com You can reach the person managing the list at capwap-admin@frascone.com When replying, please edit your Subject line so it is more specific than "Re: Contents of Capwap digest..." Today's Topics: 1. test - pls ignore (Wijnen, Bert (Bert)) 2. Design Team conference minutes (Yang, Lily L) 3. RE: Taxonomy doc (Yang, Lily L) 4. Re: Taxonomy doc (Shankar Narayanaswamy) 5. RE: About LWAPP's security (Michael Cheng) --__--__-- Message: 1 From: "Wijnen, Bert (Bert)" To: "Capwap (E-mail)" Date: Wed, 14 Apr 2004 00:09:09 +0200 Subject: [Capwap] test - pls ignore checking if archive works Thanks, Bert --__--__-- Message: 2 Date: Tue, 13 Apr 2004 15:25:18 -0700 From: "Yang, Lily L" To: Subject: [Capwap] Design Team conference minutes This is a multi-part message in MIME format. ------_=_NextPart_001_01C421A6.3391B95F Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable CAPWAP Design Team teleconference minutes April 13, 2004 8-10am =20 Attendees (11): Victor, Inderpreet, Partha, Jim, Petros, Ajit, Dave, Peyush, Matt, Lily, Mani =20 **** Short term milestone: Revise to v02 according to comments received, submit by end of day April 14, ready for IEEE Review on April 15. =20 ***** Draft review: we went through the April 7 version of the draft page by page, section by section to collect comments and feedback. Nothing major came up but the team did provide a list of good comments and had good discussion to reach consensus on the necessary changes. Will send out the new revision with list of changes by tomorrow to the CAPWAP list. Ideally we would like the CAPWAP WG to have some internal review time before submitting for external IEEE review. However, the tight schedule prohibits us from doing that. So we will be doing IETF and IEEE review in parallel. It is expected that the draft will continue to be revised and advanced for the next several months. =20 =20 Lily ------_=_NextPart_001_01C421A6.3391B95F Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

CAPWAP Design Team teleconference = minutes

April 13, 2004  8-10am

 

Attendees (11):

Victor, Inderpreet, Partha, Jim, Petros, Ajit, Dave, = Peyush, Matt, Lily, Mani

 

**** Short term milestone: Revise to v02 according to comments received, submit by end of day April 14, ready for IEEE Review = on April 15.

 

***** Draft review: we went through the April 7 = version of the draft page by page, section by section to collect comments and = feedback. Nothing major came up but the team did provide a list of good comments and had = good discussion to reach consensus on the necessary changes. Will send out = the new revision with list of changes by tomorrow to the CAPWAP list. Ideally we = would like the CAPWAP WG to have some internal review time before submitting = for external IEEE review. However, the tight schedule prohibits us from = doing that. So we will be doing IETF and IEEE review in parallel. It is expected = that the draft will continue to be revised and advanced for the next several = months.

 

 

Lily

=00 ------_=_NextPart_001_01C421A6.3391B95F-- --__--__-- Message: 3 Subject: RE: [Capwap] Taxonomy doc Date: Tue, 13 Apr 2004 13:41:09 -0700 From: "Yang, Lily L" To: "Shankar Narayanaswamy" Cc: Hi, Shankar -- It appears that what you are referring to here is an older version of = our docemnt. There is a newer version that we are still working on, and = this version can be found at=20 http://www.capwap.org/draft-ietf-capwap-arch-01.txt=20 In this newer version, you will see that we do move the = encryption/decryption from the real time list to the non-real time list. = We also added content to 4.6 security. Please review and if you feel = there are more you can add on top of that, please don't hesitate to send = to us. We are trying to revise this version by end of tomorrow so that = we can provide to IEEE for their review. So early comments would be = appreciated. Thanks, Lily > -----Original Message----- > From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com]On > Behalf Of Shankar Narayanaswamy > Sent: Monday, April 12, 2004 2:03 AM > To: capwap@frascone.com > Subject: [Capwap] Taxonomy doc >=20 >=20 > All, >=20 > Some thoughts: >=20 > 1. Section 4.2: This section states that the reasoning=20 > behind the Split=20 > MAC architecture is to "offload to the WTP(s) functionality that is=20 > specific and relevant only to the locality of each BSS in=20 > order to allow=20 > the AC to scale to a large number of 'lightweight' WTP devices". The=20 > section also mentions 802.11 encryption/decryption as being a=20 > real-time=20 > service implemented on the WTP. >=20 > This is not always true. For example, at Instant802 (and some=20 > others: Symbol, Aruba?) we perform 802.11=20 > encryption/decryption at the=20 > AC rather than the WTP. 802.11 frames in WEP/TKIP/WPA are transported=20 > using a GRE or some other encapsulation between the WTP and the AC. >=20 > This is driven by two considerations. The first is cost=20 > reduction=20 > in the WTP. We want it to be as cheap and simple as possible=20 > so taking=20 > out encryption/decryption is useful, especially since this=20 > may otherwise=20 > have to be done twice (decrypt the 802.11 packet, then encrypt the IP=20 > packet to tunnel it to the AC). The second is security. We=20 > want to avoid=20 > any risk from a compromised WTP, and therefore not have user=20 > encryption=20 > keys on the AP at all. Since the entire encrypted 802.11 frame is=20 > carried over the wired LAN between WTP and AC, the user's=20 > security level=20 > (WEP, TKIP, WPA, 802.11i) is preserved. >=20 > A side effect of this architecture is that progress in security=20 > protocols and algorithm does not obsolete the WTPs; the ACs implement=20 > the new security schemes instead and the management problem=20 > is therefore=20 > simplified. It can also protect from LAN-side eavesdropping. >=20 > This architecture is susceptible to MIM attack in the=20 > sense that a=20 > MIM on the wired LAN could prevent PDUs from getting to their=20 > destinations, but privacy and message integrity are not lost. >=20 > 2. Section 4.6: This section on security is blank. May I offer the=20 > following prose: >=20 > "There are different kinds of traffic passing between the WTP and=20 > the AC, and each one warrants different considerations. >=20 > "For user traffic, there are several choices. Some=20 > vendors choose to=20 > encrypt/decrypt user traffic at the WTP and send user data in=20 > the clear=20 > between the WTP and the AC. Other vendors choose to=20 > encrypt/decrypt user=20 > traffic at the WTP and then aggregate this traffic into a single=20 > encrypted tunnel to the AC. Yet others transport the=20 > WEP/TKIP/WPA-encrypted 802.11 MAC PDU between the AC and the WTP,=20 > thereby avoiding user encryption keys being stored at the WTP. The=20 > tradeoffs are between complexity at the AC versus the WTP,=20 > and also in=20 > security versus simplicity in the WTP. >=20 > "Most vendors choose to encrypt management traffic=20 > between WTPs and=20 > APs. Most vendors use mutual authentication between WTP and AC to=20 > protect against rogue APs. >=20 > "Some vendors support IPSec VPN termination on ACs; this allows=20 > greater security since wireless clients can use an IPSec VPN over the=20 > air and over the wired network, all the way to the AC. Some=20 > vendors use=20 > Access Control Lists (ACLs) at the WTP or the AC to prevent=20 > unauthorized=20 > clients from using the wireless network." >=20 > 3. I did not see any section on roaming, redundancy, WTP/AC=20 > handoff; do=20 > we need sections on this? If so, I would be happy to write=20 > them. These=20 > are all important issues and some of the taxonomy submissions=20 > do mention=20 > how those vendors approach them. >=20 > Regards, > Shankar > --=20 > Shankar Narayanaswamy, Ph.D. > wireless@shankar.org Mobile: +1 650-387-4593 > http://www.shankar.org E-Fax: +1 253-498-8372 >=20 > _______________________________________________ > Capwap mailing list > Capwap@frascone.com > http://mail.frascone.com/mailman/listinfo/capwap >=20 --__--__-- Message: 4 Date: Wed, 14 Apr 2004 02:55:12 -0700 From: Shankar Narayanaswamy To: "Yang, Lily L" Cc: capwap@frascone.com Subject: Re: [Capwap] Taxonomy doc Lily, Since the newer version was not distributed before (and the feedback deadline was April 12) it is very difficult for someone who is not on the design team to contribute: we are chasing a moving target! It would be more efficient to freeze the document in between feedback cycles. And to change the filename for each draft so we know which one we are talking about. Anyway, my original comment (1) still stands. Section 4.4 (Split MAC) states that the reasoning behind the split MAC architecture is scaling. But cost reduction in the WTP and security are just as important, if not more so. I could even argue the converse: moving functionality away from the WTP and centralizing it introduces massive complexity in the AC as the system scales, and it is easy to reach a level of complexity in the AC that is impractical (from a CPU and I/O processing perspective) with just a couple of dozen access points. This would argue for moving everything except centralized management into the WTPs. So my argument is that cost reduction in the WTP and security are the real reasons behind the split MAC architecture; their importance outweighs the scaling disadvantage. My original comment (3) also still stands: we have not addressed roaming, redundancy and AC/WTP handoff (due to AC failure or load-balancing). This is important because it affects the protocol between ACs and between AC and WTP. Does anyone else see a need to capture this as part of the architecture taxonomy? Thanks, Shankar Yang, Lily L wrote: > Hi, Shankar -- > > It appears that what you are referring to here is an older version of our docemnt. There is a newer version that we are still working on, and this version can be found at > http://www.capwap.org/draft-ietf-capwap-arch-01.txt > In this newer version, you will see that we do move the encryption/decryption from the real time list to the non-real time list. > We also added content to 4.6 security. Please review and if you feel there are more you can add on top of that, please don't hesitate to send to us. We are trying to revise this version by end of tomorrow so that we can provide to IEEE for their review. So early comments would be appreciated. > > Thanks, > Lily > > > >>-----Original Message----- >>From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com]On >>Behalf Of Shankar Narayanaswamy >>Sent: Monday, April 12, 2004 2:03 AM >>To: capwap@frascone.com >>Subject: [Capwap] Taxonomy doc >> >> >>All, >> >>Some thoughts: >> >>1. Section 4.2: This section states that the reasoning >>behind the Split >>MAC architecture is to "offload to the WTP(s) functionality that is >>specific and relevant only to the locality of each BSS in >>order to allow >>the AC to scale to a large number of 'lightweight' WTP devices". The >>section also mentions 802.11 encryption/decryption as being a >>real-time >>service implemented on the WTP. >> >> This is not always true. For example, at Instant802 (and some >>others: Symbol, Aruba?) we perform 802.11 >>encryption/decryption at the >>AC rather than the WTP. 802.11 frames in WEP/TKIP/WPA are transported >>using a GRE or some other encapsulation between the WTP and the AC. >> >> This is driven by two considerations. The first is cost >>reduction >>in the WTP. We want it to be as cheap and simple as possible >>so taking >>out encryption/decryption is useful, especially since this >>may otherwise >>have to be done twice (decrypt the 802.11 packet, then encrypt the IP >>packet to tunnel it to the AC). The second is security. We >>want to avoid >>any risk from a compromised WTP, and therefore not have user >>encryption >>keys on the AP at all. Since the entire encrypted 802.11 frame is >>carried over the wired LAN between WTP and AC, the user's >>security level >>(WEP, TKIP, WPA, 802.11i) is preserved. >> >> A side effect of this architecture is that progress in security >>protocols and algorithm does not obsolete the WTPs; the ACs implement >>the new security schemes instead and the management problem >>is therefore >>simplified. It can also protect from LAN-side eavesdropping. >> >> This architecture is susceptible to MIM attack in the >>sense that a >>MIM on the wired LAN could prevent PDUs from getting to their >>destinations, but privacy and message integrity are not lost. >> >>2. Section 4.6: This section on security is blank. May I offer the >>following prose: >> >> "There are different kinds of traffic passing between the WTP and >>the AC, and each one warrants different considerations. >> >> "For user traffic, there are several choices. Some >>vendors choose to >>encrypt/decrypt user traffic at the WTP and send user data in >>the clear >>between the WTP and the AC. Other vendors choose to >>encrypt/decrypt user >>traffic at the WTP and then aggregate this traffic into a single >>encrypted tunnel to the AC. Yet others transport the >>WEP/TKIP/WPA-encrypted 802.11 MAC PDU between the AC and the WTP, >>thereby avoiding user encryption keys being stored at the WTP. The >>tradeoffs are between complexity at the AC versus the WTP, >>and also in >>security versus simplicity in the WTP. >> >> "Most vendors choose to encrypt management traffic >>between WTPs and >>APs. Most vendors use mutual authentication between WTP and AC to >>protect against rogue APs. >> >> "Some vendors support IPSec VPN termination on ACs; this allows >>greater security since wireless clients can use an IPSec VPN over the >>air and over the wired network, all the way to the AC. Some >>vendors use >>Access Control Lists (ACLs) at the WTP or the AC to prevent >>unauthorized >>clients from using the wireless network." >> >>3. I did not see any section on roaming, redundancy, WTP/AC >>handoff; do >>we need sections on this? If so, I would be happy to write >>them. These >>are all important issues and some of the taxonomy submissions >>do mention >>how those vendors approach them. >> >>Regards, >>Shankar >>-- >>Shankar Narayanaswamy, Ph.D. >>wireless@shankar.org Mobile: +1 650-387-4593 >>http://www.shankar.org E-Fax: +1 253-498-8372 >> >>_______________________________________________ >>Capwap mailing list >>Capwap@frascone.com >>http://mail.frascone.com/mailman/listinfo/capwap >> > > _______________________________________________ > Capwap mailing list > Capwap@frascone.com > http://mail.frascone.com/mailman/listinfo/capwap -- Shankar Narayanaswamy, Ph.D. wireless@shankar.org Mobile: +1 650-387-4593 http://www.shankar.org E-Fax: +1 253-498-8372 --__--__-- Message: 5 Date: Wed, 14 Apr 2004 11:09:14 +0100 From: Michael Cheng Subject: RE: [Capwap] About LWAPP's security To: "'capwap@frascone.com'" Hi Scott, Thank you very much for your quick response. Sorry to reply late. I was off for a few days. We wrote the paper purely for our own research interest and did not plan to attack one particular design. We noticed the problem last June( maybe you still can find my email in the group) and wrote the paper under a request for academic reason last December. Because we believed that the lwapp team would release new version after the old draft expired, we didn't post the paper. However, it seems that the LWAPP team becomes inactive after establishing CAPWAP or am I wrong? We think we should post the paper purely for academic reason. Only a few comments on your response. Moreover, I updated the paper with some minor corrections. Scott G. Kelly wrote: > Hi Michael, > > Michael Cheng wrote: > > > Hi, > > > > We wrote a paper to briefly analyze the security aspect of LWAPP. > > If anyone is still interested in LWAPP, the paper is avaible > > on http://www.cs.mdx.ac.uk/staffpages/m_cheng/link/lwapp_g.pdf > > Thanks for posting this paper. After giving it a quick review, I have a few comments. I'd like to preface this by saying that this is not currently a working group item, and so this discussion is purely academic, and it may be terminatated by the wg chairs at any time. Nonetheless, I think it should hold some interest for wg members, and the paper deserves some response. > > In order to properly analyze the security properties of the protocol discussed in the draft, you must understand the assumptions under which the protocol operates. These were described in an internal document here, but not in detail in the lwapp draft, so you are at a disadvantage in that regard. > > One primary architectural assumption in the original lwapp security design was that the AP's have a direct layer 2 connection to the AR, which in our case is a switch. It is also assumed that this connection is relatively protected with regard to physical security (e.g. runs through the ceiling of your office building to your lockable server room). That is, the security protocol discussed in the draft was not designed to operate over a hostile network. I believe this was made clear in subsequent discussions on this list. I totally agree with you that when designing a security protocol we should consider the protocol application environment and evaluate the potentional threats. However, I believe all of us agree with that we can not just design a protocol to cope with the threats we found. A general way to design a protocol is first to analyze the available cryptography primitives( enc: AES, RSA, ECC, ..., hash: ..., sometimes patents are concerned) second to decide the acceptable protocol complexity (computation, bandwith, implementation) third to decide the general protocol type (symmetric or aymmetric-based, password-based, key agreement or key transport, AK or AKC) four to design a protocol (or some) as rigerous as possible (formally provable with some general properties: known-key attack, key-comprise impersonation...) fifth to evaluate the protocol's ability to counter the potential threats. (Some attacks in networks can not be defended by only designing a generally good protocol. Some protocol security properties are undesireable in the application environment.) sixth to make a choice based on the balance between complexity and security. Of cz sometime we also should consider whether the parameter negotiation is necessary. I believe a rigerous protocol with tolerable complexity is NEVER a bad choice. For example protocol 3 in our paper, to provide explicit key-confirmation, AR only needs to perform one more hash operation. Maybe one will argue that the opening key attack is not feasible in LWAPP. However when we tell customers that there is a bug, but the attack is extremely unlikely, customers maybe will not be convinced. On the other hand, why not use a small cost to remove the potential bug with an explicity key confirmation? Moreover, we cannot forcast the future. If we can design a protocol with acceptable complexity which is secure in the hotile environment, why don't we do it ? > > In our internal analysis we concluded, as do you, that there is no significant security benefit inherent in encrypting the wep keys, since anyone who can see the encrypted lwapp channel can see the unencrypted data traffic. But try telling a customer that you're sending encryption keys over the network in the clear, but that they shouldn't worry about this. Also, in the case where an attacker can't insert himself as a MiM, there is a small security benefit: in these cases he can only eavesdrop; he cannot modify the traffic flow, whereas with compromised wep keys he could inject traffic. But this is an admittedly small benefit. > > There is some additional benefit in the encrypted/authenticated command channel: the AP control API is protected (including firmware downloads). This prevents the introduction of hostile firmware and/or configuration into the AP which might be used as building blocks in an attack. > > After related discussions on this list and the subsequent publication of the lwapp security requirements draft (expired, but still available at http://www.legra.com/downloads/IETF_Internet_Draft_LWAPP_Security.pdf ), it should be clear that the mechanism discussed in the original lwapp draft was quite limited, and is not viewed as sufficient solution for generalized lwapp security. > > Regarding various discussions about the authentication mechanism, you guys are mistaken in some of your assumptions. Both sides are supposed to be authenticated (not just the AR), and clearly you want to look at the IDs in the certs as part of the verification. We did not publish that level of detail in the 00 draft, but this does not mean it has not been considered. That is great. However we didnot see any new publication in the last few months. Is LWAPP still alive? I can't quite understand why LWAPP runs out of steam. or am I wrong? ( I did not follow the progress tightly.) In fact, ID and validality of certifications are problems out of the scope of designing secure protocols. Two problems are faced by any certification-based protocol. However, these two problems are particularly important in LWAPP-like protocols and should be addressed in the proposal if certification-based protocol is used. Password-based protocol has no such problem because AR's ID and password must be preconfigured in AP. For certification revocation, commonly there are two solutions. A: after establishing the channel, AP checks the CRL. (for example EAP-TLS uses this method) B: AR relays the request and response. (We proposed this way) Both methods have advantages and disadvantages. About ID, I agree with that this is more likely about implementation and deployment. > > Verifying IDs implies some preconfiguration during the initial staging, but this should come as no surprise to someone experienced at deploying this sort of gear. Discussion of these points was beyond the scope of the draft, and I'm sure these issues will be addressed if this wg moves forward with an lwapp-like protocol. > > Scott > > > Michael --__--__-- _______________________________________________ Capwap mailing list Capwap@frascone.com http://mail.frascone.com/mailman/listinfo/capwap End of Capwap Digest From lily.l.yang@intel.com Thu Apr 15 16:40:54 2004 From: lily.l.yang@intel.com (Yang, Lily L) Date: Thu, 15 Apr 2004 08:40:54 -0700 Subject: [Capwap] Taxonomy doc Message-ID: <2AF68A477DD44C4EBCBE338C24E7A9EE5C422F@orsmsx408.jf.intel.com> I think 2 and 3 are not specific to Split MAC but are benefits by a standard WTP/AC protocol. -----Original Message----- From: Shankar Narayanaswamy [mailto:wireless@shankar.org]=20 Sent: Wednesday, April 14, 2004 11:32 PM To: Yang, Lily L Cc: capwap@frascone.com Subject: Re: [Capwap] Taxonomy doc More thoughts on reasoning for the split MAC architecture: 1. Security - extend the wireless security back to the AC. 2. To allow switch vendors to independently innovate products and=20 protocols from WTP vendors (given a standard WTP/AC protocol) 3. To allow WTP vendors to innovate products independently from switch=20 vendors - e.g. different form factors, higher speeds, etc. Thanks, Shankar Yang, Lily L wrote: > Hi, Shankar -- >=20 > Sorry about the versioning problem. I agree that it has been a moving > target because of the tight schedule and our desire to improve on the > draft as much as possible.=20 > I agree with your comments (1) and (3). I probably can incorporate (1) > into v02 today, but (3) needs more discussion and work and so I would > like to defer that into later version. Is that ok with you? >=20 > Lily >=20 > -----Original Message----- > From: Shankar Narayanaswamy [mailto:wireless@shankar.org]=20 > Sent: Wednesday, April 14, 2004 2:55 AM > To: Yang, Lily L > Cc: capwap@frascone.com > Subject: Re: [Capwap] Taxonomy doc >=20 > Lily, >=20 > Since the newer version was not distributed before (and the feedback=20 > deadline was April 12) it is very difficult for someone who is not on=20 > the design team to contribute: we are chasing a moving target! It would=20 > be more efficient to freeze the document in between feedback cycles. And >=20 > to change the filename for each draft so we know which one we are=20 > talking about. >=20 > Anyway, my original comment (1) still stands. Section 4.4 (Split MAC)=20 > states that the reasoning behind the split MAC architecture is scaling.=20 > But cost reduction in the WTP and security are just as important, if not >=20 > more so. I could even argue the converse: moving functionality away from >=20 > the WTP and centralizing it introduces massive complexity in the AC as > the system scales, and it is easy to reach a level of complexity in the=20 > AC that is impractical (from a CPU and I/O processing perspective) with=20 > just a couple of dozen access points. This would argue for moving=20 > everything except centralized management into the WTPs. >=20 > So my argument is that cost reduction in the WTP and security are the=20 > real reasons behind the split MAC architecture; their importance=20 > outweighs the scaling disadvantage. >=20 >=20 > My original comment (3) also still stands: we have not addressed=20 > roaming, redundancy and AC/WTP handoff (due to AC failure or=20 > load-balancing). This is important because it affects the protocol=20 > between ACs and between AC and WTP. Does anyone else see a need to=20 > capture this as part of the architecture taxonomy? >=20 > Thanks, > Shankar >=20 >=20 > Yang, Lily L wrote: >=20 >>Hi, Shankar -- >> >>It appears that what you are referring to here is an older version of >=20 > our docemnt. There is a newer version that we are still working on, and > this version can be found at=20 >=20 >>http://www.capwap.org/draft-ietf-capwap-arch-01.txt=20 >>In this newer version, you will see that we do move the >=20 > encryption/decryption from the real time list to the non-real time list. >=20 >=20 >>We also added content to 4.6 security. Please review and if you feel >=20 > there are more you can add on top of that, please don't hesitate to send > to us. We are trying to revise this version by end of tomorrow so that > we can provide to IEEE for their review. So early comments would be > appreciated. >=20 >>Thanks, >>Lily >> >> >> >> >>>-----Original Message----- >>>From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com]On >>>Behalf Of Shankar Narayanaswamy >>>Sent: Monday, April 12, 2004 2:03 AM >>>To: capwap@frascone.com >>>Subject: [Capwap] Taxonomy doc >>> >>> >>>All, >>> >>>Some thoughts: >>> >>>1. Section 4.2: This section states that the reasoning=20 >>>behind the Split=20 >>>MAC architecture is to "offload to the WTP(s) functionality that is=20 >>>specific and relevant only to the locality of each BSS in=20 >>>order to allow=20 >>>the AC to scale to a large number of 'lightweight' WTP devices". The=20 >>>section also mentions 802.11 encryption/decryption as being a=20 >>>real-time=20 >>>service implemented on the WTP. >>> >>> This is not always true. For example, at Instant802 (and some=20 >>>others: Symbol, Aruba?) we perform 802.11=20 >>>encryption/decryption at the=20 >>>AC rather than the WTP. 802.11 frames in WEP/TKIP/WPA are transported >>>using a GRE or some other encapsulation between the WTP and the AC. >>> >>> This is driven by two considerations. The first is cost=20 >>>reduction=20 >>>in the WTP. We want it to be as cheap and simple as possible=20 >>>so taking=20 >>>out encryption/decryption is useful, especially since this=20 >>>may otherwise=20 >>>have to be done twice (decrypt the 802.11 packet, then encrypt the IP >>>packet to tunnel it to the AC). The second is security. We=20 >>>want to avoid=20 >>>any risk from a compromised WTP, and therefore not have user=20 >>>encryption=20 >>>keys on the AP at all. Since the entire encrypted 802.11 frame is=20 >>>carried over the wired LAN between WTP and AC, the user's=20 >>>security level=20 >>>(WEP, TKIP, WPA, 802.11i) is preserved. >>> >>> A side effect of this architecture is that progress in security=20 >>>protocols and algorithm does not obsolete the WTPs; the ACs implement >>>the new security schemes instead and the management problem=20 >>>is therefore=20 >>>simplified. It can also protect from LAN-side eavesdropping. >>> >>> This architecture is susceptible to MIM attack in the=20 >>>sense that a=20 >>>MIM on the wired LAN could prevent PDUs from getting to their=20 >>>destinations, but privacy and message integrity are not lost. >>> >>>2. Section 4.6: This section on security is blank. May I offer the=20 >>>following prose: >>> >>> "There are different kinds of traffic passing between the WTP and=20 >>>the AC, and each one warrants different considerations. >>> >>> "For user traffic, there are several choices. Some=20 >>>vendors choose to=20 >>>encrypt/decrypt user traffic at the WTP and send user data in=20 >>>the clear=20 >>>between the WTP and the AC. Other vendors choose to=20 >>>encrypt/decrypt user=20 >>>traffic at the WTP and then aggregate this traffic into a single=20 >>>encrypted tunnel to the AC. Yet others transport the=20 >>>WEP/TKIP/WPA-encrypted 802.11 MAC PDU between the AC and the WTP,=20 >>>thereby avoiding user encryption keys being stored at the WTP. The=20 >>>tradeoffs are between complexity at the AC versus the WTP,=20 >>>and also in=20 >>>security versus simplicity in the WTP. >>> >>> "Most vendors choose to encrypt management traffic=20 >>>between WTPs and=20 >>>APs. Most vendors use mutual authentication between WTP and AC to=20 >>>protect against rogue APs. >>> >>> "Some vendors support IPSec VPN termination on ACs; this allows=20 >>>greater security since wireless clients can use an IPSec VPN over the >>>air and over the wired network, all the way to the AC. Some=20 >>>vendors use=20 >>>Access Control Lists (ACLs) at the WTP or the AC to prevent=20 >>>unauthorized=20 >>>clients from using the wireless network." >>> >>>3. I did not see any section on roaming, redundancy, WTP/AC=20 >>>handoff; do=20 >>>we need sections on this? If so, I would be happy to write=20 >>>them. These=20 >>>are all important issues and some of the taxonomy submissions=20 >>>do mention=20 >>>how those vendors approach them. >>> >>>Regards, >>>Shankar >>>--=20 >>>Shankar Narayanaswamy, Ph.D. >>>wireless@shankar.org Mobile: +1 650-387-4593 >>>http://www.shankar.org E-Fax: +1 253-498-8372 >>> >>>_______________________________________________ >>>Capwap mailing list >>>Capwap@frascone.com >>>http://mail.frascone.com/mailman/listinfo/capwap >>> >> >>_______________________________________________ >>Capwap mailing list >>Capwap@frascone.com >>http://mail.frascone.com/mailman/listinfo/capwap >=20 >=20 >=20 --=20 Shankar Narayanaswamy, Ph.D. wireless@shankar.org Mobile: +1 650-387-4593 http://www.shankar.org E-Fax: +1 253-498-8372 From mmani@avaya.com Fri Apr 16 16:12:12 2004 From: mmani@avaya.com (Mani, Mahalingam (Mahalingam)) Date: Fri, 16 Apr 2004 09:12:12 -0600 Subject: [Capwap] Taxonomy doc Message-ID: Malini, > -----Original Message----- [...] >=20 >=20 > Hello All, > I would like to get clarification on the below statement [Reference: Page > 23 v01]. > The document extract is given below. > "In most cases, since WTP devices are IP-addressable, > any of the direct connection, L2-switched, or > L3-routed topologies of Section 2.2 can be used." >=20 > With respect to the above statement,I would like to know, > When i implement AC to support all the 3 modes(direct connection, > L2-switched, or > L3-routed), is it possible that same AC is connected by L2 with one WTP > and L3 connected with another WTP? >=20 [Mani, Mahalingam (Mahalingam)] it appears to me to be more of a configuration / implementation question than an architectural one. I will leave it to the contributing configurations to state if they allow it. -mani > Because in Page 16, Figure 4 direct connection as well as switch > connection > is shown whereas the Figure 5 does not have such combination of topology > in > a single AC. >=20 > Thanks > Malini Raghavendra >=20 >=20 >=20 [...] From lily.l.yang@intel.com Fri Apr 16 09:10:06 2004 From: lily.l.yang@intel.com (Yang, Lily L) Date: Fri, 16 Apr 2004 01:10:06 -0700 Subject: [Capwap] FW: submission Message-ID: <2AF68A477DD44C4EBCBE338C24E7A9EE5C423A@orsmsx408.jf.intel.com> This is a multi-part message in MIME format. ------_=_NextPart_001_01C4238A.3A7394B2 Content-Type: multipart/alternative; boundary="----_=_NextPart_002_01C4238A.3A7394B2" ------_=_NextPart_002_01C4238A.3A7394B2 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Hi, all=20 =20 Here is v02 of the CAPWAP Architecture Taxonomy document that I just posted to the Internet-Drafts@ietf.org. We have incorporated most of the comments we received so far from the CAPWAP mailing list and Design Team.=20 =20 Here is a list of the major changes since v01: * Complete restructuring of Section 4 and added some new text to Section 4 as well: This section has gone thorough major content reorganization for better presentation of the material. * Added new text to Section 3 * Added new text to Section 6 (summary). * Security Consideration rewritten. =20 Here is a list of minor changes: * Entire document: removed reference to "Split WLAN Architecture" and "Hierarchical WLAN Architecture", use "Centralized WLAN Architecture" instead. * 1.3: "AC" reworded, "mesh WTP" removed. "Split WLAN Architecture" and "Hierarchical WLAN Architecture" removed. * 1.4 "Split WLAN Architecture" and "Hierarchical WLAN Architecture" added as historic terminology * 2: intro reworded to fix grammar. * 2.1 rewrote part of the text. * 2.2: "clear channel assessment" is removed from the list. * 5: added Editor's note. Fixed the figure. =20 While this revision can be used for both IETF and IEEE review, the design team intends to continue revise the draft based on feedback received. So your comments are most welcome. =20 Thanks, =20 Lily =20 -----Original Message----- From: Yang, Lily L=20 Sent: Friday, April 16, 2004 1:01 AM To: 'Internet-Drafts@ietf.org' Subject: submission =20 =20 ------_=_NextPart_002_01C4238A.3A7394B2 Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Hi, all

 

Here is v02 of the CAPWAP = Architecture Taxonomy document that I just posted to the Internet-Drafts@ietf.org.

 We have incorporated most of = the comments we received so far from the CAPWAP mailing list and Design = Team.

 

Here is a list of the major changes = since v01:

* Complete restructuring of Section = 4 and added some new text to Section 4 as well: This section has gone thorough = major content reorganization for better presentation of the = material.

* Added new text to Section = 3

* Added new text to Section 6 = (summary).

* Security Consideration = rewritten.

 

Here is a list of minor = changes:

* Entire document: removed = reference to "Split WLAN Architecture" and "Hierarchical WLAN Architecture", use "Centralized WLAN Architecture" = instead.

* 1.3: "AC" = reworded, "mesh WTP" removed. "Split WLAN Architecture" and "Hierarchical WLAN Architecture" removed.

* 1.4 = "Split WLAN Architecture" and "Hierarchical WLAN Architecture" added = as historic terminology

* 2: intro reworded to fix = grammar.

* 2.1 rewrote part of the = text.

* 2.2: "clear channel assessment" is removed from the list.

* 5: added Editor's note. = Fixed the figure.

 

While this revision can be used for = both IETF and IEEE review, the design team intends to continue revise the = draft based on feedback received. So your comments are most = welcome.

 

Thanks,

 

Lily

 

-----Original Message-----
From: Yang, Lily L
Sent:
Friday, April 16, 2004 1:01 AM
To: = 'Internet-Drafts@ietf.org'
Subject: = submission

 

 

=00 ------_=_NextPart_002_01C4238A.3A7394B2-- ------_=_NextPart_001_01C4238A.3A7394B2 Content-Type: text/plain; name="draft-ietf-capwap-arch-02.txt" Content-Transfer-Encoding: base64 Content-Description: draft-ietf-capwap-arch-02.txt Content-Disposition: attachment; filename="draft-ietf-capwap-arch-02.txt" DQoNCkNBUFdBUCBXb3JraW5nIEdyb3VwICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgTC4gWWFuZyAoRWRpdG9yKQ0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIEludGVsIENvcnAuDQpFeHBpcmVzOiBPY3RvYmVyIDE1 LCAyMDA0ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBQLiBaZXJmb3MNCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgVUNMQQ0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIEUuIFNhZG90DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQXZheWENCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBcHJpbCAx NiwgMjAwNA0KDQoNCiBBcmNoaXRlY3R1cmUgVGF4b25vbXkgZm9yIENvbnRyb2wgYW5kIFByb3Zp c2lvbmluZyBvZiBXaXJlbGVzcyBBY2Nlc3MNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg UG9pbnRzKENBUFdBUCkNCiAgICAgICAgICAgICAgICAgICAgICAgZHJhZnQtaWV0Zi1jYXB3YXAt YXJjaC0wMg0KDQpTdGF0dXMgb2YgdGhpcyBNZW1vDQoNCiAgIFRoaXMgZG9jdW1lbnQgaXMgYW4g SW50ZXJuZXQtRHJhZnQgYW5kIGlzIGluIGZ1bGwgY29uZm9ybWFuY2Ugd2l0aA0KICAgYWxsIHBy b3Zpc2lvbnMgb2YgU2VjdGlvbiAxMCBvZiBSRkMyMDI2Lg0KDQogICBJbnRlcm5ldC1EcmFmdHMg YXJlIHdvcmtpbmcgZG9jdW1lbnRzIG9mIHRoZSBJbnRlcm5ldCBFbmdpbmVlcmluZw0KICAgVGFz ayBGb3JjZSAoSUVURiksIGl0cyBhcmVhcywgYW5kIGl0cyB3b3JraW5nIGdyb3Vwcy4gTm90ZSB0 aGF0IG90aGVyDQogICBncm91cHMgbWF5IGFsc28gZGlzdHJpYnV0ZSB3b3JraW5nIGRvY3VtZW50 cyBhcyBJbnRlcm5ldC1EcmFmdHMuDQoNCiAgIEludGVybmV0LURyYWZ0cyBhcmUgZHJhZnQgZG9j dW1lbnRzIHZhbGlkIGZvciBhIG1heGltdW0gb2Ygc2l4IG1vbnRocw0KICAgYW5kIG1heSBiZSB1 cGRhdGVkLCByZXBsYWNlZCwgb3Igb2Jzb2xldGVkIGJ5IG90aGVyIGRvY3VtZW50cyBhdCBhbnkN CiAgIHRpbWUuIEl0IGlzIGluYXBwcm9wcmlhdGUgdG8gdXNlIEludGVybmV0LURyYWZ0cyBhcyBy ZWZlcmVuY2UNCiAgIG1hdGVyaWFsIG9yIHRvIGNpdGUgdGhlbSBvdGhlciB0aGFuIGFzICJ3b3Jr IGluIHByb2dyZXNzLiINCg0KICAgVGhlIGxpc3Qgb2YgY3VycmVudCBJbnRlcm5ldC1EcmFmdHMg Y2FuIGJlIGFjY2Vzc2VkIGF0IGh0dHA6Ly8NCiAgIHd3dy5pZXRmLm9yZy9pZXRmLzFpZC1hYnN0 cmFjdHMudHh0Lg0KDQogICBUaGUgbGlzdCBvZiBJbnRlcm5ldC1EcmFmdCBTaGFkb3cgRGlyZWN0 b3JpZXMgY2FuIGJlIGFjY2Vzc2VkIGF0DQogICBodHRwOi8vd3d3LmlldGYub3JnL3NoYWRvdy5o dG1sLg0KDQogICBUaGlzIEludGVybmV0LURyYWZ0IHdpbGwgZXhwaXJlIG9uIE9jdG9iZXIgMTUs IDIwMDQuDQoNCkNvcHlyaWdodCBOb3RpY2UNCg0KICAgQ29weXJpZ2h0IChDKSBUaGUgSW50ZXJu ZXQgU29jaWV0eSAoMjAwNCkuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuDQoNCkFic3RyYWN0DQoNCiAg IFRoaXMgZG9jdW1lbnQgcHJvdmlkZXMgYSB0YXhvbm9teSBvZiB0aGUgYXJjaGl0ZWN0dXJlcyBl bXBsb3llZCBpbg0KICAgdGhlIGV4aXN0aW5nIElFRUUgODAyLjExIHByb2R1Y3RzIGluIHRoZSBt YXJrZXQsIGJ5IGFuYWx5emluZyBXTEFODQogICAoV2lyZWxlc3MgTEFOKSBmdW5jdGlvbnMgYW5k IHNlcnZpY2VzIGFuZCBkZXNjcmliaW5nIHRoZSBkaWZmZXJlbnQNCiAgIHZhcmlhbnRzIGluIGRp c3RyaWJ1dGluZyB0aGVzZSBmdW5jdGlvbnMgYW5kIHNlcnZpY2VzIGFtb25nIHRoZQ0KICAgYXJj aGl0ZWN0dXJhbCBlbnRpdGllcy4gVGhpcyB0YXhvbm9teSBtYXkgYmUgdXRpbGl6ZWQgYnkgdGhl IElFRUUNCiAgIDgwMi4xMSBXb3JraW5nIEdyb3VwIGFzIGlucHV0IHRvIHRoZWlyIHRhc2sgb2Yg ZGVmaW5pbmcgdGhlIEFjY2Vzcw0KICAgUG9pbnQgKEFQKSBmdW5jdGlvbmFsIGFyY2hpdGVjdHVy ZS4NCg0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwg MjAwNCAgICAgICAgICAgICAgIFtQYWdlIDFdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAg Q0FQV0FQIEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQpUYWJs ZSBvZiBDb250ZW50cw0KDQogICAxLiAgRGVmaW5pdGlvbnMgIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDQNCiAgICAgMS4xICAgQ29udmVudGlvbnMg dXNlZCBpbiB0aGlzIGRvY3VtZW50ICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAgNA0KICAgICAx LjIgICBJRUVFIDgwMi4xMSBEZWZpbml0aW9ucyAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuICA0DQogICAgIDEuMyAgIFRlcm1pbm9sb2d5IFVzZWQgaW4gdGhpcyBEb2N1bWVudCAg LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gIDUNCiAgICAgMS40ICAgVGVybWlub2xvZ3kgVXNlZCBI aXN0b3JpY2FsbHkgYnV0IE5vdCBSZWNvbW1lbmRlZCAgLiAuIC4gLiAgNw0KICAgMi4gIEludHJv ZHVjdGlvbiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu ICA4DQogICAgIDIuMSAgIElFRUUgODAyLjExIFdMQU4gRnVuY3Rpb25zIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gIDgNCiAgICAgMi4yICAgQ0FQV0FQIEZ1bmN0aW9ucyAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAxMA0KICAgICAyLjMgICBXTEFOIEFy Y2hpdGVjdHVyZSBQcm9saWZlcmF0aW9uICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDExDQog ICAgIDIuNCAgIFRheG9ub215IE1ldGhvZG9sb2d5IGFuZCBEb2N1bWVudCBPcmdhbml6YXRpb24g LiAuIC4gLiAuIC4gMTMNCiAgIDMuICBBdXRvbm9tb3VzIEFyY2hpdGVjdHVyZSAgLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAxNQ0KICAgICAzLjEgICBPdmVydmlldyAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDE1DQogICAgIDMu MiAgIFNlY3VyaXR5IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gMTUNCiAgIDQuICBDZW50cmFsaXplZCBXTEFOIEFyY2hpdGVjdHVyZSAgLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAxNw0KICAgICA0LjEgICBJbnRlcmNvbm5lY3Rpb24gVG9w b2xvZ3kgYmV0d2VlbiBXVFBzIGFuZCBBQ3MgIC4gLiAuIC4gLiAuIDE4DQogICAgIDQuMiAgIE92 ZXJ2aWV3IG9mIFRocmVlIENlbnRyYWxpemVkIFdMQU4gQXJjaGl0ZWN0dXJlcyAuIC4gLiAuIC4g MTkNCiAgICAgNC4zICAgTG9jYWwgTUFDICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAyMA0KICAgICA0LjQgICBTcGxpdCBNQUMgIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDI0DQogICAgIDQuNSAgIFJlbW90ZSBN QUMgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gMjgNCiAg ICAgNC42ICAgQ29tcGFyaXNvbnMgb2YgTG9jYWwgTUFDLCBTcGxpdCBNQUMgYW5kIFJlbW90ZSBN QUMgLiAuIC4gLiAyOA0KICAgICA0LjcgICBDb21tdW5pY2F0aW9uIEludGVyZmFjZSBiZXR3ZWVu IFdUUHMgYW5kIEFDcyAuIC4gLiAuIC4gLiAuIDI5DQogICAgIDQuOCAgIFNlY3VyaXR5IC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gMzANCiAgICAgICA0 LjguMSAgIENsaWVudCBEYXRhIFNlY3VyaXR5IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAzMA0KICAgICAgIDQuOC4yICAgU2VjdXJpdHkgb2YgY29udHJvbCBjaGFubmVsIGJldHdl ZW4gV1RQIGFuZCBBQyAuIC4gLiAuIDMxDQogICA1LiAgRGlzdHJpYnV0ZWQgTWVzaCBBcmNoaXRl Y3R1cmUgIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gMzINCiAgICAgNS4xICAgU2Vj dXJpdHkgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAz Mg0KICAgNi4gIFN1bW1hcnkgYW5kIENvbmNsdXNpb25zICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIDMzDQogICAgIDYuMSAgIFRheG9ub215IFN1bW1hcnkgLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gMzMNCiAgICAgNi4yICAgTmV4dCBTdGVw cyAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAzNQ0KICAg Ny4gIFNlY3VyaXR5IENvbnNpZGVyYXRpb25zICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIC4gLiAuIDM2DQogICA4LiAgQWNrbm93bGVkZ2VtZW50cyAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gMzcNCiAgIDkuICBSZWZlcmVuY2VzIC4gLiAuIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAzOA0KICAgICAgIEF1 dGhvcnMnIEFkZHJlc3NlcyAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIC4g LiAuIDM5DQogICBBLiAgV0xBTiBBcmNoaXRlY3R1cmUgU3VydmV5IFRlbXBsYXRlICAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gNDANCiAgIEIuICBTdXJ2ZXkgQ29udHJpYnV0aW9uIEZvciBB cmNoaXRlY3R1cmUgMSAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA0MQ0KICAgQy4gIFN1cnZleSBD b250cmlidXRpb24gRm9yIEFyY2hpdGVjdHVyZSAyIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDQ2 DQogICBELiAgU3VydmV5IENvbnRyaWJ1dGlvbiBGb3IgQXJjaGl0ZWN0dXJlIDMgLiAuIC4gLiAu IC4gLiAuIC4gLiAuIC4gNTANCiAgIEUuICBTdXJ2ZXkgQ29udHJpYnV0aW9uIEZvciBBcmNoaXRl Y3R1cmUgNCAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA1Mw0KICAgRi4gIFN1cnZleSBDb250cmli dXRpb24gRm9yIEFyY2hpdGVjdHVyZSA1IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDU3DQogICBH LiAgU3VydmV5IENvbnRyaWJ1dGlvbiBGb3IgQXJjaGl0ZWN0dXJlIDYgLiAuIC4gLiAuIC4gLiAu IC4gLiAuIC4gNjENCiAgIEguICBTdXJ2ZXkgQ29udHJpYnV0aW9uIEZvciBBcmNoaXRlY3R1cmUg NyAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gLiA2NQ0KICAgSS4gIFN1cnZleSBDb250cmlidXRpb24g Rm9yIEFyY2hpdGVjdHVyZSA4IC4gLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDY3DQogICBKLiAgU3Vy dmV5IENvbnRyaWJ1dGlvbiBGb3IgQXJjaGl0ZWN0dXJlIDkgLiAuIC4gLiAuIC4gLiAuIC4gLiAu IC4gNzANCiAgIEsuICBTdXJ2ZXkgQ29udHJpYnV0aW9uIEZvciBBcmNoaXRlY3R1cmUgMTAgIC4g LiAuIC4gLiAuIC4gLiAuIC4gLiA3NA0KICAgTC4gIFN1cnZleSBDb250cmlidXRpb24gRm9yIEFy Y2hpdGVjdHVyZSAxMSAgLiAuIC4gLiAuIC4gLiAuIC4gLiAuIDc3DQogICBNLiAgU3VydmV5IENv bnRyaWJ1dGlvbiBGb3IgQXJjaGl0ZWN0dXJlIDEyICAuIC4gLiAuIC4gLiAuIC4gLiAuIC4gODIN Cg0KDQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQg ICAgICAgICAgICAgICBbUGFnZSAyXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdB UCBBcmNoLiBUYXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0KICAgTi4gIFN1 cnZleSBDb250cmlidXRpb24gRm9yIEFyY2hpdGVjdHVyZSAxMyAgLiAuIC4gLiAuIC4gLiAuIC4g LiAuIDg0DQogICBPLiAgU3VydmV5IENvbnRyaWJ1dGlvbiBGb3IgQXJjaGl0ZWN0dXJlIDE0ICAu IC4gLiAuIC4gLiAuIC4gLiAuIC4gODYNCiAgICAgICBJbnRlbGxlY3R1YWwgUHJvcGVydHkgYW5k IENvcHlyaWdodCBTdGF0ZW1lbnRzIC4gLiAuIC4gLiAuIC4gLiA4OA0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMg T2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAgICAgIFtQYWdlIDNdDQoMDQpJbnRlcm5ldC1EcmFm dCAgICAgICAgICAgQ0FQV0FQIEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIw MDQNCg0KDQoxLiAgRGVmaW5pdGlvbnMNCg0KMS4xICBDb252ZW50aW9ucyB1c2VkIGluIHRoaXMg ZG9jdW1lbnQNCg0KICAgVGhlIGtleSB3b3JkcyAiTVVTVCIsICJNVVNUIE5PVCIsICJSRVFVSVJF RCIsICJTSEFMTCIsICJTSEFMTCBOT1QiLA0KICAgIlNIT1VMRCIsICJTSE9VTEQgTk9UIiwgIlJF Q09NTUVOREVEIiwgIk1BWSIsIGFuZCAiT1BUSU9OQUwiIGluIHRoaXMNCiAgIGRvY3VtZW50IGFy ZSB0byBiZSBpbnRlcnByZXRlZCBhcyBkZXNjcmliZWQgaW4gUkZDIDIxMTkgWzRdLg0KDQoxLjIg IElFRUUgODAyLjExIERlZmluaXRpb25zDQoNCiAgIFN0YXRpb24gKFNUQSk6IEFueSBkZXZpY2Ug dGhhdCBjb250YWlucyBhbiBJRUVFIDgwMi4xMSBjb25mb3JtYW50DQogICBtZWRpdW0gYWNjZXNz IGNvbnRyb2wgKE1BQykgYW5kIHBoeXNpY2FsIGxheWVyIChQSFkpIGludGVyZmFjZSB0byB0aGUN CiAgIHdpcmVsZXNzIG1lZGl1bSAoV00pLg0KDQogICBBY2Nlc3MgUG9pbnQgKEFQKTogQW55IGVu dGl0eSB0aGF0IGhhcyBzdGF0aW9uIGZ1bmN0aW9uYWxpdHkgYW5kDQogICBwcm92aWRlcyBhY2Nl c3MgdG8gdGhlIGRpc3RyaWJ1dGlvbiBzZXJ2aWNlcywgdmlhIHRoZSB3aXJlbGVzcyBtZWRpdW0N CiAgIChXTSkgZm9yIGFzc29jaWF0ZWQgc3RhdGlvbnMuDQoNCiAgIEJhc2ljIFNlcnZpY2UgU2V0 IChCU1MpOiBBIHNldCBvZiBzdGF0aW9ucyBjb250cm9sbGVkIGJ5IGEgc2luZ2xlDQogICBjb29y ZGluYXRpb24gZnVuY3Rpb24uDQoNCiAgIFN0YXRpb24gU2VydmljZSAoU1MpOiBUaGUgc2V0IG9m IHNlcnZpY2VzIHRoYXQgc3VwcG9ydCB0cmFuc3BvcnQgb2YNCiAgIG1lZGl1bSBhY2Nlc3MgY29u dHJvbCAoTUFDKSBzZXJ2aWNlIGRhdGEgdW5pdHMgKE1TRFVzKSBiZXR3ZWVuDQogICBzdGF0aW9u cyB3aXRoaW4gYSBiYXNpYyBzZXJ2aWNlIHNldCAoQlNTKS4NCg0KICAgRGlzdHJpYnV0aW9uIFN5 c3RlbSAoRFMpOiBBIHN5c3RlbSB1c2VkIHRvIGludGVyY29ubmVjdCBhIHNldCBvZg0KICAgYmFz aWMgc2VydmljZSBzZXRzIChCU1NzKSBhbmQgaW50ZWdyYXRlZCBsb2NhbCBhcmVhIG5ldHdvcmtz IChMQU5zKQ0KICAgdG8gY3JlYXRlIGFuIGV4dGVuZGVkIHNlcnZpY2Ugc2V0IChFU1MpLg0KDQog ICBFeHRlbmRlZCBTZXJ2aWNlIFNldCAoRVNTKTogQSBzZXQgb2Ygb25lIG9yIG1vcmUgaW50ZXJj b25uZWN0ZWQgYmFzaWMNCiAgIHNlcnZpY2Ugc2V0cyAoQlNTcykgYW5kIGludGVncmF0ZWQgbG9j YWwgYXJlYSBuZXR3b3JrcyAoTEFOcykgdGhhdA0KICAgYXBwZWFycyBhcyBhIHNpbmdsZSBCU1Mg dG8gdGhlIGxvZ2ljYWwgbGluayBjb250cm9sIGxheWVyIGF0IGFueQ0KICAgc3RhdGlvbiBhc3Nv Y2lhdGVkIHdpdGggb25lIG9mIHRob3NlIEJTU3MuDQoNCiAgIFBvcnRhbDogVGhlIGxvZ2ljYWwg cG9pbnQgYXQgd2hpY2ggbWVkaXVtIGFjY2VzcyBjb250cm9sIChNQUMpDQogICBzZXJ2aWNlIGRh dGEgdW5pdHMgKE1TRFVzKSBmcm9tIGEgbm9uLUlFRUUgODAyLjExIGxvY2FsIGFyZWEgbmV0d29y aw0KICAgKExBTikgZW50ZXIgdGhlIGRpc3RyaWJ1dGlvbiBzeXN0ZW0gKERTKSBvZiBhbiBleHRl bmRlZCBzZXJ2aWNlIHNldA0KICAgKEVTUykuDQoNCiAgIERpc3RyaWJ1dGlvbiBTeXN0ZW0gU2Vy dmljZSAoRFNTKTogVGhlIHNldCBvZiBzZXJ2aWNlcyBwcm92aWRlZCBieQ0KICAgdGhlIGRpc3Ry aWJ1dGlvbiBzeXN0ZW0gKERTKSB0aGF0IGVuYWJsZSB0aGUgbWVkaXVtIGFjY2VzcyBjb250cm9s DQogICAoTUFDKSB0byB0cmFuc3BvcnQgTUFDIHNlcnZpY2UgZGF0YSB1bml0cyAoTVNEVXMpIGJl dHdlZW4gc3RhdGlvbnMNCiAgIHRoYXQgYXJlIG5vdCBpbiBkaXJlY3QgY29tbXVuaWNhdGlvbiB3 aXRoIGVhY2ggb3RoZXIgb3ZlciBhIHNpbmdsZQ0KICAgaW5zdGFuY2Ugb2YgdGhlIHdpcmVsZXNz IG1lZGl1bSAoV00pLiBUaGVzZSBzZXJ2aWNlcyBpbmNsdWRlDQogICB0cmFuc3BvcnQgb2YgTVNE VXMgYmV0d2VlbiB0aGUgYWNjZXNzIHBvaW50cyAoQVBzKSBvZiBiYXNpYyBzZXJ2aWNlDQogICBz ZXRzIChCU1NzKSB3aXRoaW4gYW4gZXh0ZW5kZWQgc2VydmljZSBzZXQgKEVTUyksIHRyYW5zcG9y dCBvZiBNU0RVcw0KICAgYmV0d2VlbiBwb3J0YWxzIGFuZCBCU1NzIHdpdGhpbiBhbiBFU1MsIGFu ZCB0cmFuc3BvcnQgb2YgTVNEVXMNCiAgIGJldHdlZW4gc3RhdGlvbnMgaW4gdGhlIHNhbWUgQlNT IGluIGNhc2VzIHdoZXJlIHRoZSBNU0RVIGhhcyBhDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBh bC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICAgW1BhZ2UgNF0NCgwN CkludGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAg ICAgICAgQXByaWwgMjAwNA0KDQoNCiAgIG11bHRpY2FzdCBvciBicm9hZGNhc3QgZGVzdGluYXRp b24gYWRkcmVzcyBvciB3aGVyZSB0aGUgZGVzdGluYXRpb24NCiAgIGlzIGFuIGluZGl2aWR1YWwg YWRkcmVzcywgYnV0IHRoZSBzdGF0aW9uIHNlbmRpbmcgdGhlIE1TRFUgY2hvb3NlcyB0bw0KICAg aW52b2x2ZSBEU1MuIERTU3MgYXJlIHByb3ZpZGVkIGJldHdlZW4gcGFpcnMgb2YgSUVFRSA4MDIu MTEgTUFDcy4NCg0KICAgSW50ZWdyYXRpb246IFRoZSBzZXJ2aWNlIHRoYXQgZW5hYmxlcyBkZWxp dmVyeSBvZiBtZWRpdW0gYWNjZXNzDQogICBjb250cm9sIChNQUMpIHNlcnZpY2UgZGF0YSB1bml0 cyAoTVNEVXMpIGJldHdlZW4gdGhlIGRpc3RyaWJ1dGlvbg0KICAgc3lzdGVtIChEUykgYW5kIGFu IGV4aXN0aW5nLCBub24tSUVFRSA4MDIuMTEgbG9jYWwgYXJlYSBuZXR3b3JrICh2aWENCiAgIGEg cG9ydGFsKS4NCg0KICAgRGlzdHJpYnV0aW9uOiBUaGUgc2VydmljZSB0aGF0LCBieSB1c2luZyBh c3NvY2lhdGlvbiBpbmZvcm1hdGlvbiwNCiAgIGRlbGl2ZXJzIG1lZGl1bSBhY2Nlc3MgY29udHJv bCAoTUFDKSBzZXJ2aWNlIGRhdGEgdW5pdHMgKE1TRFVzKQ0KICAgd2l0aGluIHRoZSBkaXN0cmli dXRpb24gc3lzdGVtIChEUykuDQoNCjEuMyAgVGVybWlub2xvZ3kgVXNlZCBpbiB0aGlzIERvY3Vt ZW50DQoNCiAgIE9uZSBvZiB0aGUgbW90aXZhdGlvbnMgaW4gZGVmaW5pbmcgbmV3IHRlcm1pbm9s b2d5IGluIHRoaXMgZG9jdW1lbnQNCiAgIGlzIHRvIGNsYXJpZnkgc29tZSBvZiB0aGUgYW1iaWd1 aXR5IGFuZCBjb25mdXNpb24gc3Vycm91bmRpbmcgc29tZQ0KICAgY29udmVudGlvbmFsIHRlcm1z LiBPbmUgb2Ygc3VjaCB0ZXJtcyBpcyAiQWNjZXNzIFBvaW50IChBUCkiLg0KICAgVHlwaWNhbGx5 ICx3aGVuIHBlb3BsZSB0YWxrIGFib3V0ICJBUCIsIHRoZXkgcmVmZXIgdG8gdGhlIHBoeXNpY2Fs DQogICBlbnRpdHkgKGJveCkgdGhhdCBoYXMgYW4gYW50ZW5uYSwgaW1wbGVtZW50cyA4MDIuMTEg UEhZIGFuZCByZWNlaXZlcy8NCiAgIHRyYW5zbWl0cyB0aGUgc3RhdGlvbiAoU1RBKSB0cmFmZmlj IG92ZXIgdGhlIGFpci4gSG93ZXZlciwgODAyLjExDQogICBTdGFuZGFyZHMgWzFdIGRlc2NyaWJl cyBBUCBtb3N0bHkgYXMgYSBsb2dpY2FsIGVudGl0eSB0aGF0IGltcGxlbWVudHMNCiAgIGEgc2V0 IG9mIGxvZ2ljYWwgc2VydmljZXMgc28gdGhhdCBzdGF0aW9uIHRyYWZmaWMgY2FuIGJlIHJlY2Vp dmVkIGFuZA0KICAgdHJhbnNtaXR0ZWQgZWZmZWN0aXZlbHkgb3ZlciB0aGUgYWlyLiBTbyB3aGVu IHBlb3BsZSB0YWxrIGFib3V0ICJBUA0KICAgZnVuY3Rpb25zIiwgdGhleSB1c3VhbGx5IG1lYW4g dGhlIGxvZ2ljYWwgZnVuY3Rpb25zIHRoZSB3aG9sZSBXTEFODQogICBhY2Nlc3MgbmV0d29ya3Mg c3VwcG9ydCwgbm90IGp1c3QgdGhlIHBhcnQgb2YgdGhlIGZ1bmN0aW9ucyBzdXBwb3J0ZWQNCiAg IGJ5IHRoZSBwaHlzaWNhbCBlbnRpdHkgKGJveCkgdGhhdCB0aGUgU1RBcyBjb21tdW5pY2F0ZSB0 byBkaXJlY3RseS4NCiAgIFN1Y2ggY29uZnVzaW9uIGNhbiBiZSBlc3BlY2lhbGx5IHByb2ZvdW5k IHdoZW4gdGhlIGxvZ2ljYWwgZnVuY3Rpb25zDQogICBpcyBpbXBsZW1lbnRlZCBhY3Jvc3MgYSBu ZXR3b3JrIGluc3RlYWQgb2Ygd2l0aGluIGEgc2luZ2xlIHBoeXNpY2FsDQogICBlbnRpdHkuIFNv IHRvIGF2b2lkIGZ1cnRoZXIgY29uZnVzaW9uLCB3ZSBkZWZpbmUgdGhlIGZvbGxvd2luZw0KICAg dGVybWlub2xvZ3kgdXNlZCBpbiB0aGlzIGRvY3VtZW50Og0KDQogICBDQVBXQVA6IENvbnRyb2wg YW5kIFByb3Zpc2lvbmluZyBvZiBXaXJlbGVzcyBBY2Nlc3MgUG9pbnRzLg0KDQogICBJRUVFIDgw Mi4xMSBXTEFOIEZ1bmN0aW9uczogYSBzZXQgb2YgbG9naWNhbCBmdW5jdGlvbnMgZGVmaW5lZCBi eQ0KICAgSUVFRSA4MDIuMTEgV29ya2luZyBHcm91cCwgaW5jbHVkaW5nIGFsbCB0aGUgTUFDIHNl cnZpY2VzLCBTdGF0aW9uDQogICBTZXJ2aWNlcywgYW5kIERpc3RyaWJ1dGlvbiBTZXJ2aWNlcy4g VGhlc2UgbG9naWNhbCBmdW5jdGlvbnMgYXJlDQogICByZXF1aXJlZCB0byBiZSBpbXBsZW1lbnRl ZCBpbiB0aGUgSUVFRSA4MDIuMTEgV2lyZWxlc3MgTEFOIChXTEFOKQ0KICAgYWNjZXNzIG5ldHdv cmtzIGJ5IElFRUUgODAyLjExIFN0YW5kYXJkcyAgWzFdLg0KDQogICBDQVBXQVAgRnVuY3Rpb25z OiBhIHNldCBvZiBXTEFOIGNvbnRyb2wgZnVuY3Rpb25zIHRoYXQgYXJlIG5vdA0KICAgZGlyZWN0 bHkgZGVmaW5lZCBieSBJRUVFIDgwMi4xMSBTdGFuZGFyZHMsIGJ1dCBkZWVtZWQgZXNzZW50aWFs IGZvcg0KICAgZWZmZWN0aXZlIGNvbnRyb2wsIGNvbmZpZ3VyYXRpb24gYW5kIG1hbmFnZW1lbnQg b2YgdGhlIDgwMi4xMSBXTEFODQogICBhY2Nlc3MgbmV0d29ya3MuDQoNCiAgIFdpcmVsZXNzIFRl cm1pbmF0aW9uIFBvaW50IChXVFApOiB0aGUgcGh5c2ljYWwgb3IgbmV0d29yayBlbnRpdHkgdGhh dA0KICAgY29udGFpbnMgUkYgYW50ZW5uYSBhbmQgODAyLjExIFBIWSB0byB0cmFuc21pdCBhbmQg cmVjZWl2ZSBzdGF0aW9uDQogICB0cmFmZmljcyBmb3IgdGhlIElFRUUgODAyLjExIFdMQU4gYWNj ZXNzIG5ldHdvcmtzLiBTdWNoIHBoeXNpY2FsDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4g ICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICAgW1BhZ2UgNV0NCgwNCklu dGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAg ICAgQXByaWwgMjAwNA0KDQoNCiAgIGVudGl0aWVzIGFyZSBvZnRlbiBjYWxsZWQgIkFjY2VzcyBQ b2ludHMiIChBUCkgcHJldmlvdXNseSwgYnV0ICJBUCINCiAgIGNhbiBhbHNvIGJlIHVzZWQgdG8g cmVmZXIgdG8gbG9naWNhbCBlbnRpdHkgdGhhdCBpbXBsZW1lbnRzIDgwMi4xMQ0KICAgc2Vydmlj ZXMuIFNvIHdlIHJlY29tbWVuZCB1c2luZyAiV1RQIiBpbnN0ZWFkIHRvIGV4cGxpY2l0bHkgcmVm ZXIgdG8NCiAgIHRoZSBwaHlzaWNhbCBlbnRpdHkuDQoNCiAgIEF1dG9ub21vdXMgV0xBTiBBcmNo aXRlY3R1cmU6IHRoZSBXTEFOIGFjY2VzcyBuZXR3b3JrIGFyY2hpdGVjdHVyZQ0KICAgZmFtaWx5 IGluIHdoaWNoIGFsbCB0aGUgbG9naWNhbCBmdW5jdGlvbnMgaW5jbHVkaW5nIGJvdGggSUVFRSA4 MDIuMTENCiAgIGZ1bmN0aW9ucyBhbmQgQ0FQV0FQIGZ1bmN0aW9ucyAod2hlcmV2ZXIgYXBwbGlj YWJsZSkgYXJlIGltcGxlbWVudGVkDQogICB3aXRoaW4gZWFjaCBXaXJlbGVzcyBUZXJtaW5hdGlv biBQb2ludCAoV1RQKSBpbiB0aGUgbmV0d29yay4gVGhlIFdUUHMNCiAgIGluIHN1Y2ggbmV0d29y a3MgYXJlIGFsc28gY2FsbGVkIHRoZSBzdGFuZGFsb25lIEFQcywgb3IgZmF0IEFQcywNCiAgIGJl Y2F1c2UgdGhlc2UgZGV2aWNlcyBpbXBsZW1lbnQgdGhlIGZ1bGwgZnVuY3Rpb25zIHRoYXQgZW5h YmxlIHRoZQ0KICAgZGV2aWNlcyB0byBmdW5jdGlvbiB3aXRob3V0IGFueSBvdGhlciBzdXBwb3J0 IGZyb20gdGhlIG5ldHdvcmsuDQoNCiAgIENlbnRyYWxpemVkIFdMQU4gQXJjaGl0ZWN0dXJlOiB0 aGUgV0xBTiBhY2Nlc3MgbmV0d29yayBhcmNoaXRlY3R1cmUNCiAgIGZhbWlseSBpbiB3aGljaCB0 aGUgbG9naWNhbCBmdW5jdGlvbnMgaW5jbHVkaW5nIGJvdGggSUVFRSA4MDIuMTENCiAgIGZ1bmN0 aW9ucyBhbmQgQ0FQV0FQIGZ1bmN0aW9ucyAod2hlcmV2ZXIgYXBwbGljYWJsZSkgYXJlIGltcGxl bWVudGVkDQogICBhY3Jvc3MgYSBoaWVyYXJjaHkgb2YgbmV0d29yayBlbnRpdGllcy4gQXQgdGhl IGxvdyBsZXZlbCBvZiBzdWNoDQogICBoaWVyYXJjaHkgYXJlIHRoZSBXVFBzIHdoaWxlIGF0IHRo ZSBoaWdoZXIgbGV2ZWwgYXJlIHRoZSBBY2Nlc3MNCiAgIENvbnRyb2xsZXJzIChBQ3MpIHdoaWNo IGFyZSByZXNwb25zaWJsZSB0byBjb250cm9sLCBjb25maWd1cmUgYW5kDQogICBtYW5hZ2UgdGhl IGVudGlyZSBXTEFOIGFjY2VzcyBuZXR3b3Jrcy4NCg0KICAgRGlzdHJpYnV0ZWQgV0xBTiBBcmNo aXRlY3R1cmU6IHRoZSBXTEFOIGFjY2VzcyBuZXR3b3JrIGFyY2hpdGVjdHVyZQ0KICAgZmFtaWx5 IGluIHdoaWNoIHRoZSBsb2dpY2FsIGZ1bmN0aW9ucyBpbmNsdWRpbmcgYm90aCBJRUVFIDgwMi4x MQ0KICAgZnVuY3Rpb25zIGFuZCBDQVBXQVAgZnVuY3Rpb25zICh3aGVyZXZlciBhcHBsaWNhYmxl KSBhcmUgaW1wbGVtZW50ZWQNCiAgIGFjcm9zcyBhIGRpc3RyaWJ1dGVkIG5ldHdvcmsgY29uc2lz dGluZyBvZiBwZWVyIGVudGl0aWVzLiBBIG1lc2gNCiAgIG5ldHdvcmsgb2YgV1RQcyBjYW4gYmUg Y29uc2lkZXJlZCBhcyBhbiBleGFtcGxlIG9mIHN1Y2ggYXJjaGl0ZWN0dXJlLg0KDQogICBBY2Nl c3MgQ29udHJvbGxlciAoQUMpOiBUaGUgbmV0d29yayBlbnRpdHkgaW4gdGhlIENlbnRyYWxpemVk IFdMQU4NCiAgIGFyY2hpdGVjdHVyZXMgdGhhdCBjb250cm9sLCBjb25maWd1cmUgYW5kIG1hbmFn ZSB0aGUgZW50aXJlIDgwMi4xMQ0KICAgd2lyZWxlc3MgYWNjZXNzIG5ldHdvcmsgaW5jbHVkaW5n IHRoZSBXVFBzLg0KDQogICBTdGFuZGFsb25lIFdUUDogcmVmZXJyZWQgdG8gdGhlIFdUUCBpbiBB dXRvbm9tb3VzIFdMQU4gQXJjaGl0ZWN0dXJlLg0KDQogICBDb250cm9sbGVkIFdUUDogcmVmZXJy ZWQgdG8gdGhlIFdUUCBpbiBDZW50cmFsaXplZCBXTEFOIEFyY2hpdGVjdHVyZS4NCg0KICAgU3Bs aXQgTUFDIEFyY2hpdGVjdHVyZTogQSBzdWItZ3JvdXAgb2YgdGhlIENlbnRyYWxpemVkIFdMQU4N CiAgIEFyY2hpdGVjdHVyZSwgd2l0aCB0aGUgY2hhcmFjdGVyaXN0aWMgdGhhdCBXVFBzIGluIHN1 Y2ggV0xBTiBhY2Nlc3MNCiAgIG5ldHdvcmtzIG9ubHkgaW1wbGVtZW50IHRoZSBkZWxheSBzZW5z aXRpdmUgTUFDIHNlcnZpY2VzIChsaWtlIHRoZQ0KICAgY29udHJvbCBmcmFtZSBwcm9jZXNzaW5n KSBmb3IgSUVFRSA4MDIuMTEsIHdoaWxlIHR1bm5lbCBhbGwgdGhlDQogICBtYW5hZ2VtZW50IGFu ZCBkYXRhIGZyYW1lcyB0byBBQyBmb3IgY2VudHJhbGl6ZWQgcHJvY2Vzc2luZy4gVGhlIElFRUUN CiAgIDgwMi4xMSBNQUMgYXMgZGVmaW5lZCBieSBJRUVFIDgwMi4xMSBTdGFuZGFyZHMgaW4gWzFd IGlzIGVmZmVjdGl2ZWx5DQogICBzcGxpdCBiZXR3ZWVuIHRoZSBXVFAgYW5kIEFDLg0KDQogICBS ZW1vdGUgTUFDIEFyY2hpdGVjdHVyZTogQSBzdWItZ3JvdXAgb2YgdGhlIENlbnRyYWxpemVkIFdM QU4NCiAgIEFyY2hpdGVjdHVyZSwgd2hlcmUgdGhlIGVudGlyZSBzZXQgb2YgODAyLjExIE1BQyBm dW5jdGlvbnMgKGluY2x1ZGluZw0KICAgZGVsYXktc2Vuc2l0aXZlIGZ1bmN0aW9ucykgYXJlIGlt cGxlbWVudGVkIGF0IHRoZSBBQy4gVGhlIFdUUA0KICAgdGVybWluYXRlcyB0aGUgODAyLjExIFBI WSBmdW5jdGlvbnMuDQoNCg0KDQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9j dG9iZXIgMTUsIDIwMDQgICAgICAgICAgICAgICBbUGFnZSA2XQ0KDA0KSW50ZXJuZXQtRHJhZnQg ICAgICAgICAgIENBUFdBUCBBcmNoLiBUYXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0 DQoNCg0KICAgTG9jYWwgTUFDIEFyY2hpdGVjdHVyZTogQSBzdWItZ3JvdXAgb2YgdGhlIENlbnRy YWxpemVkIFdMQU4NCiAgIEFyY2hpdGVjdHVyZSwgd2hlcmUgdGhlIG1ham9yaXR5IG9yIGVudGly ZSBzZXQgb2YgODAyLjExIE1BQw0KICAgZnVuY3Rpb25zIChpbmNsdWRpbmcgbW9zdCBvZiB0aGUg ODAyLjExIG1hbmFnZW1lbnQgZnJhbWUgcHJvY2Vzc2luZykNCiAgIGFyZSBpbXBsZW1lbnRlZCBh dCB0aGUgV1RQLiBUaGVyZWZvcmUsIHRoZSA4MDIuMTEgTUFDIHN0YXlzIGludGFjdA0KICAgYW5k IGxvY2FsIGluIHRoZSBXVFAsIGFsb25nIHdpdGggUEhZLg0KDQoxLjQgIFRlcm1pbm9sb2d5IFVz ZWQgSGlzdG9yaWNhbGx5IGJ1dCBOb3QgUmVjb21tZW5kZWQNCg0KICAgV2UgcmVjb2duaXplIHRo YXQgc29tZSB0ZXJtaW5vbG9neSBoYXZlIGJlZW4gdXNlZCBieSB2ZW5kb3JzDQogICBoaXN0b3Jp Y2FsbHksIGJ1dCB3ZSByZWNvbW1lbmQgc3RvcCB1c2luZyB0byBhdm9pZCBmdXJ0aGVyIGNvbmZ1 c2lvbiwNCiAgIG1vc3RseSBhcm91bmQgdGhlIHRlcm0gb2YgIkFQIi4gV2UgcHJvdmlkZSBhIGxp c3Qgb2Ygc3VjaCB0ZXJtcyBoZXJlDQogICB3aXRoIHRoZSByZWNvbW1lbmRlZCBuZXcgdGVybWlu b2xvZ3k6DQoNCiAgIFNwbGl0IFdMQU4gQXJjaGl0ZWN0dXJlOiB1c2UgQ2VudHJhbGl6ZWQgV0xB TiBBcmNoaXRlY3R1cmUuDQoNCiAgIEhpZXJhY2hpY2FsIFdMQU4gQXJjaGl0Y3R1cmU6IHVzZSBD ZW50cmFsaXplZCBXTEFOIEFyY2hpdGVjdHVyZS4NCg0KICAgU3RhbmRhbG9uZSBBY2Nlc3MgUG9p bnQ6IHVzZSBXVFAgb3IgU3RhbmRhbG9uZSBXVFAuDQoNCiAgIEZhdCBBY2Nlc3MgUG9pbnQ6IHRo ZSBzYW1lIGFzIFN0YW5kYWxvbmUgQWNjZXNzIFBvaW50LCByZWxhdGl2ZWx5IHRvDQogICBUaGlu IEFjY2VzcyBQb2ludHMuIHVzZSBXVFAgb3IgU3RhbmRhbG9uZSBXVFAuDQoNCiAgIFRoaW4gQWNj ZXNzIFBvaW50OiB1c2UgV1RQLCBvciBDb250cm9sbGVkIFdUUC4NCg0KICAgTGlnaHQgV2VpZ2h0 IEFjY2VzcyBQb2ludDogdGhlIHNhbWUgYXMgVGhpbiBBY2Nlc3MgUG9pbnQsIHVzZSBXVFAsIG9y DQogICBDb250cm9sbGVkIFdUUC4NCg0KICAgU3BsaXQgQVAgQXJjaGl0ZWN0dXJlOiB1c2UgTG9j YWwgTUFDIEFyY2hpdGVjdHVyZS4NCg0KICAgQW50ZW5uYSBBUCBBcmNoaXRlY3R1cmU6IHVzZSBS ZW1vdGUgTUFDIEFyY2hpdGVjdHVyZS4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIw MDQgICAgICAgICAgICAgICBbUGFnZSA3XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENB UFdBUCBBcmNoLiBUYXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0KMi4gIElu dHJvZHVjdGlvbg0KDQogICBBcyBJRUVFIDgwMi4xMSBXaXJlbGVzcyBMQU4gKFdMQU4pIHRlY2hu b2xvZ3kgbWF0dXJlcywgbGFyZ2Ugc2NhbGUNCiAgIGRlcGxveW1lbnQgb2YgV0xBTiBuZXR3b3Jr cyBpcyBoaWdobGlnaHRpbmcgY2VydGFpbiB0ZWNobmljYWwNCiAgIGNoYWxsZW5nZXMuIEFzIG91 dGxpbmVkIGluIFsyXSwgbWFuYWdlbWVudCwgbW9uaXRvcmluZyBhbmQgY29udHJvbCBvZg0KICAg bGFyZ2UgbnVtYmVyIG9mIEFjY2VzcyBQb2ludHMgKEFQcykgaW4gdGhlIG5ldHdvcmsgbWF5IHBy b3ZlIHRvIGJlIGENCiAgIHNpZ25pZmljYW50IG5ldHdvcmsgYWRtaW5pc3RyYXRpb24gYnVyZGVu LiBEaXN0cmlidXRpbmcgYW5kDQogICBtYWludGFpbmluZyBhIGNvbnNpc3RlbnQgY29uZmlndXJh dGlvbiB0aHJvdWdob3V0IHRoZSBlbnRpcmUgc2V0IG9mDQogICBBUHMgaW4gdGhlIFdMQU4gaXMg YSBkaWZmaWN1bHQgdGFzay4gVGhlIHNoYXJlZCBhbmQgZHluYW1pYyBuYXR1cmUgb2YNCiAgIHRo ZSB3aXJlbGVzcyBtZWRpdW0gYWxzbyBkZW1hbmRzIGVmZmVjdGl2ZSBjb29yZGluYXRpb24gYW1v bmcgdGhlIEFQcw0KICAgdG8gbWluaW1pemUgcmFkaW8gaW50ZXJmZXJlbmNlIGFuZCBtYXhpbWl6 ZSBuZXR3b3JrIHBlcmZvcm1hbmNlLg0KICAgTmV0d29yayBzZWN1cml0eSBpc3N1ZXMgd2hpY2gg aGF2ZSBhbHdheXMgYmVlbiBhIGNvbmNlcm4gaW4gV0xBTidzLA0KICAgaGF2ZSBldmVuIG1vcmUg Y2hhbGxlbmdlcyBpbiBsYXJnZSBkZXBsb3ltZW50cyBhbmQgbmV3IGFyY2hpdGVjdHVyZXMuDQoN CiAgIFJlY2VudGx5IG1hbnkgdmVuZG9ycyBoYXZlIGJlZ3VuIG9mZmVyaW5nIHBhcnRpYWxseSBw cm9wcmlldGFyeQ0KICAgc29sdXRpb25zIHRvIGFkZHJlc3Mgc29tZSBvciBhbGwgb2YgdGhlIGFi b3ZlIG1lbnRpb25lZCBwcm9ibGVtcy4NCiAgIFNpbmNlIGludGVyb3BlcmFibGUgc29sdXRpb25z IGFsbG93IGEgYnJvYWRlciBjaG9pY2UsIGEgc3RhbmRhcmRpemVkDQogICBpbnRlcm9wZXJhYmxl IHNvbHV0aW9uIGFkZHJlc3NpbmcgdGhlIGFib3ZlIG1lbnRpb25lZCBwcm9ibGVtcyBpcw0KICAg ZGVzaXJhYmxlLiBBcyB0aGUgZmlyc3Qgc3RlcCB0b3dhcmQgZXN0YWJsaXNoaW5nIGludGVyb3Bl cmFiaWxpdHkgaW4NCiAgIHRoZSBtYXJrZXQgcGxhY2UsIHRoaXMgZG9jdW1lbnQgYXR0ZW1wdHMg dG8gcHJvdmlkZSBhIHRheG9ub215IG9mIHRoZQ0KICAgYXJjaGl0ZWN0dXJlcyBlbXBsb3llZCBp biBleGlzdGluZyBXTEFOIHByb2R1Y3RzLiBXZSBob3BlIHRvIHByb3ZpZGUNCiAgIGEgY29oZXNp dmUgdW5kZXJzdGFuZGluZyBvZiB0aGUgbWFya2V0IHByYWN0aWNlcyBmb3IgdGhlIHN0YW5kYXJk DQogICBib2RpZXMgaW52b2x2ZWQgKGluY2x1ZGluZyB0aGUgSUVURiBhbmQgSUVFRSA4MDIuMTEp LiBUaGlzIGRvY3VtZW50DQogICBtYXkgYmUgcmV2aWV3ZWQgYW5kIHV0aWxpemVkIGJ5IHRoZSBJ RUVFIDgwMi4xMSBXb3JraW5nIEdyb3VwIGFzDQogICBpbnB1dCB0byB0aGVpciB0YXNrIG9mIGRl ZmluaW5nIHRoZSBmdW5jdGlvbmFsIGFyY2hpdGVjdHVyZSBvZiBhbg0KICAgYWNjZXNzIHBvaW50 Lg0KDQoyLjEgIElFRUUgODAyLjExIFdMQU4gRnVuY3Rpb25zDQoNCiAgIFRoZSBJRUVFIDgwMi4x MSBzcGVjaWZpY2F0aW9ucyBhcmUgd2lyZWxlc3Mgc3RhbmRhcmRzIHRoYXQgc3BlY2lmeSBhbg0K ICAgIm92ZXItdGhlLWFpciIgaW50ZXJmYWNlIGJldHdlZW4gYSB3aXJlbGVzcyBjbGllbnQgKFNU QSkgYW5kIGFuDQogICBBY2Nlc3MgUG9pbnQgKEFQKSwgYXMgd2VsbCBhcyBhbW9uZyB3aXJlbGVz cyBjbGllbnRzLiA4MDIuMTEgYWxzbw0KICAgZGVzY3JpYmVzIGhvdyBtb2JpbGUgZGV2aWNlcyBj YW4gYXNzb2NpYXRlIHRvZ2V0aGVyIGludG8gYSBiYXNpYw0KICAgc2VydmljZSBzZXQgKEJTUyks IHRoZSByb3VnaCBlcXVpdmFsZW50IG9mIGEgc2luZ2xlIGJyb2FkY2FzdCBkb21haW4NCiAgIG9y IGEgc2VnbWVudCBvZiBhIGJyaWRnZWQgRXRoZXJuZXQgTEFOLiBBIEJTUyBpcyBpZGVudGlmaWVk IGJ5IGENCiAgIGNvbW1vbiBzZXJ2aWNlIHNldCBpZGVudGlmaWVyIChTU0lEKSBvciBuYW1lLiBU aGUgV0xBTiBhcmNoaXRlY3R1cmUNCiAgIGNhbiBiZSBjb25zaWRlcmVkIGFzIGEgc29ydCBvZiB0 aGUgJ2NlbGwnIGFyY2hpdGVjdHVyZSB3aGVyZSBlYWNoDQogICBjZWxsIGlzIHRoZSBCYXNpYyBT ZXJ2aWNlIFNldCAoQlNTKSBhbmQgZWFjaCBCU1MgaXMgY29udHJvbGxlZCBieSB0aGUNCiAgIEFj Y2VzcyBQb2ludCAoQVApLiBXaGVuIG1vcmUgdGhhbiBvbmUgQVAgaXMgY29ubmVjdGVkIHZpYSBh IGJyb2FkY2FzdA0KICAgbGF5ZXIgMiBuZXR3b3JrIGFuZCBhbGwgYXJlIHVzaW5nIHRoZSBzYW1l IFNTSUQsIGFuIGV4dGVuZGVkIHNlcnZpY2UNCiAgIHNldCAoRVNTKSBpcyBjcmVhdGVkLiBBbiBF U1MgaXMgYWxzbyBzaW1pbGFyIHRvIGEgc2luZ2xlIGJyb2FkY2FzdA0KICAgZG9tYWluLCB3aGVy ZSBhIG1vYmlsZSBkZXZpY2UgYXNzb2NpYXRlZCB3aXRoIG9uZSBBUCBjYW4gc3VjY2Vzc2Z1bGx5 DQogICBBUlAgZm9yIHRoZSBhZGRyZXNzIG9mIGEgbW9iaWxlIGRldmljZSBhc3NvY2lhdGVkIHdp dGggYW55IG90aGVyIEFQDQogICBpbiB0aGUgRVNTLiBXaXRoaW4gYW4gRVNTLCBhIG1vYmlsZSBz dGF0aW9uIGNhbiByb2FtIGZyb20gb25lIEFQIHRvDQogICBhbm90aGVyIHRocm91Z2ggb25seSBs YXllciAyIHRyYW5zaXRpb25zIGNvb3JkaW5hdGVkIGJ5IHRoZSA4MDIuMTENCiAgIE1BQyBtYW5h Z2VtZW50IHByb3RvY29sLiBIaWdoZXIgbGF5ZXIgcHJvdG9jb2xzLCBpbmNsdWRpbmcgSVAgYXJl DQogICB1bmF3YXJlIHRoYXQgdGhlIG5ldHdvcmsgYXR0YWNobWVudCBwb2ludCBvZiB0aGUgbW9i aWxlIGRldmljZSBoYXMNCiAgIG1vdmVkLg0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAg IEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAgICAgIFtQYWdlIDhdDQoMDQpJbnRl cm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQIEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAg IEFwcmlsIDIwMDQNCg0KDQogICBUaGUgYXJjaGl0ZWN0dXJhbCBjb21wb25lbnQgdXNlZCB0byBp bnRlcmNvbm5lY3QgQlNTcyBpcyB0aGUNCiAgIGRpc3RyaWJ1dGlvbiBzeXN0ZW0gKERTKS4gQW4g YWNjZXNzIHBvaW50IChBUCkgaXMgYSBTVEEgdGhhdCBwcm92aWRlcw0KICAgYWNjZXNzIHRvIHRo ZSBEUyBieSBwcm92aWRpbmcgRFMgc2VydmljZXMgaW4gYWRkaXRpb24gdG8gYWN0aW5nIGFzIGEN CiAgIFNUQS4gQW5vdGhlciBsb2dpY2FsIGFyY2hpdGVjdHVyYWwgY29tcG9uZW50IC0tIHBvcnRh bCAtLSBpcw0KICAgaW50cm9kdWNlZCB0byBpbnRlZ3JhdGUgdGhlIElFRUUgODAyLjExIGFyY2hp dGVjdHVyZSB3aXRoIGENCiAgIHRyYWRpdGlvbmFsIHdpcmVkIExBTi4gSXQgaXMgcG9zc2libGUg Zm9yIG9uZSBkZXZpY2UgdG8gb2ZmZXIgYm90aA0KICAgdGhlIGZ1bmN0aW9ucyBvZiBhbiBBUCBh bmQgYSBwb3J0YWwuDQoNCiAgIElFRUUgODAyLjExIGV4cGxpY2l0bHkgZG9lcyBub3Qgc3BlY2lm eSB0aGUgZGV0YWlscyBvZiBEUw0KICAgaW1wbGVtZW50YXRpb25zLiBJbnN0ZWFkLCB0aGUgODAy LjExIHN0YW5kYXJkIGRlZmluZXMgc2VydmljZXMgdGhhdA0KICAgcHJvdmlkZSB0aGUgZnVuY3Rp b25zIHRoYXQgdGhlIExMQyBsYXllciByZXF1aXJlcyBmb3Igc2VuZGluZyBNQUMNCiAgIFNlcnZp Y2UgRGF0YSBVbml0cyAoTVNEVXMpIGJldHdlZW4gdHdvIGVudGl0aWVzIG9uIHRoZSBuZXR3b3Jr LiBUaGVzZQ0KICAgc2VydmljZXMgY2FuIGJlIGNsYXNzaWZpZWQgaW50byB0d28gY2F0ZWdvcmll czogdGhlIHN0YXRpb24gc2VydmljZQ0KICAgKFNTKSBhbmQgdGhlIGRpc3RyaWJ1dGlvbiBzeXN0 ZW0gc2VydmljZSAoRFNTKS4gQm90aCBjYXRlZ29yaWVzIG9mDQogICBzZXJ2aWNlIGFyZSB1c2Vk IGJ5IHRoZSBJRUVFIDgwMi4xMSBNQUMgc3VibGF5ZXIuIFN0YXRpb24gc2VydmljZXMNCiAgIGNv bnNpc3Qgb2YgdGhlIGZvbGxvd2luZyBmb3VyIHNlcnZpY2VzOg0KICAgbyAgQXV0aGVudGljYXRp b246IFRoZSBzZXJ2aWNlIHVzZWQgdG8gZXN0YWJsaXNoIHRoZSBpZGVudGl0eSBvZiBvbmUNCiAg ICAgIHN0YXRpb24gYXMgYSBtZW1iZXIgb2YgdGhlIHNldCBvZiBzdGF0aW9ucyBhdXRob3JpemVk IHRvIGFzc29jaWF0ZQ0KICAgICAgd2l0aCBhbm90aGVyIHN0YXRpb24uDQogICBvICBEZWF1dGhl bnRpY2F0aW9uOiBUaGUgc2VydmljZSB0aGF0IHZvaWRzIGFuIGV4aXN0aW5nDQogICAgICBhdXRo ZW50aWNhdGlvbiByZWxhdGlvbnNoaXAuDQogICBvICBQcml2YWN5OiBUaGUgc2VydmljZSB1c2Vk IHRvIHByZXZlbnQgdGhlIGNvbnRlbnQgb2YgbWVzc2FnZXMgZnJvbQ0KICAgICAgYmVpbmcgcmVh ZCBieSBvdGhlciB0aGFuIHRoZSBpbnRlbmRlZCByZWNpcGllbnRzLg0KICAgbyAgTVNEVSBEZWxp dmVyeTogVGhlIHNlcnZpY2UgdG8gZGVsaXZlciB0aGUgTUFDIHNlcnZpY2UgZGF0YSB1bml0DQog ICAgICAoTVNEVSkgZm9yIHRoZSBTdGF0aW9ucy4NCg0KICAgRGlzdHJpYnV0aW9uIHN5c3RlbSBz ZXJ2aWNlcyBjb25zaXN0IG9mIHRoZSBmb2xsb3dpbmcgZml2ZSBzZXJ2aWNlczoNCiAgIG8gIEFz c29jaWF0aW9uOiBUaGUgc2VydmljZSB1c2VkIHRvIGVzdGFibGlzaCBhY2Nlc3MgcG9pbnQvc3Rh dGlvbg0KICAgICAgKEFQL1NUQSkgbWFwcGluZyBhbmQgZW5hYmxlIFNUQSBpbnZvY2F0aW9uIG9m IHRoZSBkaXN0cmlidXRpb24NCiAgICAgIHN5c3RlbSBzZXJ2aWNlcy4NCiAgIG8gIERpc2Fzc29j aWF0aW9uOiBUaGUgc2VydmljZSB0aGF0IHJlbW92ZXMgYW4gZXhpc3RpbmcgYXNzb2NpYXRpb24u DQogICBvICBSZWFzc29jaWF0aW9uOiBUaGUgc2VydmljZSB0aGF0IGVuYWJsZXMgYW4gZXN0YWJs aXNoZWQgYXNzb2NpYXRpb24NCiAgICAgIFtiZXR3ZWVuIGFjY2VzcyBwb2ludCAoQVApIGFuZCBz dGF0aW9uIChTVEEpXSB0byBiZSB0cmFuc2ZlcnJlZA0KICAgICAgZnJvbSBvbmUgQVAgdG8gYW5v dGhlciAob3IgdGhlIHNhbWUpIEFQLg0KICAgbyAgRGlzdHJpYnV0aW9uOiBUaGUgc2VydmljZSB0 aGF0IHByb3ZpZGVzIE1TRFUgZm9yd2FyZGluZyBieSBBUHMgZm9yDQogICAgICB0aGUgU1RBcyBh c3NvY2lhdGVkIHdpdGggdGhlbS4gTVNEVXMgY2FuIGJlIGVpdGhlciBmb3J3YXJkZWQgdG8NCiAg ICAgIHRoZSBXaXJlbGVzcyBkZXN0aW5hdGlvbiBvciB0byB0aGUgV2lyZWQgKEV0aGVybmV0KSBk ZXN0aW5hdGlvbg0KICAgICAgdXNpbmcgdGhlICJEaXN0cmlidXRpb24gU3lzdGVtIiBjb25jZXB0 IG9mIDgwMi4xMS4NCiAgIG8gIEludGVncmF0aW9uOiBUaGUgc2VydmljZSB0byB0cmFuc2xhdGUg dGhlIE1TRFUgcmVjZWl2ZWQgZnJvbSB0aGUNCiAgICAgIERpc3RyaWJ1dGlvbiBTeXN0ZW0gdG8g dGhlIG5vbi04MDIuMTEgZm9ybWF0IGFuZCB2aWNlIHZlcnNhLiBBbnkNCiAgICAgIE1TRFUgdGhh dCBpcyByZWNlaXZlZCBmcm9tIHRoZSBEUyBpbnZva2VzIHRoZSAiSW50ZWdyYXRpb24iDQogICAg ICBzZXJ2aWNlcyBvZiB0aGUgRFNTIGJlZm9yZSB0aGUgJ0Rpc3RyaWJ1dGlvbicgc2VydmljZXMg YXJlDQogICAgICBpbnZva2VkLiAgVGhlIHBvaW50IG9mIGNvbm5lY3Rpb24gb2YgdGhlIERTIHRv IHRoZSB3aXJlZCBMQU4gaXMNCiAgICAgIHRlcm1lZCBhcyAncG9ydGFsJy4NCg0KICAgQXBhcnQg ZnJvbSB0aGVzZSBzZXJ2aWNlcyB0aGUgSUVFRSA4MDIuMTEgYWxzbyBkZWZpbmVzIE1BQyBzZXJ2 aWNlcw0KICAgdGhhdCBtdXN0IGJlIGltcGxlbWVudGVkIGJ5IHRoZSBBUHMgaW4gdGhlIFdMQU4u IEZvciBleGFtcGxlOg0KDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBP Y3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICAgW1BhZ2UgOV0NCgwNCkludGVybmV0LURyYWZ0 ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAw NA0KDQoNCiAgIG8gIEJlYWNvbiBHZW5lcmF0aW9uDQogICBvICBQcm9iZSBSZXNwb25zZS9UcmFu c21pc3Npb24NCiAgIG8gIFByb2Nlc3Npbmcgb2YgQ29udHJvbCBGcmFtZXM6IFJUUy9DVFMvQUNL L1BTLVBvbGwvQ0YtRW5kL0NGLUFDSw0KICAgbyAgU3luY2hyb25pemF0aW9uDQogICBvICBSZXRy YW5zbWlzc2lvbnMNCiAgIG8gIFRyYW5zbWlzc2lvbiBSYXRlIEFkYXB0YXRpb24NCiAgIG8gIFBy aXZhY3k6IDgwMi4xMSBFbmNyeXB0aW9uL0RlY3J5cHRpb24NCg0KICAgSW4gYWRkaXRpb24gdG8g dGhlIHNlcnZpY2VzIG9mZmVyZWQgYnkgdGhlIDgwMi4xMSwgdGhlIElFRUUgODAyLjExIFdHDQog ICBhbHNvIGRlc2lnbnMgdGhlIHRlY2huaXF1ZSB0byBzdXBwb3J0IHRoZSBRdWFsaXR5IG9mIFNl cnZpY2UNCiAgICg4MDIuMTFlKSwgU2VjdXJpdHkgQWxnb3JpdGhtcyAoODAyLjExaSksIG1vYmls aXR5IG9mIHRoZSBTVEEgZnJvbQ0KICAgb25lIEJTUyB0byB0aGUgb3RoZXIgKDgwMi4xMWYpLCBS YWRpbyBSZXNvdXJjZSBNYW5hZ2VtZW50ICg4MDIuMTFmKQ0KICAgZXRjLg0KDQogICBJRUVFIDgw Mi4xMSBkb2VzIG5vdCBleGFjdGx5IHNwZWNpZnkgaG93IGFsbCB0aGVzZSBmdW5jdGlvbnMgZ2V0 DQogICBpbXBsZW1lbnRlZCwgbm9yIGRvZXMgaXQgc3BlY2lmeSB0aGF0IHRoZXNlIGZ1bmN0aW9u cyBiZSBpbXBsZW1lbnRlZA0KICAgYWxsIGluIG9uZSBwaHlzaWNhbCBkZXZpY2UgKGUuZy4sIHRo ZSBXVFApLiBDb25jZXB0dWFsbHksIGFsbCBpdA0KICAgcmVxdWlyZXMgaXMgdGhhdCB0aGUgV1RQ cyBhbmQgdGhlIHJlc3Qgb2YgdGhlIERTIHRvZ2V0aGVyIGltcGxlbWVudHMNCiAgIGFsbCB0aGVz ZSBzZXJ2aWNlcy4gVHlwaWNhbGx5LCB2ZW5kb3JzIGltcGxlbWVudCBub3Qgb25seSB0aGUNCiAg IHNlcnZpY2VzIGRlZmluZWQgaW4gdGhlIElFRUUgODAyLjExIHN0YW5kYXJkLCB0aGV5IGFsc28g aW1wbGVtZW50IGENCiAgIHZhcmlldHkgb2YgdmFsdWUtYWRkZWQgc2VydmljZXMgb3IgZnVuY3Rp b25zLCBsaWtlIGxvYWQgYmFsYW5jaW5nDQogICBzdXBwb3J0LCBRb1MsIHN0YXRpb24gbW9iaWxp dHkgc3VwcG9ydCwgcm9ndWUgQVAgZGV0ZWN0aW9uLCBldGMuIFdoYXQNCiAgIHdpbGwgYmVjb21l IGNsZWFyIGZyb20gdGhlIHJlc3Qgb2YgdGhpcyBkb2N1bWVudCBpcyB0aGF0IHZlbmRvcnMgZG8N CiAgIHRha2UgYWR2YW50YWdlIG9mIHRoZSBmbGV4aWJpbGl0eSBpbiB0aGUgODAyLjExIGFyY2hp dGVjdHVyZSwgYW5kDQogICBoYXZlIGNvbWUgdXAgd2l0aCBtYW55IGRpZmZlcmVudCBmbGF2b3Jz IG9mIGFyY2hpdGVjdHVyZXMgYW5kDQogICBpbXBsZW1lbnRhdGlvbnMgb2YgdGhlIFdMQU4gc2Vy dmljZXMuDQoNCiAgIEJlY2F1c2UgbWFueSB2ZW5kb3JzIGNob29zZSB0byBpbXBsZW1lbnQgdGhl c2UgV0xBTiBzZXJ2aWNlcyBhY3Jvc3MNCiAgIG11bHRpcGxlIG5ldHdvcmsgZWxlbWVudHMsIHdl IHdhbnQgdG8gbWFrZSBhIGNsZWFyIGRpc3RpbmN0aW9uDQogICBiZXR3ZWVuIHRoZSBsb2dpY2Fs IFdMQU4gYWNjZXNzIG5ldHdvcmsgZnVuY3Rpb25zLCBhbmQgdGhlIHBoeXNpY2FsDQogICBkZXZp Y2VzIHRoYXQgYXJlIHR5cGljYWxseSByZWZlcnJlZCB0byBhcyBBUCAob3IgdGhpbiBBUCwgb3Ig bWVzaCBBUCwNCiAgIGRlcGVuZHMgb24gdGhlIGFyY2hpdGVjdHVyZSBmYW1pbHkgYXMgZGVzY3Jp YmVkIGJlbG93KS4gRWFjaCBvZiB0aGVzZQ0KICAgcGh5c2ljYWwgZGV2aWNlcyBtYXkgaW1wbGVt ZW50IG9ubHkgcGFydCBvZiB0aGUgbG9naWNhbCBmdW5jdGlvbnMuDQogICBCdXQgdGhlIERTIGlu Y2x1ZGluZyBhbGwgdGhlIHBoeXNpY2FsIGRldmljZXMgYXMgYSB3aG9sZSBpbXBsZW1lbnRzDQog ICBhbGwsIG9yIG1vc3Qgb2YgdGhlIGZ1bmN0aW9ucy4NCg0KMi4yICBDQVBXQVAgRnVuY3Rpb25z DQoNCiAgIEluIG9yZGVyIHRvIGFkZHJlc3MgdGhlIGZvdXIgcHJvYmxlbXMgaWRlbnRpZmllZCBp biB0aGUgWzJdDQogICAobWFuYWdlbWVudCwgY29uc2lzdGVudCBjb25maWd1cmF0aW9uLCBSRiBj b250cm9sLCBzZWN1cml0eSkNCiAgIGFkZGl0aW9uYWwgZnVuY3Rpb25zIGFyZSB0eXBpY2FsbHkg cmVxdWlyZWQuIFN1Y2ggZnVuY3Rpb25zIGFyZQ0KICAgZXNwZWNpYWxseSBpbXBvcnRhbnQgd2hl biB0aGUgSUVFRSA4MDIuMTEgV0xBTiBmdW5jdGlvbnMgYXJlDQogICBpbXBsZW1lbnRlZCBhY3Jv c3MgYSBsYXJnZSBzY2FsZSBvZiBuZXR3b3JrIG9mIG11bHRpcGxlIGVudGl0aWVzLA0KICAgaW5z dGVhZCBvZiB3aXRoaW4gb25lIHNpbmdsZSBlbnRpdHkuIFN1Y2ggZnVuY3Rpb25zIGFyZToNCiAg IG8gIFJGIG1vbml0b3JpbmcsIGxpa2UgUmFkYXIgZGV0ZWN0aW9uLCBub2lzZSBhbmQgaW50ZXJm ZXJlbmNlDQogICAgICBkZXRlY3Rpb24gYW5kIG1lYXN1cmVtZW50Lg0KICAgbyAgUkYgY29uZmln dXJhdGlvbiwgZS5nLiwgZm9yIHJldHJhbnNtaXNzaW9uLCBjaGFubmVsLCB0cmFuc21pc3Npb24N CiAgICAgIHBvd2VyLCBldGMuDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJl cyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSAxMF0NCgwNCkludGVybmV0LURy YWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwg MjAwNA0KDQoNCiAgIG8gIFdUUCBjb25maWd1cmF0aW9uLCBlLmcuLCBmb3IgU1NJRCwgZXRjLg0K ICAgbyAgV1RQIGZpcm13YXJlIGxvYWRpbmcsIGUuZy4sIGF1dG9tYXRpYyBsb2FkaW5nIGFuZCB1 cGdyYWRpbmcgb2YgV1RQDQogICAgICBmaXJtd2FyZSBmb3IgbmV0d29yayB3aWRlIGNvbnNpc3Rl bmN5Lg0KICAgbyAgTmV0d29yay13aWRlIFNUQSBzdGF0ZSBpbmZvcm1hdGlvbiBkYXRhYmFzZSwg aW5jbHVkaW5nIHRoZQ0KICAgICAgaW5mb3JtYXRpb24gbmVlZGVkIHRvIHN1cHBvcnQgdmFsdWUt YWRkZWQgc2VydmljZXMsIHN1Y2ggYXMNCiAgICAgIG1vYmlsaXR5LCBsb2FkIGJhbGFuY2luZyBl dGMuDQogICBvICBNdXR1YWwgYXV0aGVudGljYXRpb24gYmV0d2VlbiBuZXR3b3JrIGVudGl0aWVz LCBlLmcuLCBmb3IgQUMgYW5kDQogICAgICBXVFAgYXV0aGVudGljYXRpb24gaW4gYSBDZW50cmFs aXplZCBXTEFOIEFyY2hpdGVjdHVyZS4NCg0KICAgVGhlIHNlcnZpY2VzIGxpc3RlZCBhcmUgY29u Y2VybmVkIHdpdGggY29uZmlndXJhdGlvbiBhbmQgY29udHJvbCBvZg0KICAgdGhlIHJhZGlvIHJl c291cmNlICgnUkYgTW9uaXRvcmluZycgYW5kICdSRiBDb25maWd1cmF0aW9uJyksDQogICBtYW5h Z2VtZW50IGFuZCBjb25maWd1cmF0aW9uIG9mIHRoZSBXVFAgZGV2aWNlICgnV1RQIENvbmZpZ3Vy YXRpb24nLA0KICAgJ1dUUCBGaXJtd2FyZSB1cGdyYWRlJyksIGFuZCBhbHNvIHNlY3VyaXR5IHJl Z2FyZGluZyB0aGUgcmVnaXN0cmF0aW9uDQogICBvZiB0aGUgV1RQIHRvIGFuIEFDICgnQUMvV1RQ IG11dHVhbCBhdXRoZW50aWNhdGlvbicpLiBNb3Jlb3ZlciwgdGhlDQogICBkZXZpY2UgZnJvbSB3 aGljaCBvdGhlciBzZXJ2aWNlcyBzdWNoIGFzIG1vYmlsaXR5IG1hbmFnZW1lbnQgYWNyb3NzDQog ICBzdWJuZXRzLCBhbmQgbG9hZCBiYWxhbmNpbmcgY2FuIG9idGFpbiBzdGF0ZSBpbmZvcm1hdGlv biByZWdhcmRpbmcNCiAgIHRoZSBTVEEocykgYXNzb2NpYXRlZCB3aXRoIHRoZSB3aXJlbGVzcyBu ZXR3b3JrLCBpcyBhbHNvIHJlcG9ydGVkIGFzDQogICBhIHNlcnZpY2UgKCdTVEEgc3RhdGUgaW5m byBkYXRhYmFzZScpLg0KDQogICBUaGUgYWJvdmUgbGlzdCBvZiBDQVBXQVAgZnVuY3Rpb25zIGRv ZXMgbm90IGF0dGVtcHQgdG8gYmUgYW4NCiAgIGV4aGF1c3RpdmUgZW51bWVyYXRpb24gb2YgYWxs IGFkZGl0aW9uYWwgc2VydmljZXMgb2ZmZXJlZCBieSB2ZW5kb3JzLg0KICAgSW5zdGVhZCwgd2Ug aW5jbHVkZWQgb25seSB0aG9zZSBmdW5jdGlvbnMgdGhhdCB3ZXJlIGZyZXF1ZW50bHkNCiAgIGVu Y291bnRlcmVkIGluIHRoZSBzdXJ2ZXkgZGF0YSwgYW5kIGFyZSBhbHNvIHBlcnRpbmVudCB0byB0 aGUNCiAgIHVuZGVyc3RhbmRpbmcgb2YgdGhlIGNlbnRyYWwgcHJvYmxlbSBvZiBpbnRlcm9wZXJh YmlsaXR5Lg0KDQogICBNb3N0IG9mIHRoZXNlIGZ1bmN0aW9ucyBhcmUgbm90IGV4cGxpY2l0bHkg c3BlY2lmaWVkIGJ5IElFRUUgODAyLjExLA0KICAgYnV0IHNvbWUgb2YgdGhlIGZ1bmN0aW9ucyBh cmUuIEZvciBleGFtcGxlLCBjb250cm9sIGFuZCBtYW5hZ2VtZW50IG9mDQogICB0aGUgcmFkaW8t cmVsYXRlZCBmdW5jdGlvbnMgb2YgYW4gQVAgYXJlIGRlc2NyaWJlZCBpbXBsaWNpdGx5IGluIHRo ZQ0KICAgTUlCLCBzdWNoIGFzOg0KICAgbyAgQ2hhbm5lbCBBc3NpZ25tZW50DQogICBvICBUcmFu c21pdCBQb3dlciBDb250cm9sDQogICBvICBSYWRpbyBSZXNvdXJjZSBNZWFzdXJlbWVudCAod29y ayBjdXJyZW50bHkgdW5kZXIgd2F5IGluIElFRUUNCiAgICAgIDgwMi4xMWspDQoNCiAgIFRoZSA4 MDIuMTFoIFs2XSBhbWVuZG1lbnQgdG8gdGhlIGJhc2UgODAyLjExIHN0YW5kYXJkIHNwZWNpZmll cyB0aGUNCiAgIG9wZXJhdGlvbiBvZiBhIE1BQyBtYW5hZ2VtZW50IHByb3RvY29sIHRvIGFjY29t cGxpc2ggdGhlIHJlcXVpcmVtZW50cw0KICAgb2Ygc29tZSByZWd1bGF0b3J5IGJvZGllcyAocHJp bmNpcGFsbHkgaW4gRXVyb3BlLCBidXQgZXhwYW5kaW5nIHRvDQogICBvdGhlcnMpIGluIHRoZXNl IGFyZWFzOg0KICAgbyAgUkFEQVIgZGV0ZWN0aW9uDQogICBvICBUcmFuc21pdCBQb3dlciBDb250 cm9sDQogICBvICBEeW5hbWljIENoYW5uZWwgU2VsZWN0aW9uDQoNCjIuMyAgV0xBTiBBcmNoaXRl Y3R1cmUgUHJvbGlmZXJhdGlvbg0KDQogICBUaGlzIGRvY3VtZW50IGJyaW5ncyBpbnRvIGxpZ2h0 IHRoZSBkaWZmZXJlbnQgV0xBTiBuZXR3b3JrDQogICBhcmNoaXRlY3R1cmVzIHRoYXQgaGF2ZSBi ZWVuIGZvbGxvd2VkIHNvIGZhciBieSBkaWZmZXJlbnQgdmVuZG9ycywgaW4NCiAgIGFuIGF0dGVt cHQgdG8gYWRkcmVzcyBzb21lIG9yIGFsbCBvZiB0aGUgcHJvYmxlbXMgb3V0bGluZWQgaW4gIFsy XS4NCiAgIEFzIElFRUUgODAyLjExIHN0YW5kYXJkIGV4cGxpY2l0bHkgZG9lcyBub3Qgc3BlY2lm eSB0aGUgZGV0YWlscyBvZiBEUw0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGly ZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAgICAgW1BhZ2UgMTFdDQoMDQpJbnRlcm5ldC1E cmFmdCAgICAgICAgICAgQ0FQV0FQIEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmls IDIwMDQNCg0KDQogICBpbXBsZW1lbnRhdGlvbnMsIGRpZmZlcmVudCBhcmNoaXRlY3R1cmVzIHBy b2xpZmVyYXRlIGluIHRoZSBtYXJrZXQuDQogICBXaGlsZSB0aGVzZSBkaWZmZXJlbnQgYXJjaGl0 ZWN0dXJlcyBhbGwgY29uZm9ybSB0byB0aGUgSUVFRSA4MDIuMTENCiAgIHN0YW5kYXJkIGFzIGEg d2hvbGUsIHRoZSBpbmRpdmlkdWFsIGZ1bmN0aW9uYWwgY29tcG9uZW50cyBpbiB0aGVzZQ0KICAg YXJjaGl0ZWN0dXJlcyBhcmUgbm90IHN0YW5kYXJkaXplZCwgYW5kIHRoZSBpbnRlcmZhY2VzIGJl dHdlZW4gdGhlDQogICBuZXR3b3JrIGFyY2hpdGVjdHVyZSBjb21wb25lbnRzIGFyZSBtb3N0bHkg cHJvcHJpZXRhcnksIGhlbmNlIHRoZXJlDQogICBpcyBubyBndWFyYW50ZWUgb2YgY3Jvc3MtdmVu ZG9yIGludGVyb3BlcmFiaWxpdHkgZXZlbiB3aXRoaW4gc2ltaWxhcg0KICAgYXJjaGl0ZWN0dXJl IGZhbWlseS4NCg0KICAgSW4gb3JkZXIgdG8gYWNoaWV2ZSBpbnRlcm9wZXJhYmlsaXR5IGluIHRo ZSBtYXJrZXQgcGxhY2UsIHRoZSBJRVRGDQogICBDQVBXQVAgd29ya2luZyBncm91cCBpcyB0YWtp bmcgb24gdGhlIGZpcnN0IGxvZ2ljYWwgdGFzayBvZg0KICAgZG9jdW1lbnRpbmcgYm90aCB0aGUg ZnVuY3Rpb25hbCBhbmQgdGhlIG5ldHdvcmsgYXJjaGl0ZWN0dXJlcyBvZmZlcmVkDQogICBieSB0 aGUgZXhpc3RpbmcgV0xBTiB2ZW5kb3JzIHRvZGF5LiBUaGUgZW5kIHJlc3VsdCBvZiB0aGlzIHRh c2sgaXMNCiAgIHRoaXMgdGF4b25vbXkgZG9jdW1lbnQuDQoNCiAgIEFmdGVyIGFuYWx5emluZyBh Ym91dCBhIGRvemVuIGRpZmZlcmVudCB2ZW5kb3JzJyBhcmNoaXRlY3R1cmVzLCB3ZQ0KICAgYmVs aWV2ZSB0aGF0IHRoZSBleGlzdGluZyA4MDIuMTEgV0xBTiBhY2Nlc3MgbmV0d29yayBhcmNoaXRl Y3R1cmVzDQogICBjYW4gYmUgYnJvYWRseSBjYXRlZ29yaXplZCBpbnRvIHRocmVlIGRpc3RpbmN0 IGFyY2hpdGVjdHVyZSBmYW1pbGllcw0KICAgYmFzZWQgb24gdGhlIGNoYXJhY3RlcmlzdGljcyBv ZiB0aGUgRGlzdHJpYnV0aW9uIFN5c3RlbXMgdGhhdCBhcmUNCiAgIGVtcGxveWVkIHRvIHByb3Zp ZGUgdGhlIDgwMi4xMSBmdW5jdGlvbnMuDQogICBvICBBdXRvbm9tb3VzIFdMQU4gQXJjaGl0ZWN0 dXJlOiBUaGUgZmlyc3QgYXJjaGl0ZWN0dXJlIGZhbWlseSBpcyB0aGUNCiAgICAgIHRyYWRpdGlv bmFsIFdMQU4gYXJjaGl0ZWN0dXJlLCB3aGVyZSBlYWNoIFdUUCBpcyBvbmUgcGh5c2ljYWwNCiAg ICAgIGRldmljZSB0aGF0IGltcGxlbWVudHMgYWxsIHRoZSA4MDIuMTEgc2VydmljZXMsIGluY2x1 ZGluZyBib3RoIHRoZQ0KICAgICAgZGlzdHJpYnV0aW9uIGFuZCBpbnRlZ3JhdGlvbiBzZXJ2aWNl cywgYW5kIHRoZSBwb3J0YWwgZnVuY3Rpb24uDQogICAgICBTdWNoIEFQIGFyY2hpdGVjdHVyZSBp cyBjYWxsZWQgQXV0b25vbW91cyBXTEFOIEFyY2hpdGVjdHVyZSwNCiAgICAgIGJlY2F1c2UgZWFj aCBXVFAgaXMgYXV0b25vbW91cyBpbiBpdHMgZnVuY3Rpb25hbGl0eSwgYW5kIGl0IGRvZXMNCiAg ICAgIG5vdCByZXF1aXJlIDgwMi4xMSBzcGVjaWZpYyBzdXBwb3J0IGZyb20gYW55IG90aGVyIG5l dHdvcmsNCiAgICAgIGVsZW1lbnRzLiBUaGUgV1RQIGluIHN1Y2ggYXJjaGl0ZWN0dXJlIGlzIHR5 cGljYWxseSBjb25maWd1cmVkIGFuZA0KICAgICAgY29udHJvbGxlZCBpbmRpdmlkdWFsbHkgYW5k IGNhbiBiZSBtb25pdG9yZWQgYW5kIG1hbmFnZWQgdmlhDQogICAgICB0eXBpY2FsIG5ldHdvcmsg bWFuYWdlbWVudCBwcm90b2NvbHMgbGlrZSBTTk1QLiBCdXQgbm8gZXhwbGljaXQNCiAgICAgIDgw Mi4xMSBzdXBwb3J0IGlzIG5lZWRlZCBvdXRzaWRlIG9mIHRoZSBXVFAuIFNvIHRoZSBXVFBzIGlu IHRoaXMNCiAgICAgIGFyY2hpdGVjdHVyZSBhcmUgdGhlIHRyYWRpdGlvbmFsIEFjY2VzcyBQb2lu dHMgbW9zdCBwZW9wbGUgYXJlDQogICAgICBmYW1pbGlhciB3aXRoLiBTb21ldGltZXMgc3VjaCBX VFBzIGFyZSByZWZlcnJlZCB0byBhcyAiRmF0IEFQcyIgb3INCiAgICAgICJTdGFuZGFsb25lIEFQ cyIuDQogICBvICBDZW50cmFsaXplZCBXTEFOIEFyY2hpdGVjdHVyZTogVGhlIHNlY29uZCBXTEFO IGFyY2hpdGVjdHVyZSBmYW1pbHkNCiAgICAgIGlzIGEgbmV3bHkgZW1lcmdpbmcgaGllcmFyY2hp Y2FsIGFyY2hpdGVjdHVyZSB1dGlsaXppbmcgb25lIG9yDQogICAgICBtdWx0aXBsZSBjZW50cmFs aXplZCBjb250cm9sbGVyIGZvciBsYXJnZSBudW1iZXIgb2YgV1RQIGRldmljZXMuDQogICAgICBU aGUgY2VudHJhbGl6ZWQgY29udHJvbGxlciBpcyBjb21tb25seSByZWZlcnJlZCB0byBhcyBBY2Nl c3MNCiAgICAgIENvbnRyb2xsZXIgKEFDKSwgd2hvc2UgbWFpbiBmdW5jdGlvbiBpbiB0aGUgbmV0 d29yayBpcyB0byBjb250cm9sLA0KICAgICAgbWFuYWdlIGFuZCBtb25pdG9yIHRoZSBXVFAgZGV2 aWNlcyB0aGF0IGFyZSBwcmVzZW50IGluIHRoZQ0KICAgICAgbmV0d29yay4gQWNjZXNzIENvbnRy b2xsZXIgY291bGQgYmUgYSBMMyBvciBMMiBkZXZpY2UsIGFuZCBpdA0KICAgICAgY291bGQgYWxz byBiZSBjby1sb2NhdGVkIHdpdGggYSBMMiBicmlkZ2UgKHN3aXRjaCkgb3IgYSBMMyByb3V0ZXIs DQogICAgICBhbmQgaGVuY2UgbWF5IGJlIHJlZmVycmVkIHRvIGFzIEFjY2VzcyBCcmlkZ2UsIG9y IEFjY2VzcyBSb3V0ZXIgaW4NCiAgICAgIHRob3NlIHBhcnRpY3VsYXIgY2FzZXMuIEJ1dCBBY2Nl c3MgQ29udHJvbGxlciBpcyB0aGUgZ2VuZXJpYw0KICAgICAgdGVybWlub2xvZ3kgd2UgdXNlIHRo cm91Z2ggdGhpcyBkb2N1bWVudC4gVGhpcyBhcmNoaXRlY3R1cmUgZmFtaWx5DQogICAgICBoYXMg c2V2ZXJhbCBkaXN0aW5jdCBjaGFyYWN0ZXJpc3RpY3MgdGhhdCBhcmUgd29ydGggbm90aW5nLiBG aXJzdA0KICAgICAgb2YgYWxsLCB0aGUgaGllcmFyY2hpY2FsIGFyY2hpdGVjdHVyZSBhbmQgdGhl IGNlbnRyYWxpemVkIEFDDQogICAgICBhZmZvcmQgbXVjaCBiZXR0ZXIgbWFuYWdlYWJpbGl0eSBm b3IgdGhlIGxhcmdlIHNjYWxlIG5ldHdvcmtzLg0KICAgICAgU2Vjb25kbHksIHNpbmNlIHRoZSBJ RUVFIDgwMi4xMSBmdW5jdGlvbnMgYW5kIHRoZSBDQVBXQVAgY29udHJvbA0KDQoNCg0KWWFuZyAo RWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAgICAg W1BhZ2UgMTJdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQIEFyY2guIFRheG9u b215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICAgICBmdW5jdGlvbnMgYXJlIHBy b3ZpZGVkIGJ5IHRoZSBXVFAgZGV2aWNlcyBhbmQgdGhlIEFDIHRvZ2V0aGVyLCB0aGUNCiAgICAg IFdUUCBkZXZpY2VzIHRoZW1zZWx2ZXMgbWF5IG5vdCBpbXBsZW1lbnQgdGhlIGZ1bGwgODAyLjEx IGZ1bmN0aW9ucw0KICAgICAgYXMgZGVmaW5lZCBpbiB0aGUgc3RhbmRhcmRzIGFueSBtb3JlLiBU aGVyZWZvcmUsIGl0IGNhbiBiZSBzYWlkDQogICAgICB0aGF0IHRoZSBmdWxsIDgwMi4xMSBmdW5j dGlvbnMgYXJlIGltcGxlbWVudGVkIGFjcm9zcyB0d28gcGh5c2ljYWwNCiAgICAgIG5ldHdvcmsg ZGV2aWNlcywgbmFtZWx5LCB0aGUgV1RQcyBhbmQgQUNzLiBCZWNhdXNlIHRoZSBXVFAgZGV2aWNl cw0KICAgICAgb25seSBpbXBsZW1lbnQgYSBwb3J0aW9uIG9mIHRoZSBmdW5jdGlvbnMgdGhhdCBz dGFuZGFsb25lIEFQcw0KICAgICAgaW1wbGVtZW50LCBhbmQgc3VjaCBXVFAgZGV2aWNlcyBpbiBz dWNoIGFyY2hpdGVjdHVyZSBhcmUgc29tZXRpbWVzDQogICAgICByZWZlcnJlZCB0byBhcyBsaWdo dCB3ZWlnaHQgb3IgdGhpbiBBUHMuDQogICBvICBEaXN0cmlidXRlZCBXTEFOIEFyY2hpdGVjdHVy ZTogVGhlIHRoaXJkIGVtZXJnaW5nIFdMQU4NCiAgICAgIGFyY2hpdGVjdHVyZSBmYW1pbHkgaXMg ZGlzdHJpYnV0ZWQgYXJjaGl0ZWN0dXJlcyBpbiB3aGljaCB0aGUgV1RQcw0KICAgICAgYXJlIGNh cGFibGUgb2YgZm9ybWluZyBhIGRpc3RyaWJ1dGVkIG5ldHdvcmsgYW1vbmcgdGhlbXNlbHZlcywg dmlhDQogICAgICBlaXRoZXIgd2lyZWQgb3Igd2lyZWxlc3MgbWVkaWEuIEEgd2lyZWxlc3MgbWVz aCBuZXR3b3JrIG9mIFdUUHMgaXMNCiAgICAgIG9uZSBleGFtcGxlIGluIHRoZSBkaXN0cmlidXRl ZCBhcmNoaXRlY3R1cmUgZmFtaWx5LCAgd2hlcmUgdGhlIEFQcw0KICAgICAgdGhlbXNlbHZlcyBm b3JtIGEgbWVzaCBuZXR3b3JrIGNvbm5lY3RpbmcgbmVpZ2hib3JpbmcgQVBzIHZpYQ0KICAgICAg ODAyLjExIHdpcmVsZXNzIGxpbmtzLCBhbmQgc29tZSBvZiB0aGUgQVBzIGFsc28gaGF2ZSB3aXJl ZA0KICAgICAgRXRoZXJuZXQgY29ubmVjdGlvbnMgdG8gdGhlIGdhdGV3YXkgdG8gdGhlIGV4dGVy bmFsIG5ldHdvcmsuDQoNCjIuNCAgVGF4b25vbXkgTWV0aG9kb2xvZ3kgYW5kIERvY3VtZW50IE9y Z2FuaXphdGlvbg0KDQogICBCZWZvcmUgdGhlIElFVEYgQ0FQV0FQIHdvcmtpbmcgZ3JvdXAgc3Rh cnRlZCBkb2N1bWVudGluZyB0aGUgdmFyaW91cw0KICAgV0xBTiBhcmNoaXRlY3R1cmVzLCB3ZSBj b25kdWN0ZWQgYW4gb3BlbiBzdXJ2ZXkgc29saWNpdGluZyBXTEFODQogICBhcmNoaXRlY3R1cmUg ZGVzY3JpcHRpb24gY29udHJpYnV0aW9ucyB2aWEgdGhlIElFVEYgQ0FQV0FQIG1haWxpbmcNCiAg IGxpc3QuIFdlIHJlY2VpdmVkIDE0IGNvbnRyaWJ1dGlvbnMgaW4gdGhlIGZvcm0gb2Ygc2hvcnQg dGV4dA0KICAgZGVzY3JpcHRpb25zLCAxMyBvZiB0aGVtIGFyZSBmcm9tIFdMQU4gdmVuZG9ycyAg KEFpcmVTcGFjZSwgQXJ1YmEsDQogICBBdmF5YSwgQ2hhbnRyeSBOZXR3b3JrcywgQ2lzY28sIENy YW5pdGUgU3lzdGVtcywgRXh0cmVtZSBOZXR3b3JrcywNCiAgIEludG90bywgUGFuYXNvbmljLCBU cmFwZXplLCBJbnN0YW50ODAyLCBTdHJpeCBTeXN0ZW1zLCBTeW1ib2wpIGFuZA0KICAgb25lIGZy b20gYW4gYWNhZGVtaWMgcmVzZWFyY2hlciAoVUNMQSkuIE91dCBvZiB0aGUgMTQgY29udHJpYnV0 aW9ucywNCiAgIG9uZSBkZXNjcmliZWQgYW4gQXV0b25vbW91cyBXTEFOIEFyY2hpdGVjdHVyZSwg YW5vdGhlciBhIERpc3RyaWJ1dGVkDQogICBNZXNoIEFyY2hpdGVjdHVyZSwgd2hpbGUgdGhlIHJl c3QgMTIgZW50cmllcyByZXByZXNlbnQgYXJjaGl0ZWN0dXJlcw0KICAgdGhhdCBmYWxsIGludG8g dGhlIGZhbWlseSBvZiBDZW50cmFsaXplZCBXTEFOIEFyY2hpdGVjdHVyZS4NCg0KICAgVGhlIDE0 IGVudHJpZXMgdGhhdCB3ZXJlIHN1Ym1pdHRlZCBmb3IgdGhlIGFyY2hpdGVjdHVyZSBzdXJ2ZXkg YXJlDQogICBpbmNsdWRlZCBpbiB0aGlzIGRvY3VtZW50IGluIGl0cyBvcmlnaW5hbCBmb3JtIGlu IHRoZSBBcHBlbmRpeA0KICAgc2VjdGlvbnMuIFRoZSBpbmZvcm1hdGlvbiBwcm92aWRlZCBieSBl YWNoIHZlbmRvciBmb3IgYm90aCB0aGUNCiAgICJGdW5jdGlvbmFsaXR5IERpc3RyaWJ1dGlvbiBN YXRyaXgiIGluIHRoaXMgZG9jdW1lbnQgYW5kIHRoZSBBcHBlbmRpeA0KICAgaXMgaW50ZW5kZWQg Zm9yIHRoZSB1c2Ugb2YgY3JlYXRpbmcgdGhpcyBhcmNoaXRlY3R1cmFsIHRheG9ub215IG9ubHku DQogICBJdCByZXByZXNlbnRzIHRoZSBjb250cmlidXRvcidzIHZpZXcgb2YgdGhlIGFyY2hpdGVj dHVyZSBmcm9tIGFuDQogICBlbmdpbmVlcmluZyBwZXJzcGVjdGl2ZSBhbmQgZG9lcyBub3QgbmVj ZXNzYXJpbHkgaW1wbHkgYW4gZXhpc3RpbmcNCiAgIHByb2R1Y3QsIHNoaXBwaW5nIG9yIG5vdCwg bm9yIGFuIGludGVudCBieSB0aGUgdmVuZG9yIHRvIGJ1aWxkIHN1Y2ggYQ0KICAgcHJvZHVjdC4N Cg0KICAgVGhlIGludGVyZXN0aW5nIGRhdGEgd2UgdHJ5IHRvIGdldCBvdXQgb2YgdGhlc2Ugc3Vy dmV5IGRhdGEgaXMgbm90DQogICB3aGljaCB2ZW5kb3IgZG9lcyB3aGF0LCBidXQgd2hhdCBhcmUg dGhlIGdlbmVyYWwgY2F0ZWdvcmllcyBhbmQNCiAgIHRyZW5kcyBpbiBXTEFOIGFyY2hpdGVjdHVy ZSBldm9sdXRpb24sIGFuZCB3aGF0IGFyZSB0aGUgY29tbW9uDQogICBjaGFyYWN0ZXJpc3RpY3Mg YW5kIHdoYXQgYXJlIGJlaW5nIGRvbmUgZGlmZmVyZW50bHksIGFuZCB3aHkuIEluDQogICBvcmRl ciB0byByZXByZXNlbnQgdGhlIHN1cnZleSBkYXRhIGluIGEgY29tcGFjdCBmb3JtYXQsIGEgIkZ1 bmN0aW9uYWwNCiAgIERpc3RyaWJ1dGlvbiBNYXRyaXgiIGlzIHVzZWQgaW4gdGhpcyBkb2N1bWVu dCB0byB0YWJ1bGF0ZSB0aGUNCiAgIHZhcmlvdXMgc2VydmljZXMgYW5kIGZ1bmN0aW9ucyBpbiB2 YXJpb3VzIHZlbmRvcidzIG9mZmVyaW5ncy4gVGhlc2UNCg0KDQoNCllhbmcgKEVkaXRvciksIGV0 IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQgICAgICAgICAgICAgIFtQYWdlIDEzXQ0K DA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdBUCBBcmNoLiBUYXhvbm9teSAgICAgICAg ICAgICAgICBBcHJpbCAyMDA0DQoNCg0KICAgc2VydmljZXMgYW5kIGZ1bmN0aW9ucyBhcmUgY2xh c3NpZmllZCBpbnRvIHRocmVlIG1haW4gY2F0ZWdvcmllczoNCiAgIG8gIEFyY2hpdGVjdHVyZSBD b25zaWRlcmF0aW9uczogdGhlIGNob2ljZSBvZiB0aGUgaW50ZXJjb25uZWN0aW9uDQogICAgICB0 b3BvbG9neSBiZXR3ZWVuIHRoZSBBQyBhbmQgdGhlIEFQIGlzIGFuIGFyY2hpdGVjdHVyZQ0KICAg ICAgY29uc2lkZXJhdGlvbi4gQWxzbywgZGVzaWduIGNob2ljZXMgcmVnYXJkaW5nIHRoZSBwaHlz aWNhbCBkZXZpY2UNCiAgICAgIG9uIHdoaWNoIHByb2Nlc3Npbmcgb2YgbWFuYWdlbWVudCwgY29u dHJvbCwgYW5kIGRhdGEgZnJhbWVzIG9mIHRoZQ0KICAgICAgODAyLjExIHRha2VzIHBsYWNlIGFy ZSBhbHNvIGludGVyZXN0aW5nIHRvIHBvaW50IG91dC4NCiAgIG8gIDgwMi4xMSBGdW5jdGlvbnM6 IGFzIGRlc2NyaWJlZCBpbiBTZWN0aW9uIDIuMS4NCiAgIG8gIENBUFdBUCBGdW5jdGlvbnM6IGFz IGRlc2NyaWJlZCBpbiBTZWN0aW9uIDIuMi4NCg0KICAgRm9yIGVhY2ggb25lIG9mIHRoZXNlIGNh dGVnb3JpZXMsIHRoZSBtYXBwaW5nIG9mIGVhY2ggaW5kaXZpZHVhbA0KICAgZnVuY3Rpb24gdG8g bmV0d29yayBlbnRpdGllcyBpbXBsZW1lbnRlZCBieSBlYWNoIHZlbmRvciBpcyBzaG93biBpbg0K ICAgdGFidWxhciBmb3JtLiBUaGUgcm93cyBpbiB0aGUgRnVuY3Rpb25hbCBEaXN0cmlidXRpb24g TWF0cml4DQogICByZXByZXNlbnQgdGhlIGluZGl2aWR1YWwgZnVuY3Rpb25zIHRoYXQgYXJlIG9y Z2FuaXplZCBpbnRvIHRoZSBhYm92ZQ0KICAgbWVudGlvbmVkIHRocmVlIGNhdGVnb3JpZXMsIHdo aWxlIGVhY2ggY29sdW1uIG9mIHRoZSBNYXRyaXgNCiAgIHJlcHJlc2VudHMgb25lIHZlbmRvcidz IGFyY2hpdGVjdHVyZSBvZmZlcmluZyBpbiB0aGUgc3VydmV5IGRhdGEuDQogICBTdWNoIG1hdHJp eCB3aWxsIGJlIHVzZWQgdGhyb3VnaHB1dCB0aGUgcmVzdCBvZiB0aGUgZG9jdW1lbnQgdG8NCiAg IHJlcHJlc2VudCB0aGUgZGF0YSBzZXQgd2UgaGF2ZSBjb2xsZWN0ZWQgZnJvbSB0aGUgc3VydmV5 Lg0KDQogICBUaGUgcmVzdCBvZiB0aGlzIGRvY3VtZW50IGlzIG9yZ2FuaXplZCBhcm91bmQgdGhl IHRocmVlIGJyb2FkIFdMQU4NCiAgIGFyY2hpdGVjdHVyZSBmYW1pbGllcyB0aGF0IHdlcmUgaW50 cm9kdWNlZCBpbiBTZWN0aW9uIDIuMy4gRWFjaA0KICAgYXJjaGl0ZWN0dXJlIGZhbWlseSBpcyBk aXNjdXNzZWQgaW4gYSBzZXBhcmF0ZSBzZWN0aW9uLiBUaGUgc2VjdGlvbg0KICAgb24gQ2VudHJh bGl6ZWQgQXJjaGl0ZWN0dXJlIGNvbnRhaW5zIG1vcmUgaW4tZGVwdGggZGV0YWlscyB0aGFuIHRo ZQ0KICAgb3RoZXIgdHdvIGZhbWlsaWVzLCBsYXJnZWx5IGR1ZSB0byB0aGUgbGFyZ2UgbnVtYmVy IG9mIHRoZSBzdXJ2ZXkNCiAgIGRhdGEgKDExIG91dCBvZiAxNCkgY29sbGVjdGVkIGZhbGxpbmcg aW50byB0aGUgQ2VudHJhbGl6ZWQNCiAgIEFyY2hpdGVjdHVyZSBjYXRlZ29yeS4NCg0KICAgU3Vt bWFyeSBhbmQgY29uY2x1c2lvbnMgYXJlIHByb3ZpZGVkIGF0IHRoZSBlbmQgb2YgdGhlIGRvY3Vt ZW50IHRvDQogICBoaWdobGlnaHQgdGhlIGJhc2ljIGZpbmRpbmdzIGZyb20gdGhpcyB0YXhvbm9t eSBleGVyY2lzZS4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAg ICAgICAgICBbUGFnZSAxNF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJj aC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAwNA0KDQoNCjMuICBBdXRvbm9tb3Vz IEFyY2hpdGVjdHVyZQ0KDQozLjEgIE92ZXJ2aWV3DQoNCiAgIEZpZ3VyZSAxIHNob3dzIGFuIGV4 YW1wbGUgbmV0d29yayBvZiB0aGUgQXV0b25vbW91cyBXTEFODQogICBBcmNoaXRlY3R1cmUuICBU aGlzIGFyY2hpdGVjdHVyZSBjb21iaW5lcyBhbGwgdGhlIDgwMi4xMQ0KICAgZnVuY3Rpb25hbGl0 eSBpbiBhIHNpbmdsZSBwaHlzaWNhbCBkZXZpY2UsIHRoZSBXVFAuIEEgY29tbW9uDQogICBlbWJv ZGltZW50IG9mIHRoaXMgYXJjaGl0ZWN0dXJlIGlzIGEgV1RQIHRoYXQgdHJhbnNsYXRlcyBiZXR3 ZWVuDQogICA4MDIuMTEgZnJhbWVzIHRvL2Zyb20gaXRzIHJhZGlvIGludGVyZmFjZSBhbmQgODAy LjMgZnJhbWVzIHRvL2Zyb20gYW4NCiAgIEV0aGVybmV0IGludGVyZmFjZS4gQW4gODAyLjMgaW5m cmFzdHJ1Y3R1cmUgdGhhdCBpbnRlcmNvbm5lY3RzIHRoZQ0KICAgRXRoZXJuZXQgaW50ZXJmYWNl cyBvZiBkaWZmZXJlbnQgV1RQcyB0b2dldGhlciBwcm92aWRlcyB0aGUNCiAgIGRpc3RyaWJ1dGlv biBzeXN0ZW0uIEl0IGNhbiBhbHNvIHByb3ZpZGUgcG9ydGFscyBmb3IgaW50ZWdyYXRlZCA4MDIu Mw0KICAgTEFOIHNlZ21lbnRzLg0KDQogICAgICAgKy0tLS0tLS0tLS0tLS0tLSsgICAgICstLS0t LS0tLS0tLS0tLS0rICAgICArLS0tLS0tLS0tLS0tLS0tKw0KICAgICAgIHwgIDgwMi4xMSBCU1Mg MSB8ICAgICB8ICA4MDIuMTEgQlNTIDIgfCAgICAgfCAgODAyLjExIEJTUyAzIHwNCiAgICAgICB8 ICAuLi4gICAgICAgICAgfCAgICAgfCAgLi4uICAgICAgICAgIHwgICAgIHwgIC4uLiAgICAgICAg ICB8DQogICAgICAgfCAgICArLS0tLS0rICAgIHwgICAgIHwgICAgKy0tLS0tKyAgICB8ICAgICB8 ICAgICstLS0tLSsgICAgfA0KICAgICAgICstLS0tfCBXVFAgfC0tLS0rICAgICArLS0tLXwgV1RQ IHwtLS0tKyAgICAgKy0tLS18IFdUUCB8LS0tLSsNCiAgICAgICAgICAgICstLSstLSsgICAgICAg ICAgICAgICArLS0rLS0rICAgICAgICAgICAgICAgKy0tKy0tKw0KICAgICAgICAgICAgICAgfEV0 aGVybmV0ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8DQogICAgICAgICAgICAg ICArLS0tLS0tLS0tLS0tLS0tLS0tKyAgfCAgKy0tLS0tLS0tLS0tLS0tLS0tLSsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB8ICB8DQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICArLS0tKy0tKy0tKy0tLSsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg RXRoZXJuZXQgICAgfA0KICAgICA4MDIuMyBMQU4gIC0tLS0tLS0tLS0tLS0tKyBTd2l0Y2ggICAg ICArLS0tLS0tLS0tLS0tLS0gODAyLjMgTEFODQogICAgIHNlZ21lbnQgMSAgICAgICAgICAgICAg ICB8ICAgICAgICAgICAgIHwgICAgICAgICAgICAgICBzZWdtZW50IDINCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICstLS0tLS0rLS0tLS0tKw0KDQogICAgICAgICAgIEZpZ3VyZSAxOiBF eGFtcGxlIG9mIEF1dG9ub21vdXMgV0xBTiBBcmNoaXRlY3R1cmUNCg0KICAgQSBzaW5nbGUgcGh5 c2ljYWwgV1RQIGNhbiBvcHRpb25hbGx5IGJlIHByb3Zpc2lvbmVkIGFzIG11bHRpcGxlDQogICB2 aXJ0dWFsIFdUUHMgYnkgc3VwcG9ydGluZyBtdWx0aXBsZSBTU0lEcyB0byB3aGljaCA4MDIuMTEg Y2xpZW50cyBtYXkNCiAgIGFzc29jaWF0ZS4gVXN1YWxseSB0aGlzIHdpbGwgYWxzbyBpbnZvbHZl IHB1dHRpbmcgYSBjb3JyZXNwb25kaW5nDQogICA4MDIuMVEgdGFnIG9uIGVhY2ggcGFja2V0IGZv cndhcmRlZCB0byB0aGUgRXRoZXJuZXQgaW5mcmFzdHJ1Y3R1cmUuDQoNCiAgIFRoZSBzY29wZSBv ZiB0aGUgRVNTKHMpIGNyZWF0ZWQgYnkgaW50ZXJjb25uZWN0aW5nIHRoZSBXVFBzIHdpbGwgYmUN CiAgIGNvbmZpbmVkIGJ5IHRoZSBjb25zdHJhaW50cyBpbXBvc2VkIGJ5IHRoZSBFdGhlcm5ldCBp bmZyYXN0cnVjdHVyZS4NCg0KICAgQXV0aGVudGljYXRpb24gb2YgODAyLjExIGNsaWVudHMgbWF5 IGJlIHBlcmZvcm1lZCBsb2NhbGx5IGJ5IHRoZSBXVFANCiAgIG9yIGJ5IHVzaW5nIGEgY2VudHJh bGl6ZWQgYXV0aGVudGljYXRpb24gc2VydmVyLg0KDQozLjIgIFNlY3VyaXR5DQoNCiAgIFNpbmNl IGJvdGggdGhlIDgwMi4xMSBhbmQgQ0FQV0FQIGZ1bmN0aW9uYWxpdHkgaXMgdGlnaHRseSBpbnRl Z3JhdGVkDQogICBpbnRvIGEgc2luZ2xlIHBoeXNpY2FsIGRldmljZSwgdGhlIHNlY3VyaXR5IGlz c3VlcyB3aXRoIHRoaXMNCiAgIGFyY2hpdGVjdHVyZSBhcmUgY29uZmluZWQgdG8gdGhlIFdUUC4g IFRoZXJlIGFyZSBubyBleHRyYQ0KICAgaW1wbGljYXRpb25zIGZyb20gdGhlIGNsaWVudCBhdXRo ZW50aWNhdGlvbiBhbmQgZW5jcnlwdGlvbi9kZWNyeXB0aW9uDQoNCg0KDQpZYW5nIChFZGl0b3Ip LCBldCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSAx NV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAg ICAgICAgICAgICAgQXByaWwgMjAwNA0KDQoNCiAgIHBlcnNwZWN0aXZlIGFzIHRoZSBBQUEgaW50 ZXJmYWNlIGlzIGludGVncmF0ZWQgaW50byB0aGUgV1RQLCBhcyBpcw0KICAgdGhlIGtleSBnZW5l cmF0aW9uIG1lY2hhbmlzbXMgcmVxdWlyZWQgZm9yIDgwMi4xMWkgZW5jcnlwdGlvbi8NCiAgIGRl Y3J5cHRpb24uDQoNCiAgIEFzIHBlciBwcm9ibGVtICM0IGluIFsyXSwgdGhlIG9ubHkgc2VjdXJp dHkgaXNzdWUgaW4gdGhpcw0KICAgYXJjaGl0ZWN0dXJlIGlzIG11dHVhbCBhdXRoZW50aWNhdGlv biBiZXR3ZWVuIHRoZSBXVFAgYW5kIHRoZQ0KICAgRXRoZXJuZXQgaW5mcmFzdHJ1Y3R1cmUgdG8g ZW5zdXJlIHRoYXQgV1RQcyBjYW5ub3QgYmUgZWFzaWx5IHN0b2xlbg0KICAgYW5kIGRlcGxveWVk IGluIHVucHJvdGVjdGVkIG5ldHdvcmtzLiBUaGlzIGNhbiBiZSBlbnN1cmVkIGJ5IGV4aXN0aW5n DQogICBtZWNoYW5pc21zIHN1Y2ggYXMsIGZvciBpbnN0YW5jZSwgODAyLjF4IGJldHdlZW4gdGhl IFdUUCBhbmQgdGhlDQogICBFdGhlcm5ldCBzd2l0Y2ggaXQgcGx1Z3MgaW50by4NCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBPY3RvYmVy IDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSAxNl0NCgwNCkludGVybmV0LURyYWZ0ICAgICAg ICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAwNA0KDQoN CjQuICBDZW50cmFsaXplZCBXTEFOIEFyY2hpdGVjdHVyZQ0KDQogICBDZW50cmFsaXplZCBXTEFO IEFyY2hpdGVjdHVyZSBpcyBhIG5ld2x5IGVtZXJnaW5nIGFyY2hpdGVjdHVyZSBmYW1pbHkNCiAg IGluIHRoZSBXTEFOIG1hcmtldC4gQ29udHJhcnkgdG8gdGhlIEF1dG9ub21vdXMgV0xBTiBBcmNo aXRlY3R1cmUNCiAgIHdoZXJlIHRoZSA4MDIuMTEgZnVuY3Rpb25zIGFuZCBuZXR3b3JrIGNvbnRy b2wgZnVuY3Rpb25zIGFyZSBhbGwNCiAgIGltcGxlbWVudGVkIHdpdGhpbiBlYWNoIFdpcmVsZXNz IFRlcm1pbmF0aW9uIFBvaW50LCB0aGUgQ2VudHJhbGl6ZWQNCiAgIFdMQU4gQXJjaGl0ZWN0dXJl IGVtcGxveXMgb25lIG9yIG11bHRpcGxlIGNlbnRyYWxpemVkIGNvbnRyb2xsZXINCiAgIGNhbGxl ZCBBY2Nlc3MgQ29udHJvbGxlcihzKSBpbiB0aGUgbmV0d29yayB0byBwcm92aWRlIHRoZSBuZXR3 b3JrDQogICB3aWRlIHZpc2liaWxpdHkgYW5kIGltcHJvdmUgbWFuYWdlbWVudCBzY2FsYWJpbGl0 eSBhbmQgZHluYW1pYw0KICAgY29uZmlndXJhYmlsaXR5Lg0KDQogICBUaGUgZm9sbG93aW5nIGRp YWdyYW0gc2hvd3Mgc2NoZW1hdGljYWxseSB0aGUgQ2VudHJhbGl6ZWQgV0xBTg0KICAgQXJjaGl0 ZWN0dXJlIG5ldHdvcmsgZGlhZ3JhbSB3aGVyZSB0aGUgQWNjZXNzIENvbnRyb2xsZXIgKEFDKQ0K ICAgY29ubmVjdHMgdG8gbXVsdGlwbGUgV2lyZWxlc3MgVGVybWluYXRpb24gUG9pbnRzIChXVFBz KSB2aWEgYSBjZXJ0YWluDQogICBpbnRlcmNvbm5lY3Rpb24gdG9wb2xvZ3ksIHdoaWNoIGNhbiBi ZSBlaXRoZXIgYSBkaXJlY3QgY29ubmVjdGlvbiwgYQ0KICAgTDItc3dpdGNoZWQsIG9yIEwzLXJv dXRlZCBuZXR3b3JrIGFzIGRlc2NyaWJlZCBpbiBTZWN0aW9uIDQuMS4gIFRoZQ0KICAgQUMgZXhj aGFuZ2VzIGNvbmZpZ3VyYXRpb24sIGFuZCBjb250cm9sIGluZm9ybWF0aW9uIHdpdGggdGhlIEFQ DQogICBkZXZpY2VzLCBhbGxvd2luZyB0aGUgbWFuYWdlbWVudCBvZiB0aGUgbmV0d29yayBmcm9t IGEgY2VudHJhbGl6ZWQNCiAgIHBvaW50LiBBbHNvLCBkZXNpZ25zIG9mIHRoZSBDZW50cmFsaWVk IFdMQU4gQXJjaGl0ZWN0dXJlIGZhbWlseSBkbw0KICAgbm90IHByZXN1bWUgKGFzIHRoZSBkaWFn cmFtIG1pZ2h0IHN1Z2dlc3QgdG8gc29tZSByZWFkZXJzKSB0aGF0IHRoZQ0KICAgQUMgbmVjZXNz YXJpbHkgaW50ZXJjZWRlcyBpbiB0aGUgZGF0YSBwbGFuZSB0by9mcm9tIHRoZSBXVFAocykuIE1v cmUNCiAgIGRldGFpbHMgYXJlIHByb3ZpZGVkIGxhdGVyIGluIHRoaXMgc2VjdGlvbi4NCg0KICAg ICstLS0tLS0tLS0tLS0tLS0rICAgICArLS0tLS0tLS0tLS0tLS0tKyAgICAgKy0tLS0tLS0tLS0t LS0tLSsNCiAgICB8ICA4MDIuMTEgQlNTIDEgfCAgICAgfCAgODAyLjExIEJTUyAyIHwgICAgIHwg IDgwMi4xMSBCU1MgMyB8DQogICAgfCAgLi4uICAgICAgICAgIHwgICAgIHwgIC4uLiAgICAgICAg ICB8ICAgICB8ICAuLi4gICAgICAgICAgfA0KICAgIHwgICAgKy0tLS0tLS0rICB8ICAgICB8ICAg ICstLS0tLS0tKyAgfCAgICAgfCAgICArLS0tLS0tLSsgIHwNCiAgICArLS0tLXwgIFdUUCAgfC0t KyAgICAgKy0tLS18ICBXVFAgIHwtLSsgICAgICstLS0tfCAgV1RQICB8LS0rDQogICAgICAgICAr LS0tKy0tLSsgICAgICAgICAgICAgKy0tLSstLS0rICAgICAgICAgICAgICstLS0rLS0tKw0KICAg ICAgICAgICAgIHwgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgfA0K ICAgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tLS0rICB8ICAgKy0tLS0tLS0tLS0tLS0tLS0t Kw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICB8Li4ufA0KICAgICAgICAgICAg ICAgICAgICAgICAgICAgKy0tLS0rLS0rLS0tKy0tLS0tLS0tKw0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgfCAgSW50ZXJjb25uZWN0aW9uICAgfA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgfCAgICAgVG9wb2xvZ3kgICAgICAgfA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0t LS0tLS0rLS0tLS0tLS0tLS0tKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8 DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKy0tLS0tKy0tLS0rDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgQUMgICAgfA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLSsNCg0K ICAgICAgICAgICAgRmlndXJlIDI6IENlbnRyYWxpemVkIFdMQU4gQXJjaGl0ZWN0dXJlIERpYWdy YW0NCg0KICAgSW4gdGhlIGRpYWdyYW0gYWJvdmUsIHRoZSBBQyBpcyBzaG93biBhcyBhIHNpbmds ZSBwaHlzaWNhbCBlbnRpdHkNCiAgIHRoYXQgcHJvdmlkZXMgYWxsIG9mIHRoZSBDQVBXQVAgZnVu Y3Rpb25zIGxpc3RlZCBpbiBzZWN0aW9uIDIuMi4NCiAgIENsb3NlciBzY3J1dGlueSBvZiB0aGUg ZnVuY3Rpb25zIHJldmVhbHMgdGhhdCB0aGVpciBkaWZmZXJpbmcNCiAgIHJlc291cmNlIHJlcXVp cmVtZW50cyAoZS5nLiBDUFUsIG1lbW9yeSwgc3RvcmFnZSkgbWF5IGxlbmQgdGhlbXNlbHZlcw0K DQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAg ICAgICAgICAgICAgW1BhZ2UgMTddDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQ IEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICB0byBiZWlu ZyBkaXN0cmlidXRlZCBhY3Jvc3MgZGlmZmVyZW50IGRldmljZXMuIEZvciBpbnN0YW5jZSwgY29t cGxleA0KICAgcmFkaW8gY29udHJvbCBhbGdvcml0aG1zIGNhbiBiZSBDUFUgaW50ZW5zaXZlLiBT dG9yaW5nIGFuZA0KICAgZG93bmxvYWRpbmcgaW1hZ2VzIGFuZCBjb25maWd1cmF0aW9ucyBjYW4g YmUgc3RvcmFnZSBpbnRlbnNpdmUuIERhdGENCiAgIHBsYW5lIHNlcnZpY2VzIGxpa2UgbW9iaWxp dHkgYW5kIGxvYWQgYmFsYW5jaW5nIG1heSBiZSBiZXR0ZXINCiAgIHN1cHBvcnRlZCBpbiBuZXR3 b3JrIGRldmljZXMgdGhhdCBtYXkgYmUgbGFja2luZyBpbiBvbmUgb3IgbW9yZSBvZg0KICAgdGhl c2UgcmVzb3VyY2VzLiBUaGUgYm94IG1hcmtlZCAnQUMnIGluIHRoZSBkaWFncmFtIGFib3ZlIHNo b3VsZA0KICAgYWNjb3JkaW5nbHkgYmUgdGhvdWdodCBvZiBhcyBhIG11bHRpcGxpY2l0eSBvZiBs b2dpY2FsIGZ1bmN0aW9ucyBhbmQNCiAgIG5vdCBuZWNlc3NhcmlseSBhcyBhIHNpbmdsZSBwaHlz aWNhbCBkZXZpY2UuDQoNCjQuMSAgSW50ZXJjb25uZWN0aW9uIFRvcG9sb2d5IGJldHdlZW4gV1RQ cyBhbmQgQUNzDQoNCiAgIFRoZXJlIGFyZSBzZXZlcmFsIHBvc3NpYmxlIHRvcG9sb2dpZXMgd2hp Y2ggY2FuIGJlIGNvbnNpZGVyZWQgYmV0d2Vlbg0KICAgdGhlIEFDKHMpIGFuZCB0aGUgV1RQcywg aW5jbHVkaW5nIGRpcmVjdCBjb25uZWN0aW9uLCBMMiBzd2l0Y2hlZA0KICAgY29ubmVjdGlvbiwg b3IgTDMgcm91dGVkIGNvbm5lY3Rpb24sIGFzIHNob3duIGluIEZpZ3VyZSAzLCBGaWd1cmUgNCwN CiAgIGFuZCBGaWd1cmUgNS4NCg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAtLS0tLS0t Ky0tLS0tLSBMQU4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLSstLS0tLS0tKw0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHwgICAgICBBQyAgICAgICB8DQogICAgICAgICAgICAgICAgICAgICAgICAg ICAgKy0tLS0rLS0tLS0rLS0tLSsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg ICAgIHwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLSsgICAgICstLS0rDQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgfA0KICAgICAgICAgICAgICAg ICAgICAgICAgICArLS0rLS0rICAgICAgICstLSstLSsNCiAgICAgICAgICAgICAgICAgICAgICAg ICAgfCBXVFAgfCAgICAgICB8IFdUUCB8DQogICAgICAgICAgICAgICAgICAgICAgICAgICstLSst LSsgICAgICAgKy0tKy0tKw0KDQogICAgICAgICAgICAgICAgICAgICAgRmlndXJlIDM6IERpcmVj dGx5IENvbm5lY3RlZA0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAg ICAgICAgICBbUGFnZSAxOF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJj aC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAwNA0KDQoNCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgLS0tLS0tLSstLS0tLS0gTEFODQogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB8DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0tLS0rLS0t LS0tLSsNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgQUMgICAgICAgfA0KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tKy0tLS0tKy0tLS0rDQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB8ICAgICB8DQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICstLS0rICAgICArLS0tKw0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICAgICAg ICAgIHwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tKy0tKyAgICArLS0tLS0rLS0tLS0r DQogICAgICAgICAgICAgICAgICAgICAgICAgIHwgV1RQIHwgICAgfCAgIFN3aXRjaCAgfA0KICAg ICAgICAgICAgICAgICAgICAgICAgICArLS0rLS0rICAgICstLS0rLS0tLS0rLSsNCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfA0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0rICArLS0tLS0rDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgV1RQIHwgIHwgV1RQIHwNCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgKy0tLS0tKyAgKy0tLS0tKw0KDQogICAgICAgICAgICAgICAg ICAgICBGaWd1cmUgNDogU3dpdGNoZWQgQ29ubmVjdGlvbnMNCg0KDQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgKy0tLS0tLS0rLS0tLS0tLSsNCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAgICAgQUMgICAgICAgfA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tLS0t Ky0tLS0tLS0rDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8DQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgLS0tLS0tLS0rLS0tLS0tIExBTg0KICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLS0t LS0tKy0tLS0tLS0rDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgcm91dGVyICAg IHwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLSstLS0tLS0tKw0KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfA0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC0tLS0tKy0tKy0tKy0tLSBMQU4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHwgICAgIHwNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLSsgICAgICstLS0rDQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgICAgICAgICAgfA0KICAgICAgICAgICAg ICAgICAgICAgICAgICArLS0rLS0rICAgICAgICstLSstLSsNCiAgICAgICAgICAgICAgICAgICAg ICAgICAgfCBXVFAgfCAgICAgICB8ICBXVFB8DQogICAgICAgICAgICAgICAgICAgICAgICAgICst LSstLSsgICAgICAgKy0tKy0tKw0KDQogICAgICAgICAgICAgICAgICAgICAgRmlndXJlIDU6IFJv dXRlZCBDb25uZWN0aW9ucw0KDQoNCjQuMiAgT3ZlcnZpZXcgb2YgVGhyZWUgQ2VudHJhbGl6ZWQg V0xBTiBBcmNoaXRlY3R1cmVzDQoNCiAgIFdoaWxlIGR5bmFtaWMgYW5kIGNvbnNpc3RlbnQgbmV0 d29yayBtYW5hZ2VhYmlsaXR5IGlzIG9uZSBvZiB0aGUNCiAgIHByaW1hcnkgbW90aXZhdGlvbnMg Zm9yIHRoZSBDZW50cmFsaXplZCBBcmNoaXRlY3R1cmUsIHRoZSBzdXJ2ZXkgZGF0YQ0KICAgZnJv bSB2ZW5kb3JzIGFsc28gc2hvdyB0aGF0IGRpZmZlcmVudCB2YXJpZXRpZXMgb2YgdGhpcyBhcmNo aXRlY3R1cmUNCiAgIGZhbWlseSBoYXZlIGVtZXJnZWQgYXMgYSByZXN1bHQgb2YgdGhlIGluaGVy ZW50IGZsZXhpYmlsaXR5IGluIHRoZQ0KICAgODAyLjExIHN0YW5kYXJkIFsxXSByZWdhcmRpbmcg dGhlIGltcGxlbWVudGF0aW9uIG9mIHRoZSBsb2dpY2FsDQogICBmdW5jdGlvbnMgdGhhdCBhcmUg YnJvYWRseSBkZXNjcmliZWQgdW5kZXIgdGhlIHRlcm0gIkFjY2VzcyBQb2ludCIuDQoNCg0KDQpZ YW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAg ICAgICBbUGFnZSAxOV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4g VGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAwNA0KDQoNCiAgIEFzIHRoZXJlIGlzIG5v IHN0YW5kYXJkIG1hcHBpbmcgb2YgdGhlc2UgZnVuY3Rpb25zIHRvIHBoeXNpY2FsDQogICBuZXR3 b3JrIGVudGl0aWVzLCBzZXZlcmFsIGRlc2lnbiBjaG9pY2VzIGhhdmUgYmVlbiBtYWRlIGJ5IHZl bmRvcnMNCiAgIHRoYXQgb2ZmZXIgcmVsYXRlZCBwcm9kdWN0cy4gTW9yZW92ZXIsIHRoZSBpbmNy ZWFzZWQgZGVtYW5kIGZvcg0KICAgbW9uaXRvcmluZyBhbmQgY29uc2lzdGVudCBjb25maWd1cmF0 aW9uIG9mIGxhcmdlIHdpcmVsZXNzLCBlbnRlcnByaXNlDQogICBuZXR3b3JrcyBoYXMgcmVzdWx0 ZWQgaW50byBhIHNldCBvZiAndmFsdWUtYWRkZWQnIHNlcnZpY2VzIHByb3ZpZGVkDQogICBieSB0 aGUgdmFyaW91cyB2ZW5kb3JzLCBtb3N0IG9mIHdoaWNoIHNoYXJlIGNvbW1vbiBkZXNpZ24gcHJv cGVydGllcw0KICAgYW5kIHNlcnZpY2UgZ29hbHMuDQoNCiAgIEluIHRoZSBmb2xsb3dpbmcsIHdl IGRlc2NyaWJlIHRoZSB0aHJlZSBtYWluIGFwcHJvYWNoZXMgdmVuZG9ycyBoYXZlDQogICB0YWtl biwgbmFtZWx5LCB0aGUgTG9jYWwgTUFDLCBTcGxpdCBNQUMsICBhbmQgUmVtb3RlIE1BQyBhcHBy b2FjaGVzDQogICB3aXRoaW4gdGhpcyBmYW1pbHkgb2YgYXJjaGl0ZWN0dXJlcywgYW5kIHByb3Zp ZGUgdGhlIG1hcHBpbmcNCiAgIGNoYXJhY3RlcmlzdGljcyBvZiB0aGUgdmFyaW91cyBmdW5jdGlv bnMgaW50byB0aGUgbmV0d29yayBlbnRpdGllcywNCiAgIGZvciBlYWNoIGFwcHJvYWNoLiBUaGUg bmFtaW5nIG9mIExvY2FsIE1BQywgU3BsaXQgTUFDIGFuZCBSZW1vdGUgTUFDDQogICByZWZsZWN0 cyBob3cgdGhlIGZ1bmN0aW9ucywgZXNwLiB0aGUgODAyLjExIE1BQyBmdW5jdGlvbnMsIGFyZSBt YXBwZWQNCiAgIG9udG8gdGhlIG5ldHdvcmsgZW50aXRpZXMuIExvY2FsIE1BUCBpbmRpY2F0ZXMg dGhhdCB0aGUgTUFDIGZ1bmN0aW9ucw0KICAgc3RheSBpbnRhY3QgYW5kIGxvY2FsIHRvIFdUUHMs IHdoaWxlIFNwbGl0IE1BQyBzaG93cyB0aGUgTUFDIGJlaW5nDQogICBzcGxpdCBiZXR3ZWVuIHRo ZSBXVFBzIGFuZCBBQ3MsIGFuZCByZW1vdGUgTUFDIHNpZ25pZmllcyB0aGUgTUFDIGlzDQogICBt b3ZlZCBhd2F5IGZyb20gV1RQIHRvIHRoZSByZW1vdGUgQUMgaW4gdGhlIG5ldHdvcmsuDQoNCiAg IFRoZSBkaWZmZXJlbmNlcyBhbW9uZyBMb2NhbCBNQUMsIFNwbGl0IE1BQyBhbmQgUmVtb3RlIE1B Qw0KICAgYXJjaGl0ZWN0dXJlcyBjYW4gYmUgc2hvd24gcm91Z2hseSBpbiB0aGUgZm9sbG93aW5n IGZpZ3VyZToNCg0KICAgICstLS0tLS0tLS0tLS0tLSstLS0gICAgKy0tLS0tLS0tLS0tLS0tLSst LS0gICAgKy0tLS0tLS0tLS0tLS0tKy0tLQ0KICAgIHwgIENBUFdBUCAgICAgIHwgICAgICAgfCAg Q0FQV0FQICAgICAgIHwgICAgICAgfCAgQ0FQV0FQICAgICAgfA0KICAgIHwgIGZ1bmN0aW9ucyAg IHxBQyAgICAgfCAgZnVuY3Rpb25zICAgIHxBQyAgICAgfCAgZnVuY3Rpb25zICAgfA0KICAgIHw9 PT09PT09PT09PT09PXw9PT0gICAgfC0tLS0tLS0tLS0tLS0tLXwgICAgICAgfC0tLS0tLS0tLS0t LS0tfA0KICAgIHwgICAgICAgICAgICAgIHwgICAgICAgfCAgbm9uIFJUIE1BQyAgIHwgICAgICAg fCAgICAgICAgICAgICAgfEFDDQogICAgfCAgODAyLjExIE1BQyAgfCAgICAgICB8PT09PT09PT09 PT09PT09fD09PSAgICB8ICA4MDIuMTEgTUFDICB8DQogICAgfCAgICAgICAgICAgICAgfFdUUCAg ICB8IFJlYWwgVGltZSBNQUMgfCAgICAgICB8ICAgICAgICAgICAgICB8DQogICAgfC0tLS0tLS0t LS0tLS0tfCAgICAgICB8LS0tLS0tLS0tLS0tLS0tfFdUUCAgICB8PT09PT09PT09PT09PT18PT09 DQogICAgfCAgODAyLjExIFBIWSAgfCAgICAgICB8ICA4MDIuMTEgUEhZICAgfCAgICAgICB8ICA4 MDIuMTEgUEhZICB8V1RQDQogICAgKy0tLS0tLS0tLS0tLS0tKy0tLSAgICArLS0tLS0tLS0tLS0t LS0tKy0tLSAgICArLS0tLS0tLS0tLS0tLS0rLS0tDQoNCiAgICAgKGEpICJMb2NhbCBNQUMiICAg ICAgICAgKGIpICJTcGxpdCBNQUMiICAgICAgICAoYykgIlJlbW90ZSBNQUMiDQoNCiAgRmlndXJl IDY6IFRoZSBUaHJlZSBEaWZmZXJlbnQgQXJjaGl0ZWN0dXJlcyB3aXRoaW4gQ2VudHJhbGl6ZWQg V0xBTg0KICAgICAgICAgICAgICAgICAgICAgICAgICBBcmNoaXRlY3R1cmUgRmFtaWx5DQoNCg0K NC4zICBMb2NhbCBNQUMNCg0KICAgVGhlIExvY2FsIE1BQyBhcmNoaXRlY3R1cmUgbW9kZWwsIGFz IHNob3duIGluIEZpZ3VyZSA2LihhKSwgYXR0ZW1wdHMNCiAgIHRvIG9mZmxvYWQgbmV0d29yayBh Y2Nlc3MgcG9saWNpZXMgYW5kIG1hbmFnZW1lbnQgZnVuY3Rpb25zIChDQVBXQVANCiAgIGZ1bmN0 aW9ucyBkZXNjcmliZWQgaW4gU2VjdGlvbiAyLjIpIHRvIHRoZSBBQywgd2l0aG91dCBzcGxpdHRp bmcgdGhlDQogICA4MDIuMTEgTUFDIGZ1bmN0aW9uYWxpdHkgYmV0d2VlbiBXVFAocykgYW5kIEFD KHMpLiBUaGUgd2hvbGUgODAyLjExDQogICBNQUMgcmVzaWRlcyBvbiB0aGUgV1RQIGxvY2FsbHks IGluY2x1ZGluZyBhbGwgdGhlIDgwMi4xMSBtYW5hZ2VtZW50DQogICBhbmQgY29udHJvbCBmcmFt ZSBwcm9jZXNzaW5nIGZvciB0aGUgU1RBczsgaG93ZXZlciBpbmZvcm1hdGlvbg0KICAgcmVsYXRl ZCB0byBtYW5hZ2VtZW50IGFuZCBjb25maWd1cmF0aW9uIG9mIHRoZSBXVFAgZGV2aWNlcyBpcw0K DQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAg ICAgICAgICAgICAgW1BhZ2UgMjBdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQ IEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICBjb21tdW5p Y2F0ZWQgd2l0aCBhIGNlbnRyYWxpemVkIEFDLCB0byBmYWNpbGl0YXRlIG1hbmFnZW1lbnQgb2Yg dGhlDQogICBuZXR3b3JrLCBhbmQgbWFpbnRhaW4gYSBjb25zaXN0ZW50IG5ldHdvcmstd2lkZSBj b25maWd1cmF0aW9uIGZvciB0aGUNCiAgIFdUUCBkZXZpY2VzLg0KDQogICBGaWd1cmUgNyBvZmZl cnMgYSB0YWJ1bGFyIHJlcHJlc2VudGF0aW9uIG9mIHRoZSBkZXNpZ24gY2hvaWNlcyBtYWRlDQog ICBieSB0aGUgc2l4IHZlbmRvcnMgaW4gdGhlIHN1cnZleSB0aGF0IGZvbGxvdyB0aGUgTG9jYWwg TUFDIGFwcHJvYWNoDQogICB3aXRoIHJlc3BlY3QgdG8gdGhlIGFyY2hpdGVjdHVyZSBjb25zaWRl cmF0aW9ucy4gIldUUC1BQyB0b3BvbG9neSINCiAgIHNob3dzIHRoZSBraW5kIG9mIHRvcG9sb2d5 IGJldHdlZW4gV1RQcyBhbmQgQUMgZWFjaCB2ZW5kb3Incw0KICAgYXJjaGl0ZWN0dXJlIGNhbiBz dXBwb3J0LiBJdCBpcyBjbGVhciB0aGF0IGFsbCB0aGUgdmVuZG9ycyBjYW4NCiAgIHN1cHBvcnQg TDMgcm91dGVkIG5ldHdvcmsgdG9wb2xvZ3kgYmV0d2VlbiBXVFBzIGFuZCBBQywgd2hpY2ggaW1w bGllcw0KICAgdGhhdCBkaXJlY3QgY29ubmVjdGlvbnMgYW5kIEwyIHN3aXRjaGVkIG5ldHdvcmtz IGFyZSBhbHNvIHN1cHBvcnRlZA0KICAgYnkgYWxsIHZlbmRvcnMuICBCeSAnODAyLjExIG1nbXQg dGVybWluYXRpb24nLCBhbmQgJzgwMi4xMSBjb250cm9sDQogICB0ZXJtaW5hdGlvbicgd2UgZGVu b3RlIHRoZSBwaHlzaWNhbCBuZXR3b3JrIGRldmljZSBvbiB3aGljaA0KICAgcHJvY2Vzc2luZyBv ZiB0aGUgODAyLjExIG1hbmFnZW1lbnQsIGFuZCBjb250cm9sIGZyYW1lcyBpcyBkb25lDQogICBy ZXNwZWN0aXZlbHkuIEFsbCB0aGUgdmVuZG9ycyBoZXJlIGNob29zZSB0byB0ZXJtaW5hdGUgODAy LjExDQogICBtYW5hZ2VtZW50IGFuZCBjb250cm9sIGZyYW1lcyBhdCBXVFBzLiBUaGUgbGFzdCBy b3cgb2YgdGhlIHRhYmxlDQogICAnODAyLjExIGRhdGEgYWdncmVnYXRpb24nLCByZWZlcnMgdG8g dGhlIGRldmljZSBvbiB3aGljaCBhZ2dyZWdhdGlvbg0KICAgYW5kIGRlbGl2ZXJ5IG9mIDgwMi4x MSBkYXRhIGZyYW1lcyBmcm9tIG9uZSBTVEEgdG8gYW5vdGhlciAocG9zc2libHkNCiAgIHRocm91 Z2ggYSBEUykgaXMgcGVyZm9ybWVkLiBBcyB3ZSBjYW4gc2VlIGZyb20gdGhlIHRhYmxlLCB2ZW5k b3JzDQogICBtYWtlIGRpZmZlcmVudCBjaG9pY2VzIGFzIHdoZXRoZXIgb3Igbm90IGFsbCB0aGUg ODAyLjExIGRhdGEgdHJhZmZpYw0KICAgYXJlIGFnZ3JlZ2F0ZWQgYW5kIHJvdXRlZCB0aHJvdWdo IHRoZSBBQy4gVGhlIHN1cnZleSBkYXRhIHNob3dzIHRoYXQNCiAgIHNvbWUgdmVuZG9ycyBjaG9v c2UgdG8gdHVubmVsIG9yIGVuY2Fwc3VsYXRlIGFsbCB0aGUgc3RhdGlvbiB0cmFmZmljDQogICB0 byBvciBmcm9tIHRoZSBBQ3MsIGltcGx5aW5nIHRoZSBBQyBhbHNvIGFjdHMgYXMgdGhlIGFjY2Vz cyByb3V0ZXINCiAgIGZvciB0aGlzIFdMQU4gYWNjZXNzIG5ldHdvcms7IHdoaWxlIG90aGVyIHZl bmRvcnMgY2hvb3NlIHRvIHNlcGFyYXRlDQogICB0aGUgY29udHJvbCBwbGFuZSBhbmQgZGF0YSBw bGFuZSBieSBsZXR0aW5nIHRoZSBzdGF0aW9uIHRyYWZmaWMgYmVpbmcNCiAgIGJyaWRnZWQgb3Ig cm91dGVkIGxvY2FsbHkgd2hpbGUga2VlcGluZyB0aGUgY29udHJvbCBhdCB0aGUgQUMuDQoNCg0K ICAgICAgICAgICAgICAgICAgICAgIEFyY2g3ICAgQXJjaDggICBBcmNoOSAgIEFyY2gxMCAgIEFy Y2gxMQ0KICAgICAgICAgICAgICAgICAgICAgIC0tLS0tICAgLS0tLS0gICAtLS0tLSAgIC0tLS0t LSAgIC0tLS0tLQ0KDQoNCg0KICAgV1RQLUFDDQogICB0b3BvbG9neSAgICAgICAgICAgTDMgICAg ICBMMyAgICAgICBMMyAgICAgIEwzICAgICAgTDMNCg0KICAgODAyLjExIG1nbXQNCiAgIHRlcm1p bmF0aW9uICAgICAgICBXVFAgICAgIFdUUCAgICAgIFdUUCAgICAgV1RQICAgICBXVFANCg0KICAg ODAyLjExIGNvbnRyb2wNCiAgIHRlcm1pbmF0aW9uICAgICAgICBXVFAgICAgIFdUUCAgICAgIFdU UCAgICAgV1RQICAgICBXVFANCg0KICAgODAyLjExIGRhdGENCiAgIGFnZ3JlZ2F0aW9uICAgICAg ICBBQyAgICAgIEFDICAgICAgIFdUUCAgICAgQUMgICAgICBXVFANCg0KDQogICAgRmlndXJlIDc6 IEFyY2hpdGVjdHVyZSBDb25zaWRlcmF0aW9ucyBmb3IgTG9jYWwgTUFDIEFyY2hpdGVjdHVyZQ0K DQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0 ICAgICAgICAgICAgICBbUGFnZSAyMV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBX QVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAwNA0KDQoNCiAgIEJlbG93 IEZpZ3VyZSA4IHNob3dzIHRoYXQgbW9zdCBvZiB0aGUgQ0FQV0FQIGZ1bmN0aW9ucyBhcyBkZXNj cmliZWQNCiAgIGluIFNlY3Rpb24gMi4yIGFyZSBpbXBsZW1lbnRlZCBhdCB0aGUgQUMsIHdpdGgg aGVscCBmcm9tIFdUUHMgdG8NCiAgIG1vbml0b3IgUkYgY2hhbm5lbHMsIGFuZCBjb2xsZWN0IHN0 YXRpc3RpY3MgYW5kIHN0YXRlIGluZm9ybWF0aW9uDQogICBmcm9tIHRoZSBTVEFzLiBNb3N0IHZl bmRvcnMgY2hvb3NlIHRvIGRvIHRoZSBzaW1pbGFyIG1hcHBpbmcgaGVyZSBhcw0KICAgdGhlIEFD IG9mZmVycyB0aGUgYWR2YW50YWdlcyBvZiBuZXR3b3JrLXdpZGUgdmlzaWJpbGl0eSwgd2hpY2gg aXMNCiAgIGVzc2VudGlhbCBmb3IgbWFueSBvZiB0aGUgY29udHJvbCwgY29uZmlndXJhdGlvbiBh bmQgdmFsdWUtYWRkZWQNCiAgIHNlcnZpY2VzLg0KDQoNCiAgICAgICAgICAgICAgICAgICBBcmNo NyAgIEFyY2g4ICAgQXJjaDkgICBBcmNoMTAgICBBcmNoMTENCiAgICAgICAgICAgICAgICAgICAt LS0tLSAgIC0tLS0tICAgLS0tLS0gICAtLS0tLS0gICAtLS0tLS0NCg0KICAgICAgUkYNCiAgICAg IE1vbml0b3JpbmcgICAgV1RQICAgICBXVFAgICAgQUMvV1RQICAgIFdUUCAgICAgV1RQDQoNCiAg ICAgIFJGDQogICAgICBDb25maWcuICAgICAgIEFDICAgICAgIEFDICAgICAgQUMgICAgICBBQyAg ICAgIEFDDQoNCiAgICAgIFdUUCBjb25maWcuICAgQUMgICAgICAgQUMgICAgICBBQyAgICAgIEFD ICAgICAgQUMNCg0KICAgICAgV1RQDQogICAgICBGaXJtd2FyZSAgICAgIEFDICAgICAgIEFDICAg ICAgQUMgICAgICBBQyAgICAgIEFDDQoNCiAgICAgIFNUQSBzdGF0ZQ0KICAgICAgaW5mbw0KICAg ICAgZGF0YWJhc2UgICAgICBBQyAgICBBQy9XVFAgICBBQy9XVFAgIEFDL1dUUCAgICBBQw0KDQog ICAgICBBQy9XVFANCiAgICAgIG11dHVhbA0KICAgICAgYXV0aGVudC4gICAgICBYICAgICAgIFgg ICAgICAgIFggICAgICAgWCAgICAgICBYDQoNCiAgICBGaWd1cmUgODogTWFwcGluZyBvZiBDQVBX QVAgRnVuY3Rpb25zIGZvciBMb2NhbCBNQUMgQXJjaGl0ZWN0dXJlDQoNCiAgIFRoZSBtYXRyaXgg c2hvd24gaW4gRmlndXJlIDkgc2hvd3MgdGhhdCBtb3N0IG9mIHRoZSA4MDIuMTEgZnVuY3Rpb25z DQogICBhcmUgaW1wbGVtZW50ZWQgYXQgdGhlIFdUUHMgZm9yIExvY2FsIE1BQyBBcmNoaXRlY3R1 cmUsIHdpdGggc29tZQ0KICAgbWlub3IgZGlmZmVyZW5jZXMgYW1vbmcgdGhlIHZlbmRvcnMgd2l0 aCByZWdhcmQgdG8gZGlzdHJpYnV0aW9uDQogICBzZXJ2aWNlLCA4MDIuMTFlIHNjaGVkdWxpbmcg YW5kIDgwMi4xeC9FQVAgYXV0aGVudGljYXRpb24uIFRoZQ0KICAgZGlmZmVyZW5jZSBpbiBkaXN0 cmlidXRpb24gc2VydmljZSBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGRpZmZlcmVuY2UNCiAgIGRl c2NyaWJlZCBlYXJsaWVyIHdpdGggcmVnYXJkIHRvICI4MDIuMTEgZGF0YSBhZ2dyZWdhdGlvbiIg aW4gdGhlDQogICBGaWd1cmUgNy4NCg0KDQogICAgICAgICAgICAgICAgICAgQXJjaDcgICBBcmNo OCAgIEFyY2g5ICAgQXJjaDEwICAgQXJjaDExDQogICAgICAgICAgICAgICAgICAgLS0tLS0gICAt LS0tLSAgIC0tLS0tICAgLS0tLS0tICAgLS0tLS0tDQoNCiAgICAgIERpc3RyaWJ1dGlvbg0KICAg ICAgU2VydmljZSAgICAgICBBQyAgICAgQUMgICAgICAgV1RQICAgICAgQUMgICAgICBXVFANCg0K DQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAg ICAgICAgICAgICAgW1BhZ2UgMjJdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQ IEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICAgICBJbnRl Z3JhdGlvbg0KICAgICAgU2VydmljZSAgICAgICBXVFAgICAgV1RQICAgICAgV1RQICAgICAgV1RQ ICAgICBXVFANCg0KICAgICAgQmVhY29uDQogICAgICBHZW5lcmF0aW9uICAgIFdUUCAgICBXVFAg ICAgICBXVFAgICAgICBXVFAgICAgIFdUUA0KDQogICAgICBQcm9iZQ0KICAgICAgUmVzcG9uc2Ug ICAgICBXVFAgICAgV1RQICAgICAgV1RQICAgICAgV1RQICAgICBXVFANCg0KICAgICAgUG93ZXIg bWdtdA0KICAgICAgUGFja2V0DQogICAgICBCdWZmZXJpbmcgICAgIFdUUCAgICBXVFAgICAgICBX VFAgICAgICBXVFAgICAgIFdUUA0KDQogICAgICBGcmFnbWVudGF0aW9uLw0KICAgICAgRGVmcmFn bWVudC4gICBXVFAgICAgV1RQICAgICAgV1RQICAgICAgV1RQICAgICBXVFANCg0KICAgICAgQXNz b2NpYXRpb24NCiAgICAgIERpc2Fzc29jLg0KICAgICAgUmVhc3NvY2lhdGlvbiBBQyAgICAgV1RQ ICAgICAgV1RQICAgICAgV1RQICAgICBXVFANCg0KICAgICAgV01FLzExZQ0KICAgICAgLS0tLS0t LS0tLS0tLS0NCiAgICAgIGNsYXNzaWZ5aW5nICAgV01FICAgIFdNRSAgICAgIFdNRSAgICAgICAg ICAgICAgV1RQDQoNCiAgICAgIHNjaGVkdWxpbmcgICAgV1RQICAgIEFDL1dUUCAgIFdUUCAgICAg IFdUUCAgICAgV1RQDQoNCiAgICAgIHF1ZXVpbmcgICAgICAgV1RQICAgICAgICAgICAgIFdUUCAg ICAgIFdUUCAgICAgV1RQDQoNCiAgICAgIEF1dGhlbnRpY2F0aW9uDQogICAgICBhbmQgUHJpdmFj eQ0KICAgICAgLS0tLS0tLS0tLS0tLS0NCiAgICAgIDgwMi4xeC9FQVAgICAgQUMgICAgICBBQyAg ICAgIEFDL1dUUCAgIEFDICAgICAgIEFDL1dUUA0KDQogICAgICBLZXlzDQogICAgICBNYW5hZ2Vt ZW50ICAgIEFDICAgICAgQUMgICAgICBXVFAgICAgICBBQyAgICAgICBBQw0KDQogICAgICA4MDIu MTENCiAgICAgIEVuY3J5cHRpb24vDQogICAgICBEZWNyeXB0aW9uICAgIFdUUCAgICAgV1RQICAg ICBXVFAgICAgICBXVFAgICAgICBXVFANCg0KICAgIEZpZ3VyZSA5OiBNYXBwaW5nIG9mIDgwMi4x MSBGdW5jdGlvbnMgZm9yIExvY2FsIE1BQyBBcmNoaXRlY3R1cmUNCg0KICAgRnJvbSBGaWd1cmUg NywgRmlndXJlIDggYW5kIEZpZ3VyZSA5LCBpdCBpcyBjbGVhciB0aGF0IGRpZmZlcmVuY2VzDQog ICBiZXR3ZWVuIHZlbmRvcnMgaW4gdGhlIExvY2FsIE1BQyBBcmNoaXRlY3R1cmUgaXMgcmVsYXRp dmVseSBtaW5vcg0KICAgd2hpbGUgdGhlIG1vc3Qgb2YgdGhlIGZ1bmN0aW9uYWwgbWFwcGluZyBh cHBlYXJzIHRvIGJlIGNvbW1vbiBhY3Jvc3MNCiAgIHRoZSB2ZW5kb3JzLg0KDQoNCg0KDQoNCllh bmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQgICAgICAgICAg ICAgIFtQYWdlIDIzXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdBUCBBcmNoLiBU YXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0KNC40ICBTcGxpdCBNQUMNCg0K ICAgQXMgc2hvd24gaW4gRmlndXJlIDYuKGIpLCB0aGUgbWFpbiBpZGVhIGJlaGluZCB0aGUgU3Bs aXQgTUFDDQogICBhcmNoaXRlY3R1cmUgaXMgdG8gaW1wbGVtZW50IHBhcnQgb2YgdGhlIDgwMi4x MSBNQUMgZnVuY3Rpb25hbGl0eSBvbg0KICAgYSBjZW50cmFsaXplZCBBQyBpbnN0ZWFkIG9mIHRo ZSBXVFBzLCBpbiBhZGRpdGlvbiB0byB0aGUgc2VydmljZXMNCiAgIHJlcXVpcmVkIGZvciBtYW5h Z2luZyBhbmQgbW9uaXRvcmluZyB0aGUgV1RQIGRldmljZXMuIFVzdWFsbHksICB0aGUNCiAgIGRl Y2lzaW9uIG9mIHdoaWNoIGZ1bmN0aW9ucyBvZiB0aGUgODAyLjExIE1BQyBuZWVkIHRvIGJlIHBy b3ZpZGVkIGJ5DQogICB0aGUgQUMgaXMgYmFzZWQgb24gdGhlIHRpbWUtY3JpdGljYWxpdHkgb2Yg dGhlIHNlcnZpY2UgcmVxdWlyZWQuDQoNCiAgIEluIFNwbGl0IE1BQyBhcmNoaXRlY3R1cmUsIHRo ZSBXVFAgdGVybWluYXRlcyB0aGUgaW5mcmFzdHJ1Y3R1cmUgc2lkZQ0KICAgb2YgdGhlIHdpcmVs ZXNzIHBoeXNpY2FsIGxpbmssIHByb3ZpZGVzIHJhZGlvLXJlbGF0ZWQgbWFuYWdlbWVudCwgYW5k DQogICBhbHNvIGltcGxlbWVudHMgYWxsIHRpbWUtY3JpdGljYWwgZnVuY3Rpb25hbGl0eSBvZiB0 aGUgODAyLjExIE1BQy4gSW4NCiAgIGFkZGl0aW9uLCB0aGUgbm9uIHJlYWwtdGltZSBtYW5hZ2Vt ZW50IGZ1bmN0aW9ucyBhcmUgaGFuZGxlZCBieSBhDQogICBjZW50cmFsaXplZCBBQywgYWxvbmcg d2l0aCBoaWdoZXItbGV2ZWwgc2VydmljZXMsIHN1Y2ggYXMNCiAgIGNvbmZpZ3VyYXRpb24sIFFv UywgcG9saWNpZXMgZm9yIGxvYWQtYmFsYW5jaW5nLCBhY2Nlc3MgY29udHJvbA0KICAgbGlzdHMs IGV0Yy4gVGhlIHN1YnRsZSBidXQga2V5IGRpc3RpbmN0aW9uIGJldHdlZW4gTG9jYWwgTUFDIGFu ZA0KICAgU3BsaXQgTUFDIHJlbGF0ZXMgdG8gdGhlIG5vbiByZWFsLXRpbWUgZnVuY3Rpb25zOiBp biBTcGxpdCBNQUMNCiAgIGFyY2hpdGVjdHVyZSwgdGhlIEFDIHRlcm1pbmF0ZXMgODAyLjExIG5v biByZWFsLXRpbWUgZnVuY3Rpb25zLA0KICAgd2hlcmVhcyBpbiBMb2NhbCBNQUMgYXJjaGl0ZWN0 dXJlIHRoZSBXVFAgdGVybWluYXRlcyB0aGUgODAyLjExIG5vbg0KICAgcmVhbC10aW1lIGZ1bmN0 aW9ucyBhbmQgY29uc2VxdWVudGx5IHNlbmRzIGFwcHJvcHJpYXRlIG1lc3NhZ2VzIHRvDQogICB0 aGUgQUMuDQoNCiAgIFRoZXJlIGFyZSBzZXZlcmFsIG1vdGl2YXRpb25zIGZvciB0YWtpbmcgdGhl IFNwbGl0IE1BQyBhcHByb2FjaC4gT25lDQogICBvZiB0aGUgbW90aXZhdGlvbnMgaXMgdG8gb2Zm bG9hZCB0byB0aGUgV1RQKHMpIGZ1bmN0aW9uYWxpdHkgdGhhdCBpcw0KICAgc3BlY2lmaWMgYW5k IHJlbGV2YW50IG9ubHkgdG8gdGhlIGxvY2FsaXR5IG9mIGVhY2ggQlNTIGluIG9yZGVyIHRvDQog ICBhbGxvdyB0aGUgQUMgdG8gc2NhbGUgdG8gYSBsYXJnZSBudW1iZXIgb2YgJ2xpZ2h0IHdlaWdo dCcgV1RQDQogICBkZXZpY2VzLiBNb3Jlb3ZlciwgcmVhbC10aW1lIGZ1bmN0aW9uYWxpdHkgaXMg c3ViamVjdCB0byBsYXRlbmN5DQogICBjb25zdHJhaW50cyBhbmQgY2Fubm90IHRvbGVyYXRlIGRl bGF5cyBkdWUgdG8gdHJhbnNtaXNzaW9uIG9mIDgwMi4xMQ0KICAgQ29udHJvbCBmcmFtZXMgKG9y IG90aGVyIHJlYWwtdGltZSBpbmZvcm1hdGlvbikgb3ZlciBtdWx0aXBsZS1ob3BzLg0KICAgVGhl IGxhdHRlciB3b3VsZCBsaW1pdCB0aGUgYXZhaWxhYmxlIGNob2ljZXMgZm9yIHRoZSBpbnRlcmNv bm5lY3Rpb24NCiAgIHRvcG9sb2d5IGJldHdlZW4gdGhlIEFDIGFuZCB0aGUgV1RQKHMpLCBzbyB0 aGUgcmVhbC10aW1lIGNyaXRlcmlvbiBpcw0KICAgdXN1YWxseSBlbXBsb3llZCB0byBzZXBhcmF0 ZSBNQUMgc2VydmljZXMgYmV0d2VlbiB0aGUgZGV2aWNlcy4NCiAgIEFub3RoZXIgY29uc2lkZXJh dGlvbiBpcyBjb3N0IHJlZHVjdGlvbiBpbiB0aGUgV1RQIHRvIG1ha2UgaXQgYXMNCiAgIGNoZWFw IGFuZCBzaW1wbGUgYXMgcG9zc2libGUuIExhc3QgYnV0IG5vdCBsZWFzdCwgIG1vdmluZyBmdW5j dGlvbnMNCiAgIGxpa2UgZW5jcnlwdGlvbiBhbmQgZGVjcnlwdGlvbiB0byB0aGUgQUMgaW5zdGVh ZCBvZiBXVFBzIGhlbHAgYXZvaWQNCiAgIGFueSByaXNrIGZyb20gYSBjb21wcm9taXNlZCBXVFAg Ynkgbm90IGhhdmluZyB1c2VyIGVuY3J5cHRpb24ga2V5cyBvbg0KICAgdGhlIFdUUCBhdCBhbGwu ICBBIHNpZGUgZWZmZWN0IG9mIHRoaXMgYXJjaGl0ZWN0dXJlIGlzIHRoYXQgcHJvZ3Jlc3MNCiAg IGluIHNlY3VyaXR5IHByb3RvY29scyBhbmQgYWxnb3JpdGhtIGRvZXMgbm90IG9ic29sZXRlIHRo ZSBXVFBzOyB0aGUNCiAgIEFDcyBpbXBsZW1lbnQgdGhlIG5ldyBzZWN1cml0eSBzY2hlbWVzIGlu c3RlYWQgYW5kIHRoZSBtYW5hZ2VtZW50DQogICBwcm9ibGVtIGlzIHRoZXJlZm9yZSBzaW1wbGlm aWVkLiBJdCBjYW4gYWxzbyBwcm90ZWN0IGZyb20gTEFOLXNpZGUNCiAgIGVhdmVzZHJvcHBpbmcu DQoNCiAgIEV4YW1wbGVzIG9mIHJlYWwtdGltZSBzZXJ2aWNlcyBvZiB0aGUgODAyLjExIE1BQyB0 aGF0IGFyZSBpbXBsZW1lbnRlZA0KICAgb24gdGhlIFdUUCBhcmUgdGhlIGZvbGxvd2luZzoNCiAg IG8gIEJlYWNvbiBHZW5lcmF0aW9uDQogICBvICBQcm9iZSBSZXNwb25zZS9UcmFuc21pc3Npb24N CiAgIG8gIFByb2Nlc3Npbmcgb2YgQ29udHJvbCBGcmFtZXM6IFJUUy9DVFMvQUNLL1BTLVBvbGwv Q0YtRW5kL0NGLUFDSw0KDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBP Y3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSAyNF0NCgwNCkludGVybmV0LURyYWZ0 ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAw NA0KDQoNCiAgIG8gIFN5bmNocm9uaXphdGlvbg0KICAgbyAgUmV0cmFuc21pc3Npb25zDQogICBv ICBUcmFuc21pc3Npb24gUmF0ZSBBZGFwdGF0aW9uDQoNCiAgIFRoZSBub24tcmVhbC10aW1lIGFz cGVjdHMgb2YgdGhlIDgwMi4xMSBNQUMgYXJlIGhhbmRsZWQgYnkgdGhlIEFDLA0KICAgZWl0aGVy IGRpcmVjdGx5IHRocm91Z2ggdGhlIHByb2Nlc3Npbmcgb2YgcmF3IDgwMi4xMSBtYW5hZ2VtZW50 DQogICBmcmFtZXMgKFNwbGl0IE1BQyksIG9yIGFmdGVyIGNvbnZlcnNpb24gdG8gc29tZSBvdGhl ciBtZXNzYWdlIGZvcm1hdA0KICAgKExvY2FsIE1BQykuIFRoZXNlIGluY2x1ZGU6DQogICBvICBT dGF0aW9uIFNlcnZpY2VzOiBBdXRoZW50aWNhdGlvbi9EZWF1dGhlbnRpY2F0aW9uDQogICBvICBE aXN0cmlidXRpb24gU3lzdGVtIFNlcnZpY2VzOiBBc3NvY2lhdGlvbi9EaXNhc3NvY2lhdGlvbi8N CiAgICAgIFJlYXNzb2NpYXRpb24vRGlzdHJpYnV0aW9uDQogICBvICBJbnRlZ3JhdGlvbiBTZXJ2 aWNlczogYnJpZGdpbmcgYmV0d2VlbiA4MDIuMTEgYW5kIDgwMi4zDQogICBvICBQcml2YWN5OiA4 MDIuMTEgRW5jcnlwdGlvbi9EZWNyeXB0aW9uDQogICBvICBGcmFnbWVudGF0aW9uL0RlZnJhZ21l bnRhdGlvbg0KDQogICBUaGUgZm9sbG93aW5nIG1hdHJpeCBpbiBGaWd1cmUgMTAgb2ZmZXJzIGEg dGFidWxhciByZXByZXNlbnRhdGlvbiBvZg0KICAgdGhlIGRlc2lnbiBjaG9pY2VzIG1hZGUgYnkg dGhlIHNpeCB2ZW5kb3JzIHRoYXQgZm9sbG93IHRoZSBTcGxpdCBNQUMNCiAgIGRlc2lnbiB3aXRo IHJlc3BlY3QgdG8gdGhlIGFyY2hpdGVjdHVyZSBjb25zaWRlcmF0aW9ucy4gV2hpbGUgbW9zdA0K ICAgdmVuZG9ycyBzdXBwb3J0IEwzIHRvcG9sb2d5IGJldHdlZW4gV1RQcyBhbmQgQUNzLCBzb21l IHZlbmRvcnMgY2FuDQogICBvbmx5IHN1cHBvcnQgTDIgc3dpdGNoZWQgY29ubmVjdGlvbnMsIGR1 ZSB0byB0aGUgdGlnaHRlciBkZWxheQ0KICAgY29uc3RyYWludCByZXN1bHRpbmcgZnJvbSBzcGxp dHRpbmcgTUFDIGJldHdlZW4gdHdvIHBoeXNpY2FsIGVudGl0aWVzDQogICBhY3Jvc3MgYSBuZXR3 b3JrLiBDb21wYXJpbmcgdG8gRmlndXJlIDcsIGl0IGlzIGNsZWFyIHRoYXQgdGhlDQogICBjb21t b25hbGl0eSBiZXR3ZWVuIFNwbGl0IE1BQyBhbmQgTG9jYWwgTUFDIGlzIHRoYXQgdGhlIDgwMi4x MQ0KICAgY29udHJvbCBmcmFtZXMgYXJlIGFsbCBwcm9jZXNzZWQgYnkgV1RQLCB3aGlsZSB0aGUg ZGlmZmVyZW5jZSBsaWVzIGluDQogICB0aGUgdGVybWluYXRpb24gcG9pbnQgZm9yIDgwMi4xMSBt YW5hZ2VtZW50IGZyYW1lcy4gTG9jYWwgTUFDDQogICB0ZXJtaW5hdGVzIDgwMi4xMSBtYW5hZ2Vt ZW50IGZyYW1lcyBhdCBXVFAsIHdoaWxlIGF0IGxlYXN0IHNvbWUgb2YNCiAgIHRoZSA4MDIuMTEg bWFuYWdlbWVudCBmcmFtZXMgYXJlIGJlaW5nIHRlcm1pbmF0ZWQgYXQgdGhlIEFDIGZvciBTcGxp dA0KICAgTUFDIEFyY2hpdGVjdHVyZS4gSW4gbW9zdCBjYXNlcywgc2luY2UgV1RQIGRldmljZXMg YXJlDQogICBJUC1hZGRyZXNzYWJsZSwgYW55IG9mIHRoZSBkaXJlY3QgY29ubmVjdGlvbiwgTDIt c3dpdGNoZWQsIG9yDQogICBMMy1yb3V0ZWQgdG9wb2xvZ2llcyBvZiBTZWN0aW9uIDIuMiBjYW4g YmUgdXNlZC4gSW4gdGhlIGNhc2Ugd2hlcmUNCiAgIG9ubHkgRXRoZXJuZXQtZW5jYXBzdWxhdGlv biBpcyBwZXJmb3JtZWQgKGV4LiBhcyBpbiBBcmNoaXRlY3R1cmUgNCkNCiAgIHRoZW4gb25seSBk aXJlY3QgY29ubmVjdGlvbiBhbmQgTDItc3dpdGNoZWQgdG9wb2xvZ2llcyBhcmUgc3VwcG9ydGVk Lg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBl dCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSAyNV0N CgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAg ICAgICAgICAgQXByaWwgMjAwNA0KDQoNCiAgICAgICAgICAgICAgICBBcmNoMSAgIEFyY2gyICAg QXJjaDMgICBBcmNoNCAgIEFyY2g1ICAgQXJjaDYNCiAgICAgICAgICAgICAgICAtLS0tLSAgIC0t LS0tICAgLS0tLS0gICAtLS0tLSAgIC0tLS0tICAgLS0tLS0NCg0KDQogICBXVFAtQUMNCiAgIHRv cG9sb2d5ICAgICAgIEwzICAgICBMMyAgICBMMyAgICAgICBMMiAgICAgICBMMyAgICAgIEwzDQoN CiAgIDgwMi4xMSBtZ210DQogICB0ZXJtaW5hdGlvbiAgICBBQyAgICBBQyAgICAgQUMgICAgICBB QyAgICAgV1RQL0FDICAgICBBQw0KDQogICA4MDIuMTEgY29udHJvbA0KICAgdGVybWluYXRpb24g ICAgV1RQICAgIFdUUCAgICBXVFAgICAgIFdUUCAgICAgIFdUUCAgICAgV1RQDQoNCiAgIDgwMi4x MSBkYXRhDQogICBhZ2dyZWdhdGlvbiAgIEFDICAgICBBQyAgICAgICBBQyAgICAgIEFDICAgICAg IEFDICAgICAgQUMNCg0KDQogICBGaWd1cmUgMTA6IEFyY2hpdGVjdHVyZSBDb25zaWRlcmF0aW9u cyBmb3IgU3BsaXQgTUFDIEFyY2hpdGVjdHVyZQ0KDQogICBTaW1pbGFyIHRvIHRoZSBMb2NhbCBN QUMgQXJjaGl0ZWN0dXJlLCB0aGUgZm9sbG93aW5nIG1hdHJpeCBpbiBGaWd1cmUNCiAgIDExIHNo b3dzIHRoYXQgdGhlIENBUFdBUCBjb250cm9sIGZ1bmN0aW9ucyBhcmUgaW1wbGVtZW50ZWQgYXQg dGhlIEFDLg0KDQoNCiAgICAgICAgICAgICAgICAgQXJjaDEgICBBcmNoMiAgIEFyY2gzICAgQXJj aDQgICBBcmNoNSAgIEFyY2g2DQogICAgICAgICAgICAgICAgIC0tLS0tICAgLS0tLS0gICAtLS0t LSAgIC0tLS0tICAgLS0tLS0gICAtLS0tLQ0KICAgUkYNCiAgIE1vbml0b3JpbmcgICAgV1RQICAg ICBXVFAgICAgICBXVFAgICAgV1RQICAgICBXVFAgICAgIFdUUA0KDQogICBSRg0KICAgQ29uZmln LiAgICAgICBXVFAvQUMgICAgICAgICAgV1RQL0FDICBBQyAgICAgIEFDICAgICAgQUMNCg0KICAg V1RQIGNvbmZpZy4gICBBQyAgICAgICAgICAgICAgIEFDICAgICBBQyAgICAgIEFDICAgICAgQUMN Cg0KICAgV1RQDQogICBGaXJtd2FyZSAgICAgIEFDICAgICAgICAgICAgICAgQUMgICAgIEFDICAg ICAgQUMgICAgICBBQw0KDQogICBTVEEgc3RhdGUNCiAgIGluZm8NCiAgIGRhdGFiYXNlICAgICAg QUMgICAgICAgICAgICAgICBBQyAgICAgQUMgICAgICBBQyAgICAgICBBQw0KDQogICBBQy9XVFAN CiAgIG11dHVhbA0KICAgYXV0aGVudC4gICAgICAgWCAgICAgICBYICAgICAgIFggICAgICAgIFgN Cg0KDQogICBGaWd1cmUgMTE6IE1hcHBpbmcgb2YgQ0FQV0FQIEZ1bmN0aW9ucyBmb3IgU3BsaXQg TUFDIEFyY2hpdGVjdHVyZQ0KDQogICBUaGUgbW9zdCBpbnRlcmVzdGluZyBtYXRyaXggZm9yIFNw bGl0IE1BQyBBcmNoaXRlY3R1cmUgaXMgdGhlDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4g ICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSAyNl0NCgwNCklu dGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAg ICAgQXByaWwgMjAwNA0KDQoNCiAgIEZ1bmN0aW9uYWwgRGlzdHJpYnV0aW9uIE1hdHJpeCBmb3Ig ODAyLjExIGZ1bmN0aW9ucywgYXMgc2hvd24gYmVsb3cNCiAgIGluIEZpZ3VyZSAxMi4gSXQgaXMg Y2xlYXIgdGhhdCBldmVuIHdpdGhpbiB0aGUgU3BsaXQgTUFDDQogICBBcmNoaXRlY3R1cmUsIHZl bmRvcnMgY2hvb3NlIHRvIG1hcCBtYW55IG9mIHRoZSBmdW5jdGlvbnMNCiAgIGRpZmZlcmVudGx5 LiBBbGwgdmVuZG9ycyBjaG9vc2UgdG8gaW1wbGVtZW50IERpc3RyaWJ1dGlvbiwNCiAgIEludGVn cmF0aW9uIFNlcnZpY2UgYXQgdGhlIEFDLCBhbG9uZyB3aXRoIDgwMi4xeC9FQVAgYXV0aGVudGlj YXRpb24NCiAgIGFuZCBrZXlzIG1hbmFnZW1lbnQuIEFsbCB2ZW5kb3JzIGFsc28gY2hvb3NlIHRv IGltcGxlbWVudCBiZWFjb24NCiAgIGdlbmVyYXRpb24gYXQgV1RQcy4gQnV0IHRoZXJlIGV4aXN0 cyB3aWRlIHNwcmVhZCBkaWZmZXJlbmNlIGFtb25nIHRoZQ0KICAgdmVuZG9ycyBmb3IgbW9zdCBv dGhlciBmdW5jdGlvbnMuIFNvIHRoaXMgY2xlYXJseSBpbmRpY2F0ZXMgdGhhdA0KICAgU3BsaXQg TUFDIEFyY2hpdGVjdHVyZSByZXByZXNlbnRzIGEgY2F0ZWdvcnkgb2YgYXJjaGl0ZWN0dXJlcyB0 aGF0DQogICBzcGxpdCB0aGUgTUFDIHNvbWVob3csIGJ1dCBpdCBkb2VzIG5vdCByZXByZXNlbnQg YSBzaW5nbGUgd2F5IG9mDQogICBzcGxpdHRpbmcgYXQgYWxsLg0KDQoNCiAgICAgICAgICAgICAg ICAgQXJjaDEgICBBcmNoMiAgIEFyY2gzICAgQXJjaDQgICAgQXJjaDUgICBBcmNoNg0KICAgICAg ICAgICAgICAgICAtLS0tLSAgIC0tLS0tICAgLS0tLS0gICAtLS0tLS0gICAtLS0tLSAgIC0tLS0t DQoNCiAgIERpc3RyaWJ1dGlvbg0KICAgU2VydmljZSAgICAgICBBQyAgICAgICAgQUMgICAgICBB QyAgICAgIEFDICAgICAgQUMgICAgICBBQw0KDQogICBJbnRlZ3JhdGlvbg0KICAgU2VydmljZSAg ICAgICBBQyAgICAgICAgQUMgICAgICBBQyAgICAgIEFDICAgICAgQUMgICAgICBBQw0KDQogICBC ZWFjb24NCiAgIEdlbmVyYXRpb24gICAgV1RQICAgICAgIFdUUCAgICAgV1RQICAgIFdUUCAgICAg V1RQICAgICBXVFANCg0KICAgUHJvYmUNCiAgIFJlc3BvbnNlICAgICAgV1RQICAgICAgIEFDL1dU UCAgIFdUUCAgIFdUUCAgICAgV1RQICAgICBXVFANCg0KICAgUG93ZXIgbWdtdA0KICAgUGFja2V0 DQogICBCdWZmZXJpbmcgICAgIFdUUCAgICAgICBXVFAgICAgICBXVFAgICAgQUMgICAgIEFDL1dU UCAgIFdUUA0KDQogICBGcmFnbWVudGF0aW9uDQogICBEZWZyYWdtZW50LiAgIFdUUCAgICAgICAg ICAgICAgIFdUUCAgICAgQUMgICAgICBBQyAgICAgIEFDDQoNCiAgIEFzc29jaWF0aW9uDQogICBE aXNhc3NvYy4NCiAgIFJlYXNzb2NpYXRpb24gQUMgICAgICAgIEFDICAgICAgQUMgICAgIEFDICAg ICAgV1RQICAgICAgQUMNCg0KICAgV01FLzExZQ0KICAgLS0tLS0tLS0tLS0tLS0NCiAgIGNsYXNz aWZ5aW5nICAgV01FL090aCAgICAgICAgIFdNRS9PdGggICBBQyAgV01FLzgwMi4xMWUgICBXTUUv b3RoZXINCg0KICAgc2NoZWR1bGluZyAgICBXVFAvQUMgICAgQUMgICAgICBXVFAgICAgIEFDICAg ICAgQUMgICAgICAgV1RQL0FDDQoNCiAgIHF1ZXVpbmcgICAgICAgV1RQL0FDICAgIFdUUCAgICAg V1RQICAgICBBQyAgICAgIFdUUCAgICAgIFdUUA0KDQogICBBdXRoZW50aWNhdGlvbg0KDQoNCg0K WWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAg ICAgICAgW1BhZ2UgMjddDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQIEFyY2gu IFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICBhbmQgUHJpdmFjeQ0K ICAgLS0tLS0tLS0tLS0tLS0NCg0KICAgODAyLjF4L0VBUCAgICBBQyAgICAgICAgQUMgICAgICBB QyAgICAgIEFDICAgICAgQUMgICAgICAgQUMNCg0KICAgS2V5cw0KICAgTWFuYWdlbWVudCAgICBB QyAgICAgICAgQUMgICAgICBBQyAgICAgIEFDICAgICAgQUMgICAgICAgQUMNCg0KICAgODAyLjEx DQogICBFbmNyeXB0aW9uLw0KICAgRGVjcnlwdGlvbiAgICBXVFAgICAgICAgQUMgICAgICBXVFAg ICAgIEFDICAgICAgQUMgICAgICAgQUMNCg0KICAgRmlndXJlIDEyOiBNYXBwaW5nIG9mIDgwMi4x MSBGdW5jdGlvbnMgZm9yIFNwbGl0IE1BQyBBcmNoaXRlY3R1cmUNCg0KDQo0LjUgIFJlbW90ZSBN QUMNCg0KICAgT25lIG9mIHRoZSBtYWluIG1vdGl2YXRpb24gZm9yIFJlbW90ZSBNQUMgQXJjaGl0 ZWN0dXJlIGlzIHRvIGtlZXAgdGhlDQogICBXVFBzIGFzIGxpZ2h0IHdlaWdodCBhcyBwb3NzaWJs ZSBieSBoYXZpbmcgb25seSB0aGUgcmFkaW8gaW50ZXJmYWNlDQogICBvbiB0aGUgV1RQcyBhbmQg b2ZmbG9hZGluZyB0aGUgZW50aXJlIHNldCBvZiA4MDIuMTEgTUFDIGZ1bmN0aW9ucw0KICAgKGlu Y2x1ZGluZyBkZWxheS1zZW5zaXRpdmUgZnVuY3Rpb25zKSAgdG8gdGhlIEFjY2VzcyBDb250cm9s bGVyLiBJdA0KICAgdGh1cyBrZWVwcyBhbGwgdGhlIGNvbXBsZXhpdGllcyBvZiB0aGUgTUFDIGFu ZCBvdGhlciBDQVBXQVAgY29udHJvbA0KICAgZnVuY3Rpb25zIHRvIHRoZSBjZW50cmFsaXplZCBj b250cm9sbGVyIGFuZCBtYWtlcyB0aGUgV1RQIG1hbmFnZWFibGUuDQogICBUaGUgV1RQIGFjdHMg b25seSBhcyBhIGNvbW11bmljYXRpb24gbWVhbnMgYmV0d2VlbiB0aGUgV2lyZWxlc3MgTEFODQog ICBjbGllbnRzIChTVEEpIGFuZCB0aGUgQUMsIHRob3VnaCB0aGV5IG1heSBoYXZlIGFuIGFkZGl0 aW9uYWwgZmVhdHVyZQ0KICAgdG8gY29udmVydCB0aGUgZnJhbWVzIGZyb20gb25lIGZvcm1hdCAo ODAyLjExKSB0byB0aGUgb3RoZXINCiAgIChFdGhlcm5ldCwgVFIsIEZpYmVyIGV0Yy4pLiBUaGUg Y2VudHJhbGl6ZWQgY29udHJvbGxlciBoYXMgYSBwcm90b2NvbA0KICAgZm9yIG5ldHdvcmsgbW9u aXRvcmluZywgbWFuYWdlbWVudCBhbmQgY29udHJvbCwgZW50aXJlIHNldCBvZiB0aGUNCiAgIDgw Mi4xMSBBUCBzZXJ2aWNlcywgdGhlIFdMQU4gUEhZIGNvbmNlcHRzLCBzZWN1cml0eSBmZWF0dXJl cywNCiAgIHJlc291cmNlIG1hbmFnZW1lbnQsIGNoYW5uZWwgYWRvcHRpb24gZmVhdHVyZXMsIGd1 YXJhbnR5aW5nIFF1YWxpdHkNCiAgIG9mIFNlcnZpY2UgdG8gdGhlIHVzZXJzIGV0Yy4gQmVjYXVz ZSBNQUMgaXMgc2VwYXJhdGVkIGZyb20gdGhlIFBIWSwNCiAgIHdlIGNhbGwgdGhpcyAiUmVtb3Rl IE1BQyBBcmNoaXRlY3R1cmUiLiBUeXBpY2FsbHkgc3VjaCBhcmNoaXRlY3R1cmUNCiAgIGlzIGRl cGxveWVkIHdpdGggc3BlY2lhbCBhdHRlbnRpb24gdG8gdGhlIHRvcG9sb2d5IGJldHdlZW4gV1RQ IGFuZCBBQw0KICAgc28gdGhhdCB0aGUgZGVsYXkgaXMgbWluaW1pemVkLiBUaGUgUm9GIChSYWRp byBvdmVyIEZpYmVyKSBmcm9tDQogICBBcmNoaXRlY3R1cmUgNSBBcHBlbmRpeCBGIGlzIHN1Y2gg YW4gZXhhbXBsZSBvZiBSZW1vdGUgTUFDDQogICBBcmNoaXRlY3R1cmUuDQoNCjQuNiAgQ29tcGFy aXNvbnMgb2YgTG9jYWwgTUFDLCBTcGxpdCBNQUMgYW5kIFJlbW90ZSBNQUMNCg0KICAgVHdvIGNv bW1vbmFsaXRpZXMgYWNyb3NzIGFsbCB0aGUgdGhyZWUgQ2VudHJhbGl6ZWQgQXJjaGl0ZWN0dXJl cw0KICAgKExvY2FsIE1BQywgU3BsaXQgTUFDIGFuZCBSZW1vdGUgTUFDKSBhcmU6DQogICBvICBB bGwgdGhlIENBUFdBUCBmdW5jdGlvbnMgcmVsYXRlZCB0byBuZXR3b3JrIGNvbnRyb2wgYW5kDQog ICAgICBjb25maWd1cmF0aW9uIHJlc2lkZSBvbiB0aGUgQUMuDQogICBvICBJRUVFIDgwMi4xMSBQ SFkgcmVzaWRlcyBvbiB0aGUgV1RQLg0KDQogICBUaGUgZGlmZmVyZW5jZSBiZXR3ZWVuIFJlbW90 ZSBNQUMgYW5kIHRoZSBvdGhlciB0d28gQ2VudHJhbGl6ZWQNCiAgIEFyY2hpdGVjdHVyZXMgKGku ZS4sIExvY2FsIE1BQyBhbmQgU3BsaXQgTUFDKSBpcyBwcmV0dHkgY2xlYXIsIGFzIHRoZQ0KICAg ODAyLjExIE1BQyBpcyBjb21wbGV0ZWx5IHNlcGFyYXRlZCBmcm9tIHRoZSBQSFkgaW4gdGhlIGZv cm1lciwgd2hpbGUNCg0KDQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9i ZXIgMTUsIDIwMDQgICAgICAgICAgICAgIFtQYWdlIDI4XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAg ICAgICAgIENBUFdBUCBBcmNoLiBUYXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoN Cg0KICAgdGhlIG90aGVyIHR3byBhdCBsZWFzdCBrZWVwIHNvbWUgcG9ydGlvbiBvZiB0aGUgTUFD IGZ1bmN0aW9ucyB3aXRoDQogICBQSFkgYXQgdGhlIFdUUHMuIFNvIHRoZSBpbXBsaWNhdGlvbiBv ZiBQSFkgYW5kIE1BQyBzZXBhcmF0aW9uIGlzIHRoYXQNCiAgIGl0IHNldmVyZWx5IGxpbWl0cyB0 aGUgaW50ZXJjb25uZWN0aW9uIHRvcG9sb2d5IGJldHdlZW4gV1RQcyBhbmQgQUNzDQogICBzbyB0 aGF0IDgwMi4xMSB0aW1pbmcgY29uc3RyYWludCBpcyBzdGlsbCBzYXRpc2ZpZWQuIEFzIHBvaW50 ZWQgb3V0DQogICBlYXJsaWVyLCB0aGlzIHVzdWFsbHkgcmVzdWx0cyBpbiB0aWdodGVyIGNvbnRy b2wgb3ZlciB0aGUNCiAgIGludGVyY29ubmVjdGlvbiBiZXR3ZWVuIFdUUCBhbmQgQUMgZm9yIHRo ZSBSZW1vdGUgTUFDIEFyY2hpdGVjdHVyZS4NCiAgIFRoZSBhZHZhbnRhZ2Ugb2YgUmVtb3RlIE1B QyBBcmNoaXRlY3R1cmUgaXMgdGhhdCBpdCBvZmZlcnMgdGhlDQogICBsaWdodGVzdCBwb3NzaWJs ZSBXVFBzIGZvciBjZXJ0YWluIGRlcGxveW1lbnQgc2NlbmFyaW9zLg0KDQogICBUaGUgY29tbW9u YWxpdGllcyBhbmQgZGlmZmVyZW5jZXMgYmV0d2VlbiBMb2NhbCBNQUMgYW5kIFNwbGl0IE1BQyBh cmUNCiAgIG1vc3QgY2xlYXJseSBzZWVuIGJ5IGNvbXBhcmluZyBGaWd1cmUgNyBhbmQgRmlndXJl IDEwLiBUaGUNCiAgIGNvbW1vbmFsaXR5IGJldHdlZW4gdGhlIHR3byBpcyB0aGF0IDgwMi4xMSBj b250cm9sIGZyYW1lcyBhcmUNCiAgIHRlcm1pbmF0ZWQgYXQgV1RQcyBpbiBib3RoIGNhc2VzLiBU aGUgbWFpbiBkaWZmZXJlbmNlIGJldHdlZW4gTG9jYWwNCiAgIE1BQyBhbmQgU3BsaXQgTUFDIGlz IHRoYXQgaW4gdGhlIGxhdHRlciBXVFAgdGVybWluYXRlcyBvbmx5IHRoZQ0KICAgODAyLjExIENv bnRyb2wgZnJhbWVzLCB3aGlsZSBpbiB0aGUgZm9ybWVyIFdUUCBtYXkgdGVybWluYXRlIGFsbA0K ICAgODAyLjExIGZyYW1lcy4gQW4gaW50ZXJlc3RpbmcgY29uc2VxdWVuY2Ugb2YgdGhpcyBkaWZm ZXJlbmNlIGlzIHRoYXQNCiAgIEludGVncmF0aW9uIFNlcnZpY2UsICB3aGljaCBlc3NlbnRpYWxs eSByZWZlcnMgdG8gYnJpZGdpbmcgYmV0d2Vlbg0KICAgODAyLjExIGFuZCA4MDIuMyBmcmFtZXMs IGlzIGltcGxlbWVudGVkIGJ5IHRoZSBBQyBpbiB0aGUgU3BsaXQgTUFDLA0KICAgYnV0IGNhbiBi ZSBwYXJ0IG9mIGVpdGhlciB0aGUgQUMgb3IgV1RQIGluIHRoZSBMb2NhbCBNQUMuDQoNCiAgIEFz IGEgc2Vjb25kIG5vdGUsIHRoZSBEaXN0cmlidXRpb24gU2VydmljZSwgYWx0aG91Z2ggdXN1YWxs eSBwcm92aWRlZA0KICAgYnkgdGhlIEFDLCBjYW4gYWxzbyBiZSBpbXBsZW1lbnRlZCBhdCB0aGUg V1RQIGluIHNvbWUgTG9jYWwgTUFDDQogICBhcmNoaXRlY3R1cmUuIFRoZSByYXRpb25hbGUgYmVo aW5kIHRoaXMgYXBwcm9hY2ggaXMgdG8gaW5jcmVhc2UNCiAgIHBlcmZvcm1hbmNlIGluIGRlbGl2 ZXJpbmcgU1RBcyBkYXRhIHRyYWZmaWMgYnkgYXZvaWRpbmcgdHVubmVsbGluZyBpdA0KICAgdG8g dGhlIEFDLCBhbmQgYWxzbyByZWxheCB0aGUgZGVwZW5kZW5jeSBvZiB0aGUgV1RQIGZyb20gdGhl IEFDLg0KICAgVGhlcmVmb3JlLCBpdCBpcyBwb3NzaWJsZSB0aGF0IGRhdGEgcGxhbmUgYW5kIGNv bnRyb2wgcGxhbmUgYXJlDQogICBzZXBhcmF0ZWQgaW4gdGhlIExvY2FsIE1BQyBBcmNoaXRlY3R1 cmUuDQoNCiAgIEV2ZW4gdGhvdWdoIGFsbCB0aGUgODAyLjExIHRyYWZmaWMgYXJlIGFnZ3JlZ2F0 ZWQgYXQgQUNzIGluIHRoZSBjYXNlDQogICBvZiBTcGxpdCBNQUMgQXJjaGl0ZWN0dXJlLCB0aGUg ZGF0YSBwbGFuZSBhbmQgY29udHJvbCBwbGFuZSBjYW4gc3RpbGwNCiAgIGJlIHNlcGFyYXRlZCBi eSBlbXBsb3lpbmcgbXVsdGlwbGUgQUNzLiBGb3IgZXhhbXBsZSwgb25lIEFDIGNhbg0KICAgaW1w bGVtZW50IG1vc3Qgb2YgdGhlIENBUFdBUCBmdW5jdGlvbnMgKGNvbnRyb2wgcGxhbmUpLCB3aGls ZSBvdGhlcg0KICAgQUNzIGNhbiBiZSBlbXBsb3llZCBmb3IgODAyLjExIGZyYW1lcyBicmlkZ2lu ZyAoZGF0YSBwbGFuZSkuDQoNCjQuNyAgQ29tbXVuaWNhdGlvbiBJbnRlcmZhY2UgYmV0d2VlbiBX VFBzIGFuZCBBQ3MNCg0KICAgQmVmb3JlIGFueSBtZXNzYWdlcyBjYW4gYmUgZXhjaGFuZ2VkIGJl dHdlZW4gdGhlIEFDIGFuZCBXVFAocykNCiAgIHR5cGljYWxseSAgdGhlIGZvbGxvd2luZyBvcGVy YXRpb25zIGFyZSBmaXJzdCBwZXJmb3JtZWQgdGhhdCBsZWFkIHRvDQogICB0aGUgcmVnaXN0cmF0 aW9uIG9mIGFuIFdUUCB3aXRoIGFuIEFDOg0KICAgMS4gIERpc2NvdmVyeSA6IFdUUChzKSBkaXNj b3ZlciB0aGUgQUMgd2l0aCB3aGljaCB0aGV5IHdpbGwNCiAgICAgICBhc3NvY2lhdGUsIGFuZCBi ZSBjb250cm9sbGVkIGJ5LiBUaGUgZGlzY292ZXJ5IHByb2NlZHVyZSBjYW4NCiAgICAgICBlbXBs b3kgZWl0aGVyIHN0YXRpYyBjb25maWd1cmF0aW9uLCBvciBkeW5hbWljLiBJbiB0aGUgbGF0dGVy DQogICAgICAgY2FzZSwgYSBwcm90b2NvbCBpcyB1c2VkIGluIG9yZGVyIGZvciB0aGUgV1RQIHRv IGRpc2NvdmVyDQogICAgICAgY2FuZGlkYXRlIEFDKHMpLg0KICAgMi4gIEF1dGhlbnRpY2F0aW9u OiBhZnRlciBkaXNjb3ZlcnksIHRoZSBXVFAgZGV2aWNlIGF1dGhlbnRpY2F0ZXMNCiAgICAgICBp dHNlbGYgd2l0aCB0aGUgQUMuIFRoZSBvcHBvc2l0ZSBpcyBub3QgYWx3YXlzIHN1cHBvcnRlZCwg c2luY2UNCiAgICAgICBzb21lIHZlbmRvcnMgc3RyaXZlIGZvciB6ZXJvLWNvbmZpZ3VyYXRpb24g b24gdGhlIFdUUCBzaWRlLg0KDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJl cyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSAyOV0NCgwNCkludGVybmV0LURy YWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwg MjAwNA0KDQoNCiAgIDMuICBXVFAgQXNzb2NpYXRpb246IGFmdGVyIHN1Y2Nlc3NmdWwgYXV0aGVu dGljYXRpb24sIGFuIFdUUA0KICAgICAgIHJlZ2lzdGVycyB3aXRoIHRoZSBBQywgaW4gb3JkZXIg dG8gc3RhcnQgcmVjZWl2aW5nIG1hbmFnZW1lbnQgYW5kDQogICAgICAgY29uZmlndXJhdGlvbiBt ZXNzYWdlcy4NCiAgIDQuICBGaXJtd2FyZSBEb3dubG9hZDogYWZ0ZXIgc3VjY2Vzc2Z1bCBhc3Nv Y2lhdGlvbiwgdGhlIFdUUCBtYXkNCiAgICAgICBwdWxsLCBvciB0aGUgQUMgbWF5IHB1c2ggdGhl IFdUUHMgZmlybXdhcmUgLCB3aGljaCBpcyBkaWdpdGFsbHkNCiAgICAgICBzaWduZWQuDQogICA1 LiAgQ29udHJvbCBDaGFubmVsIEVzdGFibGlzaG1lbnQ6IHRoZSBXVFAgZXN0YWJsaXNoZXMgZWl0 aGVyIGFuDQogICAgICAgSVAtdHVubmVsIChleC4gQXJjaGl0ZWN0dXJlIDIgKEFwcGVuZGl4IEMp LCBBcmNoaXRlY3R1cmUgMQ0KICAgICAgIChBcHBlbmRpeCBCKSkgb3IgcGVyZm9ybXMgRXRoZXJu ZXQgZW5jYXBzdWxhdGlvbiAoZXguDQogICAgICAgQXJjaGl0ZWN0dXJlIDQgKEFwcGVuZGl4IEUp KSB3aXRoIHRoZSBBQywgaW4gb3JkZXIgdG8gdHJhbnNmZXINCiAgICAgICBkYXRhIHRyYWZmaWMg YW5kIG1hbmFnZW1lbnQgZnJhbWVzLg0KICAgNi4gIENvbmZpZ3VyYXRpb24gRG93bmxvYWQ6IGZv bGxvd2luZyB0aGUgY29udHJvbCBjaGFubmVsDQogICAgICAgZXN0YWJsaXNobWVudCBwcm9jZXNz LCB0aGUgQUMgbWF5IHB1c2ggY29uZmlndXJhdGlvbiBwYXJhbWV0ZXJzDQogICAgICAgdG8gdGhl IFdUUC4NCg0KNC44ICBTZWN1cml0eQ0KDQogICBHaXZlbiB0aGUgdmFyaWVkIGRpc3RyaWJ1dGlv biBvZiBmdW5jdGlvbmFsaXRpZXMgZm9yIHRoZSBDZW50cmFsaXplZA0KICAgQXJjaGl0ZWN0dXJl IGFzIHN1cnZleWVkIGluIFNlY3Rpb24gNC4zLCBpdCBpcyBvYnZpb3VzIHRoYXQgYW4gZXh0cmEN CiAgIG5ldHdvcmsgYmluZGluZyBpcyBjcmVhdGVkIGJldHdlZW4gdGhlIFdUUCBhbmQgdGhlIEFD LiAgVGhpcyBicmluZ3MNCiAgIGFsb25nIG5ldyBhbmQgdW5pcXVlIHNlY3VyaXR5IGlzc3VlcyBh bmQgc3Vic2VxdWVudCByZXF1aXJlbWVudHMuDQoNCjQuOC4xICBDbGllbnQgRGF0YSBTZWN1cml0 eQ0KDQogICBUaGUgc3VydmV5IHNob3dzIGNsZWFybHkgdGhhdCB0aGUgdGVybWluYXRpb24gcG9p bnQgZm9yICJvdmVyIHRoZQ0KICAgYWlyIiA4MDIuMTEgZW5jcnlwdGlvbiAoODAyLjExaSkgY2Fu IGJlIGltcGxlbWVudGVkIGVpdGhlciBpbiB0aGUgV1RQDQogICBvciBpbiB0aGUgQUMuICBGdXJ0 aGVybW9yZSwgdGhlIDgwMi4xeC9FQVAgZnVuY3Rpb25hbGl0eSBpcyBhbHNvDQogICBkaXN0cmli dXRlZCBiZXR3ZWVuIHRoZSBXVFAgYW5kIHRoZSBBQyB3aGVyZSwgaW4gYWxtb3N0IGFsbCBjYXNl cywNCiAgIHRoZSBBQyBwZXJmb3JtcyB0aGUgbmVjZXNzYXJ5IGZ1bmN0aW9ucyBhcyB0aGUgYXV0 aGVudGljYXRvciBpbiB0aGUNCiAgIDgwMi4xeCBleGNoYW5nZS4gIElmIHRoZSBlbmNyeXB0aW9u IGlzIGRvbmUgYXQgdGhlIFdUUHMsIHRoZQ0KICAgcmVzdWx0YW50IGNyeXB0b2dyYXBoaWMga2V5 cyBmb3IgdGhlIHNlc3Npb24gYXJlIHJlcXVpcmVkIHRvIGJlDQogICBzZWN1cmVseSBwdXNoZWQg ZnJvbSB0aGUgQUMgdG8gdGhlIFdUUC4gIFNpbmNlIHRoaXMga2V5aW5nIG1hdGVyaWFsDQogICBp cyBwYXJ0IG9mIHRoZSBjb250cm9sIGFuZCBwcm92aXNpb25pbmcgb2YgdGhlIFdUUHMsIGEgc2Vj dXJlDQogICBlbmNyeXB0ZWQgdHVubmVsIGZvciBjb250cm9sIGZyYW1lcyBpcyBlbXBsb3llZCB0 byB0cmFuc3BvcnQgdGhlDQogICBrZXlpbmcgbWF0ZXJpYWwuIEluIHRoZSBjYXNlIHdoZXJlIHRo ZSA4MDIuMTFpIGVuY3J5cHRpb24vZGVjcnlwdGlvbg0KICAgaXMgcGVyZm9ybWVkIGluIHRoZSBB QywgdGhlIGF1dGhlbnRpY2F0aW9uIGFuZCBrZXkgbWFuYWdlbWVudCBpcyBhbHNvDQogICBmdWxs eSBwZXJmb3JtZWQgaW4gdGhlIEFDLg0KDQogICBSZWdhcmRsZXNzIG9mIDgwMi4xMWkgdGVybWlu YXRpb24gcG9pbnQsIHRoZSBDZW50cmFsaXplZCBXTEFODQogICBBcmNoaXRlY3R1cmUgYXNzdW1l cyB0d28gcG9zc2liaWxpdGllcyBmb3IgIm92ZXIgdGhlIHdpcmUiIGNsaWVudA0KICAgZGF0YSBz ZWN1cml0eS4gIEluIHNvbWUgY2FzZXMgdGhlcmUgaXMgYW4gZW5jcnlwdGVkIHR1bm5lbCAoSVBz ZWMgb3INCiAgIFNTTCApIGJldHdlZW4gdGhlIFdUUCBhbmQgQUMgd2hpY2ggYXNzdW1lcyB0aGUg c2VjdXJpdHkgYm91bmRhcnkgdG8NCiAgIGJlIGluIHRoZSBBQy4gIEluIG90aGVyIGNhc2VzIGFu IGVuZC10by1lbmQgbXV0dWFsbHkgYXV0aGVudGljYXRlZA0KICAgc2VjdXJlIFZQTiB0dW5uZWwg aXMgYXNzdW1lZCBiZXR3ZWVuIHRoZSBjbGllbnQgYW5kIEFDLCBvdGhlcg0KICAgc2VjdXJpdHkg Z2F0ZXdheSBvciBlbmQgaG9zdCBlbnRpdHkuDQoNCg0KDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBl dCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSAzMF0N CgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAg ICAgICAgICAgQXByaWwgMjAwNA0KDQoNCjQuOC4yICBTZWN1cml0eSBvZiBjb250cm9sIGNoYW5u ZWwgYmV0d2VlbiBXVFAgYW5kIEFDDQoNCiAgIEluIG9yZGVyIGZvciB0aGUgQ0FQV0FQIGZ1bmN0 aW9ucyB0byBiZSBpbXBsZW1lbnRlZCBpbiB0aGUNCiAgIENlbnRyYWxpemVkIFdMQU4gQXJjaGl0 ZWN0dXJlIHRoZXJlIGlzIGEgcmVxdWlyZW1lbnQgZm9yIGEgY29udHJvbA0KICAgY2hhbm5lbCBi ZXR3ZWVuIFdUUCBhbmQgQUMuICBUaGlzIGlzIHRoZSBsaW5rIHdoZXJlIHNlY3VyaXR5IHRocmVh dHMNCiAgIG1heSBhcmlzZS4NCg0KICAgVGhyZWF0cyB0byB0aGUgQ2VudHJhbGl6ZWQgV0xBTiBB cmNoaXRlY3R1cmUgYXMgcHJlc2VudGVkIGluIHRoZQ0KICAgc3VibWlzc2lvbnMgYXJlOg0KICAg MS4gIFNlY3VyZSBkaXNjb3Zlcnkgb2YgV1RQIGFuZCBBQw0KICAgMi4gIEF1dGhlbnRpY2F0aW9u IG9mIHRoZSBXVFBzIHRvIHRoZSBBQ3MgYW5kIHZpY2UgdmVyc2ENCiAgIDMuICBNYW4taW4tdGhl LW1pZGRsZSBhdHRhY2tzIHRvIHRoZSBjb250cm9sIGNoYW5uZWwgYmV0d2VlbiBXVFAgYW5kDQog ICAgICAgQUMuDQogICA0LiAgQ29uZmlkZW50aWFsaXR5IGFuZCBpbnRlZ3JpdHkgb2YgY29udHJv bCBjaGFubmVsIGZyYW1lcw0KICAgNS4gIFRoZWZ0IG9mIFdUUHMgYW5kIGV4dHJhY3Rpb24gb2Yg ZW1iZWRkZWQgc2VjcmV0cyB3aXRoaW4uDQoNCiAgIERpc2NvdmVyeSBhbmQgYXV0aGVudGljYXRp b24gb2YgV1RQcyBhcmUgYWRkcmVzc2VkIGluIHRoZSBzdWJtaXNzaW9ucw0KICAgYnkgaW1wbGVt ZW50aW5nIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMgdGhhdCByYW5nZSBmcm9tIFguNTA5DQog ICBjZXJ0aWZpY2F0ZXMsIEFBQSBhdXRoZW50aWNhdGlvbiBhbmQgcHJlLXNoYXJlZCBjcmVkZW50 aWFsDQogICBhdXRoZW50aWNhdGlvbi4gIEluIGFsbCBjYXNlcywgdGhlIGlzc3VlcyBvZiBjb25m aWRlbnRpYWxpdHksDQogICBpbnRlZ3JpdHkgYW5kIG9mIHByb3RlY3Rpb24gYWdhaW5zdCBtYW4t aW4tdGhlLW1pZGRsZSBhdHRhY2tzIG9mIHRoZQ0KICAgY29udHJvbCBmcmFtZXMgYXJlIGFkZHJl c3NlZCBieSBhIHNlY3VyZSBlbmNyeXB0ZWQgdHVubmVsIGJldHdlZW4gV1RQDQogICBhbmQgQUMo cykgdXRpbGl6aW5nIGtleXMgZGVyaXZlZCBmcm9tIHRoZSB2YXJpZWQgYXV0aGVudGljYXRpb24N CiAgIG1ldGhvZHMgbWVudGlvbmVkIHByZXZpb3VzbHkuICBGaW5hbGx5LCBvbmUgb2YgdGhlIG1v dGl2YXRpb25zIGZvcg0KICAgdGhlIENlbnRyYWxpemVkIFdMQU4gQXJjaGl0ZWN0dXJlIGlzIHRv IG1pbmltaXplIHRoZSBzdG9yYWdlIG9mDQogICBjcnlwdG9ncmFwaGljIGFuZCBzZWN1cml0eSBz ZW5zaXRpdmUgaW5mb3JtYXRpb24gaW4gYWRkaXRpb24gdG8NCiAgIG9wZXJhdGlvbmFsIGNvbmZp Z3VyYXRpb24gcGFyYW1ldGVycyB3aXRoaW4gdGhlIFdUUHMuICBJdCBpcyBmb3IgdGhhdA0KICAg cmVhc29uIHRoYXQgbWFqb3JpdHkgb2YgdGhlIHN1Ym1pc3Npb25zIHVuZGVyIHRoZSBDZW50cmFs aXplZA0KICAgQXJjaGl0ZWN0dXJlIGNhdGVnb3J5IGhhdmUgZW1wbG95ZWQgYSBwb3N0IFdUUCBh dXRoZW50aWNhdGVkDQogICBkaXNjb3ZlcnkgcGhhc2Ugb2YgY29uZmlndXJhdGlvbiBwcm92aXNp b25pbmcgd2hpY2gsIGluIHR1cm4gcHJvdGVjdHMNCiAgIGFnYWluc3QgdGhlIHRoZWZ0IG9mIFdU UHMuDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KWWFuZyAoRWRpdG9y KSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAgICAgW1BhZ2Ug MzFdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQIEFyY2guIFRheG9ub215ICAg ICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQo1LiAgRGlzdHJpYnV0ZWQgTWVzaCBBcmNoaXRl Y3R1cmUNCg0KICAgRWRpdG9yJ3Mgbm90ZTogVGhpcyBzZWN0aW9uIGlzIG9ubHkgYSBwbGFjZSBo b2xkZXIgZm9yIG5vdy4gV2Ugd2lsbA0KICAgbmVlZCB0byB3b3JrIG9uIHRoaXMgc29vbi4NCg0K ICAgQW4gZXhhbXBsZSBvZiB0aGUgRGlzdHJpYnV0ZWQgTWVzaCBBcmNoaXRlY3R1cmUgaXMgc2hv d24gaW4gRmlndXJlDQogICAxMywgVGhlIG1lc2ggbm9kZXMgY2FuIGtlZXAgdHJhY2sgb2YgdGhl IHN0YXRlIG9mIGl0cyBuZWlnaGJvcmluZw0KICAgbm9kZXMgb3IgZXZlbiBub2RlcyBiZXlvbmQs IHNvIHRoYXQgdGhlIG1lc2ggbm9kZXMgY2FuIGNvb3JkaW5hdGUNCiAgIGFtb25nIHRoZW1zZWx2 ZXMgdG8gcHJvdmlkZSB0aGUgbmVjZXNzYXJ5IGZ1bmN0aW9ucy4gVGhlIGRpc3RpbmN0aW9uDQog ICBiZXR3ZWVuIHRoaXMgYXJjaGl0ZWN0dXJlIGZhbWlseSBhbmQgdGhlIENlbnRyYWxpemVkIEFy Y2hpdGVjdHVyZSBpcw0KICAgdGhlIGNsYXNzaWNhbCBkaXN0aW5jdGlvbiBiZXR3ZWVuIGEgZGlz dHJpYnV0ZWQgYXJjaGl0ZWN0dXJlIHZlcnN1cyBhDQogICBjZW50cmFsaXplZCBvbmUuIEVhY2gg Y2FuIGhhdmUgY2VydGFpbiBhZHZhbnRhZ2VzIGZvciBjZXJ0YWluDQogICBkZXBsb3ltZW50IHNj ZW5hcmlvcy4NCg0KICAgICstLS0tLS0tLS0tLS0tLS0tLSsgICAgICAgICArLS0tLS0tLS0tLS0t LS0tLS0rDQogICAgfCAgODAyLjExIEJTUyAxICAgfCAgICAgICAgIHwgIDgwMi4xMSBCU1MgMiAg IHwNCiAgICB8ICAuLi4gICAgICAgICAgICB8ICAgICAgICAgfCAgLi4uICAgICAgICAgICAgfA0K ICAgIHwgICAgKy0tLS0tLS0tLSsgIHwgICAgICAgICB8ICAgICstLS0tLS0tLS0rICB8DQogICAg Ky0tLS18bWVzaCBub2RlfC0tKyAgICAgICAgICstLS0tfG1lc2ggbm9kZXwtLSsNCiAgICAgICAg ICstKy0tLSstLS0rICAgICAgICAgICAgICAgICArLSstKy0tLS0tKw0KICAgICAgICAgICB8ICAg fCAgICAgICAgICAgICAgICAgICAgICAgfCB8DQogICAgICAgICAgIHwgICB8ICAgICAgICAgICAg ICAgICAgICAgICB8IHwgICAgICAgICAgICstLS0tLS0tLS0tKw0KICAgICAgICAgICB8ICAgKy0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tKyB8ICBFdGhlcm5ldCB8IEV0aGVybmV0IHwNCiAgICAgICAg ICAgfCAgICA4MDIuMTEgd2lyZWxlc3MgbGlua3MgICAgfCAgKy0tLS0tLS0tKyBTd2l0Y2ggICB8 DQogICAgICAgICAgIHwgICArLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0rIHwgIHwgICAgICAgIHwg ICAgICAgICAgfA0KICAgICAgICAgICB8ICAgfCAgICAgICAgICAgICAgICAgICAgICAgfCB8ICB8 ICAgICAgICArLS0tLS0tLS0tLSsNCiAgICAgICAgICstKy0tLSstLS0rICAgICAgICAgICAgICAg ICAgICstKy0tKy0tLS0rDQogICAgKy0tLS18bWVzaCBub2RlfC0tKyAgICAgICAgICAgKy0tLS18 bWVzaCBub2RlfC0tKw0KICAgIHwgICAgKy0tLS0tLS0tLSsgIHwgICAgICAgICAgIHwgICAgKy0t LS0tLS0tLSsgIHwNCiAgICB8ICAuLi4gICAgICAgICAgICB8ICAgICAgICAgICB8ICAuLi4gICAg ICAgICAgICB8DQogICAgfCAgODAyLjExIEJTUyA0ICAgfCAgICAgICAgICAgfCAgODAyLjExIEJT UyAzICAgfA0KICAgICstLS0tLS0tLS0tLS0tLS0tLSsgICAgICAgICAgICstLS0tLS0tLS0tLS0t LS0tLSsNCg0KICAgICAgICAgIEZpZ3VyZSAxMzogRXhhbXBsZSBvZiBEaXN0cmlidXRlZCBNZXNo IEFyY2hpdGVjdHVyZQ0KDQoNCjUuMSAgU2VjdXJpdHkNCg0KICAgVEJXDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAy MDA0ICAgICAgICAgICAgICBbUGFnZSAzMl0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBD QVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAwNA0KDQoNCjYuICBT dW1tYXJ5IGFuZCBDb25jbHVzaW9ucw0KDQogICBXZSByZXF1ZXN0ZWQgZXhpc3RpbmcgV0xBTiB2 ZW5kb3JzIGFuZCBvdGhlciBpbnRlcmVzdGVkIHBhcnRpZXMgdG8NCiAgIHN1Ym1pdCBhIHNob3J0 IGRlc2NyaXB0aW9uIG9mIGV4aXN0aW5nIG9yIGRlc2lyZWQgV0xBTiBhY2Nlc3MgbmV0d29yaw0K ICAgYXJjaGl0ZWN0dXJlcyB0byBkZWZpbmUgYSB0YXhvbm9teSBvZiBwb3NzaWJsZSBXTEFOIGFj Y2VzcyBuZXR3b3JrDQogICBhcmNoaXRlY3R1cmVzLiBUaGUgaW5mb3JtYXRpb24gZnJvbSB0aGUg MTQgc3VibWlzc2lvbnMgd2FzIGNvbmRlbnNlZA0KICAgYW5kIHN1bW1hcml6ZWQgaW4gdGhpcyBk b2N1bWVudC4NCg0KICAgTmV3IHRlcm1pbm9sb2d5IGhhcyBiZWVuIGRlZmluZWQgd2hlcmV2ZXIg ZXhpc3RpbmcgdGVybWlub2xvZ3kgd2FzDQogICBmb3VuZCB0byBiZSBlaXRoZXIgaW5zdWZmaWNp ZW50IG9yIGFtYmlndW91cyBpbiBkZXNjcmliaW5nIHRoZSBXTEFODQogICBhcmNoaXRlY3R1cmVz IGFuZCBzdXBwb3J0aW5nIGZ1bmN0aW9ucyBsaXN0ZWQgaW4gdGhlIGRvY3VtZW50LiBGb3INCiAg IGV4YW1wbGUsIHRoZSBicm9hZCBzZXQgb2YgQWNjZXNzIFBvaW50IGZ1bmN0aW9ucyBoYXMgYmVl biBkZXZpZGVkDQogICBpbnRvIHR3byBjYXRlZ29yaWVzIC0gODAyLjExIGZ1bmN0aW9ucyB3aGlj aCBpbmNsdWRlcyB0aG9zZSB0aGF0IGFyZQ0KICAgcmVxdWlyZWQgYnkgdGhlIElFRUUgODAyLjEx IHN0YW5kYXJkcywgYW5kIENBUFdBUCBmdW5jdGlvbnMgd2hpY2gNCiAgIGluY2x1ZGVzIHRob3Nl IHRoYXQgYXJlIG5vdCByZXF1aXJlZCBieSB0aGUgSUVFRSA4MDIuMTEsIGJ1dCBhcmUNCiAgIGRl ZW1lZCBlc3NlbnRpYWwgZm9yIGNvbnRyb2wsIGNvbmZpZ3VyYXRpb24sIGFuZCBtYW5hZ2VtZW50 IG9mIDgwMi4xMQ0KICAgV0xBTiBhY2Nlc3MgbmV0d29ya3MuIEFub3RoZXIgdGVybSB0aGF0IGhh cyBjYXVzZWQgY29uc2lkZXJhYmxlDQogICBhbWJpZ3VpdHkgaXMgIkFjY2VzcyBQb2ludCIgd2hp Y2ggd2FzIHVzdWFsbHkgdGllZCB0byByZWZsZWN0IGENCiAgIHBoeXNpY2FsIGJveCB0aGF0IGhh cyB0aGUgYW50ZW5uYXMsIGJ1dCBkaWQgbm90IGhhdmUgYSB1bmlmb3JtIHNldCBvZg0KICAgZXh0 ZXJuYWxseSB2ZXJpZmlhYmxlIGJlaGF2aW9yIGFjcm9zcyBhbGwgdGhlIHN1Ym1pc3Npb25zLiBU byByZW1vdmUNCiAgIHRoaXMgYW1iaWd1aXR5LCB3ZSBoYXZlIHJlLWRlZmluZWQgdGhlIEFQIHRv IGJlIHRoZSBzZXQgb2YgODAyLjExIGFuZA0KICAgQ0FQV0FQIGZ1bmN0aW9ucywgd2hpbGUgdGhl IHBoeXNpY2FsIGJveCB0aGF0IHRlcm1pbmF0ZXMgdGhlIDgwMi4xMQ0KICAgUEhZIGlzIGNhbGxl ZCB0aGUgV2lyZWxlc3MgVGVybWluYXRpb24gUG9pbnQuDQoNCjYuMSAgVGF4b25vbXkgU3VtbWFy eQ0KDQogICBCYXNlZCBvbiB0aGUgc3VibWlzc2lvbnMgZHVyaW5nIHRoZSBhcmNoaXRlY3R1cmFs IHN1cnZleSBwaGFzZSwgd2UNCiAgIGhhdmUgY2xhc3NpZmllZCB0aGUgZXhpc3RpbmcgV0xBTiBh cmNoaXRlY3R1cmVzIGludG8gdGhyZWUgYnJvYWQNCiAgIGNsYXNzZXM6DQogICAxLiAgQXV0b25v bW91cyBXTEFOIGFyY2hpdGVjdHVyZSBpbmRpY2F0ZXMgYSBmYW1pbHkgb2YgYXJjaGl0ZWN0dXJl cw0KICAgICAgIHdoZXJlIGFsbCB0aGUgODAyLjExIGZ1bmN0aW9ucyBhbmQsIHdoZXJlIGFwcGxp Y2FibGUsIENBUFdBUA0KICAgICAgIGZ1bmN0aW9ucyBhcmUgaW1wbGVtZW50ZWQgaW4gdGhlIFdU UC4NCiAgIDIuICBDZW50cmFsaXplZCBXTEFOIGFyY2hpdGVjdHVyZSBpbmRpY2F0ZXMgYSBmYW1p bHkgb2YgYXJjaGl0ZWN0dXJlcw0KICAgICAgIHdoZXJlIHRoZSBBUCBmdW5jdGlvbnMgYXJlIHNw bGl0IGJldHdlZW4gdGhlIFdUUCBhbmQgdGhlIEFDIHdpdGgNCiAgICAgICB0aGUgQUMsIHR5cGlj YWxseSwgYWN0aW5nIGFzIGEgY2VudHJhbGl6YXRpb24gY29udHJvbCBwb2ludCBmb3INCiAgICAg ICBtdWx0aXBsZSBXVFBzLg0KICAgMy4gIERpc3RyaWJ1dGVkIFdMQU4gYXJjaGl0ZWN0dXJlIGlu ZGljYXRlcyBhIGZhbWlseSBvZiBhcmNoaXRlY3R1cmVzDQogICAgICAgd2hlcmUgdGhlIEFQIGZ1 bmN0aW9ucyBhcmUgaW1wbGVtZW50ZWQgYWNyb3NzIGEgZGlzdHJpYnV0ZWQNCiAgICAgICBuZXR3 b3JrIG9mIHBlZXIgZW50aXRpZXMuDQoNCiAgIFdpdGhpbiB0aGUgY2VudHJhbGl6ZWQgV0xBTiBh cmNoaXRlY3R1cmUsIHRoZXJlIGFyZSBhIGZldyBzdWJncm91cHMNCiAgIHRoYXQgYXJlIHZpc2li bGUgZGVwZW5kaW5nIG9uIGhvdyBvbmUgc3BsaXRzIHRoZSBNQUMgZnVuY3Rpb25zLCBhdCBhDQog ICBoaWdoLWxldmVsLCBiZXR3ZWVuIHRoZSBXVFAgYW5kIHRoZSBBQy4gVGhyZWUgcHJvbWluZW50 IG9uZXMgZW1lcmdlZA0KICAgZnJvbSB0aGUgaW5mb3JtYXRpb24gcHJlc2VudCBpbiB0aGUgc3Vi bWlzc2lvbnM6DQogICAxLiAgU3BsaXQgTUFDIGFyY2hpdGVjdHVyZSwgd2hlcmUgdGhlIDgwMi4x MSBNQUMgZnVuY3Rpb25zIGFyZSBzcGxpdA0KICAgICAgIGJldHdlZW4gdGhlIFdUUCBhbmQgdGhl IEFDLiBUaGlzIHN1Ymdyb3VwIGluY2x1ZGVzIGFsbA0KICAgICAgIGFyY2hpdGVjdHVyZXMgdGhh dCBzcGxpdCB0aGUgODAyLjExIE1BQyBmdW5jdGlvbnMgZXZlbiB0aG91Z2gNCiAgICAgICBpbmRp dmlkdWFsIHN1Ym1pc3Npb25zIGRpZmZlcmVkIG9uIHRoZSBzcGVjaWZpY3Mgb2YgdGhlIHNwbGl0 Lg0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAw NCAgICAgICAgICAgICAgW1BhZ2UgMzNdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQ V0FQIEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICAyLiAg TG9jYWwgTUFDIGFyY2hpdGVjdHVyZSwgd2hlcmUgdGhlIGVudGlyZSBzZXQgb2YgODAyLjExIE1B Qw0KICAgICAgIGZ1bmN0aW9ucyBpcyBpbXBsZW1lbnRlZCBvbiB0aGUgV1RQLg0KICAgMy4gIFJl bW90ZSBNQUMgYXJjaGl0ZWN0dXJlLCB3aGVyZSB0aGUgZW50aXJlIHNldCBvZiA4MDIuMTEgTUFD DQogICAgICAgZnVuY3Rpb25zIGlzIGltcGxlbWVudGVkIG9uIHRoZSBBQy4NCg0KICAgVGhlIGZv bGxvd2luZyB0cmVlIGRpYWdyYW0gc3VtbWFyaXplcyB0aGUgYXJjaGl0ZWN0dXJlcyBkb2N1bWVu dGVkIGluDQogICB0aGlzIHRheG9ub215Lg0KDQogICAgICAgICAgICAgICAgICstLS0tLS0tLS0t LS0tLS0tKw0KICAgICAgICAgICAgICAgICB8QXV0b25vbW91cyAgICAgIHwNCiAgICAgKy0tLS0t LS0tLS0+fEFyY2hpdGVjdHVyZSAgICB8DQogICAgIHwgICAgICAgICAgIHxGYW1pbHkgICAgICAg ICAgfA0KICAgICB8ICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLSsNCiAgICAgfCAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0rDQogICAgIHwgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfExvY2FsICAgICAgICAgfA0KICAgICB8 ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tPnxNQUMgICAgICAgICAgIHwNCiAg ICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICB8QXJjaGl0ZWN0dXJlICB8 DQogICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgKy0tLS0tLS0tLS0t LS0tKw0KICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCiAgICAgfCAgICAg ICAgICAgKy0tLS0tLS0tLS0tLS0tLS0rICB8ICAgICArLS0tLS0tLS0tLS0tLS0rDQogICAgIHwg ICAgICAgICAgIHxDZW50cmFsaXplZCAgICAgfCAgfCAgICAgfFNwbGl0ICAgICAgICAgfA0KICAg ICArLS0tLS0tLS0tLT58QXJjaGl0ZWN0dXJlICAgIHwtLSstLS0tPnxNQUMgICAgICAgICAgIHwN CiAgICAgfCAgICAgICAgICAgfEZhbWlseSAgICAgICAgICB8ICB8ICAgICB8QXJjaGl0ZWN0dXJl ICB8DQogICAgIHwgICAgICAgICAgICstLS0tLS0tLS0tLS0tLS0tKyAgfCAgICAgKy0tLS0tLS0t LS0tLS0tKw0KICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwNCiAgICAgfCAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgICArLS0tLS0tLS0tLS0tLS0rDQogICAg IHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAgfFJlbW90ZSAgICAgICAgfA0K ICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICstLS0tPnxNQUMgICAgICAgICAg IHwNCiAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8QXJjaGl0ZWN0 dXJlICB8DQogICAgIHwgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKy0tLS0t LS0tLS0tLS0tKw0KICAgICB8ICAgICAgICAgICArLS0tLS0tLS0tLS0tLS0tLSsNCiAgICAgfCAg ICAgICAgICAgfERpc3RyaWJ1dGVkIE1lc2h8DQogICAgICstLS0tLS0tLS0tPnxBcmNoaXRlY3R1 cmUgICAgfA0KICAgICAgICAgICAgICAgICB8RmFtaWx5ICAgICAgICAgIHwNCiAgICAgICAgICAg ICAgICAgKy0tLS0tLS0tLS0tLS0tLS0rDQoNCg0KICAgQSBtYWpvcml0eSBvZiB0aGUgc3VibWl0 dGVkIFdMQU4gYWNjZXNzIG5ldHdvcmsgYXJjaGl0ZWN0dXJlcw0KICAgZm9sbG93ZWQgdGhlIGNl bnRyYWxpemVkIFdMQU4gYXJjaGl0ZWN0dXJlLiBBbGwgYnV0IG9uZSBvZiB0aGUNCiAgIGNlbnRy YWxpemVkIFdMQU4gYXJjaGl0ZWN0dXJlIHN1Ym1pc3Npb25zIHdlcmUgZ3JvdXBlZCBpbnRvIGVp dGhlciBhDQogICBTcGxpdCBNQUMgYXJjaGl0ZWN0dXJlIG9yIGEgTG9jYWwgTUFDIGFyY2hpdGVj dHVyZS4gVGhlcmUgd2FzIG9uZQ0KICAgc3VibWlzc2lvbiB0aGF0IGZvbGxvd2VkIHRoZSBSZW1v dGUgQVAgYXJjaGl0ZWN0dXJlLiBUaGVyZSB3YXMgb25lDQogICBzdWJtaXNzaW9uIHVuZGVyIHRo ZSBEaXN0cmlidXRlZCBXTEFOIGFyY2hpdGVjdHVyZS4NCg0KICAgVGhlIFdMQU4gYWNjZXNzIG5l dHdvcmsgYXJjaGl0ZWN0dXJlcyBpbiB0aGUgc3VibWlzc2lvbnMgaW5kaWNhdGVkDQogICB0aGF0 IHRoZSB0b3BvbG9naWNhbCBhc3N1bXB0aW9ucyB3ZXJlOg0KICAgbyAgRGlyZWN0IGNvbm5lY3Rp b24gYmV0d2VlbiB0aGUgV1RQIGFuZCB0aGUgQUMuDQoNCg0KDQoNCllhbmcgKEVkaXRvciksIGV0 IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQgICAgICAgICAgICAgIFtQYWdlIDM0XQ0K DA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdBUCBBcmNoLiBUYXhvbm9teSAgICAgICAg ICAgICAgICBBcHJpbCAyMDA0DQoNCg0KICAgbyAgTDIgc3dpdGNoZWQgY29ubmVjdGl2aXR5IGJl dHdlZW4gdGhlIFdUUCBhbmQgdGhlIEFDLg0KICAgbyAgTDMgcm91dGVkIGNvbm5lY3Rpdml0eSBi ZXR3ZWVuIHRoZSBXVFAgYW5kIHRoZSBBQy4NCiAgIG8gIFdpcmVsZXNzIGxpbmtzIGluIHRoZSBk aXN0cmlidXRlZCBXTEFOIGFyY2hpdGVjdHVyZS4NCg0KNi4yICBOZXh0IFN0ZXBzDQoNCiAgIElu dGVyb3BlcmFiaWxpdHkgYmV0d2VlbiBlcXVpcG1lbnQgZnJvbSBkaWZmZXJlbnQgdmVuZG9ycyBp cyBvbmUgb2YNCiAgIHRoZSBwcm9ibGVtcyBsaXN0ZWQgaW4gdGhlIENBUFdBUCBwcm9ibGVtIHN0 YXRlbWVudC4gSXQgaXMgbm90IHZlcnkNCiAgIHN1cnByaXNpbmcgdG8gc2VlIHRoYXQgdGhlIGlu dGVyb3BlcmFiaWxpdHkgcHJvYmxlbSBoYXMgYXJndWFibHkgc2Vlbg0KICAgbW9yZSBkaXNjdXNz aW9uIHVuZGVyIHRoZSBjZW50cmFsaXplZCBXTEFOIGFjY2VzcyBuZXR3b3JrDQogICBhcmNoaXRl Y3R1cmUsIGdpdmVuIHRoZSBudW1iZXIgb2Ygc3VibWlzc2lvbnMgdGhhdCBzZWVtIHRvIGZhdm9y IHRoaXMNCiAgIGFyY2hpdGVjdHVyZS4NCg0KICAgSW4gb3JkZXIgdG8gYWNoaWV2ZSB0aGUgaW50 ZXJvcGVyYWJpbGl0eSBnb2FsLCB0aGUgZm9sbG93aW5nIGFyZQ0KICAgcG9zc2libGUgbmV4dCBz dGVwczoNCiAgIDEuICBUaGUgQ0FQV0FQIHRheG9ub215IGRvY3VtZW50IG5lZWRzIHRvIGJlIHJl dmlld2VkIGJ5IGJvdGggdGhlDQogICAgICAgSUVFRSA4MDIuMTEgV0cgYW5kIHRoZSBJRVRGLg0K ICAgMi4gIFVzaW5nIHRoZSBhYm92ZSB0YXhvbm9teS90ZXJtaW5vbG9neSwgYSBmdW5jdGlvbmFs IG1vZGVsIG9mIGFuDQogICAgICAgQWNjZXNzIFBvaW50IHNob3VsZCBiZSBkZWZpbmVkLCBwb3Nz aWJseSwgYnkgYSBncm91cCB3aXRoaW4gdGhlDQogICAgICAgSUVFRSA4MDIuMTEuIFRoZSBmdW5j dGlvbmFsIG1vZGVsIHdpbGwgY29uc2lzdCBvZiBkZWZpbmluZw0KICAgICAgIGZ1bmN0aW9uYWwg ZWxlbWVudHMgb2YgYW4gODAyLjExIGFjY2VzcyBwb2ludCB0aGF0IGFyZSBjb25zaWRlcmVkDQog ICAgICAgYXRvbWljLCBpLmUuIG5vdCBzdWJqZWN0IHRvIGZ1cnRoZXIgc3BsaXR0aW5nIGFjcm9z cyBtdWx0aXBsZQ0KICAgICAgIG5ldHdvcmsgZWxlbWVudHMuIFN1Y2ggYSBmdW5jdGlvbmFsIG1v ZGVsIHNob3VsZCBzZXJ2ZSBhcyBhDQogICAgICAgY29tbW9uIGZvdW5kYXRpb24gdG8gc3VwcG9y dCB0aGUgZXhpc3RpbmcgV0xBTiBhcmNoaXRlY3R1cmVzIGFzDQogICAgICAgb3V0bGluZWQgaW4g dGhpcyB0YXhvbm9teSwgYW5kIGFueSBmdXJ0aGVyIGFyY2hpdGVjdHVyZQ0KICAgICAgIGRldmVs b3BtZW50IGVpdGhlciB3aXRoaW4gb3Igb3V0c2lkZSBvZiBJRUVFIDgwMi4xMSBncm91cC4gSXQg aXMNCiAgICAgICBwb3NzaWJsZSwgb3IgZXZlbiByZWNvbW1lbmRlZCwgdGhhdCB0aGUgd29yayBv biB0aGUgZnVuY3Rpb25hbA0KICAgICAgIG1vZGVsIGRlZmluaXRpb24gbWF5IGFsc28gaW5jbHVk ZSBpbXBhY3QgYW5hbHlzaXMgb2YgaW1wbGVtZW50aW5nDQogICAgICAgZWFjaCBmdW5jdGlvbmFs IGVsZW1lbnQgb24gZWl0aGVyIHRoZSBXVFAgb3IgdGhlIEFDLg0KICAgMy4gIEFzIHBhcnQgb2Yg dGhlIGZ1bmN0aW9uYWwgbW9kZWwgZGVmaW5pdGlvbiwgZGVmaW5lIGludGVyZmFjZXMgaW4NCiAg ICAgICB0aGUgZm9ybSBvZiBwcmltaXRpdmVzIGJldHdlZW4gdGhlc2UgZnVuY3Rpb25hbCBlbGVt ZW50cy4NCiAgIDQuICBJZiBhIHBhaXIgb2YgZnVuY3Rpb25hbCBlbGVtZW50cyB0aGF0IGhhdmUg YW4gaW50ZXJmYWNlIGRlZmluZWQNCiAgICAgICBiZXR3ZWVuIHRoZW0gaXMgc3ViamVjdCB0byBh IHNwbGl0LCBpLmUuLCBzdWJqZWN0IHRvIGJlaW5nDQogICAgICAgaW1wbGVtZW50ZWQgb24gdHdv IGRpZmZlcmVudCBuZXR3b3JrIGVudGl0aWVzLCB0aGVuIGEgcHJvdG9jb2wNCiAgICAgICBzcGVj aWZpY2F0aW9uIGJldHdlZW4gc3VjaCBwYWlycyBvZiBmdW5jdGlvbmFsIGVsZW1lbnRzIGlzDQog ICAgICAgcmVxdWlyZWQgdG8gYmUgZGVmaW5lZC4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQgICAg ICAgICAgICAgIFtQYWdlIDM1XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdBUCBB cmNoLiBUYXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0KNy4gIFNlY3VyaXR5 IENvbnNpZGVyYXRpb25zDQoNCiAgIFdoaWxlIHRoaXMgdGF4b25vbXkgZG9jdW1lbnRzIHRoZSBh cmNoaXRlY3R1cmVzIGVtcGxveWVkIGluIHRoZQ0KICAgZXhpc3RpbmcgSUVFRSA4MDIuMTEgcHJv ZHVjdHMgaW4gdGhlIG1hcmtldCwgaXQgYWxzbyBkb2N1bWVudHMgdGhlDQogICBzZWN1cml0eSBp c3N1ZXMgdGhhdCBhcmlzZSB3aXRoIHRoZSB2YXJpZWQgd2F5cyBpbiB3aGljaCB2ZW5kb3JzIGhh dmUNCiAgIGNob3NlbiB0byBlbXBsb3kgdGhlc2UgYXJjaGl0ZWN0dXJlcy4gVGhlIFdMQU4gYXJj aGl0ZWN0dXJlcyBhcmUNCiAgIGJyb2FkbHkgY2F0ZWdvcml6ZWQgaW50byB0aHJlZSBmYW1pbGll czogQXV0b25vbW91cyBBcmNoaXRlY3R1cmUsDQogICBDZW50cmFsaXplZCBBcmNoaXRlY3R1cmUs IGFuZCBEaXN0cmlidXRlZCBBcmNoaXRlY3R1cmUuICAgV2hpbGUNCiAgIFNlY3Rpb24gMywgU2Vj dGlvbiA0IGFuZCBTZWN0aW9uIDUgYXJlIGRldm90ZWQgdG8gZWFjaCBvZiB0aGVzZSB0aHJlZQ0K ICAgYXJjaGl0ZWN0dXJlIGZhbWlsaWVzLCByZXNwZWN0aXZlbHksIGVhY2ggc2VjdGlvbiBhbHNv IGNvbnRhaW5zIGENCiAgIHN1YnNlY3Rpb24gdG8gYWRkcmVzcyB0aGUgc2VjdXJpdHkgaXNzdWVz IHdpdGhpbiBlYWNoIGFyY2hpdGVjdHVyZQ0KICAgZmFtaWx5LiBQbGVhc2UgcmVmZXIgdG8gU2Vj dGlvbiAzU2VjdGlvbiAzIGFuZCBTZWN0aW9uIDMgIGZvcg0KICAgZGV0YWlsZWQgc2VjdXJpdHkg Y29uc2lkZXJhdGlvbnMgaW4gZWFjaCBvZiB0aGVzZSBhcmNoaXRlY3R1cmUNCiAgIGZhbWlsaWVz Lg0KDQogICBJbiBzdW1tYXJ5LCB0aGUgbWFpbiBzZWN1cml0eSBjb25jZXJuIGluIHRoZSBBdXRv bm9tb3VzIEFyY2hpdGVjdHVyZQ0KICAgaXMgdGhlIG11dHVhbCBhdXRoZW50aWNhdGlvbiBiZXR3 ZWVuIFdUUCBhbmQgdGhlIHdpcmVkIChFdGhlcm5ldCkNCiAgIGluZnJhc3RydWN0dXJlIGVxdWlw bWVudC4gIFRoZSBXVFAgcGh5c2ljYWwgZW50aXR5IGNvbnRhaW5zIGFsbCBvZg0KICAgdGhlIDgw Mi4xMSBhbmQgQ0FQV0FQIGZ1bmN0aW9ucyB3aGljaCBpc29sYXRlcyBpdCBmcm9tIG92ZXIgdGhl IHdpcmUNCiAgIHNlY3VyaXR5IGlzc3VlcyBiZXR3ZWVuIFdUUCBhbmQgQUMuICBJbiB0aGUgQ2Vu dHJhbGl6ZWQgQXJjaGl0ZWN0dXJlDQogICB0aGVyZSBhcmUgYSBmZXcgbmV3IHNlY3VyaXR5IGNv bmNlcm5zIGJlY2F1c2Ugb2YgdGhlIGludHJvZHVjdGlvbiBvZg0KICAgYSBuZXR3b3JrIGJpbmRp bmcgYmV0d2VlbiBXVFAgYW5kIEFDLiAgVGhlIGZvbGxvd2luZyBzZWN1cml0eQ0KICAgY29uY2Vy bnMgYXJlIHJhaXNlZCBmb3IgdGhpcyBhcmNoaXRlY3R1cmUgZmFtaWx5OiBrZXlpbmcgbWF0ZXJp YWwgZm9yDQogICBtb2JpbGUgY2xpZW50IHRyYWZmaWMgbmVlZHMgdG8gYmUgc2VjdXJlbHkgdHJh bnNwb3J0ZWQgZnJvbSBBQyB0bw0KICAgV1RQOyBzZWN1cmUgZGlzY292ZXJ5IG9mIFdUUCBhbmQg QUMgaXMgcmVxdWlyZWQsIG11dHVhbA0KICAgYXV0aGVudGljYXRpb24gb2YgV1RQcyBhbmQgQUMg aXMgbmVlZGVkLCBtYW4tIGluLXRoZS1taWRkbGUgYXR0YWNrcw0KICAgdG8gdGhlIGNvbnRyb2wg Y2hhbm5lbCBiZXR3ZWVuIFdUUCBhbmQgQUMsIGNvbmZpZGVudGlhbGl0eSBhbmQNCiAgIGludGVn cml0eSBvZiBjb250cm9sIGNoYW5uZWwgZnJhbWVzLCBhbmQgdGhlZnQgb2YgV1RQcyBmb3IgZXh0 cmFjdGlvbg0KICAgb2YgZW1iZWRkZWQgc2VjcmV0cyB3aXRoaW4uICBFYWNoIG9mIHRoZSBzdXJ2 ZXkgcmVzdWx0cyBmb3IgdGhpcw0KICAgYnJvYWQgYXJjaGl0ZWN0dXJlIGNhdGVnb3J5IGhhdmUg cHJlc2VudGVkIGEgdmFyaWV0eSBvZiBtZWNoYW5pc21zIHRvDQogICBhZGRyZXNzIHRoZXNlIHNl Y3VyaXR5IGlzc3Vlcy4NCg0KICAgW0VkaXRvcidzIG5vdGVdIFN1bW1hcnkgb2YgdGhlIHNlY3Vy aXR5IGlzc3VlcyBhbmQgY29uY2VybnMNCiAgIHBlcnRhaW5pbmcgdG8gdGhlIERpc3RyaWJ1dGVk IGFyY2hpdGVjdHVyZSBuZWVkcyB0byBiZSB3cml0dGVuIHdoZW4NCiAgIHRoZSBkZXNjcmlwdGlv biBvZiB0aGF0IGFyY2hpdGVjdHVyZSBpcyBjb21wbGV0ZS4NCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwg MjAwNCAgICAgICAgICAgICAgW1BhZ2UgMzZdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAg Q0FQV0FQIEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQo4LiAg QWNrbm93bGVkZ2VtZW50cw0KDQogICBUaGlzIHRheG9ub215IGlzIHRydWx5IGEgY29sbGFib3Jh dGl2ZSBlZmZvcnQgd2l0aCBjb250cmlidXRpb25zIGZyb20NCiAgIGEgbGFyZ2UgZ3JvdXAgb2Yg cGVvcGxlLiBGaXJzdCBvZiBhbGwsIHdlIHdhbnQgdG8gdGhhbmsgYWxsIHRoZQ0KICAgQ0FQV0FQ IEFyY2hpdGVjdHVyZSBEZXNpZ24gVGVhbSBtZW1iZXJzIHdobyBoYXZlIHNwZW50IG1hbnkgaG91 cnMgaW4NCiAgIHRoZSB0ZWxlY29uZmVyZW5jZSBjYWxscywgb3ZlciBlbWFpbHMgYW5kIGluIHdy aXRpbmcgYW5kIHJldmlld2luZw0KICAgdGhlIGRyYWZ0LiBUaGUgZnVsbCBEZXNpZ24gVGVhbSBp cyBsaXN0ZWQgaGVyZToNCiAgIG8gIFBleXVzaCBBZ2Fyd2FsDQogICAgICAgICBTVE1pY3JvZWxl Y3Ryb25pY3MNCiAgICAgICAgIFBsb3QjIDE4LCBTZWN0b3IgMTZBDQogICAgICAgICBOb2lkYSwg VS5QICAyMDEzMDENCiAgICAgICAgIEluZGlhDQogICAgICAgICBQaG9uZTogKzkxLTEyMC0yNTEy MDIxDQogICAgICAgICBFTWFpbDogcGV5dXNoLmFnYXJ3YWxAc3QuY29tDQogICBvICBEYXZlIEhl dGhlcmluZ3Rvbg0KICAgICAgICAgUm92aW5nIFBsYW5ldA0KICAgICAgICAgNDc1MCBXYWxudXQg U3QuLCBTdWl0ZSAxMDYNCiAgICAgICAgIEJvdWxkZXIsIENPICA4MDAyNw0KICAgICAgICAgVW5p dGVkIFN0YXRlcw0KICAgICAgICAgUGhvbmU6ICsxLTMwMy05OTYtNzU2MA0KICAgICAgICAgRU1h aWw6IERhdmUuSGV0aGVyaW5ndG9uQFJvdmluZ1BsYW5ldC5jb20NCiAgIG8gIE1hdHQgSG9sZHJl Z2UNCiAgICAgICAgIFN0cml4IFN5c3RlbXMNCiAgICAgICAgIDI2NjEwIEFnb3VyYSBSb2FkDQog ICAgICAgICBDYWxhYmFzYXMsIENBICA5MTMwMg0KICAgICAgICAgUGhvbmU6ICsxIDgxOC0yNTEt MTA1OA0KICAgICAgICAgRU1haWw6IG1hdHRAc3RyaXhzeXN0ZW1zLmNvbQ0KICAgbyAgVmljdG9y IExpbg0KICAgICAgICAgRXh0cmVtZSBOZXR3b3Jrcw0KICAgICAgICAgMzU4NSBNb25yb2UgU3Ry ZWV0DQogICAgICAgICBTYW50YSBDbGFyYSwgQ0EgIDk1MDUxDQogICAgICAgICBQaG9uZTogKzEg NDA4LTU3OS0zMzgzDQogICAgICAgICBFTWFpbDogdmxpbkBleHRyZW1lbmV0d29ya3MuY29tDQog ICBvICBKYW1lcyBNLiBNdXJwaHkNCiAgICAgICAgIFRyYXBlemUgTmV0d29ya3MNCiAgICAgICAg IDU3NTMgVy4gTGFzIFBvc2l0YXMgQmx2ZC4NCiAgICAgICAgIFBsZWFzYW50b24sIENBICA5NDU4 OA0KICAgICAgICAgUGhvbmU6ICsxIDkyNS00NzQtMjIzMw0KICAgICAgICAgRU1haWw6IGptdXJw aHlAdHJhcGV6ZW5ldHdvcmtzLmNvbQ0KICAgbyAgUGFydGhhIE5hcmFzaW1oYW4NCiAgICAgICAg IEFydWJhIFdpcmVsZXNzIE5ldHdvcmtzDQogICAgICAgICAxODAgR3JlYXQgT2FrcyBCbHZkDQog ICAgICAgICBTYW4gSm9zZSwgQ0EgIDk1MTE5DQogICAgICAgICBQaG9uZTogKzEgNDA4LTc1NC0z MDE4DQogICAgICAgICBFTWFpbDogcGFydGhhQGFydWJhbmV0d29ya3MuY29tDQogICBvICBCb2Ig TydIYXJhDQogICAgICAgICBBaXJlc3BhY2UNCg0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwu ICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAgICAgW1BhZ2UgMzddDQoMDQpJ bnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQIEFyY2guIFRheG9ub215ICAgICAgICAgICAg ICAgIEFwcmlsIDIwMDQNCg0KDQogICAgICAgICAxMTAgTm9ydGVjaCBQYXJrd2F5DQogICAgICAg ICBTYW4gSm9zZSwgQ0EgIDk1MTM0DQogICAgICAgICBQaG9uZTogKzEgNDA4LTYzNS0yMDI1DQog ICAgICAgICBFTWFpbDogYm9iQGFpcmVzcGFjZS5jb20NCiAgIG8gIEVtZWsgU2Fkb3QgKHNlZSBB dXRob3JzJyBBZGRyZXNzZXMpDQogICBvICBBaml0IFNhbnpnaXJpDQogICAgICAgICBDaXNjbyBT eXN0ZW1zDQogICAgICAgICAxNzAgVyBUYXNtYW4gRHJpdmUNCiAgICAgICAgIFNhbiBKb3NlLCBD QSAgOTUxMzQNCiAgICAgICAgIFBob25lOiArMSA0MDgtNTI3LTQyNTINCiAgICAgICAgIEVNYWls OiBzYW56Z2lyaUBjaXNjby5jb20NCiAgIG8gIEluZGVycHJlZXQgU2luZ2gNCiAgICAgICAgIENo YW50cnkgTmV0d29ya3MNCiAgICAgICAgIDE5MDAgTWlubmVzb3RhIENvdXJ0DQogICAgICAgICBN aXNzaXNzYXVnYSwgT250YXJpbyAgTDVOIDNDOQ0KICAgICAgICAgQ2FuYWRhDQogICAgICAgICBQ aG9uZTogKzEgOTA1LTU2Ny02OTAwDQogICAgICAgICBFTWFpbDogaXNpbmdoQGNoYW50cnluZXR3 b3Jrcy5jb20NCiAgIG8gIEwuIExpbHkgWWFuZyAoRWRpdG9yLCBzZWUgQXV0aG9ycycgQWRkcmVz c2VzKQ0KICAgbyAgUGV0cm9zIFplcmZvcyAoc2VlIEF1dGhvcnMnIEFkZHJlc3NlcykNCg0KICAg SW4gYWRkaXRpb24sIHdlIHdvdWxkIGFsc28gbGlrZSB0byBhY2tub3dsZWRnZSB0aGUgY29udHJp YnV0aW9ucyBmcm9tDQogICB0aGUgZm9sbG93aW5nIGluZGl2aWR1YWxzIHdobyBwYXJ0aWNpcGF0 ZWQgaW4gdGhlIGFyY2hpdGVjdHVyZSBzdXJ2ZXkNCiAgIGFuZCBwcm92aWRlZCBkZXRhaWxlZCBp bnB1dCBkYXRhIGluIHByZXBhcmF0aW9uIG9mIHRoZSB0YXhvbm9teToNCiAgIFBhcnZpeiBZZWdh bmksIENoZW5nIEhvbmcsIFNhcmF2YW5hbiBHb3ZpbmRhbiwgQm9iIEJlYWNoLCBEZW5uaXMNCiAg IFZvbHBhbm8sIFNoYW5rYXIgTmFyYXlhbmFzd2FteSwgU2ltb24gQmFyYmVyLCBTcmluaXZhc2Eg UmFvDQogICBBZGRlcGFsbGksIFN1Ymhhc2hpbmkgQS4gVmVua2F0YXJhbWFuYW4uIEl0IGlzIHNp bXBseSBpbXBvc3NpYmxlIHRvDQogICB3cml0ZSBhIHRheG9ub215IHdpdGhvdXQgYSBsYXJnZSBy ZXByZXNlbnRhdGl2ZSBkYXRhIHBvaW50cyB0aGF0IHRoZXkNCiAgIHByb3ZpZGVkIHVzLiBXZSB3 b3VsZCBhbHNvIGxpa2UgdG8gdGhhbmsgb3VyIENBUFdBUCBXRyBjby1jaGFpcnMsDQogICBNYWhh bGluZ2FtIE1hbmkgYW5kIERvcm90aHkgR2VsbGVydCwgYW5kIG91ciBBcmVhIERpcmVjdG9yLCBC ZXJ0DQogICBXaWpuZW4sIGZvciB0aGVpciB1bmZhaWxpbmcgc3VwcG9ydC4NCg0KOSAgUmVmZXJl bmNlcw0KDQogICBbMV0gICJJRUVFIFdMQU4gTUFDIGFuZCBQSFkgTGF5ZXIgU3BlY2lmaWNhdGlv bnMiLCBBdWd1c3QgMTk5OSwgPElFRUUNCiAgICAgICAgODAyLjExLTk5Pi4NCg0KICAgWzJdICAi Q0FQV0FQIFByb2JsZW0gU3RhdGVtZW50IiwgRmVicnVhcnkgMjAwNCwgPGh0dHA6Ly93d3cuaWV0 Zi5vcmcvDQogICAgICAgIGludGVybmV0LWRyYWZ0cy9kcmFmdC1pZXRmLWNhcHdhcC1wcm9ibGVt LXN0YXRlbWVudC0wMC50eHQ+Lg0KDQogICBbM10gICJUaGUgSW50ZXJuZXQgU3RhbmRhcmRzIFBy b2Nlc3MgUmV2aXNpb24gMyIsIE9jdG9iZXIgMTk5NiwNCiAgICAgICAgPGZ0cDovL2Z0cC5pc2ku ZWR1L2luLW5vdGVzL3JmYzIwMjY+Lg0KDQogICBbNF0gICJLZXkgd29yZHMgZm9yIHVzZSBpbiBS RkNzIHRvIEluZGljYXRlIFJlcXVpcmVtZW50IExldmVscyIsDQogICAgICAgIE1hcmNoIDE5OTcs IDxmdHA6Ly9mdHAuaXNpLmVkdS9pbi1ub3Rlcy9yZmMyMTE5Pi4NCg0KICAgWzVdICAiSUVFRSBT dGQgODAyLjExaS82LjA6IFNwZWNpZmljYXRpb24gZm9yIEVuaGFuY2VkIFNlY3VyaXR5IiwNCiAg ICAgICAgU2VwdGVtYmVyIDIwMDMuDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhw aXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSAzOF0NCgwNCkludGVybmV0 LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXBy aWwgMjAwNA0KDQoNCiAgIFs2XSAgIklFRUUgU3RkIDgwMi4xMWg6IFNwZWN0cnVtIGFuZCBUcmFu c21pdCBQb3dlciBNYW5hZ2VtZW50DQogICAgICAgIEV4dGVuc2lvbnMgaW4gdGhlIDUgR0h6IEJh bmQgaW4gRXVyb3BlIiwgT2N0b2JlciAyMDAzLg0KDQogICBbN10gICJJRUVFIFN0ZCA4MDIuMVg6 IFBvcnQtYmFzZWQgTmV0d29yayBBY2Nlc3MgQ29udHJvbCIsIEp1bmUgMjAwMS4NCg0KDQpBdXRo b3JzJyBBZGRyZXNzZXMNCg0KICAgTC4gTGlseSBZYW5nDQogICBJbnRlbCBDb3JwLg0KICAgTVMg SkYzIDIwNiwgMjExMSBORSAyNXRoIEF2ZW51ZQ0KICAgSGlsbHNib3JvLCBPUiAgOTcxMjQNCg0K ICAgUGhvbmU6ICsxIDUwMy0yNjQtODgxMw0KICAgRU1haWw6IGxpbHkubC55YW5nQGludGVsLmNv bQ0KDQoNCiAgIFBldHJvcyBaZXJmb3MNCiAgIFVDTEEgLSBDb21wdXRlciBTY2llbmNlIERlcGFy dG1lbnQNCiAgIDQ0MDMgQm9lbHRlciBIYWxsDQogICBMb3MgQW5nZWxlcywgQ0EgIDkwMDk1DQoN CiAgIFBob25lOiArMSAzMTAtMjA2LTMwOTENCiAgIEVNYWlsOiBwemVyZm9zQGNzLnVjbGEuZWR1 DQoNCg0KICAgRW1layBTYWRvdA0KICAgQXZheWENCiAgIEF0aWRpbSBUZWNobm9sb2d5IFBhcmss IEJ1aWxkaW5nICMzDQogICBUZWwtQXZpdiAgNjExMzENCiAgIElzcmFlbA0KDQogICBQaG9uZTog Kzk3Mi0zLTY0NS03NTkxDQogICBFTWFpbDogZXNhZG90QGF2YXlhLmNvbQ0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9j dG9iZXIgMTUsIDIwMDQgICAgICAgICAgICAgIFtQYWdlIDM5XQ0KDA0KSW50ZXJuZXQtRHJhZnQg ICAgICAgICAgIENBUFdBUCBBcmNoLiBUYXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0 DQoNCg0KQXBwZW5kaXggQS4gIFdMQU4gQXJjaGl0ZWN0dXJlIFN1cnZleSBUZW1wbGF0ZQ0KICAg MS4gIERlc2lnbiBjb25zaWRlcmF0aW9ucyBhbmQgcmVxdWlyZW1lbnRzOiBwbGVhc2UgYnJpZWZs eSBkZXNjcmliZQ0KICAgICAgIHlvdXIgZGVzaWduIHByaW5jaXBsZXMgZm9yIHRoaXMgYXJjaGl0 ZWN0dXJlLg0KICAgMi4gIFdMQU4gZnVuY3Rpb25zIHN1cHBvcnRlZDogUGxlYXNlIGxpc3QgdGhl IGZ1bmN0aW9ucyBzdXBwb3J0ZWQgaW4NCiAgICAgICB0aGlzIFdMQU4gYnJpZWZseSwgYnV0IHBs ZWFzZSBkbyBub3Qgc2VuZCB1cyB0aGUgZW50aXJlIGRhdGENCiAgICAgICBzaGVldC4gRXhhbXBs ZXMgb2YgV0xBTiBmdW5jdGlvbnMgaW5jbHVkZXMgdGhlIFNUQSBzZXJ2aWNlcywNCiAgICAgICBE aXN0cmlidXRlZCBTeXN0ZW0gU2VydmljZXMgKGFzIGRlZmluZWQgYnkgODAyLjExKSwgcmFkaW8N CiAgICAgICByZXNvdXJjZSBtYW5hZ2VtZW50IGFuZCBjb250cm9sLCBBUCBsb2FkIGJhbGFuY2lu ZywgbW9iaWxpdHkNCiAgICAgICBzdXBwb3J0LCBXTEFOIG5ldHdvcmsgd2lkZSBzZWN1cml0eSBm dW5jdGlvbnMgKGluY2x1ZGluZw0KICAgICAgIGF1dGhlbnRpY2F0aW9uLCBlbmNyeXB0aW9uIGZv ciBwcml2YWN5IGFuZCBpbnRlZ3JpdHksIGV0Yy4pIGFuZA0KICAgICAgIGFueSBvdGhlcnMgbm90 IGxpc3RlZCBoZXJlIGJ1dCBkZWVtZWQgaW1wb3J0YW50IGluIHlvdXIgZGVzaWduLg0KICAgMy4g IFRoZSBmdW5jdGlvbmFsIGFyY2hpdGVjdHVyZSB0byBpbXBsZW1lbnQgdGhlIGZ1bmN0aW9ucyBk ZXNjcmliZWQNCiAgICAgICBhYm92ZTogd2hldGhlciBpdCBpcyBieSBBdXRvbm9tb3VzIFdMQU4g QXJjaGl0ZWN0dXJlLCBvcg0KICAgICAgIENlbnRyYWxpemVkIEFyY2hpdGVjdHVyZS4gRm9yIENl bnRyYWxpemVkIEFyY2hpdGVjdHVyZSwgcGxlYXNlDQogICAgICAgcHJvdmlkZSB0aGUgZnVuY3Rp b25hbCBtYXBwaW5nIG9mIFdMQU4gZnVuY3Rpb25zIG9udG8gdGhlIEFQIGFuZA0KICAgICAgIEFD IC0tIHdpdGgganVzdCBlbm91Z2ggZGV0YWlscyB0aGF0IGhlbHAgdXMgdW5kZXJzdGFuZCB0aGUg a2luZHMNCiAgICAgICBvZiBmdW5jdGlvbmFsIGludGVyZmFjZSBuZWNlc3NhcnkgYmV0d2VlbiB0 aGUgdHdvLg0KICAgNC4gIFRoZSBwcm90b2NvbCB1c2VkIGluIGJldHdlZW4gQVAgYW5kIEFDLg0K ICAgNS4gIFRoZSB0b3BvbG9naWNhbCBhc3N1bXB0aW9ucyBiZXR3ZWVuIEFQIGFuZCBBQyAoaXMg aXQgZGlyZWN0bHkNCiAgICAgICBjb25uZWN0ZWQsIEwyIHN3aXRjaGVkLCBvciBMMyByb3V0ZWQ/ KSAtLSB0aGlzIGFsc28gaGVscHMgdXMgdG8NCiAgICAgICB1bmRlcnN0YW5kIHRoZSBkZXBsb3lt ZW50IHNjZW5hcmlvcy4NCiAgIDYuICBTZWN1cml0eSB0aHJlYXQgYW5hbHlzaXM6IHdoYXQga2lu ZHMgb2YgdGhyZWF0IGludHJvZHVjZWQgYnkgdGhlDQogICAgICAgc3BsaXQgYXJjaGl0ZWN0dXJl LCBhbmQgaG93IHRoYXQgYXJlIGFkZHJlc3NlZC4NCiAgIDcuICBQcm9zIGFuZCBDb25zIG9mIHRo aXMgYXJjaGl0ZWN0dXJlLCBlc3AuIGluIHJlbGF0aW9uIHRvIHRoZSBmb3VyDQogICAgICAgcHJv YmxlbXMgZGVzY3JpYmVkIGluIHRoZSBDQVBXQVAgcHJvYmxlbSBzdGF0ZW1lbnQuIFBsZWFzZSBr ZWVwDQogICAgICAgdGhlIGFuYWx5c2lzIGF0IHRlY2huaWNhbCBpbnN0ZWFkIG9mIG1hcmtldGlu ZyBsZXZlbC4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAgICAg ICAgICAgICAgW1BhZ2UgNDBdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQIEFy Y2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQpBcHBlbmRpeCBCLiAg U3VydmV5IENvbnRyaWJ1dGlvbiBGb3IgQXJjaGl0ZWN0dXJlIDENCg0KICAgKDEpIERlc2lnbiBj b25zaWRlcmF0aW9ucyBhbmQgcmVxdWlyZW1lbnRzOg0KDQogICBwbGVhc2UgYnJpZWZseSBkZXNj cmliZSB5b3VyIGRlc2lnbiBwcmluY2lwbGVzIGZvciB0aGlzIGFyY2hpdGVjdHVyZS4NCg0KICAg RWFzZSBvZiBkZXBsb3ltZW50LCBmbGV4aWJpbGl0eSB0byBkZXBsb3kgaW4gYW55IG5ldHdvcmsN CiAgIGFyY2hpdGVjdHVyZSwgc2ltcGxlLCBjZW50cmFsaXplZCBtYW5hZ2VtZW50LCBzZWN1cmUg ZGVwbG95bWVudHMsIGFuZA0KICAgYXV0b21hdGlvbiBvZiBXTEFOIGNvbmZpZ3VyYXRpb24sIG1v bml0b3JpbmcsIGFuZCBtYW5hZ2VtZW50DQogICBmdW5jdGlvbnMgYXJlIHRoZSBkZXNpZ24gZ29h bHMgb2YgdGhpcyBhcmNoaXRlY3R1cmUuDQoNCiAgIFRoZSBzeXN0ZW0gY29uc2lzdHMgb2YgdGhy ZWUgY29tcG9uZW50cywgdGhlIGFjY2VzcyBwb2ludCAoQVApLCB0aGUNCiAgIHN3aXRjaCBvciBh cHBsaWFuY2UgKEFDKSwgYW5kIHRoZSBDb250cm9sIFN5c3RlbS4gIEZvciB0aGUgcHVycG9zZXMN CiAgIG9mIHRoZSBDQVBXQVAgd29yaywgdGhlIENvbnRyb2wgU3lzdGVtIGNhbiBiZSBpZ25vcmVk Lg0KDQogICBUaGUgQVAgaXMgImxpZ2h0d2VpZ2h0IiBpbiBpdHMgZnVuY3Rpb25hbGl0eSwgY29t cGFyZWQgdG8gdHJhZGl0aW9uYWwNCiAgIEFQcy4gIFRoZSBBUCBpbXBsZW1lbnRzIHRoZSAicmVh bC10aW1lIiBwb3J0aW9ucyBvZiB0aGUgODAyLjExIG92ZXINCiAgIHRoZSBhaXIgcHJvdG9jb2ws IGluY2x1ZGluZyBSVFMvQ1RTIGFuZCBBQ0sgcHJvY2Vzc2luZywgQmVhY29uDQogICB0cmFuc21p c3Npb24sIFByb2JlIFJlc3BvbnNlIGNvbnN0cnVjdGlvbiBhbmQgdHJhbnNtaXNzaW9uLiAgQWxs DQogICA4MDIuMTEgZnJhbWVzIGFyZSB0cmFuc2ZlcnJlZCBiZXR3ZWVuIHRoZSBBUCBhbmQgQUMg aW4gYSB0dW5uZWwuICBObw0KICAgZnJhbWVzIGFyZSBicmlkZ2VkIGxvY2FsbHkgYnkgdGhlIEFQ LiAgVGhlIEFQIGlzIGNhcGFibGUgb2YNCiAgIHByZXNlbnRpbmcgbXVsdGlwbGUgV0xBTnMgc2lt dWx0YW5lb3VzbHksIGFwcGVhcmluZyB0byBiZSBhbg0KICAgaW5kZXBlbmRlbnQgQVAgZm9yIGVh Y2ggV0xBTi4NCg0KICAgVGhlIEFDIHBlcmZvcm1zIHRoZSA4MDIuMTEgTUFDIE1hbmFnZW1lbnQg ZnVuY3Rpb25zIG9mIGF1dGhlbnRpY2F0aW9uDQogICBhbmQgYXNzb2NpYXRpb24uICBJbiBhZGRp dGlvbiwgdGhlIEFDIHByb3ZpZGVzIHRoZSBpbmZvcm1hdGlvbiB0bw0KICAgZWFjaCBBUCB0byBj b25maWd1cmUgdGhlIG9wZXJhdGlvbiBvZiBlYWNoIFdMQU4gYW5kIHRvIHByb3Zpc2lvbiB0aGUN CiAgIEFQIHRvIG9wZXJhdGUgYXMgYSBjb29wZXJhdGluZyBjb21wb25lbnQgb2YgYSBsYXJnZXIg V0xBTiBzeXN0ZW0uDQogICBUaGUgQUMgcGVyZm9ybXMgdGhlIGJyaWRnaW5nIGZ1bmN0aW9uIGZv ciBhbGwgZGF0YSBmcmFtZXMgZW50ZXJpbmcNCiAgIGFuZCBsZWF2aW5nIHRoZSBXTEFOLg0KDQog ICAoMikgV0xBTiBmdW5jdGlvbnMgc3VwcG9ydGVkOg0KDQogICBQbGVhc2UgbGlzdCB0aGUgZnVu Y3Rpb25zIHN1cHBvcnRlZCBpbiB0aGlzIFdMQU4gYnJpZWZseSwgYnV0IHBsZWFzZQ0KICAgZG8g bm90IHNlbmQgdXMgdGhlIGVudGlyZSBkYXRhIHNoZWV0LiBFeGFtcGxlcyBvZiBXTEFOIGZ1bmN0 aW9ucw0KICAgaW5jbHVkZXMgYWxsIHRoZSBTVEEgc2VydmljZXMsIERpc3RyaWJ1dGVkIFN5c3Rl bSBTZXJ2aWNlcyAoYXMNCiAgIGRlZmluZWQgYnkgODAyLjExKSwgcmFkaW8gcmVzb3VyY2UgbWFu YWdlbWVudCBhbmQgY29udHJvbCwgbG9hZA0KICAgYmFsYW5jaW5nLCBtb2JpbGl0eSBzdXBwb3J0 LCBXTEFOIG5ldHdvcmsgd2lkZSBzZWN1cml0eSBmdW5jdGlvbnMNCiAgIChpbmNsdWRpbmcgYXV0 aGVudGljYXRpb24sIGVuY3J5cHRpb24gZm9yIHByaXZhY3kgYW5kIGludGVncml0eSwNCiAgIGV0 Yy4pIGFuZCBhbnkgb3RoZXJzIG5vdCBsaXN0ZWQgaGVyZSBidXQgZGVlbWVkIGltcG9ydGFudCBp biB5b3VyDQogICBkZXNpZ24uDQoNCiAgIEFsbCA4MDIuMTEgV0xBTiBmdW5jdGlvbnMgYXJlIHBy b3ZpZGVkIGJ5IHRoaXMgdmVuZG9yJ3MgV0xBTiBzeXN0ZW0uDQogICBTdGF0aW9uIHNlcnZpY2Vz IGFyZSBwcm92aWRlZCBpbiBwYXJ0IGJ5IHRoZSBBUCBhbmQgaW4gcGFydCBieSB0aGUNCiAgIEFD LiBEaXN0cmlidXRpb24gc2VydmljZXMgYXJlIHByb3ZpZGVkIGJ5IHRoZSBBQy4gIEludGVncmF0 aW9uDQogICBzZXJ2aWNlcyBhcmUgYWxzbyBwcm92aWRlZCBieSB0aGUgQUMuDQoNCiAgIGEuIEJl eW9uZCB0aG9zZSBzZXJ2aWNlcyBjdXJyZW50bHkgaW4gdGhlIDgwMi4xMSBzdGFuZGFyZCwgdGhp cyBXTEFODQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1 LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA0MV0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAg ICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAwNA0KDQoNCiAg IHN5c3RlbSBwcm92aWRlcyBXTEFOLXdpZGUgY29vcmRpbmF0ZWQgcmFkaW8gcmVzb3VyY2UgbWFu YWdlbWVudCwNCiAgIHByb3ZpZGluZyBib3RoIGR5bmFtaWMgY2hhbm5lbCBhc3NpZ25tZW50IGFu ZCB0cmFuc21pdCBwb3dlciBjb250cm9sDQogICBpbiByZXNwb25zZSB0byBsb2NhbCBub2lzZSBh bmQgaW50ZXJmZXJlbmNlIG1lYXN1cmVtZW50cyBhdCBlYWNoIEFQLA0KICAgYXMgd2VsbCBhcyBp bmNvcnBvcmF0aW5nIHRvcG9sb2d5IGluZm9ybWF0aW9uIG9mIHRoZSBBUHMgaW4gdGhlIFdMQU4N CiAgIHN5c3RlbS4NCg0KICAgYi4gUm9ndWUgZGV0ZWN0aW9uIGFuZCBjb250YWlubWVudCBzZXJ2 aWNlcyBhcmUgcHJvdmlkZWQsIGRldGVjdGluZw0KICAgYm90aCByb2d1ZSBBUHMgKHRob3NlIG5v dCBwYXJ0IG9mIHRoZSBXTEFOIHN5c3RlbSkgYW5kIGFkIGhvYw0KICAgbmV0d29ya3MuIENvbnRh aW5tZW50IChwcmV2ZW50aW9uIG9mIHVzZSkgaXMgcHJvdmlkZWQgdGhyb3VnaCBzZXZlcmFsDQog ICBtYW51YWwgYW5kIGF1dG9tYXRlZCBtZXRob2RzLg0KDQogICBjLiBMb2NhdGlvbiBzZXJ2aWNl cyBhcmUgcHJvdmlkZWQsIGFsbG93aW5nIFdMQU4gZGV2aWNlcywgYm90aCByb2d1ZQ0KICAgQVBz IG9yIGFkIGhvYyBjbGllbnRzIGFuZCBhdXRob3JpemVkIG1vYmlsZSBkZXZpY2VzIGluIHRoZSBX TEFOIHRvIGJlDQogICBsb2NhdGVkIHRvIHdpdGhpbiAzbS4NCg0KICAgZC4gTG9jYWwgSVBzZWMg VlBOIHRlcm1pbmF0aW9uIGluIHRoZSBBQyBpcyBwcm92aWRlZCBpbiB0aGUgQUMsDQogICBpbmNs dWRpbmcgZm9yd2FyZGluZyBvZiBtb2JpbGUgZGV2aWNlIHNlY3VyaXR5IGNvbnRleHQgdG8gb3Ro ZXIgQUNzDQogICBhcyB0aGUgbW9iaWxlIGRldmljZSByb2FtcyB0byBBUHMgc2VydmljZWQgYnkg dGhvc2Ugb3RoZXIgQUNzLg0KDQogICBlLiBDcm9zcy1zdWJuZXQgbW9iaWxpdHkgd2l0aG91dCBh bnkgc29mdHdhcmUgb24gdGhlIG1vYmlsZSBkZXZpY2UNCiAgIChzdWNoIGFzIG1vYmlsZSBJUCBv ciBvdGhlciBzcGVjaWFsIGNsaWVudCBzb2Z0d2FyZSkgaXMgcHJvdmlkZWQgYnkNCiAgIHRoZSBB Qy4NCg0KICAgZi4gQWNjZXNzIGNvbnRyb2wgbGlzdHMgYXJlIGFwcGxpZWQgdG8gYWxsIHRyYWZm aWMgZnJvbSBlYWNoIG1vYmlsZQ0KICAgZGV2aWNlIGJ5IHRoZSBBQy4gIEFjY2VzcyBjb250cm9s IGxpc3RzIG1heSBiZSBjb25maWd1cmVkIG1hbnVhbGx5IG9uDQogICB0aGUgQUMgb3IgcHJvdmlk ZWQgZHluYW1pY2FsbHkgYnkgQUFBIGF0dHJpYnV0ZXMgZm9yIGluZGl2aWR1YWwNCiAgIHVzZXJz Lg0KDQogICBnLiBEeW5hbWljIFFvUyBwcm92aWRlZCB2aWEgY29uZmlndXJhdGlvbiBvbiB0aGUg QUMgb3IgZnJvbSBBQUENCiAgIGF0dHJpYnV0ZXMgZm9yIGluZGl2aWR1YWwgdXNlcnMuDQoNCiAg ICgzKSBUaGUgZnVuY3Rpb25hbCBhcmNoaXRlY3R1cmUgdG8gaW1wbGVtZW50IHRoZSBmdW5jdGlv bnMgZGVzY3JpYmVkDQogICBhYm92ZTogd2hldGhlciBpdCBpcyBieSBhdXRvbm9tb3VzIEFQIGFy Y2hpdGVjdHVyZSwgb3IgInNwbGl0Ig0KICAgYXJjaGl0ZWN0dXJlLiBGb3Igc3BsaXQgYXJjaGl0 ZWN0dXJlLCBwbGVhc2UgcHJvdmlkZSB0aGUgZnVuY3Rpb25hbA0KICAgbWFwcGluZyBvZiBXTEFO IGZ1bmN0aW9ucyBvbnRvIHRoZSBBUCBhbmQgQUMgLS0gd2l0aCBqdXN0IGVub3VnaA0KICAgZGV0 YWlscyB0aGF0IGhlbHAgdXMgdW5kZXJzdGFuZCB0aGUga2luZHMgb2YgZnVuY3Rpb25hbCBpbnRl cmZhY2UNCiAgIG5lY2Vzc2FyeSBiZXR3ZWVuIHRoZSB0d28uDQoNCiAgIFRoaXMgYXJjaGl0ZWN0 dXJlIHVzZXMgYSAic3BsaXQgTUFDIiBhcmNoaXRlY3R1cmUuICBUaGUgbWFwcGluZyBvZg0KICAg V0xBTiBmdW5jdGlvbnMgdG8gdGhlIEFQIGFuZCBBQyBhcmUgYXMgZm9sbG93czoNCg0KICAgT24g dGhlIEFQOg0KDQogICBhLiByZWFsLXRpbWUgZnJhbWUgZXhjaGFuZ2Ugb3ZlciB0aGUgYWlyIChS VFMvQ1RTLCBEYXRhL0FDSyksDQogICBpbmNsdWRpbmcgcmV0cmFuc21pc3Npb24gYW5kIHJhdGUg YWRhcHRhdGlvbg0KDQogICBiLiB0aW1lIGNyaXRpY2FsIE1BQyBNYW5hZ2VtZW50IChCZWFjb24s IFByb2JlIFJlc3BvbnNlKQ0KDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJl cyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA0Ml0NCgwNCkludGVybmV0LURy YWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwg MjAwNA0KDQoNCiAgIGMuIFZpcnR1YWwgQVAgKG11bHRpcGxlIFNTSUQpDQoNCiAgIGQuIHBvd2Vy IG1hbmFnZW1lbnQgcGFja2V0IGJ1ZmZlcmluZw0KDQogICBlLiBSRiBtb25pdG9yaW5nIChyYWRh ciBkZXRlY3Rpb24sIG5vaXNlIG1lYXN1cmVtZW50LCBpbnRlcmZlcmVuY2UNCiAgIG1lYXN1cmVt ZW50KQ0KDQogICBmLiBMV0FQUCBlbmNhcHN1bGF0aW9uL2RlY2Fwc3VsYXRpb24gb2YgYWxsIGZy YW1lcyB0by9mcm9tIEFDDQoNCiAgIGcuIEwyIGVuY3J5cHRpb24NCg0KICAgaC4gTDIgUW9TDQoN CiAgIE9uIHRoZSBBQzoNCg0KICAgYS4gTFdBUFAgZW5jYXBzdWxhdGlvbi9kZWNhcHN1bGF0aW9u IG9mIGFsbCBmcmFtZXMgdG8vZnJvbSBBUHMNCg0KICAgYi4gTUFDIE1hbmFnZW1lbnQgcHJvY2Vz c2luZyAoYXV0aGVudGljYXRpb24sIGFzc29jaWF0aW9uKQ0KDQogICBjLiA4MDIuMVgvRUFQIHBy b2Nlc3NpbmcNCg0KICAgZC4gQnJpZGdpbmcgYmV0d2VlbiA4MDIuMTEgYW5kIDgwMi4zIChpbnRl Z3JhdGlvbiBzZXJ2aWNlcykNCg0KICAgZS4gQ29uZmlndXJhdGlvbiBvZiBSRiBwYXJhbWV0ZXJz IGZvciBhbGwgQVBzDQoNCiAgIGYuIFByb3Zpc2lvbmluZyBvZiBtdWx0aXBsZSBXTEFOcw0KDQog ICBnLiBMb2FkIGJhbGFuY2luZyBiZXR3ZWVuIEFQcw0KDQogICBoLiBNb2JpbGl0eSBtYW5hZ2Vt ZW50IGJldHdlZW4gQVBzIGFuZCBiZXR3ZWVuIG11bHRpcGxlIEFDcy4NCg0KICAgaS4gTDMgZW5j cnlwdGlvbiAoSVBzZWMgVlBOKQ0KDQogICBqLiBBY2Nlc3MgY29udHJvbCBsaXN0cyBmb3IgbW9i aWxlIGRldmljZXMNCg0KICAgay4gTG9jYXRpb24gc2VydmljZXMNCg0KICAgbC4gUHJveHkgQVJQ DQoNCiAgIG0uIERvUyBkZXRlY3Rpb24gYW5kIHByZXZlbnRpb24NCg0KICAgKDQpIFRoZSBwcm90 b2NvbCB1c2VkIGluIGJldHdlZW4gQVAgYW5kIEFDLg0KDQogICBMV0FQUCAoZHJhZnQtY2FsaG91 bi1zZWFtb2J5LWx3YXBwLTAzLnR4dCksIG9wZXJhdGluZyBhdCBlaXRoZXIgTDIgb3INCiAgIEwz Lg0KDQogICAoNSkgVGhlIHRvcG9sb2dpY2FsIGFzc3VtcHRpb25zIGJldHdlZW4gQVAgYW5kIEFD IChpcyBpdCBkaXJlY3RseQ0KICAgY29ubmVjdGVkLCBMMiBzd2l0Y2hlZCwgb3IgTDMgcm91dGVk PykgLS0gdGhpcyBhbHNvIGhlbHBzIHVzIHRvDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4g ICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA0M10NCgwNCklu dGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAg ICAgQXByaWwgMjAwNA0KDQoNCiAgIHVuZGVyc3RhbmQgdGhlIGRlcGxveW1lbnQgc2NlbmFyaW9z Lg0KDQogICBUaGVyZSBhcmUgbm8gYXNzdW1wdGlvbnMgb2YgbmV0d29yayB0b3BvbG9neSBiZXR3 ZWVuIEFQIGFuZCBBQy4NCg0KICAgYS4gQVBzIG1heSBiZSBkaXJlY3RseSBjb25uZWN0ZWQgdG8g YW4gQUMsDQoNCiAgIGIuIFRoZXJlIG1heSBiZSBhbiBhcmJpdHJhcnkgTDIgc3dpdGNoaW5nIGlu ZnJhc3RydWN0dXJlIGJldHdlZW4gdGhlDQogICBBUCBhbmQgQUMsDQoNCiAgIGMuIFRoZXJlIG1h eSBiZSBhbiBhcmJpdHJhcnkgTDMgbmV0d29yayBiZXR3ZWVuIHRoZSBBUCBhbmQgQUMuDQoNCiAg ICg2KSBTZWN1cml0eSB0aHJlYXQgYW5hbHlzaXM6IHdoYXQga2luZHMgb2YgdGhyZWF0IGludHJv ZHVjZWQgYnkgdGhlDQogICBzcGxpdCBhcmNoaXRlY3R1cmUsIGFuZCBob3cgdGhhdCBhcmUgYWRk cmVzc2VkLg0KDQogICBTZWN1cml0eSB0aHJlYXRzIGNvbnNpZGVyZWQ6DQoNCiAgIGEuIEludGVy Y2VwdGlvbiBvZiBjb250cm9sIHRyYWZmaWMgYmV0d2VlbiBBUCBhbmQgQUMNCg0KICAgYi4gSW5z ZXJ0aW9uIG9mIGNvbnRyb2wgdHJhZmZpYyB0byBBUCBvciBBQw0KDQogICBjLiBJbnNlcnRpb24g b2YgdW5hdXRob3JpemVkIEFQDQoNCiAgIGQuIFRoZWZ0IG9mIGVtYmVkZGVkIHNlY3JldHMgaW4g QVBzDQoNCiAgIGUuIEFjY2VzcyBieSB1bmF1dGhvcml6ZWQgdXNlcg0KDQogICBmLiBNYXNxdWVy YWRlIGFzIGF1dGhvcml6ZWQgdXNlcg0KDQogICBnLiBEb1MgdGhyZWF0cw0KDQogICBoLiBBUlAg c3Bvb2ZpbmcNCg0KICAgTWV0aG9kcyB1c2VkIHRvIGFkZHJlc3Mgc2VjdXJpdHkgdGhyZWF0cyAo bGV0dGVyIG9mIG1ldGhvZA0KICAgY29ycmVzcG9uZHMgdG8gc2FtZSBsZXR0ZXIgb2YgdGhyZWF0 LCBhYm92ZSkNCg0KICAgYS4gQWxsIGNvbnRyb2wgdHJhZmZpYyBiZXR3ZWVuIEFQIGFuZCBBQyBp cyBlbmNyeXB0ZWQgdXNpbmcgZHluYW1pYw0KICAgc2Vzc2lvbiBrZXkgbmVnb3RpYXRlZCB1c2lu ZyBhdXRoZW50aWNhdGVkIERIIGV4Y2hhbmdlDQoNCiAgIGIuIEFsbCBjb250cm9sIHRyYWZmaWMg aXMgYXV0aGVudGljYXRlZCBpbiBlbmNyeXB0ZWQgTFdBUFAgdHVubmVsDQoNCiAgIGMuIEFQcyBp bmNsdWRlIGluZGl2aWR1YWwgWC41MDkgY2VydGlmaWNhdGVzIHRvIHZhbGlkYXRlIGlkZW50aXR5 Lg0KICAgQUFBIGF1dGhlbnRpY2F0aW9uIG1heSBhbHNvIGJlIHVzZWQgdG8gdmFsaWRhdGUgaW5k aXZpZHVhbCBBUHMuDQoNCiAgIGQuIFRoZXJlIGFyZSBubyBzZWNyZXRzIGluIHRoZSBBUCB0aGF0 IGFyZSBpbiBub24tdm9sYXRpbGUgbWVtb3J5Lg0KDQogICBlLiBTZXZlcmFsIHVzZXIgYXV0aGVu dGljYXRpb24gbWV0aG9kcyBhcmUgc3VwcG9ydGVkLCBpbmNsdWRpbmcgYQ0KICAgbG9jYWwgYXV0 aGVudGljYXRpb24gdmlhIHdlYiBsb2dpbiwgSVBzZWMgVlBOLCA4MDIuMVgsIFdQQSwgV1BBMi4N Cg0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAw NCAgICAgICAgICAgICAgW1BhZ2UgNDRdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQ V0FQIEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICBmLiBB QyBtYWludGFpbnMgYWRkcmVzcyBlcXVpdmFsZW5jZSBtYXBwaW5ncyB0byBwcmV2ZW50IG1hc3F1 ZXJhZGUNCg0KICAgZy4gQUMgZGV0ZWN0cyBEb1MgYXR0YWNrcyBhbmQgcHJvdmlkZXMgc3lzdGVt LXdpZGUgYmxhY2sgbGlzdGluZyBvZg0KICAgYXR0YWNraW5nIGRldmljZS4NCg0KICAgaC4gQUMg cHJvdmlkZXMgcHJveHkgQVJQIGZ1bmN0aW9ucyBhbmQgYmxhY2sgbGlzdHMgYW55IGRldmljZQ0K ICAgc3Bvb2ZpbmcgQVJQIHJlcGxpZXMuDQoNCiAgICg3KSBQcm9zIGFuZCBDb25zIG9mIHRoaXMg YXJjaGl0ZWN0dXJlLCBlc3AuIGluIHJlbGF0aW9uIHRvIHRoZSBmb3VyDQogICBwcm9ibGVtcyBk ZXNjcmliZWQgaW4gdGhlIENBUFdBUCBwcm9ibGVtIHN0YXRlbWVudC4gUGxlYXNlIGtlZXAgdGhl DQogICBhbmFseXNpcyBhdCB0ZWNobmljYWwgaW5zdGVhZCBvZiBtYXJrZXRpbmcgbGV2ZWwuDQoN CiAgIEFsbCBwcm9ibGVtcyBkZXNjcmliZWQgaW4gdGhlIHByb2JsZW0gc3RhdGVtZW50IGFyZSBh ZGRyZXNzZWQgd2l0aA0KICAgdGhpcyBzb2x1dGlvbi4gIEluIGFkZGl0aW9uLCBzaWduaWZpY2Fu dCBhZGRpdGlvbmFsIGZ1bmN0aW9uYWxpdHkgaXMNCiAgIHByb3ZpZGVkIGJ5IHRoZSBjZW50cmFs aXphdGlvbiBvZiBpbmZvcm1hdGlvbiBpbiB0aGUgQUNzLg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KWWFuZyAo RWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAgICAg W1BhZ2UgNDVdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQIEFyY2guIFRheG9u b215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQpBcHBlbmRpeCBDLiAgU3VydmV5IENv bnRyaWJ1dGlvbiBGb3IgQXJjaGl0ZWN0dXJlIDINCg0KICAgVGhlcmUgaXMgY29uc2lkZXJhYmxl IGFtYmlndWl0eSBpbiB0aGUgdXNlIG9mIHRoZSB0ZXJtIEFQIHdpdGhpbiBhbmQNCiAgIG91dHNp ZGUgdGhpcyBncm91cC4gSSB3b3VsZCBsaWtlIHRvIHByb3Bvc2UgYSBjaGFuZ2UgaW4gdGVybWlu b2xvZ3kNCiAgIHRoYXQgdGhlIENBUFdBUCBkZXNpZ24gdGVhbSBzaG91bGQgdXNlIGluIHRoZSB0 YXhvbm9teSBkcmFmdC4NCg0KICAgSSBoYWQgc2VudCBhbiBlYXJsaWVyIGVtYWlsIHRvIHRoaXMg Z3JvdXAgb24gcmUtZGVmaW5pbmcgdGhlIHRlcm0gQVANCiAgIHRvIG1lYW4gdGhlIHNldCBvZiBm dW5jdGlvbnMgdGhhdCBhbiBhY2Nlc3MgcG9pbnQgaXMgZXhwZWN0ZWQgdG8NCiAgIHByb3ZpZGUg YXMgZGVmaW5lZCBpbiB0aGUgODAyLjExIHNwZWMuIFRoZSBwaHlzaWNhbCBib3ggdGhhdA0KICAg dGVybWluYXRlcyB0aGUgaW5mcmFzdHJ1Y3R1cmUgc2lkZSBvZiB0aGUgd2lyZWxlc3MgbGluayBp cyByZWZlcnJlZA0KICAgdG8gYXMgdGhlIHdpcmVsZXNzIHRlcm1pbmF0aW9uIHBvaW50IChXVFAp LiBGb3IgaW1wbGVtZW50YXRpb24NCiAgIHB1cnBvc2VzLCB0aGUgc2V0IG9mIEFQIGZ1bmN0aW9u cyBNQVkgYmUgc3BsaXQgYmV0d2VlbiB0aGUgV1RQIGFuZA0KICAgdGhlIEFDLg0KDQogICBUaGlz IGRvY3VtZW50IHVzZXMgdGhlIHRlcm1zICJBUCIgYW5kICJXVFAiIGFjY29yZGluZyB0byB0aGUg YWJvdmUNCiAgIGRlZmluaXRpb25zLg0KDQogICAoMSkgRGVzaWduIGNvbnNpZGVyYXRpb25zIGFu ZCByZXF1aXJlbWVudHM6IHBsZWFzZSBicmllZmx5IGRlc2NyaWJlDQogICB5b3VyIGRlc2lnbiBw cmluY2lwbGVzIGZvciB0aGlzIGFyY2hpdGVjdHVyZS4NCg0KICAgU2VjdXJlLCBzY2FsYWJsZSwg bGFyZ2Utc2NhbGUgV0xBTiBkZXBsb3ltZW50cy4NCg0KICAgVGhlIEFDIHdhcyBkZXNpZ25lZCB0 byBiZSBtdWNoIG1vcmUgdGhhbiBhIG1hbmFnZXIgb2YgcGh5c2ljYWwNCiAgIFdpcmVsZXNzIFRl cm1pbmF0aW9uIFBvaW50cyAoV1RQcykuIEFsbCA4MDIuMTEgZGF0YSB0cmFmZmljIHBhc3Nlcw0K ICAgdGhyb3VnaCBhIHN0YXRlZnVsLCBwZXItdXNlciBmaXJld2FsbCBhdCB0aGUgQUMgYmVmb3Jl IGl0IGlzIGFsbG93ZWQNCiAgIHRvIGVudGVyIHRoZSBuZXR3b3JrIGJleW9uZCB0aGUgQUMuIFRo ZSBBQyBvZmZlcnMgdGVybWluYXRpb24gb2YgYm90aA0KICAgODAyLjExIEwyIHNlY3VyaXR5IGFu ZCBMMyBWUE5zIGluY2x1ZGluZyBjb25maWd1cmF0aW9ucyB0aGF0IHN1cHBvcnQNCiAgIHNpbXVs dGFuZW91cyBvcGVyYXRpb24gb2YgYm90aCBMMiBhbmQgTDMgZW5jcnlwdGlvbi4NCg0KICAgVGhl IFdUUHMgYXJlIG1lYW50IHRvIHRlcm1pbmF0ZSB0aGUgaW5mcmFzdHJ1Y3R1cmUgc2lkZSBvZiB0 aGUNCiAgIHdpcmVsZXNzIHBoeXNpY2FsIGxpbmsuIFRoZXkgYXJlIG1lYW50IHRvIGJlIHZlcnkg aW50ZWxsaWdlbnQgZGV2aWNlcw0KICAgZnJvbSBhbiBSRiBwZXJzcGVjdGl2ZSAobW9uaXRvciB0 aGUgUkYgZW52aXJvbm1lbnQgYXJvdW5kIHRoZW0gdG8gYWlkDQogICByYWRpbyByZXNvdXJjZSBt YW5hZ2VtZW50KSwgYnV0IGFyZSB2ZXJ5IHNpbXBsZSBkZXZpY2VzIHdpdGggdXNlcg0KICAgc3Rh dGUgbGltaXRlZCB0byByYXRlIGFkYXB0YXRpb24sIHJldHJhbnNtaXNzaW9ucywgYW5kIHBvd2Vy LXNhdmUNCiAgIGJ1ZmZlcmluZywgbm8gc2VjdXJpdHkgc3RhdGUgYW5kIG5vIHBlcnNpc3RlbnQg Y29uZmlndXJhdGlvbg0KICAgaW5mb3JtYXRpb24uDQoNCiAgIFRoZSBjb25uZWN0aXZpdHkgYmV0 d2VlbiBhIFdUUCBhbmQgYW4gQUMgc2hvdWxkIGJlIHZlcnkgZmxleGlibGUgd2l0aA0KICAgc3Vw cG9ydCBmb3IgdGhyZWUgbW9kZXMgLSBkaXJlY3RseSBjb25uZWN0ZWQsIGNvbm5lY3RlZCBhY3Jv c3MgYW4gTDINCiAgIGNsb3VkLCBhbmQgY29ubmVjdGVkIGFjcm9zcyBhbiBMMyBjbG91ZC4NCg0K ICAgQWxsIGNvbmZpZ3VyYXRpb24gaXMgY2VudHJhbGl6ZWQgYXQgdGhlIEFDLiBUaGUgV1RQcyBk aXNjb3ZlciBvbmUgb3INCiAgIG1vcmUgQUNzIHRvIGhvbWUgdG8gYW5kLCBhZnRlciBtdXR1YWwg YXV0aGVudGljYXRpb24sIHNldHVwIG11bHRpcGxlDQogICB0dW5uZWxzIHRoYXQgYXJlIHJvdXRh YmxlIG92ZXIgYW4gTDMgY2xvdWQgdG8gY2FycnkgY29udHJvbC8NCiAgIGNvbmZpZ3VyYXRpb24g aW5mb3JtYXRpb24gYW5kIDgwMi4xMSBtZ210L2RhdGEgZnJhbWVzLiBUaGUgY29udHJvbA0KICAg dHVubmVscyBhcmUgZW5jcnlwdGVkIHdoaWxlIHRoZSBlbmNyeXB0aW9uIG9uIHRoZSB0dW5uZWxz IGNhcnJ5aW5nDQogICA4MDIuMTEgdHJhZmZpYyBjYW4gYmUgY29uZmlndXJlZCB0byBiZSBlbmNy eXB0ZWQuDQoNCg0KDQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIg MTUsIDIwMDQgICAgICAgICAgICAgIFtQYWdlIDQ2XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAg ICAgIENBUFdBUCBBcmNoLiBUYXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0K ICAgQWxsIHVzZXIgYW5kIHNlY3VyaXR5IHN0YXRlIGlzIG1haW50YWluZWQgYXQgdGhlIEFDLCB3 aXRoIHRoZSB1c2VyDQogICBzdGF0ZSBhdCB0aGUgV1RQIGxpbWl0ZWQgdG8gcmF0ZSBhZGFwdGF0 aW9uLCByZXRyYW5zbWlzc2lvbnMsIGFuZA0KICAgcG93ZXItc2F2ZSBtYW5hZ2VtZW50LiBUaGUg YWNjZXNzIGNvbnRyb2wgaXMgYmFzZWQgb24gYSBtb2RlbCBvZg0KICAgYXNzaWduaW5nIHJvbGVz IHRvIHVzZXJzLiBUaGUgbWFwcGluZyBvZiBhIHVzZXIgaW50byBhIHJvbGUgaXMgYmFzZWQNCiAg IG9uIGEgdmVyeSBmbGV4aWJsZSBzZXQgb2YgY29uZmlndXJhdGlvbiBvcHRpb25zLiBBIHNldCBv ZiBmaXJld2FsbA0KICAgcnVsZXMgYXNzb2NpYXRlZCB0byBlYWNoIHJvbGUsIGluY2x1ZGluZyBi YW5kd2lkdGggY29udHJhY3RzIGFuZCBRb1MsDQogICBjb250cm9sIHRoZSB0cmFmZmljIGZsb3cg YmV0d2VlbiBhIHVzZXIgdGhlIG5ldHdvcmsgYmVoaW5kIHRoZSBBQy4NCg0KICAgVGhlIEFDcyBw cm92aWRlIGR5bmFtaWMgcmFkaW8gcmVzb3VyY2UgbWFuYWdlbWVudCBhaWRlZCBieQ0KICAgbWVh c3VyZW1lbnRzIGF0IHRoZSBXVFBzLg0KDQogICAoMikgV0xBTiBmdW5jdGlvbnMgc3VwcG9ydGVk IDogUGxlYXNlIGxpc3QgdGhlIGZ1bmN0aW9ucyBzdXBwb3J0ZWQgaW4NCiAgIHRoaXMgV0xBTiBi cmllZmx5LCBidXQgcGxlYXNlIGRvIG5vdCBzZW5kIHVzIHRoZSBlbnRpcmUgZGF0YSBzaGVldC4N CiAgIEV4YW1wbGVzIG9mIFdMQU4gZnVuY3Rpb25zIGluY2x1ZGVzIHRoZSBTVEEgc2VydmljZXMs IERpc3RyaWJ1dGVkDQogICBTeXN0ZW0gU2VydmljZXMgKGFzIGRlZmluZWQgYnkgODAyLjExKSwg cmFkaW8gcmVzb3VyY2UgbWFuYWdlbWVudCBhbmQNCiAgIGNvbnRyb2wsIEFQIGxvYWQgYmFsYW5j aW5nLCBtb2JpbGl0eSBzdXBwb3J0LCBXTEFOIG5ldHdvcmsgd2lkZQ0KICAgc2VjdXJpdHkgZnVu Y3Rpb25zIChpbmNsdWRpbmcgYXV0aGVudGljYXRpb24sIGVuY3J5cHRpb24gZm9yIHByaXZhY3kN CiAgIGFuZCBpbnRlZ3JpdHksIGV0Yy4pIGFuZCBhbnkgb3RoZXJzIG5vdCBsaXN0ZWQgaGVyZSBi dXQgZGVlbWVkDQogICBpbXBvcnRhbnQgaW4geW91ciBkZXNpZ24uDQoNCiAgIEFsbCBvZiB0aGUg QVAgZnVuY3Rpb25zIGFzIGRlZmluZWQgaW4gdGhlIDgwMi4xMSBzcGVjDQoNCiAgIExvYWQtYmFs YW5jaW5nIGFjcm9zcyBXVFBzIGlzIGFjaGlldmVkIGJ5IGV4cGxvaXRpbmcgdGhlIHdpZGVyIHZp ZXcNCiAgIG9mIHRoZSBSRiBuZXR3b3JrIHRoYXQgYW4gQUMgaGFzIHRoYW4gd2hhdCBpcyBhdmFp bGFibGUgYXQgdGhlIFdUUC4NCg0KICAgSW50cmEtQUMgaGFuZG9mZnMsIHdoZXJlIGEgc3RhdGlv biByb2FtcyBiZXR3ZWVuIHR3byBXVFBzIGhvbWVkIHRvDQogICB0aGUgc2FtZSBBQywgYXJlIHZl cnkgcXVpY2sgd2l0aCBhIHNpbXBsZSB0YWJsZSB1cGRhdGUgYXQgdGhlIEFDLg0KICAgSW50ZXIt QUMgaGFuZG9mZnMgcmVxdWlyaW5nIGludGVyLVZMQU4gbW9iaWxpdHkgYXJlIHN1cHBvcnRlZCB3 aXRoDQogICBwcm94eSBtb2JpbGUgSVAuDQoNCiAgIE11bHRpcGxlIGF1dGhlbnRpY2F0aW9uIG1l dGhvZHMgYW5kIG11bHRpcGxlIGVuY3J5cHRpb24gY2lwaGVycyAoYm90aA0KICAgTDIgYW5kIEwz KS4NCg0KICAgRmxvdyBjbGFzc2lmaWNhdGlvbiBhbmQgYmFuZHdpZHRoIGNvbnRyYWN0cyBmb3Ig UW9TLg0KDQogICBWaXJ0dWFsIEFQcyAobXVsdGlwbGUgU1NJRHMgcGVyIEFQKS4NCg0KICAgUmFk aW8gcmVzb3VyY2UgbWFuYWdlbWVudCBmdW5jdGlvbnMgYXJlIGhhbmRsZWQgYnkgdGhlIEFDIGJh c2VkIG9uDQogICBtZWFzdXJlbWVudHMgYXQgdGhlIFdUUHMuDQoNCiAgICgzKSBUaGUgZnVuY3Rp b25hbCBhcmNoaXRlY3R1cmUgdG8gaW1wbGVtZW50IHRoZSBmdW5jdGlvbnMgZGVzY3JpYmVkDQog ICBhYm92ZTogd2hldGhlciBpdCBpcyBieSBhdXRvbm9tb3VzIEFQIGFyY2hpdGVjdHVyZSwgb3Ig InNwbGl0Ig0KICAgYXJjaGl0ZWN0dXJlLiBGb3Igc3BsaXQgYXJjaGl0ZWN0dXJlLCBwbGVhc2Ug cHJvdmlkZSB0aGUgZnVuY3Rpb25hbA0KICAgbWFwcGluZyBvZiBXTEFOIGZ1bmN0aW9ucyBvbnRv IHRoZSBBUCBhbmQgQUMgLS0gd2l0aCBqdXN0IGVub3VnaA0KICAgZGV0YWlscyB0aGF0IGhlbHAg dXMgdW5kZXJzdGFuZCB0aGUga2luZHMgb2YgZnVuY3Rpb25hbCBpbnRlcmZhY2UNCiAgIG5lY2Vz c2FyeSBiZXR3ZWVuIHRoZSB0d28uDQoNCiAgIFRoZSBzZXQgb2YgQVAgZnVuY3Rpb25zIGlzIHNw bGl0IGJldHdlZW4gdGhlIFdUUCBhbmQgdGhlIEFDLiBBbGwNCg0KDQoNCllhbmcgKEVkaXRvciks IGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQgICAgICAgICAgICAgIFtQYWdlIDQ3 XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdBUCBBcmNoLiBUYXhvbm9teSAgICAg ICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0KICAgcmVhbC10aW1lIChSVCkgZnVuY3Rpb25zIHN0 YXkgYXQgdGhlIFdUUCwgd2hpbGUgYWxsIG5vbi1SVCBmdW5jdGlvbnMNCiAgIGFyZSBoYW5kbGVk IGF0IHRoZSBBQy4NCg0KICAgQWxsIDgwMi4xMSBiYXNpYyBtZWRpYSBhY2Nlc3MgZnVuY3Rpb25z IGFyZSBwZXJmb3JtZWQgYXQgdGhlIFdUUC4gQWxsDQogICA4MDIuMTEgY29udHJvbCBmcmFtZXMg YXJlIGdlbmVyYXRlZCBhbmQgcHJvY2Vzc2VkIGF0IHRoZSBXVFAuDQoNCiAgIEEgbWFqb3JpdHkg b2YgODAyLjExIG1hbmFnZW1lbnQgZnJhbWVzIGFyZSBwcm9jZXNzZWQgYXQgdGhlIEFDLg0KICAg QmVhY29uIGZyYW1lcyBhcmUgZ2VuZXJhdGVkIGF0IHRoZSBXVFAuIFBvd2VyLXNhdmUgbWFuYWdl bWVudCwNCiAgIHJldHJhbnNtaXNzaW9ucywgYW5kIHJhdGUgYWRhcHRhdGlvbiBhcmUgaW1wbGVt ZW50ZWQgYXQgdGhlIFdUUC4NCiAgIDgwMi4xMSBhdXRoZW50aWNhdGlvbiBhbmQgYXNzb2NpYXRp b24gZnJhbWUgcHJvY2Vzc2luZyBpcyBpbXBsZW1lbnRlZA0KICAgYXQgdGhlIEFDLg0KDQogICBU cmFuc2xhdGlvbiBvZiA4MDIuMTEgZGF0YSBmcmFtZXMgdG8gODAyLjMgZnJhbWVzIGlzIGltcGxl bWVudGVkIGF0DQogICB0aGUgQUMuIEFsbCA4MDIuMTEgZGF0YSBmcmFtZXMgYXJlIHR1bm5lbGVk IG92ZXIgdG8gdGhlIEFDIGluIHRoZQ0KICAgdXBsaW5rIGRpcmVjdGlvbiB3aGlsZSB0aGUgQUMg dHVubmVscyA4MDIuMTEgZGF0YSBmcmFtZXMgdG8gdGhlIFdUUA0KICAgaW4gdGhlIGRvd25saW5r IGRpcmVjdGlvbi4gT3RoZXIgODAyLjExIGRhdGEgZnJhbWUgcHJvY2Vzc2luZw0KICAgZnVuY3Rp b25zIGxpa2UgZW5jcnlwdGlvbiBhbmQgZnJhZ21lbnRhdGlvbiBhbmQgcmVhc3NlbWJseSBhcmUN CiAgIHBlcmZvcm1lZCBhdCB0aGUgQUMuDQoNCiAgICg0KSBUaGUgcHJvdG9jb2wgdXNlZCBpbiBi ZXR3ZWVuIFdUUCBhbmQgQUMuDQoNCiAgIERpc2NvdmVyeTogQW4gV1RQIGlzIGFibGUgdG8gZGlz Y292ZXIgb25lIG9yIG1vcmUgQUNzIHRvIGF1dGhlbnRpY2F0ZQ0KICAgd2l0aCBhbmQgaG9tZSB0 byB1c2luZyBlaXRoZXIgc3RhdGljIGNvbmZpZ3VyYXRpb24gb3IgZHluYW1pYywNCiAgIHJ1bi10 aW1lIGRpc2NvdmVyeSBtZXRob2RzIHRoYXQgd29yayBhY3Jvc3MgTDIvTDMgYm91bmRhcmllcy4N Cg0KICAgQ29uZmlndXJhdGlvbjogQ29uZmlndXJhdGlvbiBpcyB0cmFuc3BvcnRlZCB0aHJvdWdo IGFuIGVuY3J5cHRlZA0KICAgdHVubmVsIGJhY2sgdG8gdGhlIEFDLiAgVGhpcyB1c2VzIGEgc2Vj dXJlIGFuZCBwcm92ZW4gYXJjaGl0ZWN0dXJlDQogICB3aGlsZSBhbHNvIGFsbG93aW5nIGZvciBl YWNoIGluZGl2aWR1YWwgV1RQIHRvIGJlIGFjY291bnRlZCBmb3IgYW5kDQogICBtb25pdG9yZWQg YXQgYSBiYWNrLWVuZCBSYWRpdXMgc2VydmVyLiAgRWFjaCBXVFAgY2FuIGhhdmUgaXRzIG93biBz ZXQNCiAgIG9mIGFjY2VzcyBpbmZvcm1hdGlvbiB0byBkaWZmZXJlbnRpYXRlIGl0c2VsZiBmcm9t IG90aGVyIFdUUHMuICBUaGlzDQogICBhbGxvd3MgdGhlIEFDIHRvIGNvbnRyb2wgYWNjZXNzIG9u IGEgcGVyIFdUUCBiYXNpcy4NCg0KICAgVHJhbnNwb3J0OiBUdW5uZWxzIChvcHRpb25hbGx5IGVu Y3J5cHRlZCkgdGhhdCBhcmUgY2FwYWJsZSBvZg0KICAgc3Bhbm5pbmcgTDMgYm91bmRhcmllcyBi ZXR3ZWVuIGFuIFdUUCBhbmQgYW4gQUMgY2FycnkgYWxsIDgwMi4xMQ0KICAgZnJhbWVzLiBUaGUg ODAyLjExIGZyYW1lcyBhcmUgdGVybWluYXRlZCBhdCB0aGUgQUMgLSBzbyBlbmNyeXB0aW9uLA0K ICAgZnJhZ21lbnRhdGlvbi9yZWFzc2VtYmx5LCBhbmQgODAyLjExLTgwMi4zIHRyYW5zbGF0aW9u IGFyZSBtb3ZlZCB0bw0KICAgdGhlIEFDLiBUaGlzIGFsc28gbWVhbnMgdGhhdCBpZiB0aGUgODAy LjExIGRhdGEgZnJhbWVzIGFyZSBlbmNyeXB0ZWQNCiAgIG9uIHRoZSBhaXIgaW50ZXJmYWNlLCB0 aGV5IGFyZSBlbmNyeXB0ZWQgb24gdGhlIHR1bm5lbCBldmVuIGlmIHRoZQ0KICAgZW5jcnlwdGlv biBvbiB0aGUgdHVubmVsIGlzIG5vdCB0dXJuZWQgb24uDQoNCiAgICg1KSBUaGUgdG9wb2xvZ2lj YWwgYXNzdW1wdGlvbnMgYmV0d2VlbiBXVFAgYW5kIEFDIChpcyBpdCBkaXJlY3RseQ0KICAgY29u bmVjdGVkLCBMMiBzd2l0Y2hlZCwgb3IgTDMgcm91dGVkPykgLS0gdGhpcyBhbHNvIGhlbHBzIHVz IHRvDQogICB1bmRlcnN0YW5kIHRoZSBkZXBsb3ltZW50IHNjZW5hcmlvcy4NCg0KICAgU3VwcG9y dHMgYWxsIHRocmVlIG9mDQoNCiAgIC0gZGlyZWN0bHkgY29ubmVjdGVkDQoNCg0KDQoNCllhbmcg KEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQgICAgICAgICAgICAg IFtQYWdlIDQ4XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdBUCBBcmNoLiBUYXhv bm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0KICAgLSBMMiBjb25uZWN0ZWQNCg0K ICAgLSBMMyBjb25uZWN0ZWQNCg0KICAgKDYpIFNlY3VyaXR5IHRocmVhdCBhbmFseXNpczogd2hh dCBraW5kcyBvZiB0aHJlYXQgaW50cm9kdWNlZCBieSB0aGUNCiAgIHNwbGl0IGFyY2hpdGVjdHVy ZSwgYW5kIGhvdyB0aGF0IGFyZSBhZGRyZXNzZWQuDQoNCiAgIEZ1bGwgY29udHJvbCBvZiB0aGUg V1RQIG1heSBiZSBnYWluZWQgdGhyb3VnaCB0aGUgcHJvcHJpZXRhcnkNCiAgIG1lc3NhZ2luZyBm b3IgY29uZmlndXJpbmcgdGhlIFdUUC4gIEFkZHJlc3NlZCBieSBlbmNyeXB0aW5nIHRoZQ0KICAg dHVubmVsIGNhcnJ5aW5nIHRoZSBjb25maWd1cmF0aW9uIHRvIHByb3RlY3QgdGhpcyBpbmZvcm1h dGlvbi4NCg0KICAgSWYgdGhlIFdUUCBpcyBzdG9sZW4sIGEgaGFja2VyIG1heSBiZSBhYmxlIHRv IGV4dHJhY3QgdGhlIHNlY3VyaXR5DQogICBpbmZvcm1hdGlvbiByZXF1aXJlZCB0byBzZXR1cCB0 aGUgZW5jcnlwdGVkIHR1bm5lbC4gQWRkcmVzc2VkIGJ5DQogICBwcm90ZWN0aW5nIHRoaXMgc2Vj dXJpdHkgaW5mb3JtYXRpb24gd2l0aCBhZGRpdGlvbmFsIGVuY3J5cHRpb24uDQoNCiAgIElmIHRo ZSBXVFAgaXMgc3RvbGVuLCBpdCB3b3VsZCBzdGlsbCBhcHBlYXIgdG8gYmUgcG9zc2libGUgdG8g Y29ubmVjdA0KICAgdG8gdGhlIFdUUCBmcm9tIGFub3RoZXIgd2lyZWxlc3MgY2xpZW50IGFuZCBn YWluIGFjY2VzcyB0byB0aGUNCiAgIG5ldHdvcmsuICBUaGlzIGlzIGFkZHJlc3NlZCBieSB0aGUg c3RhdGVmdWwgdXNlciBmaXJld2FsbCBpbiB0aGUgc2FtZQ0KICAgY2VudHJhbCBsb2NhdGlvbiBh dCB0aGUgQUMuICBUaGUgc3RvbGVuIFdUUCBtYXkgY29ubmVjdCB0byB0aGUgQUMsDQogICBidXQg aXQgd2lsbCBzdGlsbCBiZSB1bmFibGUgdG8gcGFzcyBtZWFuaW5nZnVsIHRyYWZmaWMgdGhyb3Vn aCB0aGUgQUMNCiAgIHVudGlsIHRoZSBjbGllbnQgYXV0aGVudGljYXRlcyBpdHNlbGYuDQoNCiAg IFBvc3NpYmxlIHRvIG1hc3F1ZXJhZGUgYXMgYSBkaWZmZXJlbnQgdXNlciBvbmNlIGEgcGFydGlj dWxhcg0KICAgYXV0aGVudGljYXRpb24gaGFzIHBhc3NlZCB0aHJvdWdoIGR1ZSB0byBoYXZpbmcg c2V2ZXJhbCBkZXZpY2VzIGJlaW5nDQogICBpbnZvbHZlZC4gIEFkZHJlc3NlZCBieSBrZWVwaW5n IGFsbCBlbmNyeXB0aW9uIGFuZCBmaXJld2FsbGluZyBhdCB0aGUNCiAgIEFDIHRvIHByZXZlbnQg YW55IHR5cGUgb2YgbWFzcXVlcmFkaW5nLg0KDQogICAoNykgUHJvcyBhbmQgQ29ucyBvZiB0aGlz IGFyY2hpdGVjdHVyZSwgZXNwLiBpbiByZWxhdGlvbiB0byB0aGUgZm91cg0KICAgcHJvYmxlbXMg ZGVzY3JpYmVkIGluIHRoZSBDQVBXQVAgcHJvYmxlbSBzdGF0ZW1lbnQuIFBsZWFzZSBrZWVwIHRo ZQ0KICAgYW5hbHlzaXMgYXQgdGVjaG5pY2FsIGluc3RlYWQgb2YgbWFya2V0aW5nIGxldmVsLg0K DQogICBQcm9ibGVtICMxLCAjMiwgYW5kICMzIGFyZSBhZGRyZXNzZWQgYnkga2VlcGluZyBhbGwg Y29uZmlndXJhdGlvbiBhbmQNCiAgIGR5bmFtaWMgaW5mb3JtYXRpb24gaW4gb25lIGNlbnRyYWwg bG9jYXRpb24uICBQcm9ibGVtICM0IGlzIHByb3RlY3RlZA0KICAgYnkgYW4gZW5jcnlwdGVkIHR1 bm5lbCBjcmVhdGVkIGJldHdlZW4gdGhlIFdUUCBhbmQgQUMuICBTZWN1cml0eQ0KICAgdGhyZWF0 cyBkaXNjdXNzZWQgaW4gcXVlc3Rpb24gIzYuDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQgICAg ICAgICAgICAgIFtQYWdlIDQ5XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdBUCBB cmNoLiBUYXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0KQXBwZW5kaXggRC4g IFN1cnZleSBDb250cmlidXRpb24gRm9yIEFyY2hpdGVjdHVyZSAzDQoNCiAgICgxKSBEZXNpZ24g Y29uc2lkZXJhdGlvbnMgYW5kIHJlcXVpcmVtZW50czoNCg0KICAgLSBTZWN1cmUgbW9iaWxpdHkg dGhhdCBzY2FsZXMuDQoNCiAgIC0gVXNlciBiYXNlZCBzdWJuZXQgbWVtYmVyc2hpcCBpbmRlcGVu ZGVudCBvZiBBUCBhc3NvY2lhdGlvbi4NCg0KICAgLSBObyBjbGllbnQgc3BlY2lmaWMgY29kZS4N Cg0KICAgLSBBUCByZXF1aXJlcyBubyBjb25maWd1cmF0aW9uLg0KDQogICAtIEFQIGlzIG5vdCBj YXBhYmxlIG9mIGF1dG9ub21vdXMgZnVuY3Rpb24uDQoNCiAgIC0gU3BsaXQgTUFDIChBUkNIMiku DQoNCiAgICgyKSBXTEFOIGZ1bmN0aW9ucyBzdXBwb3J0ZWQ6DQoNCiAgIC0gV1BBLg0KDQogICAt IFdNRS4NCg0KICAgLSBBUCBMb2FkIEJhbGFuY2luZy4NCg0KICAgLSBJbnRlci1zdWJuZXQgTW9i aWxpdHkgc3VwcG9ydC4NCg0KICAgLSBNdWx0aXBsZSBBdXRoZW50aWNhdGlvbiBUeXBlczogTUFD LUFVVEgsIFdFQi1BVVRILCBET1QxWC4gQUMgc3BlYWtzDQogICBFQVAgb3IgZm9yd2FyZHMgdG8g UkFESVVTIHNlcnZlci4NCg0KICAgLSBTdWJuZXQgTWVtYmVyc2hpcCBkZXRlcm1pbmVkIHRocm91 Z2ggQUFBLg0KDQogICAtIE11bHRpcGxlIHN1Ym5ldHMgcGVyIFNTSUQuDQoNCiAgIC0gTXVsdGlw bGUgU1NJRHMvQlNTSURzIHBlciByYWRpby4NCg0KICAgLSBNdWx0aXBsZSBFbmNyeXB0aW9uIHR5 cGVzIHBlciByYWRpbyBXRVAsIFRLSVAsIEFFUyhDQ01QKS4NCg0KICAgLSBSb3VnZSBBUCBkZXRl Y3Rpb24sIGxvY2F0aW9uIGFuZCBjb3VudGVybWVhc3VyZXMuDQoNCiAgIC0gQXV0byBvciBTdGF0 aWMgUkYgY29uZmlndXJhdGlvbi4NCg0KICAgKDMpIFRoZSBmdW5jdGlvbmFsIGFyY2hpdGVjdHVy ZSB0byBpbXBsZW1lbnQgdGhlIGZ1bmN0aW9ucyBkZXNjcmliZWQNCiAgIGFib3ZlOg0KDQogICAt IFNwbGl0IE1BQyAoQVJDSDIpLg0KDQogICAtIEFQOg0KDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBl dCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA1MF0N CgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAg ICAgICAgICAgQXByaWwgMjAwNA0KDQoNCiAgICAgICsgUGVyIHBhY2tldCBRb1MuDQogICAgICAr IEVuY3J5cHRpb24uDQogICAgICArIDgwMi4xMSBDb250cm9sIEZyYW1lcy4NCg0KICAgLSBBQzoN CiAgICAgICsgODAyLjExIE1hbmFnZW1lbnQuDQogICAgICArIFFvUyBDbGFzc2lmaWNhdGlvbi4N CiAgICAgICsgODAyLjF4Lg0KICAgICAgKyBBbGwgQ29uZmlndXJhdGlvbi9NYW5hZ2VtZW50IGFu ZCBJbWFnZSBDb250cm9sLg0KICAgICAgKyBMMiBmb3J3YXJkaW5nIChjb3VsZCBiZSBtb3ZlZCB0 byBBUCkuDQoNCiAgICg0KSBUaGUgcHJvdG9jb2wgdXNlZCBpbiBiZXR3ZWVuIEFQIGFuZCBBQy4N Cg0KICAgLSBJUCB0dW5uZWxzLg0KDQogICAoNSkgVGhlIHRvcG9sb2dpY2FsIGFzc3VtcHRpb25z IGJldHdlZW4gQVAgYW5kIEFDIChpcyBpdCBkaXJlY3RseQ0KICAgY29ubmVjdGVkLCBMMiBzd2l0 Y2hlZCwgb3IgTDMgcm91dGVkPykNCg0KICAgLSBBbGwgb2YgdGhlIGFib3ZlLg0KDQogICAoNikg U2VjdXJpdHkgdGhyZWF0IGFuYWx5c2lzOiB3aGF0IGtpbmRzIG9mIHRocmVhdCBpbnRyb2R1Y2Vk IGJ5IHRoZQ0KICAgc3BsaXQgYXJjaGl0ZWN0dXJlLCBhbmQgaG93IHRoYXQgYXJlIGFkZHJlc3Nl ZC4NCg0KICAgLSBQVEsvR1RLIHRyYW5zbWl0dGVkIGJldHdlZW4gdGhlIEFDIGFuZCBBUCBhbmQg bXVzdCBiZSBlbmNyeXB0ZWQuDQoNCiAgIC0gODAyLjExIHN0YXRpb24gZGF0YSBpcyB0cmFuc21p dHRlZCBiZXR3ZWVuIHRoZSBBQyBhbmQgQVAgYW5kIG1heSBiZQ0KICAgZW5jcnlwdGVkLg0KDQog ICAtIEFQIGF1dGhlbnRpY2F0aW9uLiBBUCBpcyBhdXRoZW50aWNhdGVkIGJ5IHRoZSBBQy4gSXQg aXMgbm90DQogICByZXF1aXJlZCB0aGF0IHRoZSBBQyBpcyBhdXRoZW50aWNhdGVkIGJ5IHRoZSBB UCBhcyBpdCB3b3VsZCB2aW9sYXRlDQogICB0aGUgemVybyBjb25maWd1cmF0aW9uIHJlcXVpcmVt ZW50LiBBbiB1bmF1dGhlbnRpY2F0ZWQgQUMgcmVkdWNlcyB0bw0KICAgYSByb2d1ZSBBUCBhbmQg dGhlcmUgYXJlIG90aGVyIHRlY2huaXF1ZXMgdG8gZGVhbCB3aXRoIHRoYXQuDQoNCiAgICg3KSBQ cm9zIGFuZCBDb25zIG9mIHRoaXMgYXJjaGl0ZWN0dXJlLCBlc3AuIGluIHJlbGF0aW9uIHRvIHRo ZSBmb3VyDQogICBwcm9ibGVtcyBkZXNjcmliZWQgaW4gdGhlIENBUFdBUCBwcm9ibGVtIHN0YXRl bWVudC4NCg0KICAgLSBDb25zOg0KDQogICArIEFzc3VtZXMgdGhlIEFDIGlzIGluIGEgdHJ1c3Rl ZCBuZXR3b3JrLg0KDQogICAtIFByb3M6DQogICAgICArIFNjYWxpbmcgY29uZmlndXJhdGlvbiBh bmQgbWFuYWdlbWVudC4NCiAgICAgICsgRmFzdCByb2FtaW5nLg0KICAgICAgKyBFbmNyeXB0aW9u IHByb2Nlc3NpbmcgaXMgZGlzdHJpYnV0ZWQgdG8gQVBzIGJ1dCBjZW50cmFsbHkNCiAgICAgIGNv bnRyb2xsZWQuDQogICAgICArIFplcm8gY29uZmlndXJhdGlvbiBBUCAtIGEgbG9zdCBvciBzdG9s ZW4gQVAgaGFzIG5vIHNlbnNpdGl2ZQ0KICAgICAgaW5mb3JtYXRpb24uDQoNCg0KDQoNCllhbmcg KEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQgICAgICAgICAgICAg IFtQYWdlIDUxXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdBUCBBcmNoLiBUYXhv bm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0KICAgICAgKyBFeHRlbmRzIHdpcmVk IHN1Ym5ldCBwYXJ0aXRpb25pbmcgdG8gd2lyZWxlc3MgbmV0d29yayBiYXNlZCBvbg0KICAgICAg dXNlciBub3QgbG9jYXRpb24uDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQgICAg ICAgICAgICAgIFtQYWdlIDUyXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdBUCBB cmNoLiBUYXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0KQXBwZW5kaXggRS4g IFN1cnZleSBDb250cmlidXRpb24gRm9yIEFyY2hpdGVjdHVyZSA0DQoNCiAgICgxKSBEZXNpZ24g Q29uc2lkZXJhdGlvbnMgYW5kIFJlcXVpcmVtZW50cw0KDQogICBUaGUgZm9sbG93aW5nIGlzIGEg c2hvcnQgbGlzdCBvZiBvdXIgbWFqb3IgdGVjaG5pY2FsIHJlcXVpcmVtZW50cw0KICAgdGhhdCB3 ZXJlIHVzZWQgdG8gZHJpdmUgdGhlIGRlc2lnbiBvZiBwcm9kdWN0cyBpbiB0aGlzIGFyY2hpdGVj dHVyZToNCiAgICAgIEZ1bGwgZnVuY3Rpb25hbGl0eSBhbmQgY29tcGF0aWJpbGl0eSBmb3IgY3Vy cmVudCBhbmQgZnV0dXJlIDgwMi4xMQ0KICAgICAgc3RhbmRhcmRzDQogICAgICBLZWVwIHRoZSBz ZXQgb2YgZnVuY3Rpb25zIGluIHRoZSBBUiB0byB0aGUgYWJzb2x1dGUgbWluaW11bSB3aGlsZQ0K ICAgICAgcHVzaGluZyBhcyBtdWNoIGZ1bmN0aW9uYWxpdHkgdXAgdG8gdGhlIEFDLg0KICAgICAg QWxsb3cgZXhpc3RpbmcsIGluc3RhbGxlZCBBY2Nlc3MgUG9pbnRzIChBUHMpIHRvIGJlIGNvbnZl cnRlZCBpbnRvDQogICAgICBhbiBBUiB3aXRoIGEgc2ltcGxlIGZpcm13YXJlIGNoYW5nZS4gVGhp cyBhbGxvd3MgbWFueSBuZXcNCiAgICAgIGZ1bmN0aW9ucyB0byBiZSBhZGRlZCB0byBsZWdhY3kg aW5mcmFzdHJ1Y3R1cmVzIHNpbmNlIG1vc3Qgb2YgdGhlDQogICAgICBuZXcgZnVuY3Rpb25hbGl0 eSBpcyBpbiB0aGUgQUMuDQogICAgICBFbnN1cmUgdGhlIHN5c3RlbSBwcm92aWRlcyBhcyBtdWNo IHNlY3VyaXR5IGFzIHRoZSBBY2Nlc3MgUG9pbnQNCiAgICAgIE1vZGVsDQogICAgICBQcm92aWRl IGEgcGxhdGZvcm0gZm9yICJtb2JpbGl0eSIgYW5kIG90aGVyIGFkZGVkIHZhbHVlIGZ1bmN0aW9u cw0KDQogICAoMikgV0xBTiBGdW5jdGlvbnMgU3VwcG9ydGVkDQogICAgICBBbGwgY3VycmVudCA4 MDIuMTEgc3RhbmRhcmRzIChhLGIsZSxpLGcsLi4uLikNCiAgICAgIE11bHRpcGxlIEJTUy9FU1Mg b3BlcmF0aW9uIG9uIGJvdGggdGhlIEFDIGFuZCBBUg0KICAgICAgODAyLjFwL3Egc3VwcG9ydA0K ICAgICAgRW5oYW5jZWQgUW9TIHNlcnZpY2VzDQogICAgICBTdXBwb3J0IGZvciBlbmhhbmNlZCBX TEFOIGZ1bmN0aW9ucyB0byBzdXBwb3J0DQogICAgICAgICBGYXN0IFJvYW1pbmcgLyBGYXN0IEhh bmRvZmYNCiAgICAgICAgIFZvaWNlIG92ZXIgSVAgc3VwcG9ydA0KICAgICAgICAgRW5oYW5jZWQg UG93ZXIgTWFuYWdlbWVudCBmb3IgQ2xpZW50cw0KICAgICAgICAgTG9hZCBCYWxhbmNpbmcgYW5k IG90aGVyIE1vYmlsaXR5IEZlYXR1cmVzDQoNCiAgICgzKSBGdW5jdGlvbmFsIEFyY2hpdGVjdHVy ZQ0KDQogICBUaGUgYmFzaWMgb3BlcmF0aW9uIGlzIGFzIGZvbGxvd3M6IFN5c3RlbSBvcGVyYXRp b24gYmVnaW5zIHdpdGggdGhlDQogICBib290IGFuZCBhZG9wdGlvbiBwcm9jZXNzLiBUaGUgQVIg Y29udGFpbnMgb25seSBhIHNtYWxsIGJvb3QgbG9hZGVyDQogICB0aGF0IGRvZXMgbm90IGluY2x1 ZGUgYW55IFJGIGNvZGUgYW5kIG11c3QgZG93bmxvYWRlZCB3aXRoIHJ1bnRpbWUNCiAgIGNvZGUg ZnJvbSB0aGUgQUMuIE9uY2UgdGhlIGNvZGUgaXMgZG93bmxvYWRlZCBmcm9tIHRoZSBBQyBpbnRv IHRoZQ0KICAgQVIsIHRoZSBBUiBpcyBjb25maWd1cmVkIHdpdGggdGhlIHJ1bnRpbWUgcGFyYW1l dGVycyBieSB0aGUgQUMuIFRoaXMNCiAgIGludm9sdmVzIHNvbWUgaW5pdGlhbCBwYWNrZXRzIHRo YXQgY29udGFpbiBjaGFubmVsLCBwb3dlciwNCiAgIGFkZHJlc3NpbmcsIG51bWJlciBvZiBzdXBw b3J0ZWQgQlNTcywgYmVhY29uIHRpbWVzLCBldGMuLiBJdCBhbHNvDQogICBpbnZvbHZlcyBhbiBv bmdvaW5nIHByb2Nlc3MgdGhhdCB1cGRhdGVzIHRoZSBBUiB3aXRoIGJlYWNvbg0KICAgaW5mb3Jt YXRpb24sIHN1Y2ggYXMgdGhlIGNvbnRlbnQgb2YgdGhlIFRJTSBmaWVsZCBhcyB3ZWxsIGFzIGxv YWQNCiAgIGluZm9ybWF0aW9uLiBIZW5jZSBjb25maWd1cmF0aW9uIGlzIGJvdGggYSBvbmUtdGlt ZSBldmVudCBhbmQgYQ0KICAgY29udGludWluZyBldmVudC4gT25jZSB0aGUgQVIgaXMgY29uZmln dXJlZCBpdCBpcyByZWFkeSB0byBiZWdpbg0KICAgYmVhY29uaW5nIGFuZCByZXNwb25kIHRvIHBh Y2tldHMgZnJvbSBNVXMuIEZ1bGx5IGZvcm1hdHRlZCA4MDIuMTENCiAgIHBhY2tldHMgYXJlIGVu Y2Fwc3VsYXRlZCBhbmQgc2VudCBvdmVyIHRoZSBMMiBuZXR3b3JrIGZyb20gdGhlIEFDIHRvDQog ICB0aGUgQVIgZm9yIHRyYW5zbWlzc2lvbi4gRWFjaCBwYWNrZXQgc2VudCBieSB0aGUgQUMgdG8g dGhlIEFSDQogICBnZW5lcmF0ZXMgYSBzdGF0dXMgcmVzdWx0IGJhY2sgdG8gdGhlIEFDIGZyb20g dGhlIEFSLiAgU2VxdWVuY2UNCiAgIG51bWJlcnMgYXJlIHVzZWQgdG8gZW5zdXJlIGRlbGl2ZXJ5 LiBQYWNrZXRzIHJlY2VpdmVkIGJ5IHRoZSBBUiBmcm9tDQogICB0aGUgcmFkaW8ocykgYXJlIGVu Y2Fwc3VsYXRlZCBhbmQgZm9yd2FyZGVkIG92ZXIgdGhlIEwyIG5ldHdvcmsgdG8NCg0KDQoNCllh bmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQgICAgICAgICAg ICAgIFtQYWdlIDUzXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdBUCBBcmNoLiBU YXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0KICAgdGhlIEFDLiBBIGtleSBj b25jZXB0IGlzIHRoYXQgdGhlIEFScyBhcmUgc3RhdGVsZXNzIGluc29mYXIgYXMgTW9iaWxlDQog ICBVbml0cyAoTVVzKSBhcmUgY29uY2VybmVkLiBUaGUgQVIgcmVhbGx5IGRvZXMgbm90IGtub3cg YWJvdXQgTW9iaWxlDQogICBVbml0cy4gIElmIGEgcGFja2V0IGlzIGFkZHJlc3NlZCB0byB0aGUg QVIsIGl0IHdpbGwgYWNjZXB0IGl0LA0KICAgZ2VuZXJhdGUgYW4gYWNrbm93bGVkZ2VtZW50IHBh Y2tldCwgYW5kIHRoZW4gZm9yd2FyZCB0aGUgcGFja2V0IHRvDQogICB0aGUgQUMgaW4gYW4gZW5j YXBzdWxhdGVkIEV0aGVybmV0IGZyYW1lIG9mIGFuIEV0aGVyVHlwZSBhbGxvY2F0ZWQgdG8NCiAg IHRoaXMgdmVuZG9yLg0KDQogICBUaGUgZnVuY3Rpb25zIHBlcmZvcm1lZCBieSB0aGUgQVIgb25j ZSBpdCBpcyBsb2FkZWQsIGNvbmZpZ3VyZWQsIGFuZA0KICAgcnVubmluZyBjb25zaXN0IG9mOg0K ICAgICAgQmFzaWMgUkYgcGFja2V0IHRyYW5zbWl0IHRhc2tzIHN1Y2ggYXM6IFByZWFtYmxlIHNl bGVjdGlvbiwgUEhZDQogICAgICBpbnRlcmZhY2UsIFBhY2tldCBDUkMsIGFuZCBTZXF1ZW5jZSBu dW1iZXIgZ2VuZXJhdGlvbg0KICAgICAgUkYgUGFja2V0IHJlbGlhYmlsaXR5IG1lY2hhbmlzbXMg c3VjaCBhczogUmV0cmFuc21pc3Npb24gdGltZXJzLA0KICAgICAgcmV0cmllcywgQUNLIHBhY2tl dHMgYW5kIHJlY2VwdGlvbg0KICAgICAgUkYgQ2hhbm5lbCBBY2Nlc3MgYW5kIGV4Y2hhbmdlIHRp bWluZ3MgKFNJRlMsIGV0Yy4pLiBUaGlzIGluY2x1ZGVzDQogICAgICBSRiBRb1MgcXVldWluZw0K ICAgICAgUkYgUGFja2V0IHJlY2VwdGlvbiBpbmNsdWRpbmc6IGNoZWNraW5nIFBMQ1AgaGVhZGVy cywgYWRkcmVzcw0KICAgICAgZmlsdGVyaW5nLCBiYXNpYyBhZGRyZXNzIGNoZWNraW5nLCBhbmQg cGFja2V0IENSQyBjaGVja2luZw0KICAgICAgR2VuZXJhdGlvbiBvZiBCZWFjb25zIGFuZCBEVElN IGJyb2FkY2FzdCBwYWNrZXQgdHJhbnNtaXNzaW9uDQogICAgICBIYW5kbGluZyBvZiBQcm9iZS9w cm9iZSByZXNwb25zZSBhbmQgUlRTL0NUUyBzZXF1ZW5jZXMNCiAgICAgIEludGVyZmFjZSB0byB0 aGUgd2lyZWQgbmV0d29yay4NCiAgICAgIFN0YXR1cyByZXBvcnRpbmcgdG8gdGhlIEFDIGluY2x1 ZGluZyBwZXIgcGFja2V0IHJlc3VsdHMgYW5kIGFzDQogICAgICB3ZWxsIGFzIGdsb2JhbCBjb3Vu dGVycw0KICAgICAgUGFja2V0IEJ1ZmZlcmluZyBmb3IgaW1tZWRpYXRlIFJGIHRyYW5zbWl0IHNj aGVkdWxpbmcgcHVycG9zZXMNCg0KICAgVGhlIGZ1bmN0aW9ucyBwZXJmb3JtZWQgYnkgdGhlIEFD IGluY2x1ZGU6DQogICAgICBBc3NvY2lhdGlvbiBhbmQgYXV0aGVudGljYXRpb24NCiAgICAgIEtl eSBtYW5hZ2VtZW50LCBrZXkgbWl4aW5nLCBldGMuDQogICAgICBQYWNrZXQgZm9ybWF0IGNvbnZl cnNpb24gYmV0d2VlbiA4MDIuMTEgYW5kIDgwMi4zDQogICAgICBFbmNyeXB0aW9uL01JQyB1c2lu ZyBtdWx0aXBsZSBhbGdvcml0aG1zIFdFUCwgV1BBLCBBRVMsIGV0Yy4uDQogICAgICBQYWNrZXQv dXNlciBsZXZlbCBidWZmZXJpbmcgYW5kIFFvUyBzY2hlZHVsaW5nDQogICAgICBBZGRyZXNzIGZp bHRlcmluZyAoY29sbGVjdGluZyBwYWNrZXRzIG9mZiB0aGUgd2lyZWQvd2lyZWxlc3MNCiAgICAg IG5ldHdvcmsgZm9yIE1vYmlsZSBVbml0cykNCiAgICAgIDgwMi4xIHAvcSBtYXBwaW5nIHRvIDgw Mi4xMSBwcmlvcml0eSBjbGFzc2VzDQogICAgICBTdXBwb3J0IGZvciBRb1MgbWVjaGFuaXNtcw0K ICAgICAgQ29tbXVuaWNhdGlvbiBiZXR3ZWVuIGRpZmZlcmVudCBBQ3MNCiAgICAgIE1hbmFnZW1l bnQgYW5kIGNvbmZpZ3VyYXRpb24gdXRpbGl0aWVzIGxpa2UgVGVsbmV0LCBIVE1MLCBTTk1QLA0K ICAgICAgZXRjLg0KDQogICAoNC81KSAgVG9wb2xvZ2ljYWwgQXNzdW1wdGlvbnMvZW5jYXBzdWxh dGlvbiBwcm90b2NvbA0KDQogICBUaGlzIGltcGxlbWVudGF0aW9uIGN1cnJlbnRseSB1c2VzIGFu IEwyIHByb3RvY29sIGluIGFuIEV0aGVyVHlwZQ0KICAgZnJhbWUgYWxsb2NhdGVkIHRvIHRoaXMg dmVuZG9yLiBUaGlzIGFsbG93cyB0aGUgQVIgYW5kIHRoZSBBQyB0bw0KICAgZWl0aGVyIGJlIGRp cmVjdGx5IGNvbm5lY3RlZCBvciBjb25uZWN0ZWQgdmlhIG9uZSBvciBtb3JlIEwyDQogICBzd2l0 Y2hlcy4gU2luY2UgdGhpcyBBQyBzdXBwb3J0cyBtdWx0aXBsZSBWTEFOcywgdGhlIEFScyBtYXkg YmUgb24NCiAgIG9uZSBvciBtb3JlIGRpZmZlcmVudCBWTEFOcyBhbmQgdGhlc2UgVkxBTnMgbWF5 IGJlIGRpZmZlcmVudCB0aGFuDQogICB0aG9zZSB1cG9uIHdoaWNoIHRoZSBNb2JpbGUgVW5pdHMg bG9naWNhbGx5IHJlc2lkZS4NCg0KICAgV2UgY2hvc2UgdGhlIEwyIG9wZXJhdGlvbiBhcyB0aGUg YmVzdCBtb2RlbCBmb3IgQUMgYW5kIEFSDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAg RXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA1NF0NCgwNCkludGVy bmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAg QXByaWwgMjAwNA0KDQoNCiAgIGNvbm5lY3Rpdml0eSBmb3Igc2V2ZXJhbCByZWFzb25zLg0KDQog ICBUaGUgZmlyc3QgaXMgdGhhdCBpdCBpcyBjb25zaXN0ZW50IHdpdGggdGhlIGdvYWwgb2Yga2Vl cGluZyB0aGUgQVIgYXMNCiAgIHNpbXBsZSBhcyBwb3NzaWJsZS4gVGhlIEFSIGRvZXMgbm90IHJl cXVpcmUgYW4gSVAgYWRkcmVzcywgc3VibmV0DQogICBtYXNrLCBvciBkZWZhdWx0IGdhdGV3YXkg bm9yIGRvZXMgaXQgbmVlZCBESENQLCBTTk1QLCBJQ01QLCBVRFAsDQogICBldGMuLiAgSW4gYWRk aXRpb24sIHRoZXJlIGlzIG5vIG5lZWQgdG8gcHJlLWNvbmZpZ3VyZSB0aGUgQVIgcHJpb3IgdG8N CiAgIGluc3RhbGxhdGlvbi4gVGhlIEFSIGlzIHRydWx5IGEgemVybyBjb25maWd1cmF0aW9uIGRl dmljZS4gIFRoZQ0KICAgY29uZmlndXJhdGlvbiBvZiB0aGUgQVIgdGFrZXMgcGxhY2UgZW50aXJl bHkgYXQgbG9hZCB0aW1lLiBJZiB0aGUgQVINCiAgIGhhZCB0byBzdXBwb3J0IGFkZGl0aW9uYWwg bmV0d29ya2luZyBwcm90b2NvbHMgdGhlIEFSIHdvdWxkIGhhdmUgdG8NCiAgIGJlY29tZSBtdWNo IGxpa2UgYSByZWd1bGFyICJmYXQiIEFjY2VzcyBQb2ludCBhbmQgbW9zdCBvZiB0aGUNCiAgIG1h bmFnZW1lbnQgYWR2YW50YWdlcyBvZiB0aGUgQVIvQUMgbW9kZWwgYXJlIHNlcmlvdXNseSBkaWx1 dGVkLg0KDQogICBUaGUgc2Vjb25kIHJlYXNvbiBpcyB0aGF0IGN1cnJlbnQgQWNjZXNzIFBvaW50 cyBhcmUgTDIgZGV2aWNlcy4gU2luY2UNCiAgIHRoZSBBQy9BUiBtb2RlbCByZXByZXNlbnRzIGEg ZGlmZmVyZW50IHBhcnRpdGlvbmluZyBvZiBhY2Nlc3MgcG9pbnQNCiAgIGZ1bmN0aW9uYWxpdHks IGl0IHNlZW1lZCByZWFzb25hYmxlIHRoYXQgdGhlIGNvbWJpbmVkIEFDL0FSIHNob3VsZA0KICAg YWxzbyBiZSBMMiBkZXZpY2UuDQoNCiAgIFRoZSB0aGlyZCByZWFzb24gaXMgdGhhdCBMMiBvcGVy YXRpb24gaXMgbW9yZSBzZWN1cmUgdGhhbiBMMw0KICAgb3BlcmF0aW9uLiAgTW9yZSBkaXNjdXNz aW9uIG9mIHRoaXMgaXNzdWUgZm9sbG93cyBpbiBzZWN0aW9uIDYuDQoNCiAgICg2KSBTZWN1cml0 eSBUaHJlYXQgQW5hbHlzaXMNCg0KICAgVGhlIHNlY3VyaXR5IGNvbmNlcm5zIHdpdGggYSBzcGxp dCBhcmNoaXRlY3R1cmUgY2FuIGJlIGRpdmlkZWQgaW50bw0KICAgdHdvIGdlbmVyYWwgYXJlYXM6 IFVzZXIgZGF0YSBzZWN1cml0eSBhbmQgc3lzdGVtIG1hbmFnZW1lbnQgc2VjdXJpdHkuDQoNCiAg IFVzZXIgZGF0YSBzZWN1cml0eSBpcyBjb25jZXJuZWQgd2l0aCBib3RoIHVuYXV0aG9yaXplZCBh Y2Nlc3MgdG8gdGhlDQogICB3aXJlZCBuZXR3b3JrIGFzIHdlbGwgYXMgcHJpdmFjeSBvZiB0aGUg dXNlciBkYXRhLiBCb3RoIGFyZQ0KICAgYXV0b21hdGljYWxseSB0YWtlbiBjYXJlIG9mIGluIG91 ciBtb2RlbCBzaW5jZSB0aGUgdXNlciBkYXRhIGZyb20gTVVzDQogICByZW1haW5zIGVuY3J5cHRl ZCB1c2luZyB0aGUgIm92ZXIgdGhlIGFpciIgc2VjdXJpdHkgbWVjaGFuaXNtcyB1c2VkDQogICBi eSA4MDIuMTEuIFRoZSBBUi1BQyBpcyBlc3NlbnRpYWxseSB0cmVhdGVkIGFzIGFub3RoZXIgUkYg ImhvcCIgYW5kDQogICBoZW5jZSBpcyBhcyBzZWN1cmUgYXMgdGhlIEFSLU1VIGxpbmsuIEluIGFk ZGl0aW9uIGFsbCA4MDIuMTEgcGFja2V0cw0KICAgYXJlIGVuY2Fwc3VsYXRlZCBpbiBFdGhlcm5l dCBmcmFtZXMgYW5kIGFyZSBhZGRyZXNzZWQgb25seSB0byBlaXRoZXINCiAgIHRoZSBBUiBvciB0 aGUgQUMuIFN1Y2ggcGFja2V0cyBjYW5ub3QgICJlc2NhcGUiIG9udG8gb3IgZnJvbSB0aGUNCiAg IHdpcmVkIG5ldHdvcmsgc2luY2UgdGhleSBhcmUgYWx3YXlzIGluc2lkZSBwcm9wZXJseSBhZGRy ZXNzZWQNCiAgIEV0aGVybmV0IHBhY2tldHMuIEdpdmVuIHRoZXNlIHR3byBtZWNoYW5pc21zLCBu b3RoaW5nIGVsc2UgaXMNCiAgIHJlcXVpcmVkIHRvIGVuc3VyZSBib3RoIHNlY3VyZSBuZXR3b3Jr IGFjY2VzcyBhbmQgdXNlciBwcml2YWN5Lg0KDQogICBTeXN0ZW0gbWFuYWdlbWVudCBzZWN1cml0 eSBpcyBlc3NlbnRpYWxseSBjb25jZXJuZWQgd2l0aCAiaGlqYWNraW5nIg0KICAgb2YgdGhlIEFS IGJ5ICJhIHJvZ3VlIEFDLiIgVGhlIHdvcnJ5IGhlcmUgaXMgdGhhdCBhbm90aGVyIHN0YXRpb24g b24NCiAgIHRoZSBuZXR3b3JrIG1heSBwcmV0ZW5kIHRvIGJlIHRoZSBBQyBhbmQgdGFrZSBjb250 cm9sIG9mIHRoZSBBUi4gSWYNCiAgIHRoaXMgaGFwcGVucyB0aGUgQVIgbWF5IGJlIG1pcy1jb25m aWd1cmVkIG9yIHRha2VuIGNvbnRyb2wgb2YNCiAgIGVudGlyZWx5IHRvIGJlY29tZSBwYXJ0IG9m IGEgdmlydHVhbCAicm9ndWUiIEFQLg0KDQogICBJbiB0aGlzIGFyY2hpdGVjdHVyZSBzeXN0ZW0g bWFuYWdlbWVudCBhdHRhY2tzIGFyZSB1bmxpa2VseSB0byB0YWtlDQogICBwbGFjZSBhbmQgY2Fu IGJlIGVhc2lseSBkZXRlY3RlZC4gR2l2ZW4gdGhlIGNvbW11bmljYXRpb24gYmV0d2VlbiB0aGUN CiAgIEFSIGFuZCBBQyB0YWtlcyBwbGFjZSBhdCBMMiwgYW55IGF0dGFja2VyIHdvdWxkIG5lZWQg dG8gYmUgb24gdGhlDQogICBzYW1lIHN1Ym5ldCAob3IgVkxBTikgYXMgdGhlIEFSIGFuZCBBQy4g VGhpcyBpbXBsaWVzIHRoZSB1c2VyIGFscmVhZHkNCiAgIGhhcyBwaHlzaWNhbCBhY2Nlc3MgdG8g dGhlIG5ldHdvcmsgYW5kIHNvIHRoZSBuZXR3b3JrIGlzIGFscmVhZHkNCg0KDQoNCllhbmcgKEVk aXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQgICAgICAgICAgICAgIFtQ YWdlIDU1XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdBUCBBcmNoLiBUYXhvbm9t eSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0KICAgY29tcHJvbWlzZWQuIEF0dGFja2lu ZyBhbiBBUiB3aGVuIG9uZSBhbHJlYWR5IGhhcyBwaHlzaWNhbCBhY2Nlc3MgdG8NCiAgIHRoZSBu ZXR3b3JrIGlzIHBvaW50bGVzcy4NCg0KICAgU2hvdWxkIGFuIGF0dGFja2VyIHN0aWxsIHRyeSB0 byBtaXMtY29uZmlndXJlIGEgd29ya2luZyBBUiBieQ0KICAgcHJldGVuZGluZyB0byBiZSB0aGUg YWN0dWFsIEFDLCBpdCBtdXN0IHNlbmQgYSBwYWNrZXQgd2l0aCB0aGUgc2FtZQ0KICAgc291cmNl IGFkZHJlc3MgYXMgdGhlIGFjdHVhbCBBQyBzaW5jZSB0aGUgQVIgdmVyaWZpZXMgdGhlIHNvdXJj ZQ0KICAgYWRkcmVzcyBvZiBhbGwgZnJhbWVzIGl0IHJlY2VpdmVzLiBJZiB0aGlzIG9jY3VycmVk IHRoZSBMMiBzd2l0Y2gNCiAgIHdvdWxkIHJlY29uZmlndXJlIGl0c2VsZiB0byBkaXJlY3QgYWxs IHRyYWZmaWMgZm9yIHRoZSBhY3R1YWwgQUMgdG8NCiAgIHRoZSByb2d1ZSBBQyBhbmQgZXNzZW50 aWFsbHkgaXNvbGF0ZSB0aGUgYWN0dWFsIEFDLiBUaGF0IEFDIHdvdWxkDQogICBxdWlja2x5IGRl dGVjdCB0aGlzIGFuZCBub3RpZnkgYW4gYWRtaW5pc3RyYXRvciBhcyB3ZWxsIGFzIHNodXQgZG93 bg0KICAgdGhlIFdMQU4uDQoNCiAgIEJvb3QgdGltZSBhdHRhY2tzIHdpbGwgYWxzbyBiZSBkZXRl Y3RlZCBieSB0aGUgYWN0dWFsIEFDIHNpbmNlIGl0DQogICB3aWxsIHNlZSB0aGUgYm9vdCByZXF1 ZXN0IGFuZCBhbHNvIHJlc3BvbmQgdG8gdGhlIEFSLg0KDQogICBJdCBzaG91bGQgYmUgbm90ZWQg dGhhdCBhIHJvZ3VlIEFSIGFuZCByb2d1ZSBBQyBkbyBub3QgcHJlc2VudCBhbnkNCiAgIHRocmVh dCB0byBNb2JpbGUgVW5pdHMgcHJvdmlkZWQgdGhlIE1vYmlsZSBVbml0cyBmb2xsb3cgdGhlIHBy b3Blcg0KICAgc3RhbmRhcmRzIGZvciBtdXR1YWwgYXV0aGVudGljYXRpb24uICBGcm9tIGEgTW9i aWxlIFVuaXQgcGVyc3BlY3RpdmUNCiAgIGEgcm9ndWUgQVAvQUMgY29tYmluYXRpb24gaXMgZXF1 aXZhbGVudCB0byBhIHJvZ3VlIEFjY2VzcyBQb2ludC4NCg0KICAgSGVuY2Ugb3VyIHNwbGl0IG5l dHdvcmsgbW9kZWwgaW50cm9kdWNlcyBubyBuZXcgc2VjdXJpdHkgaXNzdWVzIG92ZXINCiAgIGEg Y29udmVudGlvbmFsIEFjY2VzcyBQb2ludCBtb2RlbCBhbmQgaW4gZmFjdCBvZmZlcnMgZ3JlYXRl cg0KICAgc2VjdXJpdHkuDQoNCiAgICg3KSBQcm9zIGFuZCBDb25zIG9mIEFyY2hpdGVjdHVyZQ0K DQogICBPdmVyYWxsIHdlIGFyZSBxdWl0ZSBzYXRpc2ZpZWQgd2l0aCBvdXIgY3VycmVudCBhcmNo aXRlY3R1cmUuICBUaGUNCiAgIGJhc2ljIG1vZGVsIGhhcyBiZWVuIGltcGxlbWVudGVkIG9uIGEg bnVtYmVyIG9mIEFSIGFuZCBBQyBkZXZpY2VzDQogICB3aXRob3V0IGFueSBwcm9ibGVtcy4gV2Ug aGF2ZSBhbHNvIHN1Y2Nlc3NmdWxseSB1cGdyYWRlZCBvbGQgODAyLjExDQogICBBY2Nlc3MgUG9p bnRzIHRvIHN1cHBvcnQgdGhlIGxhdGVzdCBlbmNyeXB0aW9uIHByb3RvY29scyBsaWtlIFdQQSBh bmQNCiAgIEFFUy4NCg0KICAgVGhlcmUgYXJlIG9mIGNvdXJzZSBhcmVhcyBvZiBlbmhhbmNlbWVu dC4gT25lIGlzIHRoZSBsb2NhdGlvbiBvZiB0aGUNCiAgIHRyYW5zbWl0IHNpZGUgb2YgdGhlIGVu Y3J5cHRpb24gcHJvY2Vzcy4gU29tZSBvZiBvdXIgY3VycmVudCBBUnMgYXJlDQogICBidWlsdCB3 aXRoIGNoaXBzIHRoYXQgZGlkIG5vdCBzdXBwb3J0IGFsbCBkZXNpcmVkIGVuY3J5cHRpb24NCiAg IGFsZ29yaXRobXMgYnV0IGdvaW5nIGZvcndhcmQgdGhlIGNoaXBzIHdlIHVzZSB0byBidWlsZCBm dXR1cmUgQVJzDQogICB3aWxsIGxpa2VseSBpbmNsdWRlIHN1Y2ggZnVuY3Rpb25hbGl0eS4gSXQg d291bGQgYmUgbmljZSB0byBiZSBhYmxlDQogICB0byB0YWtlIGFkdmFudGFnZSBvZiB0aGlzIGNh cGFiaWxpdHkgb24gbmV3IEFScyB3aGlsZSBhbHNvIHN1cHBvcnRpbmcNCiAgIHRoZSBvbGRlciBB UnMuDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhw aXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA1Nl0NCgwNCkludGVybmV0 LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXBy aWwgMjAwNA0KDQoNCkFwcGVuZGl4IEYuICBTdXJ2ZXkgQ29udHJpYnV0aW9uIEZvciBBcmNoaXRl Y3R1cmUgNQ0KDQogICBBYnN0cmFjdA0KDQogICBUaGlzIGRvY3VtZW50IGRlc2NyaWJlcyBhbiBh cmNoaXRlY3R1cmUgZm9yIHJlc2lkZW50aWFsIFdMQU4NCiAgIGRlcGxveW1lbnRzLiBJdCBwcmVz ZW50cyBzaW1wbGUgZXF1aXBtZW50IGZvciBjb25zdW1lcnMgd2hpbGUNCiAgIGNvbXBsZXhpdHkg YW5kIG92ZXJhbGwgbmV0d29yayBtYW5hZ2VtZW50IGFyZSBsZWZ0IHRvIHNlcnZpY2UNCiAgIHBy b3ZpZGVycy4gQWRkaXRpb25hbGx5LCBpdCBhbHNvIGludGVncmF0ZXMgcmFkaW8tb3Zlci1maWJl ciAoUm9GKQ0KICAgdGVjaG5vbG9neSB0byBwcm92aWRlIG5ldHdvcmsgc2VydmljZXMgdG8gY29t bW9uIGFyZWFzIG91dHNpZGUNCiAgIGluZGl2aWR1YWwgcmVzaWRlbmNlcy4NCg0KICAgMS4gSW50 cm9kdWN0aW9uDQoNCiAgIFRoaXMgYXJjaGl0ZWN0dXJlIGluY2x1ZGVzIGEgc2V0LXRvcCBib3gg KFNUQikgYXQgdGhlIGNvbnN1bWVyJ3MNCiAgIHJlc2lkZW5jZSwgYSByYWRpby1vdmVyLWZpYmVy IChSb0YpIGFudGVubmEgaW4gY29tbW9uIGFyZWFzIGFyb3VuZCBhDQogICBudW1iZXIgb2YgcmVz aWRlbmNlcyBhbmQgYSBjb250cm9sbGVyIGF0IHRoZSBzZXJ2aWNlIHByb3ZpZGVyJ3MNCiAgIHBy ZW1pc2VzLiBUaGUgU1RCIHdpcmVsZXNzbHkgc3RyZWFtcyBkYXRhIGFuZCBtZWRpYSBjb250ZW50 IHRvIG90aGVyDQogICBwcm9kdWN0cyBsaWtlIFRWcyBhbmQgZGlzcGxheSBjb25zb2xlcy4gSXQg aXMgYWxzbyBjYXBhYmxlIG9mIFBIWQ0KICAgbGF5ZXIgYW5kIHBhcnRpYWwgTUFDIGxheWVyIHBy b2Nlc3NpbmcgZm9yIHdpcmVsZXNzIHRyYW5zbWlzc2lvbnMgdG8NCiAgIG90aGVyIGNsaWVudCBk ZXZpY2VzLiBBbiBhbnRlbm5hIHN0cnVjdHVyZSBvdXRzaWRlIGluZGl2aWR1YWwNCiAgIHJlc2lk ZW5jZXMgcHJvdmlkZXMgbmV0d29yayBhY2Nlc3MgdG8gY29tbW9uIGFyZWFzLiBUaGlzIGlzIGlu DQogICBjb25qdW5jdGlvbiB3aXRoIHRoZSBzZXJ2aWNlIHByb3ZpZGVyJ3MgY29udHJvbGxlciBi eSBtZWFucyBvZg0KICAgcmFkaW8tb3Zlci1maWJlciB0cmFuc21pc3Npb25zLg0KDQogICBUaGlz IGRvY3VtZW50IGRlc2NyaWJlcyB0aGUgQnJvYWRub3crIFdMQU4gYXJjaGl0ZWN0dXJlIHdpdGgg cmVzcGVjdA0KICAgdG8gdGhlIG5lZWRzIG9mIHRoZSBDQVBXQVAgQXJjaGl0ZWN0dXJlIFRheG9u b215IGRvY3VtZW50Lg0KDQogICAyLiBEZXNpZ24gQ29uc2lkZXJhdGlvbnMgYW5kIFJlcXVpcmVt ZW50cw0KDQogICBCcm9hZG5vdysgaXMgYmFzZWQgb24gYSBoaWdoLXNwZWVkLCBkZWRpY2F0ZWQg YmFja2JvbmUgYmV0d2VlbiBTVEJzLA0KICAgUm9GIGFudGVubmFzIGFuZCB0aGUgY2VudHJhbCBj b250cm9sbGVyLiBUaGlzIGFsbG93cyBmb3IgZmxleGliaWxpdHkNCiAgIGluIHRoZSBwaHlzaWNh bCBsb2NhdGlvbiBvZiB2YXJpb3VzIHByb2Nlc3NpbmcgcmVxdWlyZW1lbnRzLg0KDQogICBUaGUg Y2VudHJhbCBjb250cm9sbGVyIHJlYWxpemVzIGNvbXBsZXRlIElFRUU4MDIuMTEgZnVuY3Rpb25h bGl0eQ0KICAgaW5jbHVkaW5nIFBIWSBsYXllciBhc3BlY3RzLiBJdCB0aGVuIHBlcmZvcm1zIHNl bGVjdGl2ZSBkZWdyZWVzIG9mDQogICBwcm9jZXNzaW5nIGZvciBkaWZmZXJlbnQgZGVzdGluYXRp b25zLCBpLmUuLCBmb3IgU1RCcywgUm9GIGFudGVubmFzLA0KICAgYW5kIG90aGVyIGRldmljZXMu IFRoZSBjb250cm9sbGVyIGlzIGFsc28gcmVzcG9uc2libGUgZm9yIG92ZXJhbGwNCiAgIG5ldHdv cmsgbWFuYWdlbWVudCBpbmNsdWRpbmcgY2xpZW50IGF1dGhlbnRpY2F0aW9uIGFuZCBjaGFubmVs DQogICBhZGFwdGlvbi4NCg0KICAgU1RCcyBwcm9jZXNzIElFRUU4MDIuMTEgUEhZIGxheWVyIGZ1 bmN0aW9uYWxpdHkgYW5kIElFRUU4MDIuMTEgTUFDDQogICBsYXllciBhc3NvY2lhdGlvbiBzZXJ2 aWNlcyBmb3IgYWxsIHRyYW5zbWlzc2lvbnMuIEluIGFkZGl0aW9uLCB0aGV5DQogICBpbXBsZW1l bnQgcHJvcHJpZXRhcnkgTUFDIGZ1bmN0aW9uYWxpdHkgZm9yIHRyYW5zbWlzc2lvbnMgdG8gb3Ro ZXINCiAgIGRldmljZXMgb2YgdGhpcyB2ZW5kb3IgbGlrZSBUVnMuIFRoZXNlIGZ1bmN0aW9ucyBh cmUgZGVzaWduZWQNCiAgIHByaW1hcmlseSBmb3IgdHJhbnNtaXR0aW5nIG1lZGlhIHRvIGhpZ2gt cmVzb2x1dGlvbiBkaXNwbGF5cy4gRm9yDQogICB0cmFuc21pc3Npb25zIHRvIG90aGVyIGNsaWVu dCBkZXZpY2VzIGhvd2V2ZXIsIHRoZSBTVEJzIG9ubHkgcGVyZm9ybQ0KICAgSUVFRTgwMi4xMSBQ SFkgYW5kIElFRUU4MDIuMTEgTUFDIGFzc29jaWF0aW9uIHNlcnZpY2VzLiBUaGUgcmVtYWluaW5n DQogICBJRUVFODAyLjExIE1BQyBzZXJ2aWNlcyBhcmUgbGVmdCB0byB0aGUgY2VudHJhbCBjb250 cm9sbGVyLiAuDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBPY3RvYmVy IDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA1N10NCgwNCkludGVybmV0LURyYWZ0ICAgICAg ICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAwNA0KDQoN CiAgIFRoZSBhbnRlbm5hIHVzZWQgZm9yIHJhZGlvLW92ZXItZmliZXIgdHJhbnNtaXNzaW9uIGlz IGEgdmVyeSBzaW1wbGUNCiAgIGRldmljZS4gSXQgbWVyZWx5IHBlcmZvcm1zIG9wdGljYWwgdG8g ZWxlY3RyaWNhbCBjb252ZXJzaW9ucyBhbmQNCiAgIHRyYW5zbWl0cyB0aGUgcmVzdWx0aW5nIHJh ZGlvIHNpZ25hbHMuIFRoaXMgcGxhY2VzIHRoZSBuZWVkIGZvcg0KICAgaGlnaC1zcGVlZCwgZmli ZXIgY29ubmVjdGl2aXR5IGJldHdlZW4gdGhlIGFudGVubmEgYW5kIGNvbnRyb2xsZXIuIEFzDQog ICBzdWNoLCB0aGlzIHJlcXVpcmVtZW50IGlzIGJlaW5nIGluY3JlYXNpbmdseSBtZXQgaW4gdGhl IHJlc2lkZW50aWFsDQogICBtYXJrZXQgcGxhY2UuLg0KDQogICBNb2JpbGl0eSBjb25jZXJucyBp biB0aGUgcmVzaWRlbnRpYWwgZW52aXJvbm1lbnQgYXJlIHByZXNlbnQgYWxiZWl0DQogICBzbGln aHRseS4gSXQgaXMgaGlnaGx5IHVubGlrZWx5IHRoYXQgY2xpZW50cyB3aWxsIHJvYW0gdG8gbmVp Z2hib3JpbmcNCiAgIHJlc2lkZW5jZXMgZm9yIG5ldHdvcmsgYWNjZXNzLiBBcyBzdWNoLCB0aGlz IGlzIG5vdCBkZWFsdCB3aXRoIGluDQogICBncmVhdCBkZXRhaWwgaW4gdGhlIEJyb2Fkbm93KyBh cmNoaXRlY3R1cmUuIEhvd2V2ZXIsIGl0IGlzIG5lY2Vzc2FyeQ0KICAgdG8gZW5zdXJlIHRoYXQg cm9ndWUgY2xpZW50cyBkbyBub3QgdGFrZSBhZHZhbnRhZ2Ugb2YgbGVnaXRpbWF0ZQ0KICAgY3Vz dG9tZXJzIGJ5IGV4cGxvaXRpbmcgdGhlaXIgc3Vic2NyaXB0aW9ucy4gQXBwcm9wcmlhdGUNCiAg IGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMgYmV0d2VlbiBjbGllbnQgZGV2aWNlcyBhbmQgdGhl IGNvbnRyb2xsZXINCiAgIGFyZSB1c2VkIHRvIGF2b2lkIHRoaXMuDQoNCiAgIDMuIFdMQU4gRnVu Y3Rpb25zIFN1cHBvcnRlZA0KDQogICBUaGUgY29udHJvbGxlciBpcyBhIHBvd2VyZnVsIGRldmlj ZSBjYXBhYmxlIG9mIHByb2Nlc3NpbmcgY29tcGxldGUNCiAgIElFRUU4MDIuMTEgZnVuY3Rpb25h bGl0eSB3aGljaCBhcmUgdGhlbiBzZWxlY3RpdmVseSBwZXJmb3JtZWQgZm9yDQogICBTVEJzIGFu ZCByYWRpby1vdmVyLWZpYmVyIHRyYW5zbWlzc2lvbnMuIEl0IGluY2x1ZGVzIHN1cHBvcnQgZm9y IFFvUywNCiAgIHNlY3VyaXR5IGFuZCBjb250cm9sLiBUaGUgdmFyaW91cyBmdW5jdGlvbmFsaXRp ZXMgYXJlIHJlYWxpemVkIGFzIGENCiAgIGNvbWJpbmF0aW9uIG9mIGluZGl2aWR1YWwgY29tcG9u ZW50cyBvZiBmaW5lIGdyYW51bGFyaXR5LiBTdWNoIGFuDQogICBpbXBsZW1lbnRhdGlvbiBlbnN1 cmVzIHRoYXQgdGhlIGNvbnRyb2xsZXIgY2FuIGFjY3VyYXRlbHkgcHJvdmlkZQ0KICAgY29tcGxl bWVudGFyeSBmdW5jdGlvbnMgdG8gdGhlIGVuZC1kZXZpY2VzLiBBbGdvcml0aG1zIGFuZCBwcm9j ZWR1cmVzDQogICBmb3IgdHJhbnNtaXQgcG93ZXIgY29udHJvbCwgY2hhbm5lbCBzZWxlY3Rpb24g YW5kIGludGVyZmVyZW5jZQ0KICAgbWFuYWdlbWVudCBhcmUgcGVyZm9ybWVkIGF0IHRoZSBjb250 cm9sbGVyIGFuZCB0aGUgcmVzdWx0aW5nIGNvbnRyb2wNCiAgIHNpZ25hbHMgYXJlIGZvcndhcmRl ZCB0byB0aGUgU1RCcyBhbmQgYW50ZW5uYXMuIEluIHRlcm1zIG9mIHNlY3VyaXR5LA0KICAgdGhl IGNvbnRyb2xsZXIgdGVybWluYXRlcyBNQUMgbGF5ZXIgZW5jcnlwdGlvbiBmb3IgYm90aCBwcm9w cmlldGFyeQ0KICAgYW5kIG90aGVyIGVuZC1kZXZpY2VzIG9mIHRoZSBTVEJzLg0KDQogICBBdXRo ZW50aWNhdGlvbiByZXF1aXJlbWVudHMgaW4gdGhlIHJlc2lkZW50aWFsIGVudmlyb25tZW50IGFy ZSBhcw0KICAgc3RyaW5nZW50IGFzIHRob3NlIGluIGVudGVycHJpc2VzLiBJdCBpcyBpbXBvcnRh bnQgdGhhdCByb2d1ZSBjbGllbnRzDQogICBkbyBub3QgdGFrZSBhZHZhbnRhZ2Ugb2YgbGVnaXRp bWF0ZSBjb25zdW1lcnMsIGkuZS4sIG5vIGZyZWUgcmlkZXJzLg0KICAgQXMgc3VjaCwgYXV0aGVu dGljYXRpb24gaXMgcGVyZm9ybWVkIGF0IHRoZSBjb250cm9sbGVyIGZvciBhbGwNCiAgIGNsaWVu dHMgYWNjZXNzaW5nIHRoZSBTVEJzIGFuZCBSb0YgYW50ZW5uYXMuDQoNCiAgIFRoZSBTVEJzIGlu Y2x1ZGUgZnVsbCBmbGVkZ2VkIGNhcGFiaWxpdGllcyAoTUFDICsgUEhZKSBmb3INCiAgIHRyYW5z ZmVycmluZyBjb250ZW50IHRvIHByb2R1Y3RzIHN1Y2ggYXMgVFZzIGFuZCBkaXNwbGF5IGNvbnNv bGVzLg0KICAgSG93ZXZlciwgdGhleSBmZWF0dXJlIG9ubHkgbGlnaHQgd2VpZ2h0IHdpcmVsZXNz IGNhcGFiaWxpdGllcyBmb3INCiAgIHRyYW5zbWlzc2lvbnMgdG8gb3RoZXIgY2xpZW50IGRldmlj ZXMsIGxlYXZpbmcgdGhlIGJ1bGsgb2Ygb3BlcmF0aW9ucw0KICAgdG8gdGhlIGNvbnRyb2xsZXIu IE92ZXJhbGwgdGhlIFNUQnMgYXJlIGNhcGFibGUgb2YgY2hhbm5lbA0KICAgbWVhc3VyZW1lbnRz LCBmZWVkYmFjayB0byB0aGUgY29udHJvbGxlciwgdHJhbnNtaXQgcG93ZXIgYWRqdXN0bWVudHMN CiAgIGV0Yy4gSW4gZ2VuZXJhbCB0aGUgU1RCcyBhcmUgYWJsZSB0byBwcm9jZXNzIElFRUU4MDIu MTEgUEhZIGFuZA0KICAgSUVFRTgwMi4xMSBNQUMgYXNzb2NpYXRpb24gc2VydmljZXMuIFRoZXkg YWxzbyBpbmNsdWRlIHByb3ByaWV0YXJ5DQogICBNQUMgYXNwZWN0cyBmb3IgdHJhbnNtaXNzaW9u cyB0byBvdGhlciBkZXZpY2VzIGZyb20gdGhpcyB2ZW5kb3IuDQoNCiAgIDQuIEZ1bmN0aW9uYWwg QXJjaGl0ZWN0dXJlDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBPY3Rv YmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA1OF0NCgwNCkludGVybmV0LURyYWZ0ICAg ICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAwNA0K DQoNCiAgIFRoZSBTVEJzIGNvbWJpbmUgdHdvIGRpZmZlcmVudCBXTEFOIGZ1bmN0aW9uYWwgYXJj aGl0ZWN0dXJlcyBmb3IgdGhlDQogICB0cmFuc21pc3Npb25zIHRvIHByb3ByaWV0YXJ5IGFuZCBv dGhlciBjbGllbnRzLCByZXNwZWN0aXZlbHkuIEZvcg0KICAgcHJvcHJpZXRhcnkgY2xpZW50cywg dGhlIGFyY2hpdGVjdHVyZSBjb25zaXN0cyBvZiBJRUVFODAyLjExIFBIWSBhbmQNCiAgIElFRUU4 MDIuMTEgTUFDIGFzc29jaWF0aW9uIHNlcnZpY2VzLiBUaGUgcmVtYWluaW5nIE1BQw0KICAgZnVu Y3Rpb25hbGl0aWVzIGFyZSBwcm9wcmlldGFyeS4gRm9yIG90aGVyIGNsaWVudHMsIFNUQnMgb25s eSBwcm9jZXNzDQogICBJRUVFODAyLjExIFBIWSBJRUVFODAyLjExIE1BQyBhc3NvY2lhdGlvbiBz ZXJ2aWNlcywgbGVhdmluZyB0aGUNCiAgIHJlbWFpbmluZyBJRUVFODAyLjExIE1BQyBvcGVyYXRp b25zIHRvIHRoZSBjb250cm9sbGVyLiBGb3IgYm90aCB0eXBlcw0KICAgb2YgdHJhbnNtaXNzaW9u cywgY29udHJvbCBhc3BlY3RzIGFyZSBoYW5kbGVkIGJ5IHRoZSBjb250cm9sbGVyIGJhc2VkDQog ICBvbiBmZWVkYmFjayBzZW50IGJ5IHRoZSBTVEJzLg0KDQogICBJbiBhZGRpdGlvbiB0byB0aGVz ZSB0d28gZnVuY3Rpb25hbCBhcmNoaXRlY3R1cmVzLCBCcm9hZG5vdysgYWxzbw0KICAgaW5jbHVk ZXMgcmFkaW8tb3Zlci1maWJlciBjYXBhYmlsaXRpZXMuIEFzIHN1Y2gsIHRoZSBlbmQtZGV2aWNl IGlzIGENCiAgIHNpbXBsZSBhbnRlbm5hIGNhcGFibGUgb2YgbWFraW5nIG9wdGljYWwgdG8gZWxl Y3RyaWNhbCBjb252ZXJzaW9ucw0KICAgYW5kIGJyb2FkY2FzdGluZyB0aGUgcmVzdWx0aW5nIHJh ZGlvIHNpZ25hbHMuIFRoZSBSb0YgYW50ZW5uYSBhbHNvDQogICBpbmNsdWRlcyBsb2dpYyB0byBz ZW5zZSBjaGFubmVsIGNvbmRpdGlvbnMgYW5kIHRvIHNlbmQgdGhpcyBiYWNrIHRvDQogICB0aGUg Y29udHJvbGxlciBmb3IgYW5hbHlzaXMgYW5kIGZ1cnRoZXIgYWN0aW9uLg0KDQogICBUaGUgY29u dHJvbGxlciwgYXQgYSBjZW50cmFsIGxvY2F0aW9uLCBhY2NvbW1vZGF0ZXMgdGhlc2UgdGhyZWUN CiAgIGZ1bmN0aW9uYWwgYXJjaGl0ZWN0dXJlcy4gSXQgaW5jbHVkZXMgdGhlIGNvbXBsZXRlIFdM QU4gZnVuY3Rpb25hbGl0eQ0KICAgYmFzZWQgb24gSUVFRTgwMi4xMSBzdGFuZGFyZHMuIEZvciB0 cmFuc21pc3Npb25zIHRvIHByb3ByaWV0YXJ5DQogICBjbGllbnRzLCBpdCBtZXJlbHkgYWN0cyBh cyBhdXRoZW50aWNhdG9yIGFuZCBjaGFubmVsIG1hbmFnZXIuIEZvcg0KICAgb3RoZXIgY2xpZW50 cywgaXQgcHJvY2Vzc2VzIHRoZSByZW1haW5pbmcgSUVFRTgwMi4xMSBNQUMNCiAgIGZ1bmN0aW9u YWxpdHkgYWZ0ZXIgaGF2aW5nIHRoZSBTVEJzIHByb2Nlc3MgSUVFRTgwMi4xMSBNQUMNCiAgIGFz c29jaWF0aW9uIGFuZCBJRUVFODAyLjExIFBIWSBzZXJ2aWNlcy4gQW5kIGZvciBSb0YgdHJhbnNt aXNzaW9ucywNCiAgIHRoZSBjb250cm9sbGVyIHBlcmZvcm1zIGNvbXBsZXRlIElFRUU4MDIuMTEg TUFDIGFuZCBQSFkgcHJvY2Vzc2luZw0KICAgYmVmb3JlIG1ha2luZyB0aGUgZWxlY3RyaWNhbCB0 byBvcHRpY2FsIGNvbnZlcnNpb25zLiBJbiBhbGwgdGhyZWUNCiAgIGNhc2VzLCB0aGUgY29udHJv bGxlciBpcyByZXNwb25zaWJsZSBmb3Igb3ZlcmFsbCBjb250cm9sIGFuZA0KICAgbWFuYWdlbWVu dC4NCg0KICAgQmFzZWQgb24gdGhlc2UgZGVzY3JpcHRpb25zLCB0aGUgZGVncmVlIG9mIHdpcmVs ZXNzIGZ1bmN0aW9uYWwNCiAgIGltcGxlbWVudGF0aW9uIGluIHRoaXMgYXJjaGl0ZWN0dXJlIGlz IGRpZmZlcmVudCBmb3IgdGhlIHR5cGUgb2YgZW5kLQ0KICAgZGV2aWNlcy4gSW4gdGVybXMgb2Yg Q0FQV0FQLCB0aGVzZSBjb25zdGl0dXRlIHRocmVlIGRpZmZlcmVudCB0eXBlcw0KICAgb2YgZnVu Y3Rpb25hbCBhcmNoaXRlY3R1cmVzL3NwbGl0cy4NCg0KICAgNS4gQVAtQUMgUHJvdG9jb2wNCg0K ICAgVGhpcyBpcyBhIHByb3ByaWV0YXJ5IHByb3RvY29sLg0KDQogICA2LiBUb3BvbG9naWNhbCBB c3N1bXB0aW9ucw0KDQogICBUaGUgY29ubmVjdGlvbiBiZXR3ZWVuIHRoZSBjb250cm9sbGVyIGFu ZCBTVEJzIGlzIGhpZ2gtc3BlZWQgYW5kDQogICBkZWRpY2F0ZWQuIFRoaXMgaW5jbHVkZXMgY29h eCwgQURTTCBhbmQgZmliZXIuIEFzIHN1Y2gsIHRoZSB0b3BvbG9neQ0KICAgaXMgdGhhdCBvZiBk aXJlY3QgY29ubmVjdGlvbi4NCg0KICAgNy4gU2VjdXJpdHkgVGhyZWF0IEFuYWx5c2lzDQoNCiAg IFdoZW4gZmliZXIgaXMgdXNlZCBmb3IgdGhlIGRlZGljYXRlZCBjb25uZWN0aW9ucywgaXQgYWxs b3dzIGZvcg0KICAgc3Ryb25nIHBoeXNpY2FsIHNlY3VyaXR5LiBJbiBhZGRpdGlvbiB0byB0aGlz LCBCcm9hZG5vdysgaW5jb3Jwb3JhdGVzDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAg RXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA1OV0NCgwNCkludGVy bmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAg QXByaWwgMjAwNA0KDQoNCiAgIGNyeXB0b2dyYXBoaWMgc2VjdXJpdHkgZm9yIGV4Y2hhbmdlcyBi ZXR3ZWVuIHRoZSBjb250cm9sbGVyIGFuZCBTVEJzLg0KICAgVGhlIFNUQnMgYXJlIGhhcmQtY29k ZWQgd2l0aCBhIHNlZWQgd2l0aCB3aGljaCBzZXNzaW9uIGtleXMgYXJlDQogICBnZW5lcmF0ZWQu IFRoZXNlIGtleXMgYXJlIHRoZW4gdXNlZCB0byBlbmNyeXB0IHRyYW5zbWlzc2lvbnMgYmV0d2Vl bg0KICAgdGhlIGNvbnRyb2xsZXIgYW5kIFNUQnMuIFRoZSBjcnlwdG9ncmFwaHkgbWVjaGFuaXNt IGFsc28gdXNlcyBTRCBjYXJkDQogICBiYXNlZCBzZWVkcyBmb3Igc2Vzc2lvbiBrZXkgZ2VuZXJh dGlvbi4gU28gaW4gYWRkaXRpb24gdG8gc3Ryb25nDQogICBwaHlzaWNhbCBzZWN1cml0eSwgdGhl IGFyY2hpdGVjdHVyZSBhbHNvIGluY2x1ZGVzIGFub3RoZXIgbGV2ZWwgb2YNCiAgIGNyeXB0b2dy YXBoaWMgc2VjdXJpdHkuDQoNCiAgIDguIEFyY2hpdGVjdHVyYWwgQW5hbHlzaXMNCg0KICAgVGhl IHByaW1hcnkgYWR2YW50YWdlIG9mIGltcGxlbWVudGluZyBXTEFOIGZ1bmN0aW9uYWxpdHkgaW4N CiAgIGZpbmUtZ3JhaW5lZCBjb21wb25lbnRzIGlzIHRvIGFsbG93IGZsZXhpYmlsaXR5IGluIHRo ZSBmdW5jdGlvbmFsDQogICBhcmNoaXRlY3R1cmUuIEZvciBub3csIHRoaXMgYWxsb3dzIGZvciB0 aGUgZGlzdGluY3Rpb24gb2YNCiAgIHRyYW5zbWlzc2lvbnMgdG8gcHJvcHJpZXRhcnkgYW5kIG90 aGVyIGNsaWVudHMuIEFkZGl0aW9uYWxseSwgaXQNCiAgIHByb3ZpZGVzIGZvciBpbnRlZ3JhbCBt YW5hZ2VtZW50IGZyb20gdGhlIEJyb2Fkbm93KyBjb250cm9sbGVyLg0KICAgQnJvYWRub3crJ3Mg cmVsYXRpdmVseSBsaWdodCBpbXBsZW1lbnRhdGlvbiBmb3IgdHJhbnNtaXNzaW9ucyB0bw0KICAg b3RoZXIgZGV2aWNlcyBsZWFkcyB0byBsb3dlciBjb3N0cyBmb3IgU1RCcy4gRm9yIHRoZSBzZXJ2 aWNlDQogICBwcm92aWRlciwgdGhpcyBhcmNoaXRlY3R1cmUgYWxsb3dzIGEgbWFuYWdlbWVudCBw cmVtaXVtIHRvIGJlIGxldmllZC4NCiAgIEFzIHN1Y2gsIHRoaXMgYXJjaGl0ZWN0dXJlIGZvciB3 aXJlbGVzcyBtZWRpYSBjb250ZW50IGFuZCBkYXRhDQogICBkZWxpdmVyeSBvZmZlcnMgaW5jcmVh c2VkIGJlbmVmaXRzIGZvciBib3RoIGNvbnN1bWVycyBhbmQgc2VydmljZQ0KICAgcHJvdmlkZXJz Lg0KDQogICA5LiBDb25jbHVzaW9uDQoNCiAgIFRoaXMgZG9jdW1lbnQgaGFzIHByZXNlbnRlZCBh biBhcmNoaXRlY3R1cmUgZm9yIHJlc2lkZW50aWFsIFdMQU5zLiBJdA0KICAgY29tYmluZXMgd2ly ZWxlc3MgdHJhbnNtaXNzaW9uIGZ1bmN0aW9uYWxpdHkgdG8gcHJvcHJpZXRhcnkgYW5kIG90aGVy DQogICBjbGllbnQgZGV2aWNlcy4gRm9yIHByb3ByaWV0YXJ5IGRldmljZXMsIFNUQnMgdXNlIHN0 YW5kYXJkIElFRUU4MDIuMTENCiAgIFBIWSBhbmQgSUVFRTgwMi4xMSBNQUMgYXNzb2NpYXRpb24g c2VydmljZXMgaW4gYWRkaXRpb24gdG8gYQ0KICAgcHJvcHJpZXRhcnkgTUFDLCBvcHRpbWl6ZWQg cHJpbWFyaWx5IGZvciB0cmFuc21pc3Npb25zIHRvIHByb3ByaWV0YXJ5DQogICBUVnMgYW5kIGRp c3BsYXkgY29uc29sZXMuIEZvciBvdGhlciBkZXZpY2VzLCB0aGUgU1RCcyBhZG9wdCBhIHNwbGl0 DQogICB3aGVyZSBJRUVFODAyLjExIFBIWSBhbmQgSUVFRTgwMi4xMSBNQUMgYXNzb2NpYXRpb24g c2VydmljZXMgYXJlDQogICBoYW5kbGVkIGxvY2FsbHkgd2hpbGUgdGhlIHJlbWFpbmluZyBJRUVF ODAyLjExIE1BQyBzZXJ2aWNlcyBhcmUgbGVmdA0KICAgdG8gdGhlIGNvbnRyb2xsZXIuIEFuZCBm b3IgcmFkaW8tb3Zlci1maWJlciB0cmFuc21pc3Npb25zLCBCcm9hZG5vdysNCiAgIGNvbnNvbGlk YXRlcyBhbGwgSUVFRTgwMi4xMSBwcm9jZXNzaW5nIGF0IHRoZSBjb250cm9sbGVyIHdpdGhvdXQN CiAgIHVzaW5nIGFueSBzcGxpdC4gVGhlIHNlY3VyZSwgbG93LWxhdGVuY3kgY29ubmVjdGlvbiBi ZXR3ZWVuIHRoZQ0KICAgY29udHJvbGxlciwgU1RCcyBhbmQgUm9GIGFudGVubmFzIGJsdXIgYW55 IGRpc3RpbmN0aW9uIGluIFdMQU4NCiAgIGZ1bmN0aW9uYWxpdHkgYmFzZWQgb24gcmVhbC10aW1l IHJlcXVpcmVtZW50cy4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQpZYW5nIChFZGl0b3Ip LCBldCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA2 MF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAg ICAgICAgICAgICAgQXByaWwgMjAwNA0KDQoNCkFwcGVuZGl4IEcuICBTdXJ2ZXkgQ29udHJpYnV0 aW9uIEZvciBBcmNoaXRlY3R1cmUgNg0KDQogICAoMSkgRGVzaWduIGNvbnNpZGVyYXRpb25zIGFu ZCByZXF1aXJlbWVudHM6DQoNCiAgIFRoaXMgV2lyZWxlc3MgU3dpdGNoIEFyY2hpdGVjdHVyZSBj b25zaXN0cyBvZiBUaGluIEFQcyBhbmQNCiAgIENvbnRyb2xsZXJzLiBJdCBoYXMgYmVlbiBkZXNp Z25lZCB3aXRoIHRoZSBmb2xsb3dpbmcgY29uc2lkZXJhdGlvbnM6DQoNCiAgIC0gVGhpbiBBUHMg c2hvdWxkIGJlIGNoZWFwLiBUaGlzIGxlYWRzIHRvIGEgcmVxdWlyZW1lbnQgdGhhdCB0aGUgdGhp bg0KICAgQVAgYmUgYXMgc2ltcGxlIGFzIHBvc3NpYmxlLCB3aXRoIHZlcnkgbG93IGZsYXNoIGFu ZCByYW0NCiAgIHJlcXVpcmVtZW50cy4NCg0KICAgLSBUaGVyZSB3aWxsIGJlIG1hbnkgVGhpbiBB UHMgaW4gdGhlIG5ldHdvcmssIHNvIHRvIHJlZHVjZQ0KICAgaW5zdGFsbGF0aW9uIGFuZCBtYWlu dGVuYW5jZSBjb3N0IHRoZXkgc2hvdWxkIHJlcXVpcmUgemVybw0KICAgY29uZmlndXJhdGlvbi4g VGhpcyBsZWFkcyB0byBhIHJlcXVpcmVtZW50IHRoYXQgY29uZmlndXJhdGlvbiBiZQ0KICAgc2Vy dmVkIGZyb20gdGhlIENvbnRyb2xsZXIgb3Igc29tZSBvdGhlciBlbnRpdHksIGFuZCB0aGF0IHNv bWUgbWV0aG9kDQogICBmb3IgYXV0by1kaXNjb3ZlcnkgbXVzdCBleGlzdCB3aGVyZSBwb3NzaWJs ZS4gSW4gYWRkaXRpb24NCiAgIGNvbmZpZ3VyYXRpb24gb2YgdGhlIFJGIHBhcmFtZXRlcnMgc2hv dWxkIGJlIGF1dG9tYXRpYy4NCg0KICAgLSBUaGUgd2lkZWx5IHBoeXNpY2FsbHkgZGlzdHJpYnV0 ZWQgbmF0dXJlIG9mIFRoaW4gQVBzIGxlYWRzIHRvIGENCiAgIGZyZXF1ZW50IHJlcXVpcmVtZW50 IHRoYXQgdGhpbiBBUHMgbWF5IGJlIHVzZWQgaW4gcGh5c2ljYWxseSBpbnNlY3VyZQ0KICAgZW52 aXJvbm1lbnRzLiBUaGlzIGxlYWRzIHRvIGEgcmVxdWlyZW1lbnQgdGhhdCB1c2VyIGRhdGEgbm90 IGJlDQogICBlbmNyeXB0ZWQvdW5lbmNyeXB0ZWQgb24gdGhlIHRoaW4gQVAgYnV0IHJhdGhlciBh dCB0aGUgQ29udHJvbGxlci4NCiAgIFRoaXMgYWxsb3dzIHRoZSBuZXR3b3JrJ3MgdHJ1c3QgYm91 bmRhcnkgdG8gYmUgcGxhY2VkIGF0IGEgcGh5c2ljYWxseQ0KICAgc2VjdXJlIGxvY2F0aW9uLiBJ biBhZGRpdGlvbiB0aGlzIGFsbG93cyBub3ZlbCBuZXcgZGVwbG95bWVudA0KICAgc2NlbmFyaW9z IC0gc3VjaCBhcyBwbGFjaW5nIGFuIEFQIGluIHRlbGUtY29tbXV0ZXJzIGhvbWUgd2l0aG91dCBh bnkNCiAgIFZQTiBzZXR1cC4NCg0KICAgLSBUaGluIEFQcyBhbmQgY29udHJvbGxlcnMgc2hvdWxk IGJlIGRlcGxveWFibGUgYXMgc2ltcGx5IGFzIHBvc3NpYmxlDQogICBvbiB0b3Agb2YgdGhlIGN1 cnJlbnQgbGVnYWN5IG5ldHdvcmsgaW5mcmFzdHJ1Y3R1cmUuIFRoaXMgbGVhZHMgdG8gYQ0KICAg cmVxdWlyZW1lbnQgdGhhdCBhbGwgY29tbXVuaWNhdGlvbnMgYmUgYXQgTGF5ZXIgMyByYXRoZXIg dGhhbiBMYXllciAyDQogICBvciBkaXJlY3QuIEluIGFkZGl0aW9uIHRoZSB1c2Ugb2YgYSBWTEFO IGF3YXJlIGluZnJhc3RydWN0dXJlIGlzDQogICBwcmVjbHVkZWQsIGFuZCBzb21lIG1ldGhvZCBv ZiBjcm9zcy1zdWJuZXQgZGlzY292ZXJ5IG11c3QgYmUNCiAgIHNwZWNpZmllZC4NCg0KICAgLSBS b2d1ZSBBUHMgc2hvdWxkIG5vdCBwb3NlIGEgc2VjdXJpdHkgcHJvYmxlbS4gVGhpcyBsZWFkcyB0 byBhDQogICByZXF1aXJlbWVudCB0aGF0IHJvZ3VlIEFQcyBiZSByZW1vdGVseSBkZXRlY3RhYmxl IGJ5IFRoaW4gQVBzLCBhbmQNCiAgIHRoYXQgUm9ndWUgQVBzIG1heSBiZSByZW1vdGVseSBpbnZl c3RpZ2F0ZWQgYW5kIHNlY3VyZWQgYnkgVGhpbiBBUHMuDQoNCiAgIC0gV2lyZWxlc3MgY2xpZW50 cyBzaG91bGQgYmUgYWJsZSB0byByb2FtIHNlYW1sZXNzbHkgYmV0d2VlbiB0aGluDQogICBBUHMu IFRoaXMgbGVhZHMgdG8gYSByZXF1aXJlbWVudCB0aGF0IHdpcmVsZXNzIGNsaWVudHMgcmV0YWlu IHRoZWlyDQogICBJUCBhZGRyZXNzZXMsIHdoaWNoIGluIHR1cm4gbGVhZHMgdG8gYSByZXF1aXJl bWVudCB0aGF0IHNvbWV0aGluZw0KICAgZXF1aXZhbGVudCB0byBNb2JpbGUgSVAgYmUgdXNlZCBp biBsYXJnZSBzY2FsZSBkZXBsb3ltZW50cy4NCg0KICAgLSBSZWR1bmRhbmN5IGFuZCBsb2FkIHNo YXJpbmcuIEJvdGggVGhpbiBBUHMgYW5kIENvbnRyb2xsZXJzIHNob3VsZA0KICAgYmUgY29uZmln dXJlZCBpbiByZWR1bmRhbnQgYW5kIGxvYWQgYmFsYW5jZWQgY29uZmlndXJhdGlvbnMgdG8NCiAg IHByb3ZpZGUgbWF4aW11bSB1cHRpbWUgYW5kIHRocm91Z2hwdXQuDQoNCiAgIC0gVGhlZnQgb2Yg dGhpbiBBUHMgc2hvdWxkIG5vdCBwb3NlIGEgc2VjdXJpdHkgcHJvYmxlbS4gVGhpcyBsZWFkcyB0 bw0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAw NCAgICAgICAgICAgICAgW1BhZ2UgNjFdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQ V0FQIEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICBhIHJl cXVpcmVtZW50IHRoYXQgdGhpbiBBUHMgc2hvdWxkIGhhdmUgbm8gZW5jcnlwdGlvbiBrZXlzIGlu DQogICBub24tdm9sYXRpbGUgbWVtb3J5LiBJbiBhZGRpdGlvbiBzaW5jZSB0aGluIEFQcyBjYW5u b3Qgd29yayBhcw0KICAgc3RhbmRhbG9uZSBBUHMgdGhleSBhcmUgbGVzcyBsaWtlbHkgdG8gYmUg c3RvbGVuIGluZGl2aWR1YWxseS4NCg0KICAgKDIpIFdMQU4gZnVuY3Rpb25zIHN1cHBvcnRlZDoN Cg0KICAgKioqKkFsbCBmdW5jdGlvbnMgYXJlIHN1cHBvcnRlZDoNCg0KICAgLSBXaXJlbGVzcyBj bGllbnQgYXNzb2NpYXRpb24gYW5kIGF1dGhlbnRpY2F0aW9uDQoNCiAgIC0gUmFkaW8gUmVzb3Vy Y2UgTWFuYWdlbWVudCBhbmQgQ29udHJvbA0KDQogICAtIExvYWQgYmFsYW5jaW5nIG9mIHdpcmVs ZXNzIGNsaWVudHMgYmV0d2VlbiB0aGluIEFQcw0KDQogICAtIExvYWQgYmFsYW5jaW5nIG9mIHRo aW4gQVBzIGFjcm9zcyBDb250cm9sbGVycw0KDQogICAtIEVBUCB1c2VyIGF1dGhlbnRpY2F0aW9u DQoNCiAgIC0gV0VQLCBXUEEgYW5kIElFRUUgODAyLjExaSBlbmNyeXB0aW9uLCBpbmNsdWRpbmcg VEtJUCBhbmQgQUVTLQ0KDQogICBDQ00gZm9yIHdpcmVsZXNzIGZyYW1lcw0KDQogICAtIFNlYW1s ZXNzIHdpcmVsZXNzIGNsaWVudCByb2FtaW5nIGJldHdlZW4gdGhpbiBBUHMNCg0KICAgLSBEUyBz ZXJ2aWNlcyB2aWEgdGhlIHRoaW4gQVAgQ29udHJvbGxlcnMNCg0KICAgLSBEZXRlY3Rpb24gb2Yg YXV0aG9yaXplZCBBUHMNCg0KICAgLSBBdXRoZW50aWNhdGlvbiBhbmQgZW5jcnlwdGlvbiBvZiBh bGwgY29udHJvbCB0cmFmZmljIGJldHdlZW4gQVBzDQogICBhbmQgQ29udHJvbGxlcnMNCg0KICAg KDMpIEZ1bmN0aW9uYWwgQXJjaGl0ZWN0dXJlDQoNCiAgICoqKipUaGUgYXJjaGl0ZWN0dXJlIHVz ZXMgYSBzcGxpdCBNQUMsIHdpdGggdGhlIHRoaW4gQVBzIGFuZA0KICAgQ29udHJvbGxlcnMgY29t bXVuaWNhdGluZyBvdmVyIGEgTGF5ZXIgMyBjbG91ZC4NCg0KICAgT25seSB0aGUgbW9zdCB0aW1p bmcgc2Vuc2l0aXZlIGZ1bmN0aW9ucyBhcmUgcGVyZm9ybWVkIGF0IHRoZSBUaGluDQogICBBUHMg IC0gQWxsIFBIWSBsYXllciBmdW5jdGlvbnMsIGFuZCB0aGVzZSBwYXJ0cyBvZiB0aGUgTUFDIC0N CiAgIHRyYW5zbWlzc2lvbiBhbmQgcmVjZXB0aW9uIG9mIE1QRFVzLCBDUkMgZ2VuZXJhdGlvbiBh bmQgY2hlY2tpbmcsIEFDSw0KICAgZ2VuZXJhdGlvbiwgTkFWLCByZXRyaWVzIGFuZCB0aGUgRURD QSwgcHJpb3JpdHkgcXVldWluZy4gVFNGIChCZWFjb24NCiAgIGFuZCBQcm9iZSByZXNwb25zZSB0 aW1lc3RhbXAgaW5zZXJ0aW9uKS4gTXVsdGljYXN0IFBvd2VyLXNhdmUgZnJhbWUNCiAgIGRlbGl2 ZXJ5LiBSYXcgTVBEVXMgYXMgc2VlbiBvbiB0aGUgd2lyZWxlc3MgbWVkaXVtIGFyZSBleGNoYW5n ZWQgd2l0aA0KICAgdGhlIGNvbnRyb2xsZXIgZW5jYXBzdWxhdGVkIHdpdGhpbiBVRFAuIE5vdGUg LSB0aGVzZSBNUERVcyBhcmUgbm90DQogICBkZWNyeXB0ZWQgYXQgdGhlIFRoaW4gQVAgYW5kIHNv IGFueSB1c2VyIGRhdGEgcmVtYWlucyBwcm90ZWN0ZWQgYnkNCiAgIHdoYXRldmVyIGVuY3J5cHRp b24gbWVjaGFuaXNtIGlzIGluIHVzZSBvdmVyIHRoZSB3aXJlbGVzcyBuZXR3b3JrLg0KDQogICBU aGUgQ29udHJvbGxlciBjYW4gYWxzbyBhY3QgYXMgYSBNb2JpbGUgSVAgcHJveHkgb24gYmVoYWxm IG9mIHRoZQ0KICAgd2lyZWxlc3MgY2xpZW50IChhY2NvcmRpbmcgdG8gY29uZmlndXJhdGlvbiku IFRoaXMgYWxsb3dzIHNlYW1sZXNzDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhw aXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA2Ml0NCgwNCkludGVybmV0 LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXBy aWwgMjAwNA0KDQoNCiAgIHJvYW1pbmcgYWNyb3NzIHRoaW4gQVBzIGNvbm5lY3RlZCB0byBkaWZm ZXJlbnQgY29udHJvbGxlcnMuDQoNCiAgICg0KSBUaGUgcHJvdG9jb2wgdXNlZCBpbiBiZXR3ZWVu IEFQIGFuZCBBQy4NCg0KICAgKioqKkVhY2ggdGhpbiBBUCBoYXMgb25lIG1hc3RlciBjb250cm9s bGVyIGFuZCBtYXkgaGF2ZSBtYW55IGJhY2t1cA0KICAgQ29udHJvbGxlcnMuIFRoZXNlIGFyZSBk aXNjb3ZlcmVkIGR1cmluZyBCb290IGFuZCBEaXNjb3ZlcnkuIE9uIGJvb3QsDQogICB0aGUgdGhp biBBUCB1c2VzIERIQ1Agb3Igc3RhdGljIGNvbmZpZ3VyYXRpb24gdG8gZ2V0IGl0cyBJUCBhZGRy ZXNzDQogICBhbmQgRE5TIHNlcnZlciBhZGRyZXNzZXMuIFdlIHNwZWNpZnkgNCBtZXRob2RzIGZv ciBkaXNjb3ZlcmluZyB0aGUgSVANCiAgIGFkZHJlc3Mgb2YgdGhlIG1hc3RlciBDb250cm9sbGVy OiBESENQLCBETlMsIGxvY2FsIHN1Ym5ldCBkaXNjb3ZlcnkNCiAgIGFuZCBtYW51YWwgY29uZmln dXJhdGlvbi4gT25jZSB0aGUgbWFzdGVyIENvbnRyb2xsZXIgaXMgZGV0ZWN0ZWQsIHRoZQ0KICAg dGhpbiBBUCBkb3dubG9hZHMgYSBzaWduZWQgZmlybXdhcmUgaW1hZ2UgYnkgVEZUUC4NCg0KICAg RnJvbSB0aGVuIG9uIENvbnRyb2wgbWVzc2FnZXMgYXJlIGV4Y2hhbmdlZCB1c2luZyBTU0wuIEEg c2V0IG9mDQogICBjb250cm9sIG1lc3NhZ2VzIGhhcyBiZWVuIGRlZmluZWQgdXNpbmcgYW4gQVND SUkgZm9ybWF0Lg0KDQogICBVc2VyIGRhdGEgaXMgY292ZXJlZCBpbiAoMykgYWJvdmUuDQoNCiAg ICg1KSBUaGUgdG9wb2xvZ2ljYWwgYXNzdW1wdGlvbnMgYmV0d2VlbiBBUCBhbmQgQUMgKGlzIGl0 IGRpcmVjdGx5DQogICBjb25uZWN0ZWQsIEwyIHN3aXRjaGVkLCBvciBMMyByb3V0ZWQ/KSAtLSB0 aGlzIGFsc28gaGVscHMgdXMgdG8NCiAgIHVuZGVyc3RhbmQgdGhlIGRlcGxveW1lbnQgc2NlbmFy aW9zLg0KDQogICAqKioqTDMgcm91dGVkLiBUaGlzIGFsbG93cyB1cyB0byBkZXBsb3kgb25lIG9y IG1vcmUgY29udHJvbGxlcnMNCiAgIGFueXdoZXJlIG9uIHRoZSB1c2VyJ3MgTEFOIGFuZCB0aGUg dGhpbiBBUHMgdG8gYmUgb24gZGlzdGFudCBzdWJuZXRzLg0KICAgVGhlIG9ubHkgbGltaXRhdGlv biBpcyB0aGUgY2FwYWJpbGl0aWVzIG9mIHRoZSB1c2VyJ3MgTEFOIGFuZCBMQU4NCiAgIHN3aXRj aGVzOiBpZiB0aGUgQVBzIGFyZSB0b28gZmFyIGZyb20gdGhlIGNvbnRyb2xsZXJzIHRoZW4gdHJh ZmZpYw0KICAgd2lsbCBiZSBjcm9zc2luZyBtdWx0aXBsZSBzd2l0Y2hlcyB3aGljaCBpcyBpbmVm ZmljaWVudC4gSW4gYWRkaXRpb24NCiAgIGFueSBicm9hZGNhc3QgdHJhZmZpYyBkZXN0aW5lZCB0 byB0aGUgd2lyZWxlc3MgbmV0d29yayBtYXkgaGF2ZSB0byBiZQ0KICAgbXVsdGljYXN0IGFjcm9z cyBtYW55IHN1Ym5ldHMuDQoNCiAgICg2KSBTZWN1cml0eSB0aHJlYXQgYW5hbHlzaXM6IHdoYXQg a2luZHMgb2YgdGhyZWF0IGludHJvZHVjZWQgYnkgdGhlDQogICBzcGxpdCBhcmNoaXRlY3R1cmUs IGFuZCBob3cgdGhhdCBhcmUgYWRkcmVzc2VkLg0KDQogICBPdXIgc2VjdXJpdHkgYXJjaGl0ZWN0 dXJlIHNpZ25pZmljYW50bHkgcmVkdWNlcyBzZWN1cml0eSB0aHJlYXRzIC0gYnkNCiAgIG1vdmlu ZyB0aGUgdHJ1c3QgYm91bmRhcnkgdG8gdGhlIENvbnRyb2xsZXIgLSB3aGljaCBtYXkgYmUgcGxh Y2VkIGluDQogICBhIHBoeXNpY2FsbHkgc2VjdXJlIGxvY2F0aW9uLCBhbmQgcHJvdGVjdGVkIGJ5 IGZpcmV3YWxscy4gSW4NCiAgIHRyYWRpdGlvbmFsICdmYXQgQVAnIGFyY2hpdGVjdHVyZXMgYW55 b25lIHdpdGggYWNjZXNzIHRvIHRoZSBuZXR3b3JrDQogICBiZWhpbmQgdGhlICdmYXQgQVBzJyBt YXkgaW5zcGVjdCBvciB0YW1wZXIgd2l0aCB0cmFmZmljLiBJbiBvdXINCiAgIGFyY2hpdGVjdHVy ZSBzaW5jZSB0aGUgcmF3IDgwMi4xMSBmcmFtZXMgdGhhdCBhcmUgc2VlbiBvdmVyIHRoZSBhaXIN CiAgIGFyZSB0cmFuc3BvcnRlZCB0byB0aGUgY29udHJvbGxlciB0aGlzIHRocmVhdCBpcyBzaWdu aWZpY2FudGx5DQogICByZWR1Y2VkLiBUaGVzZSBmcmFtZXMgYXJlIHByb3RlY3RlZCBieSB3aGF0 ZXZlciB3aXJlbGVzcyBzZWN1cml0eQ0KICAgcG9saWN5IGFuZCBtZWNoYW5pc20gaGFzIGJlZW4g c2VsZWN0ZWQuIE91ciBjb250cm9sbGVycyBpbXBsZW1lbnQgV1BBDQogICBhbmQgODAyLjExZSB0 byBwcm92aWRlIGEgaGlnaCBsZXZlbCBvZiBzZWN1cml0eS4NCg0KICAgKDcpIFByb3MgYW5kIENv bnMgb2YgdGhpcyBhcmNoaXRlY3R1cmUsIGVzcC4gaW4gcmVsYXRpb24gdG8gdGhlIGZvdXINCiAg IHByb2JsZW1zIGRlc2NyaWJlZCBpbiB0aGUgQ0FQV0FQIHByb2JsZW0gc3RhdGVtZW50LiBQbGVh c2Uga2VlcCB0aGUNCiAgIGFuYWx5c2lzIGF0IHRlY2huaWNhbCBpbnN0ZWFkIG9mIG1hcmtldGlu ZyBsZXZlbC4NCg0KICAgKioqKiBXZSBhZGRyZXNzIGFsbCA0IHByb2JsZW1zOg0KDQoNCg0KWWFu ZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAg ICAgW1BhZ2UgNjNdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQIEFyY2guIFRh eG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICAtIE1hbmFnZW1lbnQgYW5k IENvbnRyb2w6IFRoZSBDb250cm9sbGVycyBzZXJ2ZSBmaXJtd2FyZSBhbmQNCiAgIGNvbmZpZ3Vy YXRpb24gdG8gdGhlIHRoaW4gQVBzIGFuZCB0aGUgdGhpbiBBUHMgcmVxdWlyZSB6ZXJvIG1hbnVh bA0KICAgY29uZmlndXJhdGlvbiwgc28gdGhlIG9ubHkgZW50aXRpZXMgdGhhdCBuZWVkIHRvIGJl IG1hbmFnZWQgYXJlIHRoZQ0KICAgQ29udHJvbGxlcnMgdGhlbXNlbHZlcy4NCg0KICAgLSBDb25m aWd1cmF0aW9uIENvbnNpc3RlbmN5OiBTaW5jZSB0aGUgQ29udHJvbGxlcnMgYXV0b21hdGljYWxs eQ0KICAgY29udHJvbCBjb25maWd1cmF0aW9uIGFjcm9zcyBhbGwgdGhpbiBBUHMsIGNvbmZpZ3Vy YXRpb24gY29uc2lzdGVuY3kNCiAgIGlzIG1haW50YWluZWQgYWNyb3NzIHRoZSBlbnRpcmUgV0xB TiBkZXBsb3ltZW50DQoNCiAgIC0gUlJNIHRvIG9wdGltaXplIFdMQU4gZWZmaWNpZW5jeTogQWdh aW4sIHNpbmNlIHRoZSBDb250cm9sbGVycyBzZWUNCiAgIGFsbCA4MDIuMTEgTUFDIHRyYWZmaWMg dGhleSBrbm93IHRoZSBpbnN0YW50YW5lb3VzIGxvYWQgb24gZWFjaCB0aGluDQogICBBUCwgYW5k IGNhbiBwZXJmb3JtIGxvYWQgYmFsYW5jaW5nLg0KDQogICAtIFVuYXV0aG9yaXplZCBBUHM6IENv bnRyb2xsZXJzIGFyZSBhd2FyZSBvZiBhbnkgVW5hdXRob3JpemVkIEFQcyBhbmQNCiAgIGNhbiBk ZXRlY3QgYW5kIHByZXZlbnQgdGhlaXIgdXNlLg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KWWFuZyAoRWRpdG9y KSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAgICAgW1BhZ2Ug NjRdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQIEFyY2guIFRheG9ub215ICAg ICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQpBcHBlbmRpeCBILiAgU3VydmV5IENvbnRyaWJ1 dGlvbiBGb3IgQXJjaGl0ZWN0dXJlIDcNCg0KICAgKDEpIERlc2lnbiBjb25zaWRlcmF0aW9ucyBh bmQgcmVxdWlyZW1lbnRzOg0KDQogICBHb2FsOiBPZmZlciBhbiBlYXN5LXRvLXVzZSBzb2x1dGlv biBmb3IgbGFyZ2UgaW5zdGFsbGF0aW9ucyBvZiBBUHMgaW4NCiAgIHRlcm1zIG9mIHByb3Zpc2lv bmluZywgY29udHJvbGxpbmcsIHNjYWxhYmlsaXR5LCBwbHVnJnBsYXksIGFuZA0KICAgbW9iaWxp dHkgYWNyb3NzIHN1Ym5ldHMvdmxhbnMuDQoNCiAgIEluIGEgbnV0c2hlbGwsIHRoZSA4MDIuMTEg cHJvdG9jb2wgc3VpdGUgdGVybWluYXRlIGF0IHRoZSBBUCwgd2hpY2gNCiAgIHRyYW5zbGF0ZXMg ODAyLjExIGRhdGEgZnJhbWVzIHRvIDgwMi4zIGZyYW1lcyBhbmQgc2VuZCB0aGVtIHRvIHRoZQ0K ICAgQUMuIEFsbCBTVEEgdHJhZmZpYyBoaXQgdGhlIEFDLiBBQyBwcm92aXNpb24gYW5kIGNvbnRy b2wgQVAuIFdMQU4NCiAgICJjb250cm9sIiBjYXBhYmlsaXRpZXMgYXJlIGVtYmVkZGVkIGF0IHRo ZSBBQy4NCg0KICAgKDIpIFdMQU4gZnVuY3Rpb25zIHN1cHBvcnRlZDoNCg0KICAgQWxsIDgwMi4x MSBzZXJ2aWNlcyBhcmUgc3VwcG9ydGVkOg0KDQogICBBUCByZXNwb25zaWJpbGl0aWVzOg0KDQog ICAtIDgwMi4xMSBNQUMNCg0KICAgLSBXRVAvV1BBIEVuY3J5cHRpb24vRGVjcnlwdGlvbg0KDQog ICBBQyByZXNwb25zaWJpbGl0aWVzOg0KDQogICAtIFNUQSBzZXJ2aWNlcyAoYXV0aGVudGljYXRp b24sIGFzc29jaWF0aW9uLCBldGMuKQ0KDQogICAtIEludGVncmF0aW9uDQoNCiAgIC0gRGlzdHJp YnV0aW9uDQoNCiAgIC0gTG9hZCBCYWxhbmNpbmcNCg0KICAgLSBSb2d1ZSBBUCBkZXRlY3Rpb24N Cg0KICAgLSBNYW5hZ2luZyBhbmQgY29udHJvbGxpbmcgQVBzDQoNCiAgIC0gTW9iaWxpdHkNCg0K ICAgLSBBQ0wvUW9TIHBvbGljaWVzLg0KDQogICAoNCkgVGhlIHByb3RvY29sIHVzZWQgaW4gYmV0 d2VlbiBBUCBhbmQgQUMuDQoNCiAgIFRoZSBBQyBhbmQgdGhlIEFQcyBjb21tdW5pY2F0ZSB1c2lu ZyBhIHByb3ByaWV0YXJ5IFVEUCB0cmFuc3BvcnQsDQogICB3aGljaCBpcyBlbmNyeXB0ZWQuDQoN CiAgICg1KSBUaGUgdG9wb2xvZ2ljYWwgYXNzdW1wdGlvbnMgYmV0d2VlbiBBUCBhbmQgQUMNCg0K DQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAg ICAgICAgICAgICAgW1BhZ2UgNjVdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQ IEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICBBdCBwcmVz ZW50IG9ubHkgZGlyZWN0IGNvbm5lY3Rpb24gaXMgc3VwcG9ydGVkLiBUaGUgbmV4dCBzdGVwIHdv dWxkDQogICBiZSB0byBzdXBwb3J0IGNvbm5lY3Rpb25zIGFjcm9zcyBsYXllciAyIGFuZCAzLg0K DQogICAoNikgU2VjdXJpdHkgdGhyZWF0IGFuYWx5c2lzOiB3aGF0IGtpbmRzIG9mIHRocmVhdCBp bnRyb2R1Y2VkIGJ5IHRoZQ0KICAgc3BsaXQgYXJjaGl0ZWN0dXJlLGFuZCBob3cgdGhhdCBhcmUg YWRkcmVzc2VkLg0KDQogICBTZXZlcmFsIGFzcGVjdHMgb2Ygc2VjdXJpdHkgdGhyZWF0cyB3ZXJl IGFkZHJlc3NlZDoNCg0KICAgU1RBIHRyYWZmaWMgT3ZlciB0aGUgQWlyIC0gQVAgcmVzcG9uc2li aWxpdHkgKFdFUCwgV1BBLCBldGMnKQ0KDQogICBBQyB0byBBUCBjb250cm9sL3Byb3Zpc2lvbiAt IGNvbW11bmljYXRpb24gaXMgYXV0aGVudGljYXRlZCBhbmQNCiAgIGVuY3J5cHRlZCBvdmVyIGEg cHJpdmF0ZSBVRFAgY29tbXVuaWNhdGlvbiBjaGFubmVsLg0KDQogICBBQyB0byBBQyAtIEF1dGhl bnRpY2F0aW9uIGFuZCBlbmNyeXB0aW9uIG92ZXIgcHJpdmF0ZSBVRFANCiAgIGNvbW11bmljYXRp b24gY2hhbm5lbC4NCg0KICAgQUMgdG8gQUFBIC0gU3RhbmRhcmQuDQoNCiAgIEFDIHRvIE1hbmFn ZW1lbnQgc3RhdGlvbiAtIFNlY3VyaXR5IG92ZXIgc3RhbmRhcmQgbWFuYWdlbWVudCB0b29sDQog ICBzdWNoIGFzIFNTSC4NCg0KICAgKDcpIFByb3MgYW5kIENvbnMgb2YgdGhpcyBhcmNoaXRlY3R1 cmUNCg0KICAgUHJvYmxlbSAxOiBFYWNoIEFQIGlzIGFuIElQLWFkZHJlc3NhYmxlIGRldmljZSBy ZXF1aXJpbmcgbWFuYWdlbWVudCwNCiAgIG1vbml0b3JpbmcsIGFuZCBjb250cm9sIC0gQUMgc2Vy dmVzIGFzIGEgcHJveHkgZm9yIG1hbmFnaW5nIGxhcmdlDQogICBzY2FsZSBBUHMuDQoNCiAgIFBy b2JsZW0gMjogTWFpbnRhaW5pbmcgYSBjb25zaXN0ZW50IGNvbmZpZ3VyYXRpb24gdGhyb3VnaG91 dCB0aGUNCiAgIGVudGlyZSBzZXQgb2YgYWNjZXNzIHBvaW50cyBpbiB0aGUgV0xBTiAtIENlbnRy YWwgbWFuYWdlbWVudA0KICAgYXBwbGljYXRpb24gdG8gY29uZmlndXJlIGFsbCBBQyBpbiBhIHdp cmVsZXNzIGRvbWFpbi4NCg0KICAgUHJvYmxlbSAzOiBQYXJhbWV0ZXJzIGNvbnRyb2xsaW5nIHRo ZSB3aXJlbGVzcyBtZWRpdW0gb24gZWFjaCBBUCBtdXN0DQogICBiZSBtb25pdG9yZWQgZnJlcXVl bnRseSAuLi4gLSBwYXJ0aWFsbHkgc3VwcG9ydGVkLCBBQ3MgbW9uaXRvcmluZw0KICAgY29ubmVj dGVkIEFQcyB0byBwcm92aWRlIGluZm9ybWF0aW9uIHRvIGNlbnRyYWwgbWFuYWdlbWVudCBzdGF0 aW9uLg0KDQogICBQcm9ibGVtIDQ6IFNlY3VyaW5nIGFjY2VzcyB0byB0aGUgbmV0d29yayBhbmQg cHJldmVudGluZyBpbnN0YWxsYXRpb24NCiAgIG9mIHVuYXV0aG9yaXplZCBhY2Nlc3MgcG9pbnRz ICYgTXV0dWFsIGF1dGhlbnRpY2F0aW9uIG9mIEFDIGFuZCBBUC4NCiAgIFN1cHBsZW1lbnRhcnkg ZnVuY3Rpb25hbGl0eSBpbiB0aGUgc2hhcGUgb2YgUm9ndWUgQVAgZGV0ZWN0aW9uLg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBPY3Rv YmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA2Nl0NCgwNCkludGVybmV0LURyYWZ0ICAg ICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAwNA0K DQoNCkFwcGVuZGl4IEkuICBTdXJ2ZXkgQ29udHJpYnV0aW9uIEZvciBBcmNoaXRlY3R1cmUgOA0K DQogICAoMSkgRGVzaWduIGNvbnNpZGVyYXRpb25zIGFuZCByZXF1aXJlbWVudHM6DQoNCiAgIFRo ZSBvcGVyYXRpb25hbCBhbmQgbmV0d29yayBtYW5hZ2VtZW50IGNoYWxsZW5nZXMgZm9yIGxhcmdl IHNjYWxlDQogICAodGhvdXNhbmRzIG9mIEFQcykgd2lyZWxlc3MgTEFOcyBlbmNvbXBhc3MgYm90 aCB0aGUgODAyLjExIGxheWVyIGFzDQogICB3ZWxsIGFzIHRoZSB3aXJlZCBzaWRlIHRvcG9sb2dp Y2FsIGludGVyYWN0aW9ucy4gIFRoZSBjb25zaWRlcmF0aW9ucw0KICAgYW5kIHJlcXVpcmVtZW50 cyBmb3IgdGhlIGFyY2hpdGVjdHVyZSBwcmVzZW50ZWQgYmVsb3cgYXJlOg0KDQogICAtIHRydWUg bGF5ZXIgMyBtb2JpbGl0eSBmb3Igd2lyZWxlc3MgbW9iaWxlIGNsaWVudHMgYXMgdGhleSBtb3Zl IGZyb20NCiAgIG9uZSBBUCB0byBhbm90aGVyDQoNCiAgIC0gV0xBTiBzeXN0ZW0gc2NhbGFiaWxp dHkgLSBBIHNpbmdsZSBBQyBzaG91bGQgYmUgYWJsZSB0byBjb250cm9sIGFuZA0KICAgbWFuYWdl IGEgbGFyZ2UgbnVtYmVyIG9mIEFQcyAoMTAwJ3Mgb2YgQVBzKQ0KDQogICAtIG5lYXIgcmVhbCB0 aW1lIFJGIG1hbmFnZW1lbnQNCg0KICAgLSBjZW50cmFsaXplZCB0cmFmZmljIHBvbGljeSBtYW5h Z2VtZW50IGFuZCBlbmZvcmNlbWVudA0KDQogICAtIGNlbnRyYWxpemVkIGNvbnRyb2wgYW5kIG1h bmFnZW1lbnQgb2YgdGhlIEFQcw0KDQogICAtIGNlbnRyYWxpemVkIHVzZXIgbWFuYWdlbWVudA0K DQogICAtIGFyY2hpdGVjdHVyZSBtdXN0IGJlIGV4dGVuc2libGUgdG8gb3RoZXIgcmFkaW8gdGVj aG5vbG9naWVzDQoNCiAgIC0gYXJjaGl0ZWN0dXJlIG11c3QgYmUgYWJsZSB0byBmYWNpbGl0YXRl IG1vYmlsaXR5IGJldHdlZW4gZGlmZmVyZW50DQogICBNQUMgYXJjaGl0ZWN0dXJlcyAoZS5nLiwu IHdvcmsgYmVpbmcgZG9uZSBpbiBJRUVFIDgwMi4yMSBhbmQgSVJURg0KICAgTU9CT1BUUykNCg0K ICAgQWxzbywgYmVjYXVzZSBvZiB0aGUgcmVxdWlyZW1lbnQgZm9yIHRoZSBkZXBsb3ltZW50IG9m IHZlcnkgbGFyZ2UNCiAgIHNjYWxlIFdMQU5zIGFuZCB0aGUgZmFjdCB0aGF0IHRoZXNlIFdMQU5z IG11c3QgaW50ZWdyYXRlIGludG8NCiAgIGV4aXN0aW5nIHdpcmVkIGluZnJhc3RydWN0dXJlcywg dGhlcmUgc2hvdWxkIGJlIG5vIGNvbnNpZGVyYXRpb24gKG9yDQogICBmdWxsIGZsZXhpYmlsaXR5 KSBvbiB0aGUgdG9wb2xvZ2ljYWwgZGVwbG95bWVudCBvZiBBQ3MgYW5kIEFQcy4NCg0KICAgKDIp IFdMQU4gZnVuY3Rpb25zIHN1cHBvcnRlZDoNCg0KICAgQWNjZXNzIFBvaW50Og0KICAgICAgLSBB bGwgODAyLjExIHNlcnZpY2VzIGluY2x1ZGluZw0KICAgICAgICAgLSBhc3NvY2lhdGlvbi9kaXNh c3NvY2lhdGlvbi9yZWFzc29jaWF0aW9uDQogICAgICAgICAtIGF1dGhlbnRpY2F0aW9uDQogICAg ICAgICAtIGludGVncmF0aW9uDQogICAgICAgICAtIGRpc3RyaWJ1dGlvbg0KICAgICAgICAgLSBS b2J1c3QgU2VjdXJpdHkgKDgwMi4xMWkpDQogICAgICAgICAtIFFPUyAoODAyLjExZSkNCiAgICAg IC0gcmFkaW8gcmVzb3VyY2UgbWFuYWdlbWVudCBpbmNsdWRpbmcgbG9hZCBiYWxhbmNpbmcgYW5k IFJGDQogICAgICBtYW5hZ2VtZW50DQogICAgICAtIGJyaWRnaW5nICg4MDIuMTEgdG8gODAyLjMp DQoNCg0KDQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIw MDQgICAgICAgICAgICAgIFtQYWdlIDY3XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENB UFdBUCBBcmNoLiBUYXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0KICAgICAg LSBsaW5rIHN0YXRlIHRyYW5zaXRpb24gbm90aWZpY2F0aW9uIHRvIHRoZSBBQyhzKQ0KDQogICBB Y2Nlc3MgQ29udHJvbGxlcjoNCiAgICAgIC0gY2VudHJhbGl6ZWQgZm9yd2FyZGluZyAocm91dGlu ZyksIGF1dGhlbnRpY2F0aW9uLCBlbmNyeXB0aW9uIGFuZA0KICAgICAgcG9saWN5IGVuZm9yY2Vt ZW50IG9mIG1vYmlsZSBjbGllbnQgdHJhZmZpYw0KICAgICAgLSBjb250cm9sIGFuZCBjb25maWd1 cmF0aW9uIG9mIEFQDQogICAgICAtIFFPUyBwb2xpY3kgZW5mb3JjZW1lbnQgYW5kIG1hbmFnZW1l bnQNCiAgICAgIC0gdXNlciBhY2Nlc3MgY29udHJvbA0KDQogICAoMykgRnVuY3Rpb25hbCBhcmNo aXRlY3R1cmU6DQogICAgICAtIEFDIG1hbmFnZXMgYW5kIGNvbnRyb2xzIEFQcw0KICAgICAgLSBM MyBzdGF0ZSBhbmQgdXNlciBzZXNzaW9ucyBhcmUgbWFpbnRhaW5lZCBhbmQgbWFuYWdlZCBhdCB0 aGUgQUMNCiAgICAgIC0gTDIgc3RhdGUgYW5kIHVzZXIgc2Vzc2lvbnMgbWFpbnRhaW5lZCBhdCB0 aGUgQVAgYW5kIGFsbCBzdGF0ZQ0KICAgICAgaW5mb3JtYXRpb24gaXMgbWlycm9yZWQgYXQgdGhl IEFDDQogICAgICAtIFRoZSA4MDIuMTEgTUFDIGlzICJub3QiIHNwbGl0LiAgSG93ZXZlciwgaXQg aXMgY29udHJvbGxlZA0KICAgICAgY2VudHJhbGx5IGF0IHRoZSBBQw0KDQogICAoNCkgVGhlIHBy b3RvY29sIHVzZWQgaW4gYmV0d2VlbiBBUCBhbmQgQUM6DQoNCiAgIEEgVURQIGJhc2VkIHR1bm5l bGxpbmcgcHJvdG9jb2wgdGhhdCBoYXMgYSBjb250cm9sIGNoYW5uZWwgYW5kIGEgZGF0YQ0KICAg Y2hhbm5lbC4gIFRoZSBjb250cm9sIGNoYW5uZWwgY2FycmllcyBBUCBjb25maWd1cmF0aW9uIGFu ZCBzdGF0ZQ0KICAgY29tbWFuZHMgZnJvbSB0aGUgQUMuICBBbHNvLCBpdCBjYXJyaWVzIGluZm9y bWF0aW9uIHJlZ2FyZGluZyBBUA0KICAgc3RhdGUgdHJhbnNpdGlvbnMgYW5kIHN0YXRpc3RpY3Mg ZnJvbSB0aGUgQVAgdG8gdGhlIEFDLiBUaGUgZGF0YSBwYXRoDQogICBpcyBzaW1wbHkgdGhlIGVu Y2Fwc3VsYXRpb24gb2YgODAyLjMgYnJpZGdlZCBkYXRhLiAgVGhlIGRhdGEtcGF0aA0KICAgY2hh bm5lbCBpcyBvcHRpb25hbC4gSUUuLCBpZiBjb25maWd1cmVkLCB0aGUgZGF0YSBwYXRoIGNhbiBi ZSBicmlkZ2VkDQogICBsb2NhbGx5IGZyb20gdGhlIEFQIGFuZCB0aGUgZGF0YSBkb2VzIG5vdCBu ZWNlc3NhcmlseSBoYXZlIHRvIGdvDQogICB0aHJvdWdoIHRoZSBBQy4NCg0KICAgKDUpIFRoZSB0 b3BvbG9naWNhbCBhc3N1bXB0aW9ucyBiZXR3ZWVuIEFQIGFuZCBBQzoNCg0KICAgVGhlIEFDIGFu ZCBBUCBjYW4gYmUgZGlyZWN0bHkgY29ubmVjdGVkIHRvIGVhY2ggb3RoZXIsIGNvdWxkIGJlDQog ICBjb25uZWN0ZWQgdGhyb3VnaCBMMiBzd2l0Y2hlcyBvciBhbnkgYXJiaXRyYXJ5IEwzIGNsb3Vk LiAgVGhlDQogICBhcmNoaXRlY3R1cmUgaXMgdG9sZXJhbnQgdG8gaGlnaGVyIGxhdGVuY3kgYmV0 d2VlbiBBUCBhbmQgQUMuDQoNCiAgICg2KSBTZWN1cml0eSB0aHJlYXQgYW5hbHlzaXM6IHdoYXQg a2luZHMgb2YgdGhyZWF0IGludHJvZHVjZWQgYnkgdGhlDQogICBzcGxpdCBhcmNoaXRlY3R1cmUs IGFuZCBob3cgdGhvc2UgYXJlIGFkZHJlc3NlZC4NCg0KICAgU2luY2UgdGhlIEFQIGFuZCBBQyBj YW4gYmUgc2VwYXJhdGVkIG92ZXIgYW55IGFyYml0cmFyeSBMMyBjbG91ZCwNCiAgIGZpcnN0IGFu ZCBmb3JlbW9zdCB0aGVyZSBpcyBhIG5lZWQgZm9yIGEgc2VjdXJlIGJpbmRpbmcgYmV0d2VlbiB0 aGUNCiAgIEFDIGFuZCBBUC4gIEEgY29udHJvbCBjaGFubmVsIHNlY3VyaXR5IGFzc29jaWF0aW9u IGlzIHJlcXVpcmVkDQogICBiZXR3ZWVuIHRoZSBBQyBhbmQgQVAuICBUaGUgQUMgYW5kIEFQIG11 c3QgZ28gdGhyb3VnaCBhIG11dHVhbA0KICAgYXV0aGVudGljYXRpb24gcGhhc2UgZHVyaW5nIGEg ZGlzY292ZXJ5IGFuZCByZWdpc3RyYXRpb24gcHJvY2VzcyBhbmQNCiAgIGZvcm0gYSBzZWN1cml0 eSBhc3NvY2lhdGlvbi4gIFRoZSB0cmFmZmljIGlzIGNvbmZpbmVkIHRvIGNvbnRyb2wsDQogICBj b25maWd1cmF0aW9uIGFuZCBtYW5hZ2VtZW50IHRyYWZmaWMgYmV0d2VlbiB0aGUgQUMgYW5kIEFQ Lg0KDQogICBUaGVyZSBpcyBhbiBvcHRpb25hbCBkYXRhIHBhdGggc2VjdXJpdHkgYXNzb2NpYXRp b24gdGhhdCBjYW4gYWxzbyBiZQ0KICAgY3JlYXRlZC4gIEl0IGlzIGJlbGlldmVkIHRoYXQgZm9y IHNlY3VyaXR5IHNlbnNpdGl2ZSBhcHBsaWNhdGlvbnMgYW5kDQogICBkZXBsb3ltZW50cyB0aGVy ZSB3aWxsIGFsd2F5cyBiZSBhbiBlbmQgdG8gZW5kIGVuY3J5cHRlZCB0dW5uZWwuDQoNCg0KDQpZ YW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAg ICAgICBbUGFnZSA2OF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4g VGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAwNA0KDQoNCiAgIFRoZXJlZm9yZSwgYSBk YXRhIHBhdGggZW5jcnlwdGlvbiBtZWNoYW5pc20gaXMgY29uc2lkZXJlZCBvcHRpb25hbA0KICAg YW5kIGNvbmZpZ3VyYWJsZSBiYXNlZCBvbiBzZWN1cml0eSBwb2xpY3kuDQoNCiAgIFNUQSBhdXRo ZW50aWNhdGlvbiBhbmQgc2VjdXJpdHkgcG9saWN5IGVuZm9yY2VtZW50IGlzIGRvbmUgY2VudHJh bGx5DQogICBpbiB0aGUgQUMuDQoNCiAgIE92ZXIgdGhlIGFpciBwcml2YWN5IGFuZCBhdXRoZW50 aWNhdGlvbiBiZXR3ZWVuIHRoZSBTVEFzIGFuZCBBUHMgaXMNCiAgIGFjY29tcGxpc2hlZCBieSBz dGFuZGFyZCA4MDIuMTEgcHJpdmFjeSBtZXRob2RzLiAgVGhlIFJTTiBzZXJ2aWNlIGlzDQogICB0 aGUgcmVjb21tZW5kZWQgbWV0aG9kIGZvciBvdmVyIHRoZSBhaXIgcHJpdmFjeSBhbmQgYXV0aGVu dGljYXRpb24uDQoNCiAgICg3KSBQcm9zIGFuZCBDb25zIG9mIHRoaXMgYXJjaGl0ZWN0dXJlLCBl c3AuIGluIHJlbGF0aW9uIHRvIHRoZSBmb3VyDQogICBwcm9ibGVtcyBkZXNjcmliZWQgaW4gdGhl IENBUFdBUCBwcm9ibGVtIHN0YXRlbWVudC4gUGxlYXNlIGtlZXAgdGhlDQogICBhbmFseXNpcyBh dCB0ZWNobmljYWwgaW5zdGVhZCBvZiBtYXJrZXRpbmcgbGV2ZWwuDQoNCiAgIFByb3M6DQoNCiAg IC0gSW4gdGhpcyBjZW50cmFsaXplZCBhcmNoaXRlY3R1cmUsIHRoZSBBQyBhbmQgQVAgY2FuIGJl IHNlcGFyYXRlZCBieQ0KICAgYW4gYXJiaXRyYXJ5IEwzIGNsb3VkIHdoaWNoIGluIHR1cm4gZW5h YmxlcyBsYXJnZSBnZW9ncmFwaGljDQogICBkaXN0cmlidXRpb24gb2YgQVBzIHdpdGhpbiB0aGUg Y2xvdWQuDQoNCiAgIC0gVGhpcyBhcmNoaXRlY3R1cmUgaXMgYWdub3N0aWMgdG8gdGhlIHVuZGVy bHlpbmcgd2lyZWQgbWVkaXVtDQogICBjb25uZWN0aW5nIHRoZSBBUCBhbmQgQUMuDQoNCiAgIC0g VGhpcyBhcmNoaXRlY3R1cmUgaXMgYWdub3N0aWMgdG8gdGhlIEFQIE1BQyBhbmQgcmFkaW8gdGVj aG5vbG9neS4NCg0KICAgLSBTaW5jZSB0aGUgTUFDIGlzIG5vdCBzcGxpdCwgdGhpcyBhcmNoaXRl Y3R1cmUgc3VwcG9ydHMgYSBkZXBsb3ltZW50DQogICB3aGVyZSB0aGUgZGF0YSBwYXRoIGlzIG5v dCByZXF1aXJlZCB0byB0cmF2ZWwgdGhyb3VnaCB0aGUgQUMuICBUaGlzDQogICBtYXkgYmUgdXNl ZnVsIGluIHRoZSAiYnJhbmNoIG9mZmljZSIgc2NlbmFyaW8gd2hlcmUgdGhlIEFDIG1heSByZXNp ZGUNCiAgIGluIGEgZGF0YSBjZW50ZXIgYW5kIHRoZSBBUCBjb25uZWN0cyB0byBpdCBvdmVyIGEg c2xvdyBXQU4gbGluay4NCiAgIEhvd2V2ZXIsIHRoZSBvcGVyYXRpb25hbCBjb250cm9sIGFuZCBt YW5hZ2VtZW50IG9mIHRoZSBBUCBpcyBkb25lIGJ5DQogICB0aGUgQUMuDQoNCiAgIC0gVGhlIHBy b2JsZW1zIGRlZmluZWQgaW4gZHJhZnQtaWV0Zi1jYXB3YXAtcHJvYmxlbS1zdGF0ZW1lbnQtMDAu dHh0DQogICBhcmUgYWxzbyBhZGRyZXNzZWQgYnkgdGhpcyBhcmNoaXRlY3R1cmUuDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGly ZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAgICAgW1BhZ2UgNjldDQoMDQpJbnRlcm5ldC1E cmFmdCAgICAgICAgICAgQ0FQV0FQIEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmls IDIwMDQNCg0KDQpBcHBlbmRpeCBKLiAgU3VydmV5IENvbnRyaWJ1dGlvbiBGb3IgQXJjaGl0ZWN0 dXJlIDkNCg0KICAgKDEpIERlc2lnbiBjb25zaWRlcmF0aW9ucyBhbmQgcmVxdWlyZW1lbnRzOiBw bGVhc2UgYnJpZWZseSBkZXNjcmliZQ0KICAgeW91ciBkZXNpZ24gcHJpbmNpcGxlcyBmb3IgdGhp cyBhcmNoaXRlY3R1cmUuDQoNCiAgIFRoZSBnb2FscyBhcmUNCg0KICAgMS4gU2ltcGxpZnkgV0xB TiBsaWZlLWN5Y2xlIG1hbmFnZW1lbnQgLSBpbmNsdWRpbmcgZGVzaWduLA0KICAgZGVwbG95bWVu dCwgYW5kIG1hbmFnZW1lbnQuDQoNCiAgIDIuIFNpbWlsYXIgdXNlciBleHBlcmllbmNlIG9uIFdM QU4gYW5kIEV0aGVybmV0IC0gV0xBTiBzaG91bGQgcHJvdmlkZQ0KICAgc2FtZSBsZXZlbCBvZiBu ZXR3b3JraW5nIHNlcnZpY2VzIGFzIEV0aGVybmV0LiBVc2VyIHNob3VsZCBmZWVsIG5vDQogICBk aWZmZXJlbmNlIHdoZW4gcnVubmluZyBhcHBsaWNhdGlvbiBvbiB3aXJlZCBWLlMuIHdpcmVsZXNz IG5ldHdvcmsuDQogICBBbHNvLCBuZXR3b3JrIGFkbWluaXN0cmF0b3JzIHNob3VsZCBiZSBhYmxl IHRvIG1hbmFnZSBXTEFOIHRoZSBzYW1lDQogICB3YXkgYXMgbWFuYWdpbmcgd2lyZWQgbmV0d29y ay4NCg0KICAgSW4gdGhpcyBhcmNoaXRlY3R1cmUsIEFDIHBlcmZvcm1zIFdMQU4gY29uZmlndXJh dGlvbiwgbW9uaXRvcmluZywgYW5kDQogICBwb2xpY3kgbWFuYWdlbWVudCBmdW5jdGlvbi4gSXQg Y29udHJvbHMgYW5kIG1hbmFnZXMgQVBzLiBBQyBhbHNvDQogICBjb2xsZWN0cyBpbmZvcm1hdGlv biBmcm9tICBBUHMgYW5kLCBiYXNlZCBvbiBjb25maWd1cmF0aW9uLCBwdXNoIGRvd24NCiAgIHBv bGljaWVzIGludG8gaW5kaXZpZHVhbCBBUHMuIEl0IGFsc28gc2VydmVzIGFzIHByb3h5IGZvciBp bnRlcmFjdGluZw0KICAgd2l0aCBhbGwgZXh0ZXJuYWwgbmV0d29ya2luZyBjb21wb25lbnRzKGUu Zy4gUkFESVVTIHNlcnZlcikuDQoNCiAgIEFQIGltcGxlbWVudCBhbGwgdGhlIDgwMi4xMSBhY2Nl c3MgcG9pbnQgZnVuY3Rpb24sIGluY2x1ZGluZyBhbGwgdGhlDQogICBQTE1FLCBNTE1FLCBTVEEg c2VydmljZXMsIERTLCBhbmQgYnJpZGdpbmcgZnVuY3Rpb25zLg0KDQogICAoMikgV0xBTiBmdW5j dGlvbnMgc3VwcG9ydGVkOg0KDQogICBQbGVhc2UgbGlzdCB0aGUgZnVuY3Rpb25zIHN1cHBvcnRl ZCBpbiB0aGlzIFdMQU4gYnJpZWZseSwgYnV0IHBsZWFzZQ0KICAgZG8gbm90IHNlbmQgdXMgdGhl IGVudGlyZSBkYXRhIHNoZWV0LiBFeGFtcGxlcyBvZiBXTEFOIGZ1bmN0aW9ucw0KICAgaW5jbHVk ZXMgYWxsIHRoZSBTVEEgc2VydmljZXMsIERpc3RyaWJ1dGVkIFN5c3RlbSBTZXJ2aWNlcyAoYXMN CiAgIGRlZmluZWQgYnkgODAyLjExKSwgcmFkaW8gcmVzb3VyY2UgbWFuYWdlbWVudCBhbmQgY29u dHJvbCwgbG9hZA0KICAgYmFsYW5jaW5nLCBtb2JpbGl0eSBzdXBwb3J0LCBXTEFOIG5ldHdvcmsg d2lkZSBzZWN1cml0eSBmdW5jdGlvbnMNCiAgIChpbmNsdWRpbmcgYXV0aGVudGljYXRpb24sIGVu Y3J5cHRpb24gZm9yIHByaXZhY3kgYW5kIGludGVncml0eSwNCiAgIGV0Yy4pIGFuZCBhbnkgb3Ro ZXJzIG5vdCBsaXN0ZWQgaGVyZSBidXQgZGVlbWVkIGltcG9ydGFudCBpbiB5b3VyDQogICBkZXNp Z24uDQoNCiAgIEFsbCA4MDIuMTEgQVAgZnVuY3Rpb25zIGFyZSBwcm92aWRlZC4gVGhhdCBpbmNs dWRlcw0KDQogICAxLiBEaXN0cmlidXRpb24gU3lzdGVtIFNlcnZpY2VzLg0KDQogICAyLiBSYWRp byByZXNvdXJjZXMgbWFuYWdlbWVudCAtIGNoYW5uZWwgc2VsZWN0aW9uLCBpbnRlcmZlcmVuY2UN CiAgIGRldGVjdGlvbiBhbmQgYXZvaWRhbmNlLCBjZWxsLXNpemUgY29udHJvbC4NCg0KICAgMy4g TG9hZCBiYWxhbmNpbmcuDQoNCiAgIDQuIFNlY3VyaXR5Lg0KDQogICA1LiBQb3dlciBzYXZlIG1v ZGUuDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAy MDA0ICAgICAgICAgICAgICBbUGFnZSA3MF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBD QVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAwNA0KDQoNCiAgIDYu IFFvUy4NCg0KICAgNy4gU3RhdGlvbiBzZXJ2aWNlcy4NCg0KICAgOC4gQnJpZGdpbmcuDQoNCiAg IEJlc2lkZXMgdGhlIGxpc3QgYWJvdmUsIHRoaXMgV0xBTiBzeXN0ZW0gcHJvdmlkZXMgdGhlIGZv bGxvd2luZw0KICAgZnVuY3Rpb25zOg0KDQogICAxLiBSb2d1ZSBBUC9BZC1ob2MgbmV0d29yayBk ZXRlY3Rpb24gYW5kIGNvbnRhaW5tZW50Lg0KDQogICAyLiBMb2NhdGlvbiBiYXNlZCBhdXRoZW50 aWNhdGlvbiBjb250cm9sLg0KDQogICAzLiBEeW5hbWljIFZMQU4gYXNzaWdubWVudCBiYXNlZCBv biBhdXRoZW50aWNhdGlvbiBJRC4NCg0KICAgNC4gUW9TDQoNCiAgIDUuIEFDTA0KDQogICA2LiBM Mi9MMy4NCg0KICAgNy4gTXVsdGlwbGUgVkxBTiBwZXIgcmFkaW8uDQoNCiAgIDguIE11bHRpcGxl IFNTSUQgcGVyIEFQLg0KDQogICA5LiBEeW5hbWljIDgwMi4xcC9xIHRhZyBhc3NpZ25tZW50IGJh c2VkIG9uIHVzZXIvbG9jYXRpb24vDQogICBhcHBsaWNhdGlvbi4NCg0KICAgKDMpIFRoZSBmdW5j dGlvbmFsIGFyY2hpdGVjdHVyZSB0byBpbXBsZW1lbnQgdGhlIGZ1bmN0aW9ucyBkZXNjcmliZWQN CiAgIGFib3ZlOiB3aGV0aGVyIGl0IGlzIGJ5IGF1dG9ub21vdXMgQVAgYXJjaGl0ZWN0dXJlLCBv ciAic3BsaXQiDQogICBhcmNoaXRlY3R1cmUuIEZvciBzcGxpdCBhcmNoaXRlY3R1cmUsIHBsZWFz ZSBwcm92aWRlIHRoZSBmdW5jdGlvbmFsDQogICBtYXBwaW5nIG9mIFdMQU4gZnVuY3Rpb25zIG9u dG8gdGhlIEFQIGFuZCBBQyAtLSB3aXRoIGp1c3QgZW5vdWdoDQogICBkZXRhaWxzIHRoYXQgaGVs cCB1cyB1bmRlcnN0YW5kIHRoZSBraW5kcyBvZiBmdW5jdGlvbmFsIGludGVyZmFjZQ0KICAgbmVj ZXNzYXJ5IGJldHdlZW4gdGhlIHR3by4NCg0KICAgVGhpcyBXTEFOIHN5c3RlbSBpcyBhIHNwbGl0 IGFyY2hpdGVjdHVyZSBzeXN0ZW0uDQoNCiAgIEFDIGluY2x1ZGVzIHRoZSBmb2xsb3dpbmcgZnVu Y3Rpb25zOg0KDQogICAxLiBDb25maWd1cmF0aW9uIGludGVyZmFjZS4NCg0KICAgMi4gTWFuYWdl bWVudC4NCg0KICAgMy4gUG9saWN5IGNvbnRyb2wuDQoNCiAgIDQuIEwyL0wzLg0KDQogICA1LiBQ cm94eSBSQURJVVMuDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBPY3Rv YmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA3MV0NCgwNCkludGVybmV0LURyYWZ0ICAg ICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAwNA0K DQoNCiAgIDYuIEFDTC4NCg0KICAgNy4gQVAvQUMgaW1hZ2UgYW5kIGNvbmZpZ3VyYXRpb24gbWFu YWdlbWVudC4NCg0KICAgOC4gUkYgbW9uaXRvcmluZyAtIGNvcnJlbGF0aW9uIGJldHdlZW4gQVBz Lg0KDQogICBBUCBpbmNsdWRlcyB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uczoNCg0KICAgMS4gODAy LjExIE1BQy4NCg0KICAgMi4gTXVsdGlwbGUgU1NJRA0KDQogICAzLiBQb3dlciBtYW5hZ2VtZW50 Lg0KDQogICA0LiBSRiBtb25pdG9yaW5nIC0gZGF0YSBjb2xsZWN0aW9uLg0KDQogICA1LiA4MDIu MTEgc2VjdXJpdHkgLSBpbmNsdWRpbmcgV0VQIGFuZCA4MDIuMTFpIGRyYWZ0Lg0KDQogICA2LiBJ bnRlZ3JhdGlvbiBzZXJ2aWNlLg0KDQogICA3LiBMb2NhdGlvbiBzZXJ2aWNlLg0KDQogICAoNCkg VGhlIHByb3RvY29sIHVzZWQgaW4gYmV0d2VlbiBBUCBhbmQgQUMuDQoNCiAgIFRoZSBmb2xsb3dp bmcgc3RhbmRhcmQgcHJvdG9jb2xzIGFyZSB1c2VkOg0KDQogICAxLiBBZ2VudC1YIDogY29udHJv bCBhbmQgbWFuYWdlbWVudC4NCg0KICAgMi4gTExEUC9FRFAoUHJvcHJpZXRhcnkgZGlzY292ZXJ5 IHByb3RvY29sKSA6IEFQL0FDIGRpc2NvdmVyeS4NCg0KICAgMy4gVEZUUCA6IGltYWdlIHRyYW5z ZmVyIGZyb20gQUMgdG8gQVAuDQoNCiAgICg1KSBUaGUgdG9wb2xvZ2ljYWwgYXNzdW1wdGlvbnMg YmV0d2VlbiBBUCBhbmQgQUMgKGlzIGl0IGRpcmVjdGx5DQogICBjb25uZWN0ZWQsIEwyIHN3aXRj aGVkLCBvciBMMyByb3V0ZWQ/KSAtLSB0aGlzIGFsc28gaGVscHMgdXMgdG8NCiAgIHVuZGVyc3Rh bmQgdGhlIGRlcGxveW1lbnQgc2NlbmFyaW9zLg0KDQogICBUaGUgc3lzdGVtIHN1cHBvcnRzIEwx KGRpcmVjdCBjb25uZWN0KSwgTDIsIGFuZCBMMyBjb25uZWN0aW9uIGJldHdlZW4NCiAgIEFQIGFu ZCBBQy4NCg0KICAgKDYpIFNlY3VyaXR5IHRocmVhdCBhbmFseXNpczogd2hhdCBraW5kcyBvZiB0 aHJlYXQgaW50cm9kdWNlZCBieSB0aGUNCiAgIHNwbGl0IGFyY2hpdGVjdHVyZSwgYW5kIGhvdyB0 aGF0IGFyZSBhZGRyZXNzZWQuDQoNCiAgIDEuIEFQIGRvZXMgbm90IHN0b3JlIHJ1bnRpbWUgaW1h Z2UgYW5kIGNvbmZpZ3VyYXRpb24uIEJvdGggYXJlIHB1c2hlZA0KICAgZG93biBmcm9tIEFDLiBB QyB0YWtlcyBmdWxsIGNvbnRyb2wgb3ZlciBBUC4NCg0KICAgMi4gQ29udHJvbCB0cmFmZmljIGJl dHdlZW4gQVAgYW5kIEFDIGNhbiBiZSBlbmNyeXB0ZWQgdXNpbmcgU1NMLg0KDQogICAzLiBBUCBj YW4gYmUgYXV0aGVudGljYXRlZCBiYXNlZCBvbiBpZGVudGl0eSwgdGhhdCBpbmNsdWRlcyBNQUMs IElQLA0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwg MjAwNCAgICAgICAgICAgICAgW1BhZ2UgNzJdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAg Q0FQV0FQIEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICBz ZXJpYWwgbnVtYmVyLCBvciBkaWdpdGFsIGNlcnRpZmljYXRlLiBBQyBjYW4gYmUgYXV0aGVudGlj YXRlZCB2aWENCiAgIFg1MDkgY2VydGlmaWNhdGUuDQoNCiAgICg3KSBQcm9zIGFuZCBDb25zIG9m IHRoaXMgYXJjaGl0ZWN0dXJlLCBlc3AuIGluIHJlbGF0aW9uIHRvIHRoZSBmb3VyDQogICBwcm9i bGVtcyBkZXNjcmliZWQgaW4gdGhlIENBUFdBUCBwcm9ibGVtIHN0YXRlbWVudC4gUGxlYXNlIGtl ZXAgdGhlDQogICBhbmFseXNpcyBhdCB0ZWNobmljYWwgaW5zdGVhZCBvZiBtYXJrZXRpbmcgbGV2 ZWwuDQoNCiAgIEluc3RlYWQgb2YgbWFuYWdpbmcgQVBzLCB0aGlzIGFyY2hpdGVjdHVyZSBhbGxv d3MgdXNlciB0byBkZXBsb3ksDQogICBjb250cm9sLCBhbmQgbWFuYWdlIHdpcmVsZXNzIG5ldHdv cmtzLiBXaXRoIGRpc3RyaWJ1dGVkIGRhdGENCiAgIGZvcndhcmRpbmcsIGl0IG1haW50YWlucyB0 aGUgc2NhbGFiaWxpdHkgb2YgdGhlIGF1dG9ub21vdXMgQVANCiAgIGFyY2hpdGVjdHVyZS4gSXQg YWxzbyBwcm92aWRlcyBzYW1lIG5ldHdvcmtpbmcgc2VydmljZXMgYmV0d2Vlbg0KICAgRXRoZXJu ZXQgYW5kIFdpcmVsZXNzIG5ldHdvcmsgaW4gTGF5ZXIgMiwgTGF5ZXIgMywgYW5kIGJleW9uZC4N Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9j dG9iZXIgMTUsIDIwMDQgICAgICAgICAgICAgIFtQYWdlIDczXQ0KDA0KSW50ZXJuZXQtRHJhZnQg ICAgICAgICAgIENBUFdBUCBBcmNoLiBUYXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0 DQoNCg0KQXBwZW5kaXggSy4gIFN1cnZleSBDb250cmlidXRpb24gRm9yIEFyY2hpdGVjdHVyZSAx MA0KDQogICAoMSkgRGVzaWduIGNvbnNpZGVyYXRpb25zIGFuZCByZXF1aXJlbWVudHM6DQoNCiAg IC0gQWNjZXNzIENvbnRyb2xsZXIgbWFuYWdlcyBvbmUgb3IgbW9yZSBBY2Nlc3MgUG9pbnRzLiBB Y2Nlc3MNCiAgIENvbnRyb2xsZXJzIGNvbnRyb2wgYW5kIHByb3Zpc2lvbiB0aGUgdmFyaW91cyBh Y2Nlc3MgcG9pbnRzLg0KDQogICAtIEFjY2VzcyBDb250cm9sbGVyIGFuZCBBY2Nlc3MgUG9pbnRz IGNhbiByZXNpZGUgaW4gcGh5c2ljYWxseQ0KICAgc2VwYXJhdGVkIHJlZ2lvbnMgKGFjcm9zcyBi dWlsZGluZ3Mvb2NlYW5zKS4NCg0KICAgLSBBY2Nlc3MgQ29udHJvbGxlciBhbmQgQWNjZXNzIFBv aW50cyBjb21tdW5pY2F0ZSBvdmVyIGEgU2VjdXJlDQogICBDaGFubmVsIGFuZCBwcm92aWRlIGZh Y2lsaXR5IGZvciBtdXR1YWwgYXV0aGVudGljYXRpb24uDQoNCiAgIC0gUm9hbWluZyBhbW9uZyBB Y2Nlc3MgUG9pbnRzIHdpdGhpbiB0aGUgZG9tYWluIG9mIG9uZSBBY2Nlc3MNCiAgIENvbnRyb2xs ZXIgaXMgcG9zc2libGUgd2l0aG91dCBhbnkgbmV3IHByb3RvY29sIHN1cHBvcnQuIEFsbCBzdGF0 ZQ0KICAgaW5mb3JtYXRpb24gaXMgbWFpbnRhaW5lZCBpbiBBY2Nlc3MgQ29udHJvbGxlci4NCg0K ICAgLSBCcmlkZ2luZyB3aXRoaW4gYSBnaXZlbiBTU0lELiBSb3V0aW5nIGFtb25nIGRpZmZlcmVu dCBTU0lEcy4NCg0KICAgLSBJZiA4MDIuMXgvV0VQIHNlY3VyaXR5IGlzIGVtcGxveWVkLCBpdCBp cyBiZXR3ZWVuIHdpcmVsZXNzIHN0YXRpb25zDQogICBhbmQgQVAuIEJ1dCBBQyBtYWludGFpbnMg dGhlIGtleXMuDQoNCiAgIC0gQUMgc3VwcG9ydHMgTDJUUG9JUFNFQywgaWYgb25lIHdhbnRzIHNl Y3VyaXR5IGJldHdlZW4gZW5kIHN0YXRpb24NCiAgIHRvIHRoZSBDb3Jwb3JhdGUgbmV0d29yay4N Cg0KICAgLSBUd28gc2Vzc2lvbnMgYXJlIG1haW50YWluZWQgYmV0d2VlbiBBUCBhbmQgQUMsIHdo aWNoIGNhbiBiZSBzZWN1cmVkDQogICB1c2luZyBJUHNlYy4gVENQIGJhc2VkIHNlc3Npb24gaXMg dXNlZCB0byB0cmFuc2ZlciBjb250cm9sDQogICBpbmZvcm1hdGlvbiBzdWNoIGFzIHByb3Zpc2lv bmluZyBvZiBBUHMsIGV2ZW50cyBmcm9tIEFQcy4gIFVEUA0KICAgc2Vzc2lvbiBpcyB1c2VkIHRv IHRyYW5zZmVyIHRoZSBkYXRhLg0KDQogICAoMikgV0xBTiBmdW5jdGlvbnMgc3VwcG9ydGVkOg0K DQogICAtIFJhZGlvIFJlc291cmNlIE1hbmFnZW1lbnQ6IEFjY2VzcyBDb250cm9sbGVycyBjYW4g Y29uZmlndXJlIEFjY2Vzcw0KICAgUG9pbnRzIHVzaW5nIHRoZSBDb250cm9sIENoYW5uZWwuIEEg UmVxdWVzdC1SZXNwb25zZSBQcm90b2NvbCBpcyB1c2VkDQogICBvbiB0aGUgY29udHJvbCBjaGFu bmVsLg0KDQogICAtIERTUzogVGhlIEFjY2VzcyBQb2ludCBzaGFsbCBoYW5kbGUgdHJhZmZpYyBi ZXR3ZWVuIGFsbCBzdGF0aW9ucw0KICAgYXNzb2NpYXRlZCB3aXRoIGl0LiBGb3IgdHJhZmZpYyB0 aGF0IGlzIHRhcmdldGVkIHRvIGFub3RoZXIgQVAsIHRoZQ0KICAgdHJhZmZpYyBzaGFsbCBiZSBz ZW50IHRvIHRoZSBBY2Nlc3MgQ29udHJvbGxlci4gVGhlIEFjY2VzcyBDb250cm9sbGVyDQogICBz aGFsbCBicmlkZ2UgdGhlIHRyYWZmaWMgYXBwcm9wcmlhdGVseSwgYWNyb3NzIHRoZSBhcHByb3By aWF0ZQ0KICAgYnJpZGdlL2JyaWRnZSBwb3J0Lg0KDQogICAtIDgwMi4xeCBGdW5jdGlvbmFsaXR5 OiBBY2Nlc3MgUG9pbnRzIHNoYWxsIGVuY2Fwc3VsYXRlIDgwMi4xeCBmcmFtZXMNCiAgIHRvIEVB UE9MIGZyYW1lcyBhbmQgdHJhbnNtaXQgdG8gQWNjZXNzIENvbnRyb2xsZXIuIEFjY2VzcyBDb250 cm9sbGVyDQogICBpcyByZXNwb25zaWJsZSBmb3IgaW5pdGlhdGluZyBSYWRpdXMgQXV0aGVudGlj YXRpb24uDQoNCiAgIC0gV0VQIEVuY3J5cHRpb24vRGVjcnlwdGlvbiBvZiBkYXRhOiBBY2Nlc3Mg UG9pbnRzIHNoYWxsIGhhbmRsZQ0KICAgZW5jcnlwdGlvbi9kZWNyeXB0aW9uIG9mIGRhdGEuIFRo ZSBBY2Nlc3MgQ29udHJvbGxlciB3aWxsIG1haW50YWluDQoNCg0KDQpZYW5nIChFZGl0b3IpLCBl dCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA3NF0N CgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAgICAg ICAgICAgICAgQXByaWwgMjAwNA0KDQoNCiAgIGFuZCBwcm9ncmFtIHRoZSBrZXlzIGluIEFQLg0K DQogICAtIEhhbmRsZSBSb2FtaW5nIENsaWVudHM6IEFjY2VzcyBQb2ludCBzaGFsbCBzZW5kIGV2 ZW50cyBvZg0KICAgQXNzb2NpYXRpb24vRGlzLWFzc29jaWF0aW9uL1JlLWFzc29jaWF0aW9uIHRv IEFjY2VzcyBDb250cm9sbGVyDQogICB0aHJvdWdoIENvbnRyb2wgQ2hhbm5lbC4gQWNjZXNzIENv bnRyb2xsZXIgbWFpbnRhaW5zIHNlc3Npb24ga2V5DQogICBpbmZvcm1hdGlvbiBmb3IgZXZlcnkg d2lyZWxlc3MgYWNjZXNzIHBvaW50IGFzc29jaWF0aW9uICg4MDIuMXgpLA0KICAgSGVuY2Ugd2hl biBhIHJvYW1pbmcgY2xpZW50IG1vdmVzIGZyb20gb25lIEFQIHRvIGFub3RoZXIgQVAsIHRoZQ0K ICAgQWNjZXNzIENvbnRyb2xsZXIgY2FuIHB1c2ggdGhlIHNlc3Npb24ga2V5IGluZm9ybWF0aW9u IHRvIHRoZSBBY2Nlc3MNCiAgIFBvaW50IHRocm91Z2ggdGhlIENvbnRyb2wgQ2hhbm5lbC4NCg0K ICAgKDMpIFRoZSBmdW5jdGlvbmFsIGFyY2hpdGVjdHVyZSB0byBpbXBsZW1lbnQgdGhlIGZ1bmN0 aW9ucyBkZXNjcmliZWQNCiAgIGFib3ZlOg0KDQogICAtIEhhbmRsZWQgaW4gQVA6IEFsbCBSYWRp byBGdW5jdGlvbmFsaXR5L1dFUCBFbmNyeXB0aW9uIGFuZA0KICAgRGVjcnlwdGlvbjsgVHJhZmZp YyBiZXR3ZWVuIFdpcmVsZXNzIFN0YXRpb25zIGluIHRoZSBzYW1lIEJTUy4NCg0KICAgLSBIYW5k bGVkIGluIEFDOiBSb3V0aW5nL0JyaWRnaW5nIHRvIGFub3RoZXIgQlNTOyBNYWludGFpbmluZyBT ZXNzaW9uDQogICBLZXlzIGZvciBlYWNoIHdpcmVsZXNzIHN0YXRpb24gKHRvIHN1cHBvcnQgcm9h bWluZyksIGluaXRpYXRpbmcNCiAgIFJhZGl1cyBBdXRoZW50aWNhdGlvbi4NCg0KICAgLSBUaGUg Q29udHJvbCBDaGFubmVsIGNhbiBiZSB1c2VkIHRvIGNvbmZpZ3VyZSBhbnkgcGFyYW1ldGVyIG9y IHJlYWQNCiAgIGFueSBNSUIgZnJvbSB0aGUgQWNjZXNzIFBvaW50Lg0KDQogICAoNCkgVGhlIHBy b3RvY29sIHVzZWQgaW4gYmV0d2VlbiBBUCBhbmQgQUMuDQoNCiAgIC0gQ29udHJvbCBDaGFubmVs OiBUQ1AgVHJhbnNwb3J0IGNhbiBiZSB1c2VkIGZvciBDb250cm9sIEZyYW1lcy4gVGhlDQogICBB Y2Nlc3MgUG9pbnQgZXN0YWJsaXNoZXMgYSBUQ1Agc2Vzc2lvbiB3aXRoIHRoZSBBY2Nlc3MgQ29u dHJvbGxlcg0KICAgd2hlbiBpdCBjb21lcyB1cC4gV2hlbiB0aGUgVENQIGNvbm5lY3Rpb24gaXMg ZXN0YWJsaXNoZWQgdGhlIEFDIGFuZA0KICAgQVAgYXV0aGVudGljYXRlIGVhY2ggb3RoZXIuIFVw b24gc3VjY2Vzc2Z1bCBhdXRoZW50aWNhdGlvbiB0aGUgQWNjZXNzDQogICBDb250cm9sbGVyIGFz c2lnbnMgYSBVbmlxdWUgSUQgZm9yIHRoZSBBUC4NCg0KICAgVGhlIGNvbnRyb2wgY2hhbm5lbCBz aGFsbCBiZSB1c2VkIHRvIGV4Y2hhbmdlIGNvbnRyb2wgaW5mb3JtYXRpb24NCiAgIGJldHdlZW4g QUMgYW5kIEFQLiAgQ29udHJvbCBJbmZvcm1hdGlvbiBpcyBpbmNsdXNpdmUgb2YgaW1hZ2UgdXBk YXRlLA0KICAgcHJvdmlzaW9uaW5nLCByZXNldCwgcmFkaW8gbWFuYWdlbWVudCBhbmQgYW55IE1J QnMgdGhhdCBtYXkgYmUgc2VudA0KICAgYnkgQWNjZXNzIFBvaW50IHRvIEFjY2VzcyBDb250cm9s bGVyLiBUaGUgQVAgc2hhbGwgc2VuZCBhbGwgODAyLjF4DQogICBwYWNrZXRzIGZyb20gRW5kIFdp cmVsZXNzIFN0YXRpb24gYXMgRUFQT0wgUGFja2V0cyB0aHJvdWdoIHRoZQ0KICAgQ29udHJvbCBD aGFubmVsLiBUaGUgQUMgc2hhbGwgc2VuZCB0aGUgODAyLjF4IHJlc3BvbnNlcyBhcyBFQVBPTA0K ICAgUGFja2V0cyB0byB0aGUgQVAgdGhyb3VnaCB0aGUgQ29udHJvbCBDaGFubmVsLiBJbiBhZGRp dGlvbiBBQyBjYW4gdXNlDQogICB0aGUgY29udHJvbCBjaGFubmVsIHRvIHB1c2ggc2Vzc2lvbiBr ZXlzLg0KDQogICBUaGUgQWNjZXNzIFBvaW50IHNoYWxsIGVzdGFibGlzaCBhcyBtYW55IGNvbnRy b2wgY2hhbm5lbHMgYXMgdGhlDQogICBudW1iZXIgb2YgcmFkaW9zIGl0IHN1cHBvcnRzLiBGb3Ig ZWFjaCBjb250cm9sIGNoYW5uZWwgaXQNCiAgIGVzdGFibGlzaGVzLCB0aGUgQWNjZXNzIENvbnRy b2xsZXIgc2hhbGwgYXNzaWduIGEgdW5pcXVlIElELiBUaGlzIElEDQogICB3aWxsIGJlIHVzZWQg aW4gZGF0YSBjaGFubmVsIGNvbW11bmljYXRpb24gYmV0d2VlbiBBQyBhbmQgQVAuDQoNCiAgIFRo ZSBjb21tdW5pY2F0aW9uIGJldHdlZW4gQVAgYW5kIEFDIHNoYWxsIGJlIGluIHRoZSBmb3JtIG9m IGNvbW1hbmQNCiAgIGFuZCBSZXNwb25zZS4gVGhlIEFDIG9yIEFQIHNoYWxsIHNlbmQgYSBjb21t YW5kIGFuZCB0aGUgcmVjaXBpZW50IG9mDQogICB0aGUgY29tbWFuZCBzaGFsbCBpc3N1ZSBhIHJl c3BvbnNlLiBUaGlzIGFwcHJvYWNoIGNhbiBiZSBleHRlbmRlZCB0bw0KDQoNCg0KWWFuZyAoRWRp dG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAgICAgW1Bh Z2UgNzVdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQIEFyY2guIFRheG9ub215 ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICBhbnkga2luZCBvZiBkZXBsb3ltZW50 LiAoRHVtYiBBUCBvciBmdWxseSBmdW5jdGlvbmFsIEFQKS4NCg0KICAgLSBEYXRhIENoYW5uZWw6 IFRoZSBEYXRhIEZyYW1lcyBjYW4gYmUgdHJhbnNtaXR0ZWQgdXNpbmcgTWFjIE92ZXIgVURQDQog ICBFbmNhcHN1bGF0aW9uIE1lY2hhbmlzbS4gVGhlIE1BQyBmcmFtZXMgYXJlIGVuY2Fwc3VsYXRl ZCB3aXRoIFVEUC9JUA0KICAgaGVhZGVycyBhdCB0aGUgdHJhbnNtaXR0aW5nIGVuZCBhbmQgZGUt Y2Fwc3VsYXRlZCBhdCB0aGUgcmVjZWl2aW5nDQogICBlbmQuDQoNCiAgICg1KSBUaGUgdG9wb2xv Z2ljYWwgYXNzdW1wdGlvbnMgYmV0d2VlbiBBUCBhbmQgQUM6IEwzIFJvdXRlZA0KDQogICAoNikg U2VjdXJpdHkgdGhyZWF0IGFuYWx5c2lzOiBUaGUgQUMgYW5kIEFQIGNhbiBtdXR1YWxseSBhdXRo ZW50aWNhdGUNCiAgIHRoZW1zZWx2ZXMgdGhyb3VnaCB0aGUgY29udHJvbCBjaGFubmVsLg0KDQog ICBCb3RoIENvbnRyb2wgYW5kIERhdGEgQ2hhbm5lbHMgYXJlIG92ZXIgVHJhbnNwb3J0IExheWVy LiBUaGlzIGVuYWJsZXMNCiAgIHRoZSBwb3NzaWJsZSB1c2FnZSBvZiBJUHNlYywgaGVuY2UgcHJv dmlkZXMgYSBzZWN1cmUgY2hhbm5lbCBmb3INCiAgIGNvbW11bmljYXRpb24uDQoNCiAgIFdpcmVs ZXNzIFN0YXRpb25zIHRvIEFQIGNvbW11bmljYXRpb24gY2FuIGJlIHNlY3VyZSB0aHJvdWdoIGV4 aXN0aW5nDQogICBtZWNoYW5pc21zIHN1Y2ggYXMgODAyLjF4DQoNCiAgICg3KSBQcm9zIGFuZCBD b25zIG9mIHRoaXMgYXJjaGl0ZWN0dXJlLCBlc3AuIGluIHJlbGF0aW9uIHRvIHRoZSBmb3VyDQog ICBwcm9ibGVtcyBkZXNjcmliZWQgaW4gdGhlIENBUFdBUCBwcm9ibGVtIHN0YXRlbWVudC4gUGxl YXNlIGtlZXAgdGhlDQogICBhbmFseXNpcyBhdCB0ZWNobmljYWwgaW5zdGVhZCBvZiBtYXJrZXRp bmcgbGV2ZWwuDQoNCiAgIC0gVGhlIENvbnRyb2wgQ2hhbm5lbCBwcm92aWRlcyBhIGZsZXhpYmxl L2V4dGVuc2libGUgbWV0aG9kIHRvDQogICBzdXBwb3J0IGFueSB0eXBlIG9mIEFjY2VzcyBQb2lu dDsgaS5lLiBkb2luZyBtYW5hZ2VtZW50IGF0IHRoZSBBY2Nlc3MNCiAgIFBvaW50IGl0c2VsZiBh bmQvb3IgY29udHJvbGxpbmcgdGhlIG1hbmFnZW1lbnQgZnJvbSB0aGUgQWNjZXNzDQogICBDb250 cm9sbGVyLiBIZW5jZSBpdCBjYW4gYWRkcmVzcyBkaWZmZXJlbnQgbWFya2V0IHNlZ21lbnRzLg0K DQogICAtIFRoZSBjb250cm9sIGNoYW5uZWwgb24gVENQIGFsbG93cyBmb3IgZWFzeSBhZG9wdGlv biBvZiBJUHNlYyBhbmQNCiAgIGhlbmNlIGFkZHJlc3NlcyB0aGUgc2VjdXJpdHkgaXNzdWVzIG92 ZXIgYW4gb3RoZXJ3aXNlIGluc2VjdXJlDQogICBjaGFubmVsLg0KDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCg0KDQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9j dG9iZXIgMTUsIDIwMDQgICAgICAgICAgICAgIFtQYWdlIDc2XQ0KDA0KSW50ZXJuZXQtRHJhZnQg ICAgICAgICAgIENBUFdBUCBBcmNoLiBUYXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0 DQoNCg0KQXBwZW5kaXggTC4gIFN1cnZleSBDb250cmlidXRpb24gRm9yIEFyY2hpdGVjdHVyZSAx MQ0KDQogICAoMSkgRGVzaWduIGNvbnNpZGVyYXRpb25zIGFuZCByZXF1aXJlbWVudHM6IHBsZWFz ZSBicmllZmx5IGRlc2NyaWJlDQogICB5b3VyIGRlc2lnbiBwcmluY2lwbGVzIGZvciB0aGlzIGFy Y2hpdGVjdHVyZS4NCg0KICAgRElSQUMgaXMgZGVzaWduZWQgdG8gZW5hYmxlIGVmZmljaWVudCBp bXBsZW1lbnRhdGlvbiBvZiBtYW55IGVtZXJnaW5nDQogICB3aXJlbGVzcyBzZXJ2aWNlcyBpbXBs ZW1lbnRlZCBvbiB0aGUgYWNjZXNzIHJvdXRlci4gVGhlc2Ugc2VydmljZXMNCiAgIHdpbGwgYmUg aGlnaGx5IGFkYXB0aXZlIGFsb25nIHRoZSBmb2xsb3dpbmcgdGhyZWUgZGltZW5zaW9uczoNCg0K ICAgYSkgYWRhcHRhdGlvbiB0byB3aXJlbGVzcyBjaGFubmVsIGR5bmFtaWNzOiBzZXZlcmFsIHNl cnZpY2VzIChlLmcuLA0KICAgc2NoZWR1bGVycykgcmVxdWlyZSBrbm93bGVkZ2Ugb24gdGhlIGNo YW5uZWwgZHluYW1pY3MgKGN1cnJlbnQgcmF0ZSwNCiAgIGVycm9yIHBhdHRlcm4pIGFuZCBsaW5r IHF1YWxpdHkgcGVyY2VpdmVkIGJ5IGVhY2ggbW9iaWxlIGhvc3QuDQoNCiAgIGIpIGFkYXB0YXRp b24gdG8gaG9zdCBtb2JpbGl0eTogaW5mb3JtYXRpb24gb24gaG9zdCBtb2JpbGl0eSBmcm9tIG9u ZQ0KICAgY2VsbCB0byBhIG5laWdoYm9yaW5nIG9uZSBpcyByZXF1aXJlZCBieSBtaWNyby1tb2Jp bGl0eSBtYW5hZ2VtZW50DQogICBwcm90b2NvbHMgKGUuZy4sIEZhc3QgSGFuZG92ZXJzKQ0KDQog ICBjKSBjb29yZGluYXRlZCBhZGFwdGF0aW9uIGFjcm9zcyBtdWx0aXBsZSBjZWxsczogYXBwbGlj YXRpb25zIHN1Y2ggYXMNCiAgIFZvSVAsIGFkbWlzc2lvbiBjb250cm9sLCBmYXN0IGhhbmRvZmZz IHJlcXVpcmUgY29vcmRpbmF0aW9uIGFtb25nDQogICBtdWx0aXBsZSBjZWxscyBhbmQgcmVzb3Vy Y2UgbWFuYWdlbWVudC4NCg0KICAgRElSQUMgYWxzbyBlbmFibGVzIGNvb3JkaW5hdGlvbiBzcGFu bmluZyBtdWx0aXBsZSBsYXllcnMgaW4gdGhlDQogICBwcm90b2NvbCBzdGFjaywgYW5kIGFjcm9z cyBtdWx0aXBsZSBnZW9ncmFwaGljYWxseSBhZGphY2VudCBjZWxscy4gSW4NCiAgIHRoZSBQSFkg bGF5ZXIsIFJGIG1hbmFnZW1lbnQgYW5kIGNvbGxhYm9yYXRpdmUgcG93ZXIgY29udHJvbCBvdmVy DQogICBtdWx0aXBsZSBuZWlnaGJvcmluZyBjZWxscyBjYW4gbWluaW1pemUgaW50ZXJmZXJlbmNl cywgbG9hZCBiYWxhbmNpbmcNCiAgIGFuZCBNQUMgZmlsdGVyaW5nIGluIHRoZSBsaW5rLWxheWVy IGNhbiBpbmNyZWFzZSBwZXJmb3JtYW5jZSBhbmQNCiAgIHNlY3VyaXR5LCB3aGlsZSBmYXN0IGhh bmRvdmVyIGF0IHRoZSBuZXR3b3JrLWxheWVyIGNhbiBtaW5pbWl6ZQ0KICAgdHJhbnNpZW50IHBh Y2tldCBsb3NzLiBJbnN0ZWFkIG9mIGRlc2lnbmluZyBmdWxseSBkaXN0cmlidXRlZA0KICAgY29v cmRpbmF0aW9uIHByb3RvY29scywgYSBjZW50cmFsaXplZCByb3V0ZXIgYXNzaXN0ZWQgYnkgcm91 dGVyDQogICBhZ2VudHMgY2FuIHNlcnZlIHRoaXMgcHVycG9zZSwgd2hpbGUgc2ltcGxpZnlpbmcg dGhlIGRlc2lnbiBhcHByb2FjaA0KICAgYW5kIG1pbmltaXppbmcgbWFuYWdlbWVudCBvdmVyaGVh ZCBhdCB0aGUgc2FtZSB0aW1lLg0KDQogICBBbm90aGVyIGRlc2lnbiBjb25zaWRlcmF0aW9uIGZv ciBESVJBQyBpcyB0aGUgc2VwYXJhdGlvbiBvZiBwcm90b2NvbHMNCiAgIGFtb25nIHRoZSBwaHlz aWNhbCBlbnRpdGllcyBvZiB0aGUgbmV0d29yay4gRElSQUMgYWRvcHRzIGEgZ2VuZXJpYw0KICAg ZGVzaWduIGF0IHRoZSBhY2Nlc3Mgcm91dGVyLCB3aGlsZSBsZWF2aW5nIHRlY2hub2xvZ3ktc3Bl Y2lmaWMNCiAgIGZ1bmN0aW9ucyB0byB0aGUgcm91dGVyIGFnZW50IGF0IHRoZSBBUC4gVGhpcyBk ZWNpc2lvbiBsZWFkcyB0byBhDQogICBsZWFuIGRlc2lnbiwgbm9uLWludHJ1c2l2ZSB0byB0aGUg SVAgcHJvdG9jb2wsIGFuZCByZWFkaWx5IGV4dGVuc2libGUNCiAgIHRvIG90aGVyIHdpcmVsZXNz IG5ldHdvcmsgYWNjZXNzIHRlY2hub2xvZ2llcyBzdWNoIGFzIEJsdWV0b290aCwgM0cvDQogICA0 RywgODAyLjExbi4gU3BlY2lmaWNhbGx5LCB0aGUgYWNjZXNzIHJvdXRlciByZW1haW5zIHVuYXdh cmUgb2YgdGhlDQogICBzcGVjaWZpY3Mgb2YgdGhlIHdpcmVsZXNzIExpbmstbGF5ZXIvTUFDIGN1 cnJlbnRseSB1c2VkICg4MDIuMTFiKSBhbmQNCiAgIGRvZXMgbm90IGRpcmVjdGx5IGhhbmRsZS9w cm9jZXNzIGxpbmsgbGF5ZXItc3BlY2lmaWMgZnJhbWVzLiBJbnN0ZWFkLA0KICAgdGhlIGxhdHRl ciBpcyB0YWtlbiBjYXJlIG9mIGJ5IHRoZSBBUC4NCg0KICAgRmluYWxseSwgYW5vdGhlciByZXF1 aXJlbWVudCBmb3IgdGhlIGFyY2hpdGVjdHVyZSB3YXMgdG8gYmUNCiAgIGVjb25vbWljYWxseSBj b3N0IGVmZmVjdGl2ZSBhbG9uZyB0aGUgZm9sbG93aW5nIGRpbWVuc2lvbnM6IGEpDQogICBjb21w bGV4aXR5IG9mIGltcGxlbWVudGF0aW9uLCBiKSBjb3N0IG9mIGRlcGxveW1lbnQsIGFuZCBjKSBj b3N0IG9mDQogICBtYW5hZ2VtZW50L29wZXJhdGlvbmFsIGV4cGVuc2VzIChPcEV4KS4gVGhlc2Ug cmVxdWlyZW1lbnRzIGxlYWQgdG8gYQ0KICAgY2VudHJhbGl6ZWQgZGVzaWduIGZvciB0aGUgYWNj ZXNzIHJvdXRlciwgc3VwcG9ydGVkIGJ5IGEgbnVtYmVyIG9mDQoNCg0KDQpZYW5nIChFZGl0b3Ip LCBldCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAgICAgICBbUGFnZSA3 N10NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4gVGF4b25vbXkgICAg ICAgICAgICAgICAgQXByaWwgMjAwNA0KDQoNCiAgIGxpZ2h0d2VpZ2h0LCBzb2Z0d2FyZSBhZ2Vu dHMgdGhhdCBydW4gYXQgZWFjaCBhY2Nlc3MgcG9pbnQsIG1vbml0b3INCiAgIHRoZSB3aXJlbGVz cyBjZWxsLCBhbmQgZXhwb3NlIGxpbmstbGF5ZXIgbWVjaGFuaXNtcyB0byBoaWdoZXIgbGF5ZXJz LA0KICAgaW4gb3JkZXIgdG8gZW5mb3JjZSBzeXN0ZW0td2lkZSBwb2xpY2llcy4NCg0KICAgKDIp IFdMQU4gZnVuY3Rpb25zIHN1cHBvcnRlZDogUGxlYXNlIGxpc3QgdGhlIGZ1bmN0aW9ucyBzdXBw b3J0ZWQgaW4NCiAgIHRoaXMgV0xBTiBicmllZmx5LCBidXQgcGxlYXNlIGRvIG5vdCBzZW5kIHVz IHRoZSBlbnRpcmUgZGF0YSBzaGVldC4NCg0KICAgRXhhbXBsZXMgb2YgV0xBTiBmdW5jdGlvbnMg aW5jbHVkZXMgYWxsIHRoZSBTVEEgc2VydmljZXMsIERpc3RyaWJ1dGVkDQogICBTeXN0ZW0gU2Vy dmljZXMgKGFzIGRlZmluZWQgYnkgODAyLjExKSwgcmFkaW8gcmVzb3VyY2UgbWFuYWdlbWVudCBh bmQNCiAgIGNvbnRyb2wsIGxvYWQgYmFsYW5jaW5nLCBtb2JpbGl0eSBzdXBwb3J0LCBXTEFOIG5l dHdvcmsgd2lkZSBzZWN1cml0eQ0KICAgZnVuY3Rpb25zIChpbmNsdWRpbmcgYXV0aGVudGljYXRp b24sIGVuY3J5cHRpb24gZm9yIHByaXZhY3kgYW5kDQogICBpbnRlZ3JpdHksIGV0Yy4pIGFuZCBh bnkgb3RoZXJzIG5vdCBsaXN0ZWQgaGVyZSBidXQgZGVlbWVkIGltcG9ydGFudA0KICAgaW4geW91 ciBkZXNpZ24uDQoNCiAgIERJUkFDIGFpbXMgdG8gcHJvdmlkZSB0aGUgbmVjZXNzYXJ5IGhvb2tz IGFuZCBzeXN0ZW1zIGZyYW1ld29yayBmb3INCiAgIGVhc2lseSBlbmFibGluZyBhcyBtYW55IG5l dyB3aXJlbGVzcyBzZXJ2aWNlcyBhcyBwb3NzaWJsZSBvbiB0aGUNCiAgIGFjY2VzcyByb3V0ZXIu IFRvIHRoaXMgZW5kLCB0aGUgZm9sbG93aW5nIFdMQU4gZnVuY3Rpb25zIGFyZQ0KICAgaW1wbGVt ZW50ZWQgYnkgdGhlIHN5c3RlbToNCg0KICAgYSkgU1RBIHNlcnZpY2VzOiBBdXRoZW50aWNhdGlv biwgRGUtYXV0aGVudGljYXRpb24sIE1TRFUgZGVsaXZlcnkNCg0KICAgYikgRGlzdHJpYnV0aW9u IFN5c3RlbSBTZXJ2aWNlczogQXNzb2NpYXRpb24sIERpc2Fzc29jaWF0aW9uLA0KICAgRGlzdHJp YnV0aW9uLCBJbnRlZ3JhdGlvbiwgUmVhc3NvY2lhdGlvbg0KDQogICBjKSBMMiBNb2JpbGl0eSBT dXBwb3J0IChsaW5rLWxheWVyIGhhbmRvZmYpDQoNCiAgIGQpIEwzIE1vYmlsaXR5IFN1cHBvcnQg KG5ldHdvcmstbGF5ZXIgZmFzdCBIYW5kb2ZmIGludGVncmF0ZWQgd2l0aA0KICAgTW9iaWxlIElQ djYpDQoNCiAgIGUpIElQLWxheWVyLCBwYWNrZXQtbGV2ZWwsIEZvcndhcmQgRXJyb3IgQ29ycmVj dGlvbiBhbmQgRGVmaWNpdCBSb3VuZA0KICAgUm9iaW4gc2NoZWR1bGluZyB0aGF0IGFkZHJlc3Nl cyB0aGUgSGVhZC1vZi1MaW5lIGJsb2NraW5nIHByb2JsZW0NCg0KICAgZikgUG9saWNpbmcgb2Yg YWdncmVzc2l2ZSBmbG93cyB0aHJvdWdoIE1BQy1sYXllciAoODAyLjExYikgZmlsdGVyaW5nDQoN CiAgIGcpIE11bHRpLWxheWVyIGZpcmV3YWxscw0KDQogICBoKSBDaGFubmVsIHN0YXRpc3RpY3Mg Zm9yIFNUQXMgY2VudHJhbGx5IGNvbGxlY3RlZA0KDQogICBpKSBSZWdpc3RyYXRpb24gb2YgQVBz IHRvIEFSDQoNCiAgICgzKSBUaGUgZnVuY3Rpb25hbCBhcmNoaXRlY3R1cmUgdG8gaW1wbGVtZW50 IHRoZSBmdW5jdGlvbnMgZGVzY3JpYmVkDQogICBhYm92ZTogd2hldGhlciBpdCBpcyBieSBhdXRv bm9tb3VzIEFQIGFyY2hpdGVjdHVyZSwgb3IgInNwbGl0Ig0KICAgYXJjaGl0ZWN0dXJlLiBGb3Ig c3BsaXQgYXJjaGl0ZWN0dXJlLCBwbGVhc2UgcHJvdmlkZSB0aGUgZnVuY3Rpb25hbA0KICAgbWFw cGluZyBvZiBXTEFOIGZ1bmN0aW9ucyBvbnRvIHRoZSBBUCBhbmQgQUMgLS0gd2l0aCBqdXN0IGVu b3VnaA0KICAgZGV0YWlscyB0aGF0IGhlbHAgdXMgdW5kZXJzdGFuZCB0aGUga2luZHMgb2YgZnVu Y3Rpb25hbCBpbnRlcmZhY2UNCiAgIG5lY2Vzc2FyeSBiZXR3ZWVuIHRoZSB0d28uDQoNCiAgIFRo ZSBhcmNoaXRlY3R1cmUgZm9sbG93ZWQgYnkgRElSQUMgY2FuIGJlIGRlc2NyaWJlZCBhcyAic3Bs aXQiLA0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwg MjAwNCAgICAgICAgICAgICAgW1BhZ2UgNzhdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAg Q0FQV0FQIEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICBh bHRob3VnaCB0aGlzIGRlc2NyaXB0aW9uIGlzIGlycmVsZXZhbnQgdG8gdGhlIDgwMi4xMSBNQUM7 IHRoZSBsYXR0ZXINCiAgIGlzIGltcGxlbWVudGVkIGZ1bGx5IGF0IHRoZSBBUCwgd2hpbGUgaXRz IG1hbmFnZW1lbnQgYW5kIG1vbml0b3JpbmcNCiAgIGZ1bmN0aW9uYWxpdHkgaXMgX2V4cG9zZWRf IHRvIChhbmQgY29udHJvbGxlZCBieSkgdGhlIGFjY2VzcyByb3V0ZXIuDQogICBUaGUgQWNjZXNz IFJvdXRlciBydW5zIGEgbGluay1sYXllciBzcGVjaWZpYyBzb2Z0d2FyZSBhZ2VudCBvbiB0aGUN CiAgIEFQLCBpbnN0ZWFkIG9mIGhhdmluZyBwYXJ0IG9mIHRoZSBNQUMgaW1wbGVtZW50ZWQgYXQg dGhlIEFSLg0KDQogICBJbiB0aGF0IHNlbnNlLCB0aGUgbWFwcGluZyBiZXR3ZWVuIHRoZSBXTEFO IGZ1bmN0aW9ucyBkZXNjcmliZWQgYWJvdmUNCiAgIGlzIGFzIGZvbGxvd3M6DQoNCiAgIEFQIDog KGEpLCAoYiksIChjKQ0KDQogICBBQyA6IChkKSwgKGUpLCAoZiksIChnKSwgKGgpDQoNCiAgIFRo ZSBpbnRlcmZhY2UgZXhwb3NlZCAoYW5kIGZ1cnRoZXIgaW1wbGVtZW50ZWQgYnkgdGhlIEFSLUFQ DQogICBjb21tdW5pY2F0aW9uIHByb3RvY29sKSByZXZvbHZlcyBhcm91bmQgdGhyZWUgdHlwZXMg b2YgaW5mb3JtYXRpb246DQoNCiAgIGEpIEV2ZW50czogb2NjdXJyZW5jZSBvZiBhc3luY2hyb25v dXMgbGluay1sYXllciBhY3Rpdml0eSBpbiB0aGUNCiAgIGNlbGwsIGRldGVjdGVkIGJ5IHRoZSBh Y2Nlc3MgcG9pbnQgYW5kIHJlcG9ydGVkIGJhY2sgdG8gdGhlIGFjY2Vzcw0KICAgcm91dGVyIGNv bnRyb2wgZW5naW5lLiBFeGFtcGxlcyBhcmU6IG5ldyBob3N0IChhc3NvY2lhdGlvbiksIGhvc3QN CiAgIGxlYXZlcyAoZGlzYXNzb2NpYXRpb24pLCBzZWN1cml0eSBiaW5kaW5nIChhdXRoZW50aWNh dGlvbiksIHJvYW1pbmcNCiAgIGhvc3QgKHJlYXNzb2NpYXRpb24pLCBkZWFkIGNlbGwgZGV0ZWN0 aW9uIChoZWFydGJlYXQpLg0KDQogICBiKSBTdGF0aXN0aWNzOiBsYXRlc3QgaW5mb3JtYXRpb24g b24gY2hhbm5lbCBxdWFsaXR5IHRoYXQgZWFjaCBob3N0DQogICBwZXJjZWl2ZXMsIHdoaWNoIGlz IGxvY2F0aW9uLWRlcGVuZGVudC4gRXhhbXBsZXMgb2YgY2hhbm5lbA0KICAgc3RhdGlzdGljcyBh cmU6IHNpZ25hbC1ub2lzZSByYXRpb24gKGRCKSwgZnJhbWUgcmV0cmFuc21pdHMgKGZyYW1lDQog ICBsb3NzICUpLCBDb21tVGFsbGllcyAoZGV0YWlsZWQgc3RhdGlzdGljcyksIGNoYW5uZWwgcXVh bGl0eSB2YXJpYXRpb24NCiAgICh0cmFuc21pc3Npb24gcmF0ZXMpLCBldGMuDQoNCiAgIGMpIEFj dGlvbnM6IG1lY2hhbmlzbXMgdGhhdCBhcmUgZXhwb3NlZCBhbmQgbWFkZSBhdmFpbGFibGUgYnkg dGhlIEFQcw0KICAgYW5kIGNhbiBiZSB1c2VkIGJ5IHRoZSBhY2Nlc3Mgcm91dGVyLCBpbiBvcmRl ciB0byBlbmZvcmNlIGl0cw0KICAgcG9saWNpZXMuIEV4YW1wbGVzIGluY2x1ZGUgdHVuaW5nIG9m IHRoZSA4MDIuMTFiIE1BQyBwcm90b2NvbA0KICAgcGFyYW1ldGVycyAoZS5nLiwgZGVhdXRoZW50 aWNhdGUgYSAgY2xpZW50IGZvciBzZWN1cml0eSByZWFzb25zKSwNCiAgIGNvbmZpZ3VyYXRpb24g c2V0dGluZ3Mgb2YgdGhlIGRyaXZlciAoZS5nLiwgZW50ZXIgcG93ZXIgc2F2aW5nIG1vZGUsDQog ICBzZXQgbnVtYmVyIG9mIHJldHJhbnNtaXNzaW9ucyksIFBIWSBzZXR0aW5nIChlLmcuLCAgYWRq dXN0bWVudCBvZiB0aGUNCiAgIHRyYW5zbWlzc2lvbiBwb3dlciksIGNvbmZpZ3VyaW5nIHRoZSBB UCBkZXZpY2UgaXRzZWxmIChlLmcuLCByZS1mbGFzaA0KICAgdGhlIGltYWdlIG9mIHRoZSBkcml2 ZXIvZGV2aWNlKS4gSW4gZXNzZW5jZSwgYW4gImFjdGlvbiIgaXMgd2hhdGV2ZXINCiAgIGFzcGVj dCB0aGF0IGNhbiBiZSB0aG91Z2h0IG9mIGFzIGEgbWVjaGFuaXNtIHByb3ZpZGVkIGJ5IHRoZSBB UCBhbmQNCiAgIGNhbiBiZSBjb250cm9sbGVkIHRocm91Z2ggc29tZSBwb2xpY3kgc3BlY2lmaWVk IGJ5IHRoZSBhY2Nlc3Mgcm91dGVyLg0KDQogICAoNCkgVGhlIHByb3RvY29sIHVzZWQgaW4gYmV0 d2VlbiBBUCBhbmQgQUMuDQoNCiAgIFRoZSBwcm90b2NvbCB1c2VkIGJldHdlZW4gdGhlIEFjY2Vz cyBSb3V0ZXIgYW5kIHRoZSBBY2Nlc3MgUG9pbnRzIGluDQogICBESVJBQyBmb2xsb3dzIGEgYmFz aWMgVExWIChUeXBlLUxlbmd0aC1WYWx1ZSB3aXRoIGFuIGFkZGl0aW9uIG9mIGENCiAgIFN1YnR5 cGUpIGZvcm1hdCwgYW5kIGl0cyBwdXJwb3NlIGlzIHRvIGRlbGl2ZXIgbWVzc2FnZXMgY2Fycnlp bmcNCiAgIGluZm9ybWF0aW9uIGFib3V0IGV2ZW50cy9zdGF0aXN0aWNzL2FjdGlvbnMgYXMgZGVz Y3JpYmVkIGluIHRoZQ0KICAgcHJldmlvdXMgc2VjdGlvbiAoMykuIFRoaXMgcHJvdG9jb2wgcnVu cyBvdmVyIFVEUC4NCg0KICAgKDUpIFRoZSB0b3BvbG9naWNhbCBhc3N1bXB0aW9ucyBiZXR3ZWVu IEFQIGFuZCBBQyAoaXMgaXQgZGlyZWN0bHkNCg0KDQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAg ICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQgICAgICAgICAgICAgIFtQYWdlIDc5XQ0KDA0KSW50 ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdBUCBBcmNoLiBUYXhvbm9teSAgICAgICAgICAgICAg ICBBcHJpbCAyMDA0DQoNCg0KICAgY29ubmVjdGVkLCBMMiBzd2l0Y2hlZCwgb3IgTDMgcm91dGVk PykgLS0gdGhpcyBhbHNvIGhlbHBzIHVzIHRvDQogICB1bmRlcnN0YW5kIHRoZSBkZXBsb3ltZW50 IHNjZW5hcmlvcy4NCg0KICAgVGhlIGFjY2VzcyBwb2ludCBpcyBJUC1hZGRyZXNzYWJsZSB0aGVy ZWZvcmUgaXQgaXMgaW4gcHJpbmNpcGxlDQogICBhY2Nlc3NpYmxlIG92ZXIgYW55IEwyLXN3aXRj aGVkLCBvciBMMy1yb3V0ZWQgImNsb3VkIi4gSG93ZXZlciwgZm9yDQogICB0aGUgcHVycG9zZSBv ZiBkZWxpdmVyaW5nIG1lYW5pbmdmdWwgcGVyLWhvc3Qgc3RhdGlzdGljcyBvdmVyDQogICBmaW5l LXRpbWUgc2NhbGVzIHRvIGNhcHR1cmUgbG9uZy10ZXJtIGZhZGluZywgYW5kIGNoYW5uZWwgY29o ZXJlbmNlDQogICB0aW1lIG9mIHRoZSB3aXJlbGVzcyBtZWRpdW0sIHRoZSAiY2xvdWQiIHRoYXQg Y29ubmVjdHMgdGhlIEFjY2Vzcw0KICAgUG9pbnRzIHdpdGggdGhlIEFjY2VzcyBSb3V0ZXIgc2hv dWxkIGhhdmUgbGF0ZW5jeSB0aGF0IGlzIHNtYWxsDQogICBlbm91Z2ggdG8gZGVsaXZlciBzdGF0 aXN0aWNzIHJlcG9ydHMgaW4gYSB0aW1lbHkgZmFzaGlvbi4gVGhlcmVmb3JlLA0KICAgZWl0aGVy IGEgZGlyZWN0IGNvbm5lY3Rpb24sIG9yIGEgTDItc3dpdGNoZWQgImNsb3VkIiBiZXR3ZWVuIHRo ZQ0KICAgYWNjZXNzIHBvaW50IGFuZCB0aGUgYWNjZXNzIHJvdXRlciBpcyByZWNvbW1lbmRlZC4N Cg0KICAgKDYpIFNlY3VyaXR5IHRocmVhdCBhbmFseXNpczogd2hhdCBraW5kcyBvZiB0aHJlYXQg aW50cm9kdWNlZCBieSB0aGUNCiAgIHNwbGl0IGFyY2hpdGVjdHVyZSwgYW5kIGhvdyB0aGF0IGFy ZSBhZGRyZXNzZWQuDQoNCiAgIFBvc3NpYmxlIHRocmVhdHM6DQoNCiAgIGEpIFRocmVhdHMgVE8g dGhlIERJUkFDIGFyY2hpdGVjdHVyZToNCg0KICAgaSkgcHJvdGVjdCB0aGUgbWVzc2FnZXMgdGhh dCBkZWxpdmVyIGV2ZW50cy9hY3Rpb25zL3N0YXRpc3RpY3MNCg0KICAgaWkpIGF1dGhlbnRpY2F0 aW9uIG9mIEFQcyB0byB0aGUgQVIgKHJvZ3VlIEFQcykNCg0KICAgaWlpKSBNYW4taW4tdGhlLW1p ZGRsZSBhdHRhY2sgYmV0d2VlbiBBUHMgLS1BUiByZWdhcmRpbmcNCiAgIGNvbnRyb2wtdHJhZmZp Yw0KDQogICBiKSBUaHJlYXRzIFRPIHRoZSB3aXJlbGVzcyB0cmFmZmljDQoNCiAgIGkpIE1pc21h dGNoaW5nIGxldmVscyBvZiBzZWN1cml0eSBzdHJlbmd0aHMgYmV0d2VlbiBTVEEtLUFQIGFuZA0K ICAgQVAtLUFScw0KDQogICBpaSkgRGVuaWFsLW9mLVNlcnZpY2UgYXR0YWNrcyAobGF5ZXItMiBh bmQgbGF5ZXItMykgaW4gdGhlIHdpcmVsZXNzDQogICBjZWxsIChwcm90ZWN0aW5nIFNUQXMgZnJv bSBtaXNiZWhhdmluZyB3aXJlbGVzcyBob3N0cykNCg0KICAgaWlpKSBXZWxsLWRvY3VtZW50ZWQg ZGVmaWNpZW5jaWVzIG9mIHRoZSA4MDIuMTEgV0VQIChvdmVyIHRoZSBhaXINCiAgIHByb3RlY3Rp b24pDQoNCiAgIGl2KSBBY2Nlc3MgY29udHJvbA0KDQogICBUaHJlYXRzIChhKS4oaSkgYW5kIChh KS4oaWlpKSBjYW4gYmUgYWRkcmVzc2VkIHRocm91Z2ggZW5jcnlwdGlvbi8NCiAgIHR1bm5lbGlu ZyBvZiBtYW5hZ2VtZW50IG1lc3NhZ2VzLiBUaHJlYXQgKGEpLihpaSkgcmVxdWlyZXMgbXV0dWFs DQogICBhdXRoZW50aWNhdGlvbiBiZXR3ZWVuIEFSIGFuZCBBUHMNCg0KICAgVGhyZWF0IChiKS4o aWkpIGlzIGFkZHJlc3NlZCBieSB0aGUgcG9saWNpbmcgc2VydmljZSBpbXBsZW1lbnRlZCBhdA0K ICAgdGhlIEFSIGFuZCBlbmZvcmNlZCB0aHJvdWdoIEwyIG1lY2hhbmlzbXMgYXQgdGhlIEFQLiAo YikuKGlpaSkNCiAgIHJlcXVpcmVzIGFkZGl0aW9uYWwgYXV0aGVudGljYXRpb24gKGV4LiBSQURJ VVMpIGFuZCBlbmQtdG8tZW5kDQogICBlbmNyeXB0aW9uLCBvbiB0b3Agb2YgV0VQLiAoYikuKGl2 KSBjYW4gYmUgaW1wbGVtZW50ZWQgYm90aCBieSBhY2Nlc3MNCg0KDQoNCllhbmcgKEVkaXRvciks IGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQgICAgICAgICAgICAgIFtQYWdlIDgw XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdBUCBBcmNoLiBUYXhvbm9teSAgICAg ICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0KICAgbGlzdHMgYXQgdGhlIEFSIGFuZCBNQUMgZmls dGVyaW5nIGF0IHRoZSBBUC4NCg0KICAgKDcpIFByb3MgYW5kIENvbnMgb2YgdGhpcyBhcmNoaXRl Y3R1cmUsIGVzcC4gaW4gcmVsYXRpb24gdG8gdGhlIGZvdXINCiAgIHByb2JsZW1zIGRlc2NyaWJl ZCBpbiB0aGUgQ0FQV0FQIHByb2JsZW0gc3RhdGVtZW50LiBQbGVhc2Uga2VlcCB0aGUNCiAgIGFu YWx5c2lzIGF0IHRlY2huaWNhbCBpbnN0ZWFkIG9mIG1hcmtldGluZyBsZXZlbC4NCg0KICAgTWFu YWdlbWVudCwgTW9uaXRvcmluZyBhbmQgQ29udHJvbCAoMXN0IHByb2JsZW0pLCBDb25zaXN0ZW50 DQogICAobmV0d29yay13aWRlKSBjb25maWd1cmF0aW9uICgybmQgcHJvYmxlbSksIGFuZCBSRiBN YW5hZ2VtZW50ICgzcmQNCiAgIHByb2JsZW0pIGFyZSBhZGRyZXNzZWQgYnkgdGhlIGZhY3QgdGhh dCBwb2xpY2llcyBhcmUgY2VudHJhbGl6ZWQgb24NCiAgIHRoZSBBUiwgd2hpbGUgbWVjaGFuaXNt cyBmb3IgZW5mb3JjaW5nIHRoZW0gYXJlIGRpc3RyaWJ1dGVkIGFtb25nIGFsbA0KICAgQVBzLg0K DQogICBTZWN1cml0eSwgYW5kIGluIHBhcnRpY3VsYXIgcm9ndWUgQVBzLCBjYW4gYmUgYWRkcmVz c2VkIChhbHRob3VnaCBub3QNCiAgIGN1cnJlbnRseSBpbXBsZW1lbnRlZCBvbiBESVJBQykgdGhy b3VnaCBtdXR1YWwgYXV0aGVudGljYXRpb24gb2YgdGhlDQogICBBUHMgdG8gdGhlIEFSIGFuZCB2 aWNlLXZlcnNhLg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGly ZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAgICAgW1BhZ2UgODFdDQoMDQpJbnRlcm5ldC1E cmFmdCAgICAgICAgICAgQ0FQV0FQIEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmls IDIwMDQNCg0KDQpBcHBlbmRpeCBNLiAgU3VydmV5IENvbnRyaWJ1dGlvbiBGb3IgQXJjaGl0ZWN0 dXJlIDEyDQoNCiAgICgxKSBEZXNpZ24gY29uc2lkZXJhdGlvbnMgYW5kIHJlcXVpcmVtZW50czoN Cg0KICAgVGhlIGFjY2VzcyBjb250cm9sbGVyIChBQykgaXMgYSBicmlkZ2UuICBNdWx0aXBsZSBh Y2Nlc3MgcG9pbnRzIGFyZQ0KICAgYWdncmVnYXRlZCBieSBhIGJyaWRnZSB0aGF0IHN1cHBvcnRz IGEgTUFDLWxheWVyIHNlY3VyaXR5IHByb3RvY29sDQogICBiZXR3ZWVuIGl0c2VsZiBhbmQgYW4g ODAyLjExIGVuZCBzdGF0aW9uLiBUaGUgc2FtZSBNQUMtbGF5ZXIgc2VjdXJpdHkNCiAgIHByb3Rv Y29sIGlzIHVzZWQgYmV0d2VlbiBicmlkZ2VzIG9uIGEgd2lyZWQgTEFOIGFuZCBiZXR3ZWVuIGEg YnJpZGdlDQogICBhbmQgYW4gODAyLjExIGVuZCBzdGF0aW9uLiAgVGhlIHNlY3VyaXR5IHByb3Rv Y29sIGlzIGEgc2VydmljZSB0aGF0DQogICBzaXRzIGFib3ZlIHRoZSBNQUMgYW5kIG1ha2VzIDgw Mi4xMWkgTUFDIHNlY3VyaXR5IGVuY2Fwc3VsYXRpb24NCiAgIHVubmVjZXNzYXJ5LiAgQ29udHJh c3QgdGhpcyB3aXRoIHRoZSBzaXR1YXRpb24gaW4gdGhlIG5lYXIgZnV0dXJlDQogICB3aGVyZSA4 MDIuMTFpIHdpbGwgc2VjdXJlIHRoZSBsaW5rIGJldHdlZW4gYW4gZW5kIHN0YXRpb24gYW5kIGFu IEFQLA0KICAgYW5kIDgwMi4xYWUgbWlnaHQgc2VjdXJlIHRoZSBsaW5rIGJldHdlZW4gdGhlIEFQ IGFuZCBhIGJyaWRnZS4NCg0KICAgVG8gdGhlIGV4dGVudCB0aGF0IGFuIEFQIGNhbiBiZSBhcmNo aXRlY3RlZCBhcyBhIGJyaWRnZSwgQVANCiAgIG1hbmFnZW1lbnQgZmFsbHMgd2l0aGluIHRoZSBz Y29wZSBvZiBicmlkZ2UgbWFuYWdlbWVudCBhbmQgaXMgaGFuZGxlZA0KICAgd2l0aGluIHRoZSA4 MDIuMSBjb250cm9sIGxheWVyIGFsb25nIHdpdGggZXhpc3RpbmcgYnJpZGdlIG1hbmFnZW1lbnQN CiAgIHByb3RvY29scyBzdWNoIGFzIDgwMi4xQUIgbGluay1sYXllciBjb25uZWN0aXZpdHkgYW5k IDgwMi4xYWYNCiAgIGRpc2NvdmVyeSBvZiBicmlkZ2VzIHRoYXQgc3VwcG9ydCBNQUMtbGF5ZXIg c2VjdXJpdHkuIFRoZXNlIDgwMi4xDQogICBwcm90b2NvbHMgYXJlIGJyb2FkIGVub3VnaCBpbiBz Y29wZSB0byBtZWV0IHRoZSByZXF1aXJlbWVudHMgb2YgdGhlDQogICA4MDIuMTEgbWVzaCBuZXR3 b3JraW5nIFBBUi4NCg0KICAgTm8gODAyLjExIGZyYW1lcyBvZiBhbnkgdHlwZSBhcmUgcmVjb2du aXplZCBieSBhbiBBQy4NCg0KICAgKDIpIFdMQU4gZnVuY3Rpb25zIHN1cHBvcnRlZDoNCg0KICAg QW4gQUMgbmV2ZXIgcm91dGVzIHBhY2tldHMuICBJdCBvbmx5IGJyaWRnZXMgdGhlbSBleGNlcHQg d2hlbiByZXZlcnNlDQogICB0dW5uZWxpbmcgaXMgcmVxdWlyZWQuIEFuIEFDIHN1cHBvcnRzIGxh eWVyLTMgbW9iaWxpdHkgZm9yIGEgc3RhdGlvbg0KICAgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGgg YW4gQVAgYXR0YWNoZWQgdG8gaXQsIGJ5IHJldmVyc2UgdHVubmVsaW5nDQogICBFdGhlcm5ldCBm cm9tIHRoZSBzdGF0aW9uIHRvIGFuIEFDIG9uIHRoYXQgc3RhdGlvbidzIGhvbWUgc3VibmV0Lg0K ICAgVGhlIHJvYW1pbmcgc3RhdGlvbiByZXRhaW5zIHRoZSBzYW1lIElQIGFkZHJlc3MgYW5kIHRo ZSBsaW1pdGVkDQogICBicm9hZGNhc3QgZG9tYWluIG9mIGl0cyBob21lIHN1Ym5ldCByZWdhcmRs ZXNzIG9mIEFQIGFzc29jaWF0aW9uIGFzDQogICBsb25nIGFzIHRoZSBBUCBpcyB3aXRoaW4gdGhl IHNhbWUgRVNTLiBUaGVyZWZvcmUsIG5vIEFDIG9wZXJhdGlvbnMNCiAgIGFyZSByZXF1aXJlZCBm b3IgYSBCU1MgdHJhbnNpdGlvbiB1bmxlc3MgdGhhdCB0cmFuc2l0aW9uIGlzIHRvDQogICBhbm90 aGVyIHN1Ym5ldCBvciBFU1MuDQoNCiAgIEV2ZXJ5IGhhbmRvZmYgYmV0d2VlbiBhY2Nlc3MgY29u dHJvbGxlcnMgaXMgYXV0aGVudGljYXRlZCB1c2luZyBzdGF0ZQ0KICAgZGVyaXZlZCBmcm9tIGFu IGluaXRpYWwgbXV0dWFsIGF1dGhlbnRpY2F0aW9uLiBObyBBQyBldmVyIGJyaWRnZXMsIG9yDQog ICByZXZlcnNlIHR1bm5lbHMsIGFueSB0cmFmZmljIGZyb20gYSBzdGF0aW9uIHVubGVzcyB0aGUg dXNlciBvZiB0aGF0DQogICBzdGF0aW9uIGNhbiBiZSBhdXRoZW50aWNhdGVkLiBSZS1hdXRoZW50 aWNhdGlvbiBkb2VzIG5vdCByZXF1aXJlIHVzZXINCiAgIGludm9sdmVtZW50Lg0KDQogICBUaGUg TUFDLWxheWVyIHNlY3VyaXR5IHByb3RvY29sIHByb3ZpZGVzIHByaXZhY3ksIGludGVncml0eSBh bmQNCiAgIHJlcGxheSBwcm90ZWN0aW9uIG9mIEV0aGVybmV0IGZyYW1lcyBiZXR3ZWVuIGEgYnJp ZGdlIGFuZCBhbiBlbmQNCiAgIHN0YXRpb24sIG9yIGJldHdlZW4gdHdvIGJyaWRnZXMuDQoNCiAg ICgzKSBGdW5jdGlvbmFsIGFyY2hpdGVjdHVyZTogYXV0b25vbW91cyBBUC4NCg0KDQoNCg0KWWFu ZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAg ICAgW1BhZ2UgODJdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQIEFyY2guIFRh eG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICAoNCkgVGhlIHByb3RvY29s IHVzZWQgaW4gYmV0d2VlbiBBUCBhbmQgQUMuIG5vbmUuDQoNCiAgICg1KSBUaGUgdG9wb2xvZ2lj YWwgYXNzdW1wdGlvbnMgYmV0d2VlbiBBUCBhbmQgQUMuIEwyIHN3aXRjaGVkLg0KDQogICAoNikg U2VjdXJpdHkgdGhyZWF0IGFuYWx5c2lzOiB3aGF0IGtpbmRzIG9mIHRocmVhdCBpbnRyb2R1Y2Vk IGJ5IHRoZQ0KICAgc3BsaXQgYXJjaGl0ZWN0dXJlLCBhbmQgaG93IHRoYXQgKHNpYykgYXJlIGFk ZHJlc3NlZC4NCg0KICAgVGhlIGFyY2hpdGVjdHVyZSBpcyBOT1Qgc3BsaXQsIG5vciBpcyBpdCBh ZHZhbnRhZ2VvdXMgdG8gZG8gc28uDQoNCiAgICg3KSBQcm9zIGFuZCBDb25zIG9mIHRoaXMgYXJj aGl0ZWN0dXJlLCBlc3AuIGluIHJlbGF0aW9uIHRvIHRoZSBmb3VyDQogICBwcm9ibGVtcyBkZXNj cmliZWQgaW4gdGhlIENBUFdBUCBwcm9ibGVtIHN0YXRlbWVudC4gUGxlYXNlIGtlZXAgdGhlDQog ICBhbmFseXNpcyBhdCB0ZWNobmljYWwgaW5zdGVhZCBvZiBtYXJrZXRpbmcgbGV2ZWwuDQoNCiAg IEl0IGlzIGRpZmZpY3VsdCB0byBrZWVwIHRoZSAiYW5hbHlzaXMiIHRlY2huaWNhbCB3aGVuIHRo ZSBmaXJzdCBhbmQNCiAgIHRoaXJkICJwcm9ibGVtcyIgb2YgdGhlIGZvdXIgc3RhdGVkIGluDQog ICBkcmFmdC1pZXRmLWNhcHdhcC1wcm9ibGVtLXN0YXRlbWVudC0wMC50eHQgYXJlIGV4cHJlc3Nl ZCBpbg0KICAgc3ViamVjdGl2ZSB0ZXJtcywgc3BlY2lmaWNhbGx5LCAiYnVyZGVuIiBhbmQgImRp ZmZpY3VsdHkgaW4gZGVhbGluZw0KICAgZWZmZWN0aXZlbHkiLiAgVGhlc2UgYXJlIGluZGVlZCBh dCBhIG1hcmtldGluZyBsZXZlbC4gVGhlcmVmb3JlLCBvbmUNCiAgIGNhbm5vdCBvYmplY3RpdmVs eSBjb21tZW50IG9yIHByb3ZpZGUgImFuYWx5c2lzIi4NCg0KICAgRnVydGhlciwgdGhlIHNlY29u ZCBhbmQgZm91cnRoICJwcm9ibGVtcyIgcHJlc3VtZSBhIHBhcnRpY3VsYXIgQVANCiAgIGFyY2hp dGVjdHVyZSB0aGF0IHN0b3JlcyBkeW5hbWljIGF0dHJpYnV0ZXMsIG5hbWVseSAiZW1iZWRkZWQN CiAgIHNlY3JldHMiIGFuZCAic2VjdXJpdHkgcGFyYW1ldGVycyIuICBTbyB0aGUgInByb2JsZW1z IiwgZXhjZXB0IGZvcg0KICAgZHluYW1pYyBwcm92aXNpb25pbmcgb2YgUkYsIGFyZSBhY3R1YWxs eSB0aHJlYXRzIHRoYXQgYXJpc2UgZHVlIHRvIGENCiAgIHBhcnRpY3VsYXIgY2hvaWNlIG9mIGFy Y2hpdGVjdHVyZSwgb25lIHRoYXQgc3RvcmVzIHNlbnNpdGl2ZQ0KICAgaW5mb3JtYXRpb24gaW4g YW4gQVAuIFdpdGggdGhlIGFyY2hpdGVjdHVyZSBhYm92ZSwgYW4gQVAgZG9lcyBub3QNCiAgIHN0 b3JlIHNlY3JldHMgYW5kIHRoZXJlZm9yZSBBUCB0aGVmdCBpcyBub3QgYSBzZWN1cml0eSB0aHJl YXQuDQogICBJbnN0YWxsYXRpb24gb2YgdW5hdXRob3JpemVkIGFjY2VzcyBwb2ludHMgaXMgYSB0 aHJlYXQgaWYgdGhleSBjYW5ub3QNCiAgIGJlIGFnZ3JlZ2F0ZWQgYnkgYW4gQUMsIG90aGVyd2lz ZSBpdCBkb2Vzbid0IG1hdHRlciBiZWNhdXNlIHRoZSBBQw0KICAgdWx0aW1hdGVseSBjb250cm9s cyBhY2Nlc3MgdG8gdGhlIExBTi4gIEZ1cnRoZXIsIGEgc3RhdGlvbiB3aWxsIG5vdA0KICAgY29u bmVjdCB0byBhbiBBQyB0aGF0IGl0IGNhbm5vdCBhdXRoZW50aWNhdGUuIFRoZXJlZm9yZSBhbiBp bnRydWRlcg0KICAgaXMgcHJldmVudGVkIGZyb20gbWFzcXVlcmFkaW5nIGFzIGFuIGF1dGhvcml6 ZWQgQVAgYW5kIGNyZWF0aW5nIGENCiAgIE1BQy1sYXllciBzZWN1cml0eSBhc3NvY2lhdGlvbiB3 aXRoIGFuIGVuZCBzdGF0aW9uLiAgQW4gdW5hdXRob3JpemVkDQogICBBUCB0aGF0IGlzIG5vdCBh dHRhY2hlZCBkaXJlY3RseSBvciBpbmRpcmVjdGx5IHRvIGFuIEFDIGlzIGEgdGhyZWF0DQogICB0 byBMQU4gYWNjZXNzIGJ1dCBub3QgdG8gYW4gZW5kIHN0YXRpb24uDQoNCg0KDQoNCg0KDQoNCg0K DQoNCg0KDQoNCg0KDQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIg MTUsIDIwMDQgICAgICAgICAgICAgIFtQYWdlIDgzXQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAg ICAgIENBUFdBUCBBcmNoLiBUYXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0K QXBwZW5kaXggTi4gIFN1cnZleSBDb250cmlidXRpb24gRm9yIEFyY2hpdGVjdHVyZSAxMw0KDQog ICAoMSkgRGVzaWduIGNvbnNpZGVyYXRpb25zIGFuZCByZXF1aXJlbWVudHM6DQoNCiAgIFRoZSBN ZXNoIGFyY2hpdGVjdHVyZSBhbGxvd3MgZWFjaCBBUCB0byBhdXRvbm9tb3VzbHkga2VlcCBzdGF0 dXMgb2YNCiAgIHRoZSBwZXJ0aW5lbnQgaW5mb3JtYXRpb24gb2YgdGhlIG90aGVyIEFQcywgZXNw ZWNpYWxseSBhcyBpdCByZWxhdGVzDQogICB0byBiYWNrLWhhdWxpbmcgdHJhZmZpYyBiZXR3ZWVu IEFQcy4gRWFjaCBBUCBtYXkgYXNzdW1lIHRoZSByb2xlIG9mDQogICBwcm92aWRpbmcgYWNjZXNz IGJvdGggdG8gc3RhdGlvbnMgb3IgdG8gb3RoZXIgQVBzIGZvciBiYWNrLWhhdWxpbmcNCiAgIHRy YWZmaWMuIFRoaXMgd2F5IHdlIGhhdmUgYW4gT1NQRi1saWtlIHN5c3RlbSBvZiB3ZWlnaGluZyBw YXRocw0KICAgdGhyb3VnaCB0aGUgbmV0d29yayBmb3IgbG9hZC1iYWxhbmNpbmcgYW5kIGZhdWx0 LXRvbGVyYW5jZS4gVGhlIG9ubHkNCiAgIHJlcXVpcmVtZW50IGlzIElQIGNvbm5lY3Rpdml0eSBi ZXR3ZWVuIEFQcy4NCg0KICAgKDIpIFdMQU4gZnVuY3Rpb25zIHN1cHBvcnRlZDoNCg0KICAgUGxl YXNlIGxpc3QgdGhlIGZ1bmN0aW9ucyBzdXBwb3J0ZWQgaW4gdGhpcyBXTEFOIGJyaWVmbHksIGJ1 dCBwbGVhc2UNCiAgIGRvIG5vdCBzZW5kIHVzIHRoZSBlbnRpcmUgZGF0YSBzaGVldC4gRXhhbXBs ZXMgb2YgV0xBTiBmdW5jdGlvbnMNCiAgIGluY2x1ZGVzIHRoZSBTVEEgc2VydmljZXMsIERpc3Ry aWJ1dGVkIFN5c3RlbSBTZXJ2aWNlcyAoYXMgZGVmaW5lZCBieQ0KICAgODAyLjExKSwgcmFkaW8g cmVzb3VyY2UgbWFuYWdlbWVudCBhbmQgY29udHJvbCwgQVAgbG9hZCBiYWxhbmNpbmcsDQogICBt b2JpbGl0eSBzdXBwb3J0LCBXTEFOIG5ldHdvcmsgd2lkZSBzZWN1cml0eSBmdW5jdGlvbnMgKGlu Y2x1ZGluZw0KICAgYXV0aGVudGljYXRpb24sIGVuY3J5cHRpb24gZm9yIHByaXZhY3kgYW5kIGlu dGVncml0eSwgZXRjLikgYW5kIGFueQ0KICAgb3RoZXJzIG5vdCBsaXN0ZWQgaGVyZSBidXQgZGVl bWVkIGltcG9ydGFudCBpbiB5b3VyIGRlc2lnbi4NCg0KICAgWWVzIHRvIGFsbCBvZiB0aGUgYWJv dmUgdGhyb3VnaCBtdWNoIHRoZSBzYW1lIGZ1bmN0aW9ucyBhcyB0aGUNCiAgIG90aGVycy4gODAy LjF4LCBBRVMsIFdQQSwgVEtJUCwgRUFQLWJsYWgsIGJsYWgsIGJsYWguIE90aGVyIHRoYW4gbG9h ZA0KICAgYmFsYW5jaW5nIGFuZCBkeW5hbWljIHJhZGlvIHJlc291cmNlIG1hbmFnZW1lbnQsIEkg ZG9uJ3QgdGhpbmsgbXVjaA0KICAgZWxzZSBtYXR0ZXJzIGluIHRlcm1zIG9mIG91ciB3b3JrLg0K DQogICAoMykgVGhlIGZ1bmN0aW9uYWwgYXJjaGl0ZWN0dXJlIHRvIGltcGxlbWVudCB0aGUgZnVu Y3Rpb25zIGRlc2NyaWJlZA0KICAgYWJvdmU6IHdoZXRoZXIgaXQgaXMgYnkgYXV0b25vbW91cyBB UCBhcmNoaXRlY3R1cmUsIG9yICJzcGxpdCINCiAgIGFyY2hpdGVjdHVyZS4gRm9yIHNwbGl0IGFy Y2hpdGVjdHVyZSwgcGxlYXNlIHByb3ZpZGUgdGhlIGZ1bmN0aW9uYWwNCiAgIG1hcHBpbmcgb2Yg V0xBTiBmdW5jdGlvbnMgb250byB0aGUgQVAgYW5kIEFDIC0tIHdpdGgganVzdCBlbm91Z2gNCiAg IGRldGFpbHMgdGhhdCBoZWxwIHVzIHVuZGVyc3RhbmQgdGhlIGtpbmRzIG9mIGZ1bmN0aW9uYWwg aW50ZXJmYWNlDQogICBuZWNlc3NhcnkgYmV0d2VlbiB0aGUgdHdvLg0KDQogICBTZWUgbXkgYW5z d2VyIHRvIDQuIFRoZSBmdW5jdGlvbmFsIHJlbGF0aW9uc2hpcCBiZXR3ZWVuIE1lc2ggbm9kZXMg aXMNCiAgIHRoYXQgdGhleSBrZWVwIGVhY2ggb3RoZXIgc3luY2VkIHVwIHdpdGggdGhlaXIgcmVz b3VyY2VzIGFuZA0KICAgY2FwYWJpbGl0aWVzLiBUaGV5IGFsc28ga2VlcCBlYWNoIG90aGVyIGlu IHN5bmMgd2l0aCB0aGUgc3RhdGUgb2YgdGhlDQogICB3aG9sZSBuZXR3b3JrIHdoaWNoIGFsbG93 cyBlYWNoIEFQIHRvIG1ha2UgaW50ZWxsaWdlbnQgY2hvaWNlcyBvZg0KICAgd2hlcmUgdG8gYmFj ay1oYXVsIHRyYWZmaWMgdG8uDQoNCiAgICg0KSBUaGUgcHJvdG9jb2wgdXNlZCBpbiBiZXR3ZWVu IEFQIGFuZCBBQy4NCg0KICAgKFdoYXQgaXMgYW4gQVAgYW5kIEFDPyBJIGRvbid0IHRoaW5rIHdl J3ZlIGRlZmluZWQgdGhvc2UgaW4gdGhlIHRlcm1zDQogICB0aGF0IHdlIHdpbGwgdWx0aW1hdGVs eSB1c2UuIFNvIEknbGwgbGVhdmUgdGhhdCBvbmUgZm9yIG5vdy4NCg0KICAgKDUpIFRoZSB0b3Bv bG9naWNhbCBhc3N1bXB0aW9ucyBiZXR3ZWVuIEFQIGFuZCBBQyAoaXMgaXQgZGlyZWN0bHkNCiAg IGNvbm5lY3RlZCwgTDIgc3dpdGNoZWQsIG9yIEwzIHJvdXRlZD8pIC0tIHRoaXMgYWxzbyBoZWxw cyB1cyB0bw0KICAgdW5kZXJzdGFuZCB0aGUgZGVwbG95bWVudCBzY2VuYXJpb3MuDQoNCg0KDQpZ YW5nIChFZGl0b3IpLCBldCBhbC4gICAgRXhwaXJlcyBPY3RvYmVyIDE1LCAyMDA0ICAgICAgICAg ICAgICBbUGFnZSA4NF0NCgwNCkludGVybmV0LURyYWZ0ICAgICAgICAgICBDQVBXQVAgQXJjaC4g VGF4b25vbXkgICAgICAgICAgICAgICAgQXByaWwgMjAwNA0KDQoNCiAgIEFQcyBhcmUgY29ubmVj dGVkIFdpcmVkIG9yIHdpcmVsZXNzIHVzaW5nIEwyIDgwMi4xMQ0KDQogICAoNikgU2VjdXJpdHkg dGhyZWF0IGFuYWx5c2lzOiB3aGF0IGtpbmRzIG9mIHRocmVhdCBpbnRyb2R1Y2VkIGJ5IHRoZQ0K ICAgc3BsaXQgYXJjaGl0ZWN0dXJlLCBhbmQgaG93IHRoYXQgYXJlIGFkZHJlc3NlZC4NCg0KICAg V2UgZW5jcnlwdCBhdXRvbWF0aWNhbGx5IGVhY2ggbGluayB1c2luZyBBRVMgYW5kIDE1Mi1iaXQg a2V5IHdpdGggS00uDQoNCiAgICg3KSBQcm9zIGFuZCBDb25zIG9mIHRoaXMgYXJjaGl0ZWN0dXJl LCBlc3AuIGluIHJlbGF0aW9uIHRvIHRoZSBmb3VyDQogICBwcm9ibGVtcyBkZXNjcmliZWQgaW4g dGhlIENBUFdBUCBwcm9ibGVtIHN0YXRlbWVudC4gUGxlYXNlIGtlZXAgdGhlDQogICBhbmFseXNp cyBhdCB0ZWNobmljYWwgaW5zdGVhZCBvZiBtYXJrZXRpbmcgbGV2ZWwuDQoNCiAgIFByb2JsZW0g MS4gU2luY2UgZWFjaCBub2RlIGlzIGZ1bGx5IGF3YXJlIG9mIHRoZSBuZXR3b3JrLCB5b3UgZG9u J3QNCiAgIG5lZWQgdG8gbWFuYWdlIGVhY2ggbm9kZS4gSnVzdCBvbmUgd2lsbCBkbyBhbmQgaXQg Y2FuIHVwZGF0ZSB0aGUNCiAgIGVudGlyZSBuZXR3b3JrLiBUaGF0J3Mgb25lIG9mIHRoZSBtYWlu IHZhbHVlcyBvZiBNZXNoLg0KDQogICBQcm9ibGVtIDIuIEtpbmQgb2YgdGhlIHNhbWUgYW5zd2Vy IGFzIGFib3ZlLiBCeSB1c2luZyBtdWx0aWNhc3QgSVANCiAgIHByb3RvY29scyB0byBrZWVwIGV2 ZXJ5dGhpbmcgaW4gc3luYywgd2UgZG9uJ3QgcnVuIGludG8gdGhlIHByb2JsZW1zDQogICBtZW50 aW9uZWQgaW4gMi4NCg0KICAgUHJvYmxlbSAzLiBNZXNoIHJlYWxseSBzb2x2ZXMgdGhpcyBvbmUg cXVpdGUgd2VsbCwgYWdhaW4gYnkga2VlcGluZw0KICAgZXZlcnlvbmUgaW4gc3luYyBhbmQgdXNp bmcgbXVsdGljYXN0IElQLg0KDQogICBQcm9ibGVtIDQuIEJ5IGRlY2xhcmluZyBhIENsb3VkIGVu dGl0eSBjb25zaXN0aW5nIG9mIG11bHRpcGxlIHdpcmVkDQogICBvciB3aXJlbGVzc2x5IGNvbm5l Y3RlZCBBUHMsIGNvbXBsZXRlIHdpdGggZnVsbCBzZWN1cml0eSwgb25seQ0KICAgbGVnaXRpbWF0 ZSBBUHMgYXJlIGFkbWl0dGVkIHRvIHRoZSBuZXR3b3JrLiBSb2d1ZXMgY2Fubm90IHBhcnRpY2lw YXRlDQogICBhbmQgbWF5IGJlIGh1bnRlZCBkb3duIHVzaW5nIHJhZGlvIHRlY2huaXF1ZXMuDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCllhbmcgKEVk aXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIgMTUsIDIwMDQgICAgICAgICAgICAgIFtQ YWdlIDg1XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAgICAgIENBUFdBUCBBcmNoLiBUYXhvbm9t eSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0KQXBwZW5kaXggTy4gIFN1cnZleSBDb250 cmlidXRpb24gRm9yIEFyY2hpdGVjdHVyZSAxNA0KDQogICBUaGlzIGFyY2hpdGVjdHVyZSByZXF1 aXJlcyBhIGNvbnRyb2wgY2hhbm5lbCBiZXR3ZWVuIHdpcmVsZXNzIGFjY2Vzcw0KICAgcG9pbnRz IGFuZCBhIGxvZ2ljYWwgd2lyZWxlc3Mgc3dpdGNoIGRldmljZSB0byBleGNoYW5nZQ0KICAgY29u ZmlndXJhdGlvbiwgcmFkaW8gY29udHJvbCwgc3RhdHVzIGFuZCBjZXJ0YWluIDgwMi4xMSBzcGVj aWZpYw0KICAgbWVzc2FnZXMuIEFzIGV4cGxhaW5lZCBiZWxvdyB0aGUgbG9naWNhbCB3aXJlbGVz cyBzd2l0Y2gNCiAgIGZ1bmN0aW9uYWxpdHkgbWF5IG9wdGlvbmFsbHkgYmUgZGlzdHJpYnV0ZWQg YmV0d2VlbiBtb3JlIHRoYW4gb25lDQogICBwaHlzaWNhbCBkZXZpY2UgYnkgc2VwYXJhdGluZyBj ZXJ0YWluIGxvZ2ljYWwgZnVuY3Rpb25zLg0KDQogICBUb3BvbG9naWNhbCByZXF1aXJlbWVudHMN Cg0KICAgMS4gVGhlIEFQIGFuZCB0aGUgQUMgYXJlIElQIGhvc3RzIHRoYXQgbWF5IGJlIHNlcGFy YXRlZCBieSBMMiBhbmQvb3INCiAgIEwzIGRldmljZXMuIFRoZXkgYXJlIG5vdCByZXF1aXJlZCB0 byBlaXRoZXIgYmUgZGlyZWN0bHkgYXR0YWNoZWQgb3INCiAgIGluIHRoZSBzYW1lIExheWVyLTIg YnJvYWRjYXN0IGRvbWFpbi4NCg0KICAgMi4gVGhlcmUgbXVzdCBiZSBJUC1jb25uZWN0aXZpdHkg YmV0d2VlbiB0aGUgQVAgYW5kIHRoZSBBQy4NCg0KICAgVHJhbnNwb3J0IGF0dHJpYnV0ZXM6DQoN CiAgIDEuIFRoZSBjb250cm9sIGNoYW5uZWwgaXMgYW4gSVAgY29ubmVjdGlvbiB0aGF0IG1heSB1 c2UgVURQIG9yIFRDUA0KICAgdHJhbnNwb3J0IG1lY2hhbmlzbXMuDQoNCiAgIDIuIFNvbWUgY29u dHJvbCBjaGFubmVsIGF0dHJpYnV0ZXMgbWF5IGJlIHN0YXRpY2FsbHkgY29uZmlndXJlZC4gSW4N CiAgIHBhcnRpY3VsYXIsIGVuY3J5cHRpb24gYW5kL29yIGF1dGhlbnRpY2F0aW9uIG1heSBiZSBl bmFibGVkIG9uIHRoZQ0KICAgY2hhbm5lbC4NCg0KICAgMy4gVGhlIGNoYW5uZWwgY2FycmllcyBt ZXNzYWdlcyB0aGF0IG1heSBiZSBjYXRlZ29yaXplZCBieSB2YXJpb3VzDQogICBmdW5jdGlvbnMg c3VjaCBhcyBwcm92aXNpb25pbmcsIG1vbml0b3JpbmcsIHJhZGlvIG1hbmFnZW1lbnQgYW5kDQog ICBtb2JpbGUgbm9kZSByZWdpc3RyYXRpb24uIFRoZXNlIG1heSBiZSBtdWx0aXBsZXhlZCBvdmVy IHRoZSBzYW1lDQogICBjaGFubmVsIGJ5IHRoZSB1c2Ugb2YgVExWcy9vcGNvZGVzIG9yIGRpc3Ry aWJ1dGVkIG92ZXIgbXVsdGlwbGUgSVANCiAgIGNvbm5lY3Rpb25zLiBUaGUgZmlyc3Qgb3B0aW9u IGFsbG93cyBjby1sb2NhdGluZyBhbGwgd2lyZWxlc3Mgc3dpdGNoDQogICBmdW5jdGlvbmFsaXR5 IGluIHRoZSBzYW1lIGRldmljZSB3aGlsZSB0aGUgbGF0dGVyIGFsbG93cyBmb3Igc3dpdGNoDQog ICBlbnRpdHkgYmUgaG9zdGVkIG9uIGRpZmZlcmVudCBkZXZpY2VzIGVhY2ggcGVyZm9ybWluZyBh IGRpZmZlcmVudCBzZXQNCiAgIG9mIGZ1bmN0aW9ucy4NCg0KICAgNC4gQVBzIGluaXRpYXRlIGNv bm5lY3Rpb24gdG8gdGhlIEFDIG9uIGEgd2VsbC1rbm93biBVRFAgb3IgVENQIHBvcnQuDQogICBE aXNjb3Zlcnkgb2YgdGhlIEFDIG1heSBiZSB2aWEgbWFudWFsIGNvbmZpZ3VyYXRpb24gb24gdGhl IEFQIG9yDQogICB0aHJvdWdoIGluaXRpYWwgREhDUCBzaWduYWxpbmcgZXhjaGFuZ2UgYmV0d2Vl biB0aGUgQVAgYW5kIGEgREhDUA0KICAgc2VydmVyLg0KDQogICBDb250ZW50cyBvZiBQcm90b2Nv bDoNCg0KICAgMSkgQVBzIGRpc2NvdmVyIHRoZSBBQyBhbmQgaW5pdGlhdGUgYSBVRFAgb3IgVENQ IGNvbm5lY3Rpb24uDQoNCiAgIDIpIFRoZSBBUCBhbmQgdGhlIEFDIHBlcmZvcm0gbXV0dWFsIGF1 dGhlbnRpY2F0aW9uIHVzaW5nIEVBUC4NCg0KICAgMykgVGhlIEFQIGFuZCB0aGUgQUMgb3B0aW9u YWxseSBuZWdvdGlhdGUgc2VjdXJpdHkgYXNzb2NpYXRpb24gZm9yDQogICBzZWN1cmluZyB0aGUg Y2hhbm5lbC4NCg0KDQoNCllhbmcgKEVkaXRvciksIGV0IGFsLiAgICBFeHBpcmVzIE9jdG9iZXIg MTUsIDIwMDQgICAgICAgICAgICAgIFtQYWdlIDg2XQ0KDA0KSW50ZXJuZXQtRHJhZnQgICAgICAg ICAgIENBUFdBUCBBcmNoLiBUYXhvbm9teSAgICAgICAgICAgICAgICBBcHJpbCAyMDA0DQoNCg0K ICAgNCkgVGhlIEFQIGlzIGluaXRpYWxseSBwcm92aXNpb25lZCBieSB0aGUgQUMgdmlhIGEgY2Vu dHJhbA0KICAgY29uZmlndXJhdGlvbiBkYXRhYmFzZS4NCg0KICAgNCkgVGhlIEFDIGRvZXMgLjEx Ly4xWCBhdXRoZW50aWNhdGlvbiBtZWRpYXRpb24gd2hlbiB0aGUgQVANCiAgIGF1dGhlbnRpY2F0 ZXMgbW9iaWxlIG5vZGVzLiBJbnNlcnRpbmcgdGhlIEFDIGJldHdlZW4gdGhlIEFQIGFuZCB0aGUN CiAgIGF1dGhlbnRpY2F0aW9uIHNlcnZlciBjYW4gYmUgdXNlZCBmb3IgbWFpbnRhaW5pbmcgYSBj ZW50cmFsIGRhdGFiYXNlDQogICBvZiBtb2JpbGUgbm9kZXMuDQoNCiAgIDQpIFJhZGlvIHJlcG9y dHMgYXJlIHNlbnQgZnJvbSB0aGUgQVAgdG8gdGhlIEFDIGFzIG5lY2Vzc2FyeS4NCg0KICAgNSkg UmFkaW8gY29udHJvbCBtZXNzYWdlcyBhcmUgc2VudCBmcm9tIHRoZSBBQyB0byB0aGUgQVANCiAg IGFzeW5jaHJvbm91c2x5Lg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQg YWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAgICAgW1BhZ2UgODddDQoM DQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQV0FQIEFyY2guIFRheG9ub215ICAgICAgICAg ICAgICAgIEFwcmlsIDIwMDQNCg0KDQpJbnRlbGxlY3R1YWwgUHJvcGVydHkgU3RhdGVtZW50DQoN CiAgIFRoZSBJRVRGIHRha2VzIG5vIHBvc2l0aW9uIHJlZ2FyZGluZyB0aGUgdmFsaWRpdHkgb3Ig c2NvcGUgb2YgYW55DQogICBpbnRlbGxlY3R1YWwgcHJvcGVydHkgb3Igb3RoZXIgcmlnaHRzIHRo YXQgbWlnaHQgYmUgY2xhaW1lZCB0bw0KICAgcGVydGFpbiB0byB0aGUgaW1wbGVtZW50YXRpb24g b3IgdXNlIG9mIHRoZSB0ZWNobm9sb2d5IGRlc2NyaWJlZCBpbg0KICAgdGhpcyBkb2N1bWVudCBv ciB0aGUgZXh0ZW50IHRvIHdoaWNoIGFueSBsaWNlbnNlIHVuZGVyIHN1Y2ggcmlnaHRzDQogICBt aWdodCBvciBtaWdodCBub3QgYmUgYXZhaWxhYmxlOyBuZWl0aGVyIGRvZXMgaXQgcmVwcmVzZW50 IHRoYXQgaXQNCiAgIGhhcyBtYWRlIGFueSBlZmZvcnQgdG8gaWRlbnRpZnkgYW55IHN1Y2ggcmln aHRzLiBJbmZvcm1hdGlvbiBvbiB0aGUNCiAgIElFVEYncyBwcm9jZWR1cmVzIHdpdGggcmVzcGVj dCB0byByaWdodHMgaW4gc3RhbmRhcmRzLXRyYWNrIGFuZA0KICAgc3RhbmRhcmRzLXJlbGF0ZWQg ZG9jdW1lbnRhdGlvbiBjYW4gYmUgZm91bmQgaW4gQkNQLTExLiBDb3BpZXMgb2YNCiAgIGNsYWlt cyBvZiByaWdodHMgbWFkZSBhdmFpbGFibGUgZm9yIHB1YmxpY2F0aW9uIGFuZCBhbnkgYXNzdXJh bmNlcyBvZg0KICAgbGljZW5zZXMgdG8gYmUgbWFkZSBhdmFpbGFibGUsIG9yIHRoZSByZXN1bHQg b2YgYW4gYXR0ZW1wdCBtYWRlIHRvDQogICBvYnRhaW4gYSBnZW5lcmFsIGxpY2Vuc2Ugb3IgcGVy bWlzc2lvbiBmb3IgdGhlIHVzZSBvZiBzdWNoDQogICBwcm9wcmlldGFyeSByaWdodHMgYnkgaW1w bGVtZW50b3JzIG9yIHVzZXJzIG9mIHRoaXMgc3BlY2lmaWNhdGlvbiBjYW4NCiAgIGJlIG9idGFp bmVkIGZyb20gdGhlIElFVEYgU2VjcmV0YXJpYXQuDQoNCiAgIFRoZSBJRVRGIGludml0ZXMgYW55 IGludGVyZXN0ZWQgcGFydHkgdG8gYnJpbmcgdG8gaXRzIGF0dGVudGlvbiBhbnkNCiAgIGNvcHly aWdodHMsIHBhdGVudHMgb3IgcGF0ZW50IGFwcGxpY2F0aW9ucywgb3Igb3RoZXIgcHJvcHJpZXRh cnkNCiAgIHJpZ2h0cyB3aGljaCBtYXkgY292ZXIgdGVjaG5vbG9neSB0aGF0IG1heSBiZSByZXF1 aXJlZCB0byBwcmFjdGljZQ0KICAgdGhpcyBzdGFuZGFyZC4gUGxlYXNlIGFkZHJlc3MgdGhlIGlu Zm9ybWF0aW9uIHRvIHRoZSBJRVRGIEV4ZWN1dGl2ZQ0KICAgRGlyZWN0b3IuDQoNCg0KRnVsbCBD b3B5cmlnaHQgU3RhdGVtZW50DQoNCiAgIENvcHlyaWdodCAoQykgVGhlIEludGVybmV0IFNvY2ll dHkgKDIwMDQpLiBBbGwgUmlnaHRzIFJlc2VydmVkLg0KDQogICBUaGlzIGRvY3VtZW50IGFuZCB0 cmFuc2xhdGlvbnMgb2YgaXQgbWF5IGJlIGNvcGllZCBhbmQgZnVybmlzaGVkIHRvDQogICBvdGhl cnMsIGFuZCBkZXJpdmF0aXZlIHdvcmtzIHRoYXQgY29tbWVudCBvbiBvciBvdGhlcndpc2UgZXhw bGFpbiBpdA0KICAgb3IgYXNzaXN0IGluIGl0cyBpbXBsZW1lbnRhdGlvbiBtYXkgYmUgcHJlcGFy ZWQsIGNvcGllZCwgcHVibGlzaGVkDQogICBhbmQgZGlzdHJpYnV0ZWQsIGluIHdob2xlIG9yIGlu IHBhcnQsIHdpdGhvdXQgcmVzdHJpY3Rpb24gb2YgYW55DQogICBraW5kLCBwcm92aWRlZCB0aGF0 IHRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBhcmFncmFwaCBhcmUNCiAgIGlu Y2x1ZGVkIG9uIGFsbCBzdWNoIGNvcGllcyBhbmQgZGVyaXZhdGl2ZSB3b3Jrcy4gSG93ZXZlciwg dGhpcw0KICAgZG9jdW1lbnQgaXRzZWxmIG1heSBub3QgYmUgbW9kaWZpZWQgaW4gYW55IHdheSwg c3VjaCBhcyBieSByZW1vdmluZw0KICAgdGhlIGNvcHlyaWdodCBub3RpY2Ugb3IgcmVmZXJlbmNl cyB0byB0aGUgSW50ZXJuZXQgU29jaWV0eSBvciBvdGhlcg0KICAgSW50ZXJuZXQgb3JnYW5pemF0 aW9ucywgZXhjZXB0IGFzIG5lZWRlZCBmb3IgdGhlIHB1cnBvc2Ugb2YNCiAgIGRldmVsb3Bpbmcg SW50ZXJuZXQgc3RhbmRhcmRzIGluIHdoaWNoIGNhc2UgdGhlIHByb2NlZHVyZXMgZm9yDQogICBj b3B5cmlnaHRzIGRlZmluZWQgaW4gdGhlIEludGVybmV0IFN0YW5kYXJkcyBwcm9jZXNzIG11c3Qg YmUNCiAgIGZvbGxvd2VkLCBvciBhcyByZXF1aXJlZCB0byB0cmFuc2xhdGUgaXQgaW50byBsYW5n dWFnZXMgb3RoZXIgdGhhbg0KICAgRW5nbGlzaC4NCg0KICAgVGhlIGxpbWl0ZWQgcGVybWlzc2lv bnMgZ3JhbnRlZCBhYm92ZSBhcmUgcGVycGV0dWFsIGFuZCB3aWxsIG5vdCBiZQ0KICAgcmV2b2tl ZCBieSB0aGUgSW50ZXJuZXQgU29jaWV0eSBvciBpdHMgc3VjY2Vzc29ycyBvciBhc3NpZ25lZXMu DQoNCiAgIFRoaXMgZG9jdW1lbnQgYW5kIHRoZSBpbmZvcm1hdGlvbiBjb250YWluZWQgaGVyZWlu IGlzIHByb3ZpZGVkIG9uIGFuDQogICAiQVMgSVMiIGJhc2lzIGFuZCBUSEUgSU5URVJORVQgU09D SUVUWSBBTkQgVEhFIElOVEVSTkVUIEVOR0lORUVSSU5HDQogICBUQVNLIEZPUkNFIERJU0NMQUlN UyBBTEwgV0FSUkFOVElFUywgRVhQUkVTUyBPUiBJTVBMSUVELCBJTkNMVURJTkcNCiAgIEJVVCBO T1QgTElNSVRFRCBUTyBBTlkgV0FSUkFOVFkgVEhBVCBUSEUgVVNFIE9GIFRIRSBJTkZPUk1BVElP Tg0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAgIEV4cGlyZXMgT2N0b2JlciAxNSwgMjAw NCAgICAgICAgICAgICAgW1BhZ2UgODhdDQoMDQpJbnRlcm5ldC1EcmFmdCAgICAgICAgICAgQ0FQ V0FQIEFyY2guIFRheG9ub215ICAgICAgICAgICAgICAgIEFwcmlsIDIwMDQNCg0KDQogICBIRVJF SU4gV0lMTCBOT1QgSU5GUklOR0UgQU5ZIFJJR0hUUyBPUiBBTlkgSU1QTElFRCBXQVJSQU5USUVT IE9GDQogICBNRVJDSEFOVEFCSUxJVFkgT1IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBP U0UuDQoNCg0KQWNrbm93bGVkZ21lbnQNCg0KICAgRnVuZGluZyBmb3IgdGhlIFJGQyBFZGl0b3Ig ZnVuY3Rpb24gaXMgY3VycmVudGx5IHByb3ZpZGVkIGJ5IHRoZQ0KICAgSW50ZXJuZXQgU29jaWV0 eS4NCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoN Cg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KWWFuZyAoRWRpdG9yKSwgZXQgYWwuICAg IEV4cGlyZXMgT2N0b2JlciAxNSwgMjAwNCAgICAgICAgICAgICAgW1BhZ2UgODldDQoMDQoNCg== ------_=_NextPart_001_01C4238A.3A7394B2-- From lily.l.yang@intel.com Fri Apr 16 19:37:52 2004 From: lily.l.yang@intel.com (Yang, Lily L) Date: Fri, 16 Apr 2004 11:37:52 -0700 Subject: [Capwap] FW: submission Message-ID: <2AF68A477DD44C4EBCBE338C24E7A9EE5C4244@orsmsx408.jf.intel.com> This is a multi-part message in MIME format. ------_=_NextPart_001_01C423E1.ED2E6800 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable You can also download the new draft from the following link: http://www.capwap.org/draft-ietf-capwap-arch-02.txt =20 =20 -----Original Message----- From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com]On = Behalf Of Yang, Lily L Sent: Friday, April 16, 2004 1:10 AM To: capwap@frascone.com Cc: Dorothy Stanley Subject: [Capwap] FW: submission Hi, all=20 =20 Here is v02 of the CAPWAP Architecture Taxonomy document that I just = posted to the Internet-Drafts@ietf.org. We have incorporated most of the comments we received so far from the = CAPWAP mailing list and Design Team.=20 =20 Here is a list of the major changes since v01: * Complete restructuring of Section 4 and added some new text to Section = 4 as well: This section has gone thorough major content reorganization = for better presentation of the material. * Added new text to Section 3 * Added new text to Section 6 (summary). * Security Consideration rewritten. =20 Here is a list of minor changes: * Entire document: removed reference to "Split WLAN Architecture" and = "Hierarchical WLAN Architecture", use "Centralized WLAN Architecture" = instead. * 1.3: "AC" reworded, "mesh WTP" removed. "Split WLAN Architecture" and = "Hierarchical WLAN Architecture" removed. * 1.4 "Split WLAN Architecture" and "Hierarchical WLAN Architecture" = added as historic terminology * 2: intro reworded to fix grammar. * 2.1 rewrote part of the text. * 2.2: "clear channel assessment" is removed from the list. * 5: added Editor's note. Fixed the figure. =20 While this revision can be used for both IETF and IEEE review, the = design team intends to continue revise the draft based on feedback = received. So your comments are most welcome. =20 Thanks, =20 Lily =20 -----Original Message----- From: Yang, Lily L=20 Sent: Friday, April 16, 2004 1:01 AM To: 'Internet-Drafts@ietf.org' Subject: submission =20 =20 ------_=_NextPart_001_01C423E1.ED2E6800 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
You = can also=20 download the new draft from the following link:
http://www.c= apwap.org/draft-ietf-capwap-arch-02.txt
 
 
 -----Original = Message-----
From:=20 capwap-admin@frascone.com [mailto:capwap-admin@frascone.com]On Behalf = Of=20 Yang, Lily L
Sent: Friday, April 16, 2004 1:10 = AM
To:=20 capwap@frascone.com
Cc: Dorothy Stanley
Subject: = [Capwap]=20 FW: submission

Hi, all=20

 

Here is v02 = of the=20 CAPWAP Architecture Taxonomy document that I just posted to the Internet-Drafts@ietf.org.

 We = have=20 incorporated most of the comments we received so far from the CAPWAP = mailing=20 list and Design Team.

 

Here is a = list of the=20 major changes since v01:

* Complete=20 restructuring of Section 4 and added some new text to Section 4 as = well: This=20 section has gone thorough major content reorganization for better = presentation=20 of the material.

* Added new = text to=20 Section 3

* Added new = text to=20 Section 6 (summary).

* Security=20 Consideration rewritten.

 

Here is a = list of=20 minor changes:

* Entire document: = removed=20 reference to "Split WLAN Architecture" and "Hierarchical WLAN = Architecture",=20 use "Centralized WLAN Architecture" instead.

* 1.3: "AC" reworded, = "mesh WTP"=20 removed. "Split WLAN Architecture" and "Hierarchical WLAN = Architecture"=20 removed.

* 1.4 = "Split WLAN=20 Architecture" and "Hierarchical WLAN Architecture" added as historic=20 terminology

* 2: intro reworded to = fix=20 grammar.

* 2.1 rewrote part of = the=20 text.

* 2.2: "clear channel = assessment"=20 is removed from the list.

* 5: added Editor's = note. Fixed=20 the figure.

 

While this = revision=20 can be used for both IETF and IEEE review, the design team intends to = continue=20 revise the draft based on feedback received. So your comments are most = welcome.

 

Thanks,

 

Lily

 

-----Original=20 Message-----
From: = Yang, Lily=20 L
Sent: =
Friday,=20 April 16, 2004 1:01=20 AM
To:=20 'Internet-Drafts@ietf.org'
Subject: = submission

 

 

------_=_NextPart_001_01C423E1.ED2E6800-- From lily.l.yang@intel.com Fri Apr 16 19:41:58 2004 From: lily.l.yang@intel.com (Yang, Lily L) Date: Fri, 16 Apr 2004 11:41:58 -0700 Subject: [Capwap] FW: draft posted on our web server too Message-ID: <2AF68A477DD44C4EBCBE338C24E7A9EE5C4245@orsmsx408.jf.intel.com> Another place to download the v02 draft ... -----Original Message----- From: Petros Zerfos [mailto:pzerfos@CS.UCLA.EDU]=20 Sent: Friday, April 16, 2004 11:41 AM To: Yang, Lily L Subject: draft posted on our web server too at the following link: http://www.cs.ucla.edu/~pzerfos/draft-ietf-capwap-arch-02.txt Petros -- Petros Th. Zerfos UCLA - Computer Science Department email: pzerfos@cs.ucla.edu From Internet-Drafts@ietf.org Fri Apr 16 20:35:38 2004 From: Internet-Drafts@ietf.org (Internet-Drafts@ietf.org) Date: Fri, 16 Apr 2004 15:35:38 -0400 Subject: [Capwap] I-D ACTION:draft-ietf-capwap-arch-02.txt Message-ID: <200404161935.PAA00862@ietf.org> --NextPart A New Internet-Draft is available from the on-line Internet-Drafts directories. This draft is a work item of the Control And Provisioning of Wireless Access Points Working Group of the IETF. Title : Architecture for Control and Provisioning of Wireless Access Points(CAPWAP) Author(s) : L. Yang, et al. Filename : draft-ietf-capwap-arch-02.txt Pages : 89 Date : 2004-4-16 This document provides a taxonomy of the architectures employed in the existing IEEE 802.11 products in the market, by analyzing WLAN (Wireless LAN) functions and services and describing the different variants in distributing these functions and services among the architectural entities. This taxonomy may be utilized by the IEEE 802.11 Working Group as input to their task of defining the Access Point (AP) functional architecture. A URL for this Internet-Draft is: http://www.ietf.org/internet-drafts/draft-ietf-capwap-arch-02.txt To remove yourself from the I-D Announcement list, send a message to i-d-announce-request@ietf.org with the word unsubscribe in the body of the message. You can also visit https://www1.ietf.org/mailman/listinfo/I-D-announce to change your subscription settings. Internet-Drafts are also available by anonymous FTP. Login with the username "anonymous" and a password of your e-mail address. After logging in, type "cd internet-drafts" and then "get draft-ietf-capwap-arch-02.txt". A list of Internet-Drafts directories can be found in http://www.ietf.org/shadow.html or ftp://ftp.ietf.org/ietf/1shadow-sites.txt Internet-Drafts can also be obtained by e-mail. Send a message to: mailserv@ietf.org. In the body type: "FILE /internet-drafts/draft-ietf-capwap-arch-02.txt". NOTE: The mail server at ietf.org can return the document in MIME-encoded form by using the "mpack" utility. To use this feature, insert the command "ENCODING mime" before the "FILE" command. To decode the response(s), you will need "munpack" or a MIME-compliant mail reader. Different MIME-compliant mail readers exhibit different behavior, especially when dealing with "multipart" MIME messages (i.e. documents which have been split up into multiple messages), so check your local documentation on how to manipulate these messages. Below is the data which will enable a MIME compliant mail reader implementation to automatically retrieve the ASCII version of the Internet-Draft. --NextPart Content-Type: Multipart/Alternative; Boundary="OtherAccess" --OtherAccess Content-Type: Message/External-body; access-type="mail-server"; server="mailserv@ietf.org" Content-Type: text/plain Content-ID: <2004-4-16154357.I-D@ietf.org> ENCODING mime FILE /internet-drafts/draft-ietf-capwap-arch-02.txt --OtherAccess Content-Type: Message/External-body; name="draft-ietf-capwap-arch-02.txt"; site="ftp.ietf.org"; access-type="anon-ftp"; directory="internet-drafts" Content-Type: text/plain Content-ID: <2004-4-16154357.I-D@ietf.org> --OtherAccess-- --NextPart-- From kempf@docomolabs-usa.com Fri Apr 16 22:02:35 2004 From: kempf@docomolabs-usa.com (James Kempf) Date: Fri, 16 Apr 2004 14:02:35 -0700 Subject: [Capwap] Fw: Comments on "Security Analysis of LWAPP" by Cheng, Nistazakis and Comley Message-ID: <024901c423f6$274dbeb0$366115ac@dcml.docomolabsusa.com> I took a look through this paper and I had a couple of comments. I agree that CRL checks are necessary, but I believe that there are already protocols for doing CRL checks, so I'm not sure having LWAPP explicitly support them is really required. It does require that the AP have an Internet connection, however. The other alternative would be to reprovision the certificate frequently, so that the lifetime is relatively short. An attempt by a compromised AP to reprovision would fail, resulting in having the certificate time out. In addition, failure of a reprovision would notify the network administrator that the AP had been compromised, allowing them to send out a truck to remove it. On the downside, there is still a window of vulnerability, but that would need to be weighed against the risk of compromise. The paper presents three additional key exchange protocols but then mentions that Identity Based Cryptosystems might be used. While I agree that IDCs have some advantages, they still don't remove the need for a PKI-like server to do parameter distribution, and they still require encrypted key distribution. They do remove the need for CRL checks, at least on the identity-based cryptosystem keys. In addition, the best ID-crypto algorithms like Boneh-Franklin use pairing-based methods and are computationally expensive. I think a better solution would be to have the two sides engage in authenticated Diffie-Hellman (see RFC 2631). Both sides have a certificate and a public key, so they should be able to authenticate the exchange. DH does not require revealing any cryptomaterial over the wire. I think DH keys can be used in AES. There is still the possibility of DoS attack, but that could be handled by making the protocol a three message protocol where the two sides have to exchange a nonce first, like IKE uses. Would there any problem with using authenticated DH? jak From lily.l.yang@intel.com Thu Apr 22 00:39:40 2004 From: lily.l.yang@intel.com (Yang, Lily L) Date: Wed, 21 Apr 2004 16:39:40 -0700 Subject: [Capwap] Taxonomy doc Message-ID: <2AF68A477DD44C4EBCBE338C24E7A9EE5C4284@orsmsx408.jf.intel.com> Shankar -- Within the category of CAPWAP Functions (2.2), we included: o Network-wide STA state information database, including the information needed to support value-added services, such as mobility, load balancing etc. Hopefully this network wide database can support some of the services = you mentioned, like roaming. It does not cover AC = failover/redundancy/load-balancing, because most of the discussions = focus around the interaction between WTP and AC, not between multiple = AC. But we did mention in one place that multiple AC should be part of = the architecture.=20 The DT had some discussion around VoIP, and believed that it boils down = to QoS support like WME and 11e -- so that is covered in 802.11 = Functions. We decided to focus primarily on the low level (MAC) functions because = we need to understand the mapping there first before we can discuss = higher level support like VoIP, etc. Ultimately we need to break these = service support down to the required functions at MAC level. Lily > -----Original Message----- > From: Shankar Narayanaswamy [mailto:wireless@shankar.org] > Sent: Wednesday, April 14, 2004 11:23 PM > To: Yang, Lily L > Cc: capwap@frascone.com > Subject: Re: [Capwap] Taxonomy doc >=20 >=20 > Lily, >=20 > We probably have no option but to defer (3) because they were not=20 > addressed in the original taxonomy survey (although I would=20 > be happy to=20 > write a section on how we do it at Instant802). A new survey will be=20 > needed to capture how each of the three items is addressed by the=20 > participating vendors. Also VoIP support and any other architectural=20 > facets that must eventually be captured by the LWAPP to allow true=20 > interoperability between WTPs and ACs. >=20 > Regards, > Shankar >=20 >=20 > Yang, Lily L wrote: > > Hi, Shankar -- > >=20 > > Sorry about the versioning problem. I agree that it has=20 > been a moving > > target because of the tight schedule and our desire to=20 > improve on the > > draft as much as possible.=20 > > I agree with your comments (1) and (3). I probably can=20 > incorporate (1) > > into v02 today, but (3) needs more discussion and work and=20 > so I would > > like to defer that into later version. Is that ok with you? > >=20 > > Lily > >=20 > > -----Original Message----- > > From: Shankar Narayanaswamy [mailto:wireless@shankar.org]=20 > > Sent: Wednesday, April 14, 2004 2:55 AM > > To: Yang, Lily L > > Cc: capwap@frascone.com > > Subject: Re: [Capwap] Taxonomy doc > >=20 > > Lily, > >=20 > > Since the newer version was not distributed before (and the=20 > feedback=20 > > deadline was April 12) it is very difficult for someone who=20 > is not on=20 > > the design team to contribute: we are chasing a moving=20 > target! It would=20 > > be more efficient to freeze the document in between=20 > feedback cycles. And > >=20 > > to change the filename for each draft so we know which one we are=20 > > talking about. > >=20 > > Anyway, my original comment (1) still stands. Section 4.4=20 > (Split MAC)=20 > > states that the reasoning behind the split MAC architecture=20 > is scaling.=20 > > But cost reduction in the WTP and security are just as=20 > important, if not > >=20 > > more so. I could even argue the converse: moving=20 > functionality away from > >=20 > > the WTP and centralizing it introduces massive complexity=20 > in the AC as=20 > > the system scales, and it is easy to reach a level of=20 > complexity in the=20 > > AC that is impractical (from a CPU and I/O processing=20 > perspective) with=20 > > just a couple of dozen access points. This would argue for moving=20 > > everything except centralized management into the WTPs. > >=20 > > So my argument is that cost reduction in the WTP and=20 > security are the=20 > > real reasons behind the split MAC architecture; their importance=20 > > outweighs the scaling disadvantage. > >=20 > >=20 > > My original comment (3) also still stands: we have not addressed=20 > > roaming, redundancy and AC/WTP handoff (due to AC failure or=20 > > load-balancing). This is important because it affects the protocol=20 > > between ACs and between AC and WTP. Does anyone else see a need to=20 > > capture this as part of the architecture taxonomy? > >=20 > > Thanks, > > Shankar > >=20 > >=20 > > Yang, Lily L wrote: > >=20 > >>Hi, Shankar -- > >> > >>It appears that what you are referring to here is an older=20 > version of > >=20 > > our docemnt. There is a newer version that we are still=20 > working on, and > > this version can be found at=20 > >=20 > >>http://www.capwap.org/draft-ietf-capwap-arch-01.txt=20 > >>In this newer version, you will see that we do move the > >=20 > > encryption/decryption from the real time list to the=20 > non-real time list. > >=20 > >=20 > >>We also added content to 4.6 security. Please review and if you feel > >=20 > > there are more you can add on top of that, please don't=20 > hesitate to send > > to us. We are trying to revise this version by end of=20 > tomorrow so that > > we can provide to IEEE for their review. So early comments would be > > appreciated. > >=20 > >>Thanks, > >>Lily > >> > >> > >> > >> > >>>-----Original Message----- > >>>From: capwap-admin@frascone.com=20 > [mailto:capwap-admin@frascone.com]On > >>>Behalf Of Shankar Narayanaswamy > >>>Sent: Monday, April 12, 2004 2:03 AM > >>>To: capwap@frascone.com > >>>Subject: [Capwap] Taxonomy doc > >>> > >>> > >>>All, > >>> > >>>Some thoughts: > >>> > >>>1. Section 4.2: This section states that the reasoning=20 > >>>behind the Split=20 > >>>MAC architecture is to "offload to the WTP(s)=20 > functionality that is=20 > >>>specific and relevant only to the locality of each BSS in=20 > >>>order to allow=20 > >>>the AC to scale to a large number of 'lightweight' WTP=20 > devices". The=20 > >>>section also mentions 802.11 encryption/decryption as being a=20 > >>>real-time=20 > >>>service implemented on the WTP. > >>> > >>> This is not always true. For example, at Instant802 (and some=20 > >>>others: Symbol, Aruba?) we perform 802.11=20 > >>>encryption/decryption at the=20 > >>>AC rather than the WTP. 802.11 frames in WEP/TKIP/WPA are=20 > transported=20 > >>>using a GRE or some other encapsulation between the WTP and the AC. > >>> > >>> This is driven by two considerations. The first is cost=20 > >>>reduction=20 > >>>in the WTP. We want it to be as cheap and simple as possible=20 > >>>so taking=20 > >>>out encryption/decryption is useful, especially since this=20 > >>>may otherwise=20 > >>>have to be done twice (decrypt the 802.11 packet, then=20 > encrypt the IP=20 > >>>packet to tunnel it to the AC). The second is security. We=20 > >>>want to avoid=20 > >>>any risk from a compromised WTP, and therefore not have user=20 > >>>encryption=20 > >>>keys on the AP at all. Since the entire encrypted 802.11 frame is=20 > >>>carried over the wired LAN between WTP and AC, the user's=20 > >>>security level=20 > >>>(WEP, TKIP, WPA, 802.11i) is preserved. > >>> > >>> A side effect of this architecture is that progress in=20 > security=20 > >>>protocols and algorithm does not obsolete the WTPs; the=20 > ACs implement=20 > >>>the new security schemes instead and the management problem=20 > >>>is therefore=20 > >>>simplified. It can also protect from LAN-side eavesdropping. > >>> > >>> This architecture is susceptible to MIM attack in the=20 > >>>sense that a=20 > >>>MIM on the wired LAN could prevent PDUs from getting to their=20 > >>>destinations, but privacy and message integrity are not lost. > >>> > >>>2. Section 4.6: This section on security is blank. May I=20 > offer the=20 > >>>following prose: > >>> > >>> "There are different kinds of traffic passing between=20 > the WTP and=20 > >>>the AC, and each one warrants different considerations. > >>> > >>> "For user traffic, there are several choices. Some=20 > >>>vendors choose to=20 > >>>encrypt/decrypt user traffic at the WTP and send user data in=20 > >>>the clear=20 > >>>between the WTP and the AC. Other vendors choose to=20 > >>>encrypt/decrypt user=20 > >>>traffic at the WTP and then aggregate this traffic into a single=20 > >>>encrypted tunnel to the AC. Yet others transport the=20 > >>>WEP/TKIP/WPA-encrypted 802.11 MAC PDU between the AC and the WTP,=20 > >>>thereby avoiding user encryption keys being stored at the WTP. The=20 > >>>tradeoffs are between complexity at the AC versus the WTP,=20 > >>>and also in=20 > >>>security versus simplicity in the WTP. > >>> > >>> "Most vendors choose to encrypt management traffic=20 > >>>between WTPs and=20 > >>>APs. Most vendors use mutual authentication between WTP and AC to=20 > >>>protect against rogue APs. > >>> > >>> "Some vendors support IPSec VPN termination on ACs; this allows=20 > >>>greater security since wireless clients can use an IPSec=20 > VPN over the=20 > >>>air and over the wired network, all the way to the AC. Some=20 > >>>vendors use=20 > >>>Access Control Lists (ACLs) at the WTP or the AC to prevent=20 > >>>unauthorized=20 > >>>clients from using the wireless network." > >>> > >>>3. I did not see any section on roaming, redundancy, WTP/AC=20 > >>>handoff; do=20 > >>>we need sections on this? If so, I would be happy to write=20 > >>>them. These=20 > >>>are all important issues and some of the taxonomy submissions=20 > >>>do mention=20 > >>>how those vendors approach them. > >>> > >>>Regards, > >>>Shankar > >>>--=20 > >>>Shankar Narayanaswamy, Ph.D. > >>>wireless@shankar.org Mobile: +1 650-387-4593 > >>>http://www.shankar.org E-Fax: +1 253-498-8372 > >>> > >>>_______________________________________________ > >>>Capwap mailing list > >>>Capwap@frascone.com > >>>http://mail.frascone.com/mailman/listinfo/capwap > >>> > >> > >>_______________________________________________ > >>Capwap mailing list > >>Capwap@frascone.com > >>http://mail.frascone.com/mailman/listinfo/capwap > >=20 > >=20 > >=20 >=20 >=20 > --=20 > Shankar Narayanaswamy, Ph.D. > wireless@shankar.org Mobile: +1 650-387-4593 > http://www.shankar.org E-Fax: +1 253-498-8372 >=20 >=20 From lily.l.yang@intel.com Thu Apr 22 00:54:38 2004 From: lily.l.yang@intel.com (Yang, Lily L) Date: Wed, 21 Apr 2004 16:54:38 -0700 Subject: [Capwap] CAPWAP Arch. Taxonomy Draft Available Message-ID: <2AF68A477DD44C4EBCBE338C24E7A9EE5C4285@orsmsx408.jf.intel.com> Hi, Tyan-Shu Jou -- I think you are right that SSID uniquely identifies ESS instead of BSS. = We should correct that. Thanks for your comments, Lily > -----Original Message----- > From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com]On > Behalf Of Tyan-Shu Jou > Sent: Thursday, April 08, 2004 9:31 PM > To: capwap@frascone.com > Subject: RE: [Capwap] CAPWAP Arch. Taxonomy Draft Available >=20 >=20 > Hi, > It's nice to read the taxonomy draft especially knowing it=20 > was done in > a very short period of time. Thanks for the work. >=20 > I have a comment on the definition of "SSID" in the draft: >=20 > In Section 2.1, it reads: > "A BSS is identified by a common service set identifier=20 > (SSID) or name. > An SSID is an arbitrary byte string ..."=20 > And then, "When more than one AP is connected via a broadcast layer 2 > network and all are using the same SSID, an extended service set (ESS) > is created." >=20 > In fact, a BSS should be uniquely identified by the "BSSID" (basic > service set identifier). See Section 7.1.3.3.3 of 802.11-1999 for the > format of it on infrastructure BSS and IBSS. Basically that's the MAC > address of the AP's interface, or the created address in an IBSS. >=20 > My understanding of SSID of 802.11 is to identify an ESS (in > infrastructure mode), rather than a BSS. As in 7.3.2.1 of 802.11: > "The SSID element indicates the identity of an ESS or IBSS" >=20 > In a common isolated AP deployment (as the "Autonomous Architecture" > mentioned in the draft), one BSS forms one ESS. In this case SSID can > also be used to refer to the BSS, hence one can argue the draft is > still correct. However, I think it will be better if we can=20 > clarify the > definitions. >=20 > I personally have experienced the problem on my laptop when it can see > multiple APs/WTPs using the same SSID in the same channel. If the > observation is correct, this can be a potential obstacle for CAPWAP > function deployment. Unfortunately this is not included in the vendor > survey. Don't know whether any vendor is willing to share their > experience. >=20 > Thanks. >=20 > Tyan-Shu Jou > Janusys Networks, Inc. >=20 > -----Original Message----- > From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com] On > Behalf Of Mani, Mahalingam (Mahalingam) > Sent: Thursday, April 08, 2004 8:58 PM > To: capwap@frascone.com > Subject: [Capwap] CAPWAP Arch. Taxonomy Draft Available > Importance: High >=20 > Hi All, > =A0 > The architecture taxonomy draft has been submitted to the IETF and > should be available from the IETF website very soon (less than a few > days). > =A0 > Meanwhile this draft (draft-ietf-capwap-arch-01) is also available now > from the CAPWAP Central Website. > =A0 > It is also available on Petros' webpage: > http://www.cs.ucla.edu/~pzerfos/draft-ietf-capwap-arch-01.txt > =A0 > Do go over in detail and provide your review comments.=20 > =A0 > Thanks, Dave & Petros. > =A0 > Thanks, > -mani >=20 > _______________________________________________ > Capwap mailing list > Capwap@frascone.com > http://mail.frascone.com/mailman/listinfo/capwap >=20 From lily.l.yang@intel.com Thu Apr 22 01:08:58 2004 From: lily.l.yang@intel.com (Yang, Lily L) Date: Wed, 21 Apr 2004 17:08:58 -0700 Subject: [Capwap] CAPWAP Arch. Taxonomy Draft Available Message-ID: <2AF68A477DD44C4EBCBE338C24E7A9EE5C4286@orsmsx408.jf.intel.com> This is a multi-part message in MIME format. ------_=_NextPart_001_01C427FE.01F95588 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hi, Nehru -- =20 Thanks so much for your comments. Sorry that we didn't respond to you = sooner. But as you can see, we heard you and immediately incorporated = most of your comments into v02 that was published a few days ago. We = were just too busy with revising the draft itself that we can hardly = find time to respond and thank you for your comments :-) =20 Lily -----Original Message----- From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com]On = Behalf Of Nehru Bhandaru Sent: Saturday, April 10, 2004 11:06 AM To: Mani, Mahalingam (Mahalingam); capwap@frascone.com =20 Subject: RE: [Capwap] CAPWAP Arch. Taxonomy Draft Available Hi, =20 I enjoyed and thank the CAPWAP team for the fairly comprehensive = taxonomy of current WLAN/802.11 architectures contained in the document. = Few questions/comments came to mind - perhaps already considered by the = team, but I want to share them anyway. =20 A tree/hierarchy diagram of the taxonomy would be helpful in the = document. For example All--> Autonomous --> Centralized --> Local MAC --> Split MAC --> Remote MAC --> Distributed =20 We added such a diagram in the conclusion section 6.1 in v02, per your = suggestion. =20 =20 The term STB is used in Figure 11, but was not in the glossary at the = beginning. It became only clear what this meant when I was reading the = architecture submissions in the Appendices.=20 =20 It is now fixed in v02.=20 =20 As I understand, WTP refers to the physical entity containing the RF = Antenna, and some or all 802.11/CAPWAP functionality. In the diagrams = only a single BSS is shown with each WTP. Perhaps it will add to clarity = if more than one BSS is shown in a WTP, since WLAN architectures may = support multiple BSSs in a WTP.=20 =20 Yes, you are right that multiple BSSs are commonly offered by vendors to = support virtual AP (WTP).The diagram is not meant to cover every = possible configuration, rather, it is meant to cover the most basic = points. If some complications arise from multiple BSSs (virtual WTP), we = can discuss it separately. =20 =20 A CAPWAP supported function (e.g. mobility, load balancing) may span = multiple ACs. Is communication among ACs within the scope of this = document? Also, a given WTP may communicate with multiple ACs - a simple = example would be for failover. =20 =20 Yes, for failover, redundancy, or load balancing, multiple ACs are often = necessary and many vendors do support that. So we added one paragraph in = Section 4 (after Figure 2) in v02 to briefly cover this. =20 =20 Some of the CAPWAP functions and much of the architectural taxonomy = could be independent of 802.11 MAC/PHY. For the long term, this work = could be leveraged in such environments. =20 =20 That may very well be true. However, as being said many times by the = chairs and others, lets get this problem solved for 802.11 first. We can = learn a great deal from this exercise. =20 Also some WTPs may implement both a Local MAC and Split MAC. =20 =20 Yes, some flexibility (optional mapping) is foreseeable. =20 =20 Thanks, =20 - Nehru =20 _______________________________ =20 Nehru Bhandaru Legra Systems, Inc. (781) 743-3216 =20 =20 =20 _____ =20 From: capwap-admin@frascone.com [mailto:capwap-admin@frascone.com] On = Behalf Of Mani, Mahalingam (Mahalingam) Sent: Thursday, April 08, 2004 8:58 PM To: capwap@frascone.com Subject: [Capwap] CAPWAP Arch. Taxonomy Draft Available Importance: High =20 Hi All, =20 The architecture taxonomy draft has been submitted to the IETF and = should be available from the IETF website very soon (less than a few = days). =20 Meanwhile this draft ( draft-ietf-capwap-arch-01 = ) is also = available now from the CAPWAP Central Website. =20 It is also available on Petros' webpage: = http://www.cs.ucla.edu/~pzerfos/draft-ietf-capwap-arch-01.txt =20 Do go over in detail and provide your review comments.=20 =20 Thanks, Dave & Petros. =20 Thanks, -mani ------_=_NextPart_001_01C427FE.01F95588 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hi,=20 Nehru --
 
Thanks=20 so much for your comments. Sorry that we didn't respond to you sooner. = But as=20 you can see, we heard you and immediately incorporated most of your = comments=20 into v02 that was published a few days ago. We were just too busy with = revising=20 the draft itself that we can hardly find time to respond and thank you = for your=20 comments :-)
 
Lily
-----Original Message-----
From: = capwap-admin@frascone.com=20 [mailto:capwap-admin@frascone.com]On Behalf Of Nehru=20 Bhandaru
Sent: Saturday, April 10, 2004 11:06 = AM
To: Mani,=20 Mahalingam (Mahalingam); capwap@frascone.com  
Subject: RE: = [Capwap]=20 CAPWAP Arch. Taxonomy Draft Available

Hi,

 

I enjoyed and thank the = CAPWAP=20 team for the fairly comprehensive taxonomy of current WLAN/802.11=20 architectures contained in the document. Few questions/comments came = to mind –=20 perhaps already considered by the team, but I want to share them=20 anyway.

 

A tree/hierarchy diagram = of the=20 taxonomy would be helpful in the document. For = example

  = All=E0=20 Autonomous

     =20 =E0=20 Centralized

           =   =20 =E0 Local=20 MAC

           =   =20 =E0 Split=20 MAC

           =   =20 =E0 Remote=20 MAC

     =20 =E0=20 Distributed

 

We added such = a diagram in=20 the conclusion section 6.1 in v02, per your=20 suggestion.     

 

The term=20 STB is used in Figure 11, but was not in the glossary at the = beginning. It=20 became only clear what this meant when I was reading the architecture=20 submissions in the Appendices. 

 

It is now fixed in=20 v02. 

 

As I=20 understand, WTP refers to the physical entity containing the RF = Antenna, and=20 some or all 802.11/CAPWAP functionality. In the diagrams only a single = BSS is=20 shown with each WTP. Perhaps it will add to clarity if more than one = BSS is=20 shown in a WTP, since WLAN architectures may support multiple BSSs in = a=20 WTP. 

 

Yes, you are right = that multiple=20 BSSs are commonly offered by vendors to support virtual AP=20 (WTP).The diagram is not meant to = cover every=20 possible configuration, rather, it is meant to cover the most basic=20 points. If some complications arise from multiple BSSs (virtual = WTP), we=20 can discuss it separately.

 

 

A CAPWAP=20 supported function (e.g. mobility, load balancing) may span multiple = ACs. Is=20 communication among ACs within the scope of this document? Also, a = given WTP=20 may communicate with multiple ACs – a simple example would be = for=20 failover.  

 

Yes, for failover, = redundancy, or=20 load balancing, multiple ACs are often necessary and many=20 vendors do support that. So we added one paragraph in = Section 4=20 (after Figure 2) in v02 to briefly cover=20 this.  

 

Some of=20 the CAPWAP functions and much of the architectural taxonomy could be=20 independent of 802.11 MAC/PHY. For the long term, this work could be = leveraged=20 in such environments.  

 

That may very well be = true.=20 However, as being said many times by the chairs and others, lets get = this=20 problem solved for 802.11 first. We can learn a great deal from this=20 exercise.

 

 Also some WTPs may implement = both a=20 Local MAC and Split MAC.  

 

Yes, some=20 flexibility (optional mapping) is=20 foreseeable.  

 

Thanks,

 

- = Nehru

 

_______________________________

 

Nehru = Bhandaru

Legra Systems,=20 Inc.

(781) = 743-3216

 

 

 


From:=20 capwap-admin@frascone.com [mailto:capwap-admin@frascone.com] On Behalf Of Mani, Mahalingam=20 (Mahalingam)
Sent: = Thursday,=20 April 08, 2004 8:58 PM
To:=20 capwap@frascone.com
Subject:=20 [Capwap] CAPWAP Arch. Taxonomy Draft Available
Importance: = High

 

Hi = All,

 

The architecture = taxonomy draft=20 has been submitted to the IETF and should be available from the IETF = website=20 very soon (less than a few days).

 

Meanwhile this draft (draft-ietf-c= apwap-arch-01)=20 is also available now from the CAPWAP=20 Central Website.

 

It is also available on = Petros’=20 webpage: ht= tp://www.cs.ucla.edu/~pzerfos/draft-ietf-capwap-arch-01.txt

 

Do go over in detail and = provide=20 your review comments.

 

Thanks, Dave &=20 Petros.

 

Thanks,

-mani

------_=_NextPart_001_01C427FE.01F95588--