From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Fri, 07 Nov 2025 16:58:37 -0800 Received: from mail-ot1-f61.google.com ([209.85.210.61]) by mail.fairlystable.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1vHXHo-0002fd-UB for bitcoindev@gnusha.org; Fri, 07 Nov 2025 16:58:37 -0800 Received: by mail-ot1-f61.google.com with SMTP id 46e09a7af769-7c2916aced0sf2700625a34.0 for ; Fri, 07 Nov 2025 16:58:36 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1762563510; cv=pass; d=google.com; s=arc-20240605; b=IpoCWjmJ6bf8LboEXsYtYEzvwme9K96yCypnwefQNTsrsamR0oYjycRjWmkAC4FvJx ENKqFo2NszdHX42p17nfsZd9oCaHBJkIqc6cewG1NEXxshN/JrNJpRbrHIzHMaQs1w+E v3pPrB4vnR5QqqPAEpS2PF6S3pcQvR89iSS4iDIdqPa84KvXQBiphwLhrRl3dZme8qQD 0fB+q7G8b7dakTzZPdbFzciXjrVWlu4ioD917qq6/oyA4z1uMNyZmPXPiv0PV2liHv0C HJLIm9c+E/enin63uC+lXI1YgCqQbNfq8Qua4iwvdAp6TIsltblEYxLlrZrJNEKEbq4o 8XKA== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to:mime-version:feedback-id :references:in-reply-to:message-id:subject:cc:from:to:date :dkim-signature; bh=feme/gdMUVF6TMtB8gGEMY/uY/GtgPQaGSwQMuz+rQs=; fh=S02wlZ4Go92Hl66RZfkaq8auqQ/npBSl8hgpFG90p1Q=; b=E1TJRJpkFpkkLmAToawFDBz/Amjo76Mr0nFiy10BszmmR7qPo4Bs06E35tv3LWVWg6 0QyKiett9GeTUVOCeHZ//tl875O5UVndSeJc7vjXranAe84L077ckvTA/ylUcGl5Ra7X x1wsnw7snHmHX0kyHiYnTA1yyrK5EePOwC7bPPWW75SGkpXakIMFmGQkXKLrU68s8kyd Q9nWlECAX4amS6vnH6JhV8hzxyHrs5UF7cQqDjWOyIFHRJkh0paDIUXS8eQQ4JmqvhpU //1PhoNYRzM9cGdoaCK/DXxiw7Ocd4ML6B5FNavRX5OhYGqmTn6JXfVX6BTgalX4qY4L vFxA==; darn=gnusha.org ARC-Authentication-Results: i=2; gmr-mx.google.com; dkim=pass header.i=@proton.me header.s=protonmail header.b=lJ3Upb02; spf=pass (google.com: domain of dathonohm@proton.me designates 185.70.43.25 as permitted sender) smtp.mailfrom=dathonohm@proton.me; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=proton.me DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20230601; t=1762563510; x=1763168310; darn=gnusha.org; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :feedback-id:references:in-reply-to:message-id:subject:cc:from:to :date:from:to:cc:subject:date:message-id:reply-to; bh=feme/gdMUVF6TMtB8gGEMY/uY/GtgPQaGSwQMuz+rQs=; b=aSrPhxey2Nlf1a6jHisyWlKykjdQZ6y1PDag5Zg6yDXL0cke8XGu/SxpLAIhLjfLiZ mBJJUU3rGXUhA0GhZ/uOYzvgKiDbT1Z6JGrKUa5h1YtLkiDIEgZWemIBaGwA81R0CdoC E4hXuQeyvYLszifJL90Jm6i9QM/+kJtWTdLikWOU/fScRGBZMt4WUx6hqoOJouCWWxqa u6EGpdvDZAXN20+fZYFfN4EZ0jX7EorEIWVoPgtI8gQ6yc2ondLjiqRgZ9/qXxJP1Bun Fq+rtEF14+T2x9aEP5Pyf/OHTzAo9yeo7fK2cW5Ns7imEoPYVA4eJP7DvRhWT1TVPgZ1 G5yg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1762563510; x=1763168310; h=list-unsubscribe:list-subscribe:list-archive:list-help:list-post :list-id:mailing-list:precedence:reply-to :x-original-authentication-results:x-original-sender:mime-version :feedback-id:references:in-reply-to:message-id:subject:cc:from:to :date:x-beenthere:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=feme/gdMUVF6TMtB8gGEMY/uY/GtgPQaGSwQMuz+rQs=; b=ndwXOClev3Rwnu7bw1f9bxzwauQHgOU9PBihX7DDgrJ6zDkk4gp/3qHsanEL5Ntw3r V0KJBy2z9GjW+WwSWdOTX2y9Lp0UsU29xhV+xn3UPOH+1dE3Haf6jEpx3i9Qojvviw26 AwJwsDvBq855Zite8QfBrSC840Kf5KUgP9ZuZj22Ka9LbwHiG0nRPcdFPYpnjUtxj1dc 9JjI0fu42lKv0sPgK5VXlIesRd3E9h59kPqeR5GtAAo7Za53qDpclL5X4rB7B6dLPD0V DUOpnpizX+9EipHUkSiRruVXEQGJCvyKJK0OyvUi9EeFQyDwjZd70hJQ29wy8MFcv8QY hawA== X-Forwarded-Encrypted: i=2; AJvYcCXc+Z1XVs4yqr7EDk39rSnPIAIhZSo6CN2MxPe/m9Oe5qN4+7CxMrRoCCw/ZsZA6+V0I3VDWqLVw+SI@gnusha.org X-Gm-Message-State: AOJu0YzreSzVuHClk+CAihGbzORAtYtgOxLdcnjOBziDJdVmJcbGFH1U Y1hw0KwVrtp2YgZ6nzfg5OA4fw0uRvfnA9/XfpqGQbvIBg4slbtJxNfi X-Google-Smtp-Source: AGHT+IFdq016hH4f5FehgLDAS9z2sPlTSVArg84cuOP95lvQWkXJS3FVFN8ougB6qXpEat5kR8+RuA== X-Received: by 2002:a05:6808:1813:b0:437:f573:b175 with SMTP id 5614622812f47-4502a42f22emr580040b6e.31.1762563510021; Fri, 07 Nov 2025 16:58:30 -0800 (PST) X-BeenThere: bitcoindev@googlegroups.com; h="Ae8XA+aq+5XUIiw7CjA45dwcWqLndkVOhPug5D95cBSZ0i413g==" Received: by 2002:a05:6871:ca4b:b0:31d:8e96:6f5e with SMTP id 586e51a60fabf-3e2f56735a6ls1352001fac.2.-pod-prod-08-us; Fri, 07 Nov 2025 16:58:24 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCUPvqU+RQUNcmstff8feUlBtVuHOOQ7iWn7tisgJW/s5f6aLuGPhMbSGQhFlRcIezuneNDm3F8X5RDC@googlegroups.com X-Received: by 2002:a05:6808:22a0:b0:450:3b0:239e with SMTP id 5614622812f47-4502a42f267mr705240b6e.36.1762563504126; Fri, 07 Nov 2025 16:58:24 -0800 (PST) Received: by 2002:a05:600c:5881:b0:471:cf5:89b with SMTP id 5b1f17b1804b1-4775d0034f2ms5e9; Fri, 7 Nov 2025 16:51:56 -0800 (PST) X-Forwarded-Encrypted: i=2; AJvYcCVbpAhTgNABsHY7NYw5S3WqBV0YfTSnRqw3APr8YC8tHADPEDHx8fYeWfbhniHzRE6tOSy70wVTk126@googlegroups.com X-Received: by 2002:a05:600c:35cf:b0:477:639d:c4ab with SMTP id 5b1f17b1804b1-4777322e26dmr6312375e9.7.1762563113711; Fri, 07 Nov 2025 16:51:53 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1762563113; cv=none; d=google.com; s=arc-20240605; b=dyhXWeJUzTCcfFKWKwiMtvXtk7qzXSNVVFZfd/ei/GNhrvBoUYaIZYeSGj8BBA+bFC /xin5qfRUnyHcKJ0TFXPsRIiuKa+dD8cKVYbRJuPM9r3UA8g4PJ542le3//ZnxvE+0fD BuKYJjF9g1NvEukJfpv9j3JQ8GBPgOGECvXw4jwIpRUdX72FcdlTuGd2dmCdMpP/Ublk sg3dwvg6t4cJtI+F5VIMVuCNQsF4wCA4kRL3sq6hrkbqnxMlVFL6CGf8sA7lFwSjt/NK o6b+9gc11E1zzx49aGswN1+sUcoBdm3k/Du9QhRchuqqfScSXe2fpP8ug9YVuPf2i6v2 GalQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=mime-version:feedback-id:references:in-reply-to:message-id:subject :cc:from:to:date:dkim-signature; bh=bsls6D0EVFyWXsrZo8bHPXPVoEs+cs4NCIBi8pUscoE=; fh=mti5vYvwYeUNU1lVvm11kj0sbpAgWhKX83j6cragOII=; b=RAbsAh3A027pu8kyGfoFBu3QhC2gGteYXsTUQk4YwGMtJJ3bpWJqx8gAVPj+SEDod1 tGCvRvVGBB6CRNvXVxsIWVRtqgzGJeNBm37snJWvt0W7KjsD71+JB++rdsROIZ8lOxb3 q+nknxZ0rhdcn/2F+koLjmtXdqdsmAI8c+HvLqbSV7QEeDt+KBwo4QE4D0K3zXsLsUS6 tb7EmTz4UmWWGs/3WgOClHD9eLU21uYkHiCi8vnQHINkuJXmAsPFDplfYDMmiNsYkOVL XTQiulMJ1saZcUvJORwnhIAmqS+FR+zjxl9n689NTBOv1W6d3Ux5VhNikWuCBxJRs1ZD SpRw==; dara=google.com ARC-Authentication-Results: i=1; gmr-mx.google.com; dkim=pass header.i=@proton.me header.s=protonmail header.b=lJ3Upb02; spf=pass (google.com: domain of dathonohm@proton.me designates 185.70.43.25 as permitted sender) smtp.mailfrom=dathonohm@proton.me; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=proton.me Received: from mail-4325.protonmail.ch (mail-4325.protonmail.ch. [185.70.43.25]) by gmr-mx.google.com with ESMTPS id 5b1f17b1804b1-47763e50fe1si119915e9.1.2025.11.07.16.51.53 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 07 Nov 2025 16:51:53 -0800 (PST) Received-SPF: pass (google.com: domain of dathonohm@proton.me designates 185.70.43.25 as permitted sender) client-ip=185.70.43.25; Date: Sat, 08 Nov 2025 00:51:49 +0000 To: Erik Aronesty From: dathonohm via Bitcoin Development Mailing List Cc: Antoine Riard , Bitcoin Development Mailing List Subject: Re: [bitcoindev] [BIP Proposal] Reduced Data Temporary Softfork Message-ID: In-Reply-To: References: <7U8YuMopR73k4XRYBA8DjhaGLJkyKPuXpxW9p7vmH45JHEyIj_oE_t4xk99hrNdvMGghpmooAMXOmWGaZ4UkwHPndzrpzIL0SX2SoTf0l3w=@proton.me> <7abf7055-6b85-492f-ada2-e0a517e93cf9n@googlegroups.com> Feedback-ID: 164672733:user:proton X-Pm-Message-ID: c960f4032963e5d4f8a6bcbd56c530b9c6fa1553 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1=_da521U4mS6JX9S1wzywA4Dmwiu9hqP2sd03S8eeL0I" X-Original-Sender: dathonohm@proton.me X-Original-Authentication-Results: gmr-mx.google.com; dkim=pass header.i=@proton.me header.s=protonmail header.b=lJ3Upb02; spf=pass (google.com: domain of dathonohm@proton.me designates 185.70.43.25 as permitted sender) smtp.mailfrom=dathonohm@proton.me; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=proton.me X-Original-From: dathonohm@proton.me Reply-To: dathonohm@proton.me Precedence: list Mailing-list: list bitcoindev@googlegroups.com; contact bitcoindev+owners@googlegroups.com List-ID: X-Google-Group-Id: 786775582512 List-Post: , List-Help: , List-Archive: , List-Unsubscribe: , X-Spam-Score: -1.0 (-) --b1=_da521U4mS6JX9S1wzywA4Dmwiu9hqP2sd03S8eeL0I Content-Type: multipart/alternative; boundary="b2=_da521U4mS6JX9S1wzywA4Dmwiu9hqP2sd03S8eeL0I" --b2=_da521U4mS6JX9S1wzywA4Dmwiu9hqP2sd03S8eeL0I Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Hi all - BIP repo maintainers [requested](https://github.com/bitcoin/bips/pull/2017#= issuecomment-3462134337) that I update this list before pushing a significa= nt change, so I am doing that now. Please consider this my formal request for the BIP PR to be unlocked so tha= t discussion can resume. This update addresses several concerns from the previous draft: - "Funds confiscation": due to the presence of UTXOs that would be made tem= porarily unspendable by this proposal, commenters were concerned that this = would set a precedent of "confiscation". This new draft resolves this conce= rn by adding a UTXO height check to make sure only UTXOs that are created w= hile the softfork is active will be made temporarily unspendable. The "OP_I= F in Tapscript" and "257-byte control block limit" were the two main propos= ed rule changes that caused concern here. - "This doesn't block all possible methods of arbitrary data insertion": Th= is was already addressed in the previous draft, but to reiterate: this prop= osal's goal is not to block all=E2=80=8B methods of arbitary data insertion= , just the most commonly abused ones. - "Blocks other softfork upgrades while active": This was also addressed in= the original draft, but to reiterate: it's unlikely that any softfork upgr= ades will be ready to activate within one year anyway, so this doesn't matt= er much. But also, the fact that this softfork expires creates an opportuni= ty to activate a more permanent and elegant upgrade that turns on what the = community wants, while continuing to reject data storage as a supported use= case, after one year. - "Reactive deployment risks": These concerns have been addressed by removi= ng the reactive deployment method entirely. I still think activating this s= oftfork is a matter of some urgency, but I think it still achieves its goal= s if we move steadily towards activation within a few months. - "Missing code": The code is now public here: https://github.com/UASF/bitc= oin/tree/29.2.knots20251010%2BBIP444 (please note that, while there are ref= erences to "BIP-444" in the code, that is just a placeholder and I will upd= ate it to whatever number the BIP editors decide). - "Temporary expiry risks": "Requires another consensus change before expir= y or rules lapse": Yes, as stated in <3>, the community will have to come t= ogether in a year either to extend these rules (which shouldn't be difficul= t), or to activate something more permanent and less blunt. The expiry will= not be a hardfork, contrary to some claims I've seen, because opting into = this deployment means opting into the expiry as well, so old nodes will fol= low new ones onto the unrestricted chain - "Legal/process/conflict-of-interest concerns": all language about legal r= isks has been stripped from the BIP. I welcome any and all feedback, as I think this proposal or something simil= ar to it stands an excellent chance of gaining consensus and activating, an= d I think if that happens, it could be curative for the Bitcoin community. Thanks again for all of your feedback and support, it means a lot. Sincerely, Dathon On Wednesday, October 29th, 2025 at 8:57 PM, Erik Aronesty w= rote: >> Case law in the USA regarding illegal content has always rested squarely= on those who: > > 1 - provide broad public access, in this case a company like OpenSEA (whi= ch has had to block content) > 2 - the original author > > if punishing "relays" was a thing, then every CISCO router, SMTP relay an= d DISCORD server that provided access would be in court all day long > > instead, it's the users of the illegal data and the publishers that actua= lly wind up in trouble - not the internet providers > > the bitcoin ledger is neither a browser or web server, nor is it an image= uploader. there is zero ability to view images built into the system > > and even if it was > > the purpose of this software is to be a distributed and effectively uncen= sorable ledger. > > hopefully it doesn't change because someone launched a meme campaign with= vague threats of legal action > > if a transaction has /no reasonable expectation of being mined/ (too expe= nsive to validate, too large, too low fees), there's also no reason to rela= y it > > this is probably the best way to set policy > > -- > You received this message because you are subscribed to the Google Groups= "Bitcoin Development Mailing List" group. > To unsubscribe from this group and stop receiving emails from it, send an= email to bitcoindev+unsubscribe@googlegroups.com. > To view this discussion visit https://groups.google.com/d/msgid/bitcoinde= v/CAJowKgKBBa%2BvD%3D5X0VMV2OFiBBM23Ok6nmvfoLTr8fia141%3DFQ%40mail.gmail.co= m. --=20 You received this message because you are subscribed to the Google Groups "= Bitcoin Development Mailing List" group. To unsubscribe from this group and stop receiving emails from it, send an e= mail to bitcoindev+unsubscribe@googlegroups.com. To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/= bJL7UshcsXUpiQiC85dQeafQrRvtovH1aRcUxggjD1S09Md9qWHi9GpJOBdcPGq2NNQMK2XK-RE= MVlWjHLkh3aKUIktnYQccUWqg0DHgNXc%3D%40proton.me. --b2=_da521U4mS6JX9S1wzywA4Dmwiu9hqP2sd03S8eeL0I Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
Hi all -

BIP repo maintainers requested= that I update this list before pushing a significant change, so I am doing= that now.

<= div style=3D"font-family: Arial, sans-serif; font-size: 14px; color: rgb(0,= 0, 0); background-color: rgb(255, 255, 255);">Please consider this my form= al request for the BIP PR to be unlocked so that discussion can resume.

This update addresses several concerns fro= m the previous draft:
=
  1. "Funds confiscation": due to the presence of UTXO= s that would be made temporarily unspendable by this proposal, commenters w= ere concerned that this would set a precedent of "confiscation". This new d= raft resolves this concern by adding a UTXO height check to make sure on= ly UTXOs that are created while the softfork is active will be made tempora= rily unspendable. The "OP_IF in Tapscript" and "257-byte control block = limit" were the two main proposed rule changes that caused concern here.
  2. "This doesn'= t block all possible methods of arbitrary data insertion": This was already= addressed in the previous draft, but to reiterate: this proposal's goal is= not to block all=E2=80=8B methods of arbitary data insertion, just = the most commonly abused ones.
  3. "Blocks other softfork upgrades while active": This wa= s also addressed in the original draft, but to reiterate: it's unlikely tha= t any softfork upgrades will be ready to activate within one year anyway, s= o this doesn't matter much. But also, the fact that this softfork expires c= reates an opportunity to activate a more permanent and elegant upgrade that= turns on what the community wants, while continuing to reject data storage= as a supported use case, after one year.
  4. "Reactive deployment risks": These concerns have = been addressed by removing the reactive deployment method entirely. = I still think activating this softfork is a matter of some urgency, but I t= hink it still achieves its goals if we move steadily towards activation wit= hin a few months.
  5. "Miss= ing code": The code is now public here: https://github.com/UASF/bitcoin/tree/29.2.= knots20251010%2BBIP444 (please note that, while there are referenc= es to "BIP-444" in the code, that is just a placeholder and I will update i= t to whatever number the BIP editors decide).
  6. "Temporary expiry risks": "Requires another consensus change before expiry or rules lapse": Ye= s, as stated in <3>, the community will have to come together in a ye= ar either to extend these rules (which shouldn't be difficult), or to activ= ate something more permanent and less blunt. The expiry will not be = a hardfork, contrary to some claims I've seen, because opting into this dep= loyment means opting into the expiry as well, so old nodes will follow new = ones onto the unrestricted chain
  7. "Legal/process/conflict-of-interest concerns": = all language about legal risks has been stripped from the BIP.

I welcome any and all feedback, as I think this proposal o= r something similar to it stands an excellent chance of gaining consensus a= nd activating, and I think if that happens, it could be curative for the Bi= tcoin community.

Thanks again for all of your feed= back and support, it means a lot.

Sincerely,
=

Dathon
On Wednesday, October 29th, 2025 at 8:57 PM, Erik Aronesty <erik= @q32.com> wrote:

Case law in the US= A regarding illegal content has always rested squarely on those who:

1 - provide broad public access, in this case a company lik= e OpenSEA (which has had to block content)
2 - the original author
=
if punishing "relays" was a thing, then every CISCO router, SMTP relay = and DISCORD server that provided access would be in court all day long
<= br>instead, it's the users of the illegal data and the publishers that actu= ally wind up in trouble - not the internet providers

the bitc= oin ledger is neither a browser or web server, nor is it an image uploader.= there is zero ability to view images built into the system

and eve= n if it was

the purpose of this software is to be a distributed and = effectively uncensorable ledger.

hopefully it doesn't change becau= se someone launched a meme campaign with vague threats of legal action
<= br>
if a transaction has /no reasonable expectation of being mined/ (to= o expensive to validate, too large, too low fees), there's also no reason t= o relay it

this is probably the best way to set po= licy

--
You received this message because you are subscribed to the Google Groups "= Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to bitcoindev+unsubscribe@googlegroups.com. To view this discussion visit https://= groups.google.com/d/msgid/bitcoindev/CAJowKgKBBa%2BvD%3D5X0VMV2OFiBBM23Ok6n= mvfoLTr8fia141%3DFQ%40mail.gmail.com.

--
You received this message because you are subscribed to the Google Groups &= quot;Bitcoin Development Mailing List" group.
To unsubscribe from this group and stop receiving emails from it, send an e= mail to bitcoind= ev+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/bitcoindev/bJL7Us= hcsXUpiQiC85dQeafQrRvtovH1aRcUxggjD1S09Md9qWHi9GpJOBdcPGq2NNQMK2XK-REMVlWjH= Lkh3aKUIktnYQccUWqg0DHgNXc%3D%40proton.me.
--b2=_da521U4mS6JX9S1wzywA4Dmwiu9hqP2sd03S8eeL0I-- --b1=_da521U4mS6JX9S1wzywA4Dmwiu9hqP2sd03S8eeL0I Content-Type: application/octet-stream; name="bip-????.mediawiki" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="bip-????.mediawiki" PHByZT4KICBCSVA6ID8KICBMYXllcjogQ29uc2Vuc3VzIChzb2Z0IGZvcmspCiAgVGl0bGU6IFJl ZHVjZWQgRGF0YSBUZW1wb3JhcnkgU29mdGZvcmsKICBBdXRob3I6IERhdGhvbiBPaG0gPGRhdGhv bm9obStiaXBAcHJvdG9uLm1lPgogIENvbW1lbnRzLVN1bW1hcnk6IE5vIGNvbW1lbnRzIHlldC4K ICBDb21tZW50cy1VUkk6IGh0dHBzOi8vZ2l0aHViLmNvbS9iaXRjb2luL2JpcHMvd2lraS9Db21t ZW50czpCSVAtPwogIFN0YXR1czogRHJhZnQKICBUeXBlOiBTdGFuZGFyZHMgVHJhY2sKICBDcmVh dGVkOiAyMDI1LTEwLTI0CiAgTGljZW5zZTogQlNELTMtQ2xhdXNlCiAgUG9zdC1IaXN0b3J5OiBo dHRwczovL2dudXNoYS5vcmcvcGkvYml0Y29pbmRldi9hTl91LXhCMm9nbjJEODM0QGVyaXNpYW4u Y29tLmF1L1QvI21iNzEzNTBjNWRmYjExOWVmZWI5MmM1ZWU3MzhiNmM4MjI1YmYxNWI2CjwvcHJl PgoKPT1BYnN0cmFjdD09CgpUZW1wb3JhcmlseSBsaW1pdCB0aGUgc2l6ZSBvZiBkYXRhIGZpZWxk cyBhdCB0aGUgY29uc2Vuc3VzIGxldmVsLgoKPT1Db3B5cmlnaHQ9PQoKVGhpcyBkb2N1bWVudCBp cyBsaWNlbnNlZCB1bmRlciB0aGUgMy1jbGF1c2UgQlNEIGxpY2Vuc2UuCgo9PVNwZWNpZmljYXRp b249PQoKQmxvY2tzIHdpdGggYSBoZWlnaHQgZnJvbSA5MzQ4NjQgdW50aWwgYW5kIGluY2x1ZGlu ZyA5ODc0MjQgYXJlIGNoZWNrZWQgd2l0aCB0aGVzZSBhZGRpdGlvbmFsIHJ1bGVzOgoKIyBOZXcg b3V0cHV0IHNjcmlwdFB1YktleXMgZXhjZWVkaW5nIDM0IGJ5dGVzIGFyZSBpbnZhbGlkLCB1bmxl c3MgdGhlIGZpcnN0IG9wY29kZSBpcyBPUF9SRVRVUk4sIGluIHdoaWNoIGNhc2UgdXAgdG8gODMg Ynl0ZXMgYXJlIHZhbGlkLgojIE9QX1BVU0hEQVRBKiB3aXRoIHBheWxvYWRzIGxhcmdlciB0aGFu IDI1NiBieXRlcyBhcmUgaW52YWxpZCwgZXhjZXB0IGZvciB0aGUgcmVkZWVtU2NyaXB0IHB1c2gg aW4gQklQMTYgc2NyaXB0U2lncy4KIyBTcGVuZGluZyB1bmRlZmluZWQgd2l0bmVzcyAob3IgVGFw bGVhZikgdmVyc2lvbnMgKGllLCBub3QgV2l0bmVzcyB2MC9CSVAgMTQxIG5vciBUYXByb290L0JJ UCAzNDEpIGlzIGludmFsaWQuCiMgV2l0bmVzcyBzdGFja3Mgd2l0aCBhIFRhcHJvb3QgYW5uZXgg YXJlIGludmFsaWQuCiMgVGFwcm9vdCBjb250cm9sIGJsb2NrcyBsYXJnZXIgdGhhbiAyNTcgYnl0 ZXMgKGEgbWVya2xlIHRyZWUgd2l0aCAxMjggc2NyaXB0IGxlYXZlcykgYXJlIGludmFsaWQuCiMg VGFwc2NyaXB0cyBpbmNsdWRpbmcgT1BfU1VDQ0VTUyogb3Bjb2RlcyBhbnl3aGVyZSAoZXZlbiB1 bmV4ZWN1dGVkKSBhcmUgaW52YWxpZC4KIyBUYXBzY3JpcHRzIGV4ZWN1dGluZyB0aGUgT1BfSUYg b3IgT1BfTk9USUYgaW5zdHJ1Y3Rpb24gKHJlZ2FyZGxlc3Mgb2YgcmVzdWx0KSBhcmUgaW52YWxp ZC4KCklucHV0cyBzcGVuZGluZyBVVFhPcyB0aGF0IHdlcmUgY3JlYXRlZCBiZWZvcmUgdGhlIGFj dGl2YXRpb24gaGVpZ2h0IGFyZSBleGVtcHQgZnJvbSB0aGUgbmV3IHJ1bGVzLgpPbmNlIHRoZSBz b2Z0Zm9yayBleHBpcmVzLCBVVFhPcyBvZiBhbGwgaGVpZ2h0cyBhcmUgb25jZSBhZ2FpbiB1bnJl c3RyaWN0ZWQuCgo9PU1vdGl2YXRpb249PQoKVG8gcmVkdWNlIGFyYml0cmFyeSBkYXRhIHN0b3Jl ZCBvbiBub2RlcywgYW5kIHRvIHJlamVjdCB0aGUgc3RhbmRhcmRpemF0aW9uIG9mIGRhdGEgc3Rv cmFnZSBhcyBhIHN1cHBvcnRlZCB1c2UgY2FzZSBhdCB0aGUgY29uc2Vuc3VzIGxldmVsLgoKPT1S YXRpb25hbGU9PQoKPT09U3BlY2lmaWNhdGlvbiBudWFuY2U9PT0KCicnJ1doeSBsaW1pdCBzY3Jp cHRQdWJLZXlzIHRvIDM0IGJ5dGVzPycnJwoKc2NyaXB0UHViS2V5cyBtdXN0IGJlIHN0b3JlZCBp bmRlZmluaXRlbHkgaW4gcXVpY2stYWNjZXNzIG1lbW9yeSAob2Z0ZW4gUkFNKSBieSBhbGwgZnVs bHkgdmFsaWRhdGluZyBub2Rlcy4KSXQgZ2VuZXJhbGx5IGNhbm5vdCBiZSBwcnVuZWQuCkl0IGlz IGFsc28gYSBkaXJlY3QgY29zdCB0byB0aGUgc2VuZGVyIHJhdGhlciB0aGFuIHRoZSByZWNlaXZl ci4gRm9yIHRoZXNlIHJlYXNvbnMsIG1vZGVybiB1c2FnZSBpcyBhbGwgMzQgYnl0ZXMgb3Igc21h bGxlciBpbiBwcmFjdGljZToKYWN0dWFsIHNwZW5kaW5nIGNvbmRpdGlvbnMgaGF2ZSBiZWVuIG1v dmVkIHRvIHRoZSB3aXRuZXNzLCBhbmQgdGhlIHNjcmlwdFB1YktleSBzaW1wbHkgY29tbWl0cyB0 byB0aGVtIGluIGFkdmFuY2Ugd2l0aCBhIGhhc2guCgonJydXaGF0IGFib3V0IE9QX1JFVFVSTj8g V2h5IG5vdCBnZXQgcmlkIG9mIGl0IGVudGlyZWx5PycnJwoKT1BfUkVUVVJOIG91dHB1dHMgYXJl IHByb3ZhYmx5IHVuc3BlbmRhYmxlLCBhbmQgbm9kZXMgZG8gbm90IG5lZWQgdG8gc3RvcmUgdGhl bSBpbiB0aGUgVVRYTyBzZXQuCkhpc3RvcmljYWxseSwgdXAgdG8gODMgYnl0ZXMgaGF2ZSBiZWVu IHRvbGVyYXRlZCBvbmx5IHRvIGF2b2lkIHVucHJvdmFibHkgdW5zcGVuZGFibGUgc3BhbSBpbiBv dGhlciBvdXRwdXQgc2NyaXB0cywgYW5kIG5vIGxlZ2l0aW1hdGUgdXNlcyBoYXZlIGV2ZXIgYmVl biBmb3VuZC4KV2l0aCB0aGUgYWR2ZW50IG9mIHBheS10by1jb250cmFjdCBhbmQgVGFwcm9vdCwg aXQgaXMgbm93IGFsc28gcG9zc2libGUgdG8gY29tbWl0IHRvIGV4dGVybmFsIGRhdGEgaW4gdGhl IFRhcHRyZWUsIG1ha2luZyBldmVuIGh5cG90aGV0aWNhbCB1c2Ugb2YgT1BfUkVUVVJOIGRlcHJl Y2F0ZWQuCkhvd2V2ZXIsIHRvIGF2b2lkIGJyZWFraW5nIGxlZ2FjeSBwcm90b2NvbHMgdGhhdCBz dGlsbCBpbmNsdWRlIHN1Y2ggb3V0cHV0cywgdGhpcyBwcm9wb3NhbCBhbGxvd3MgdGhlc2Ugb3V0 cHV0cy4KCicnJ1doeSBsaW1pdCBvdGhlciBkYXRhIHRvIDI1Ni8yNTcgYnl0ZXM/JycnCgpXaXRo IG1vZGVybiBjb21wcmVzc2lvbiwgaXQgaXMgcGxhdXNpYmxlIHRvIHJlcHJlc2VudCBpbWFnZXMg aW4gYXMgZmV3IGFzIDMwMC00MDAgYnl0ZXMuIEltYWdlcyBhcmUgbGlrZWx5IHRoZSBtb3N0IGhh cm1mdWwgdXNlIGNhc2UgZm9yIGRhdGEgc3RvcmFnZSwgYXMgdGhleSBoYXZlIGh1Z2UgZGVtYW5k IGFuZCBzdXBwb3J0aW5nIHRoZW0gY2FuIGVuZ2VuZGVyIGhpZ2ggZmVlcyBhbmQgVVRYTy1zZXQg YmxvYXQsIGFzIHdlbGwgYXMgY29udGVudCB0aGF0IGEgbGFyZ2UgbWFqb3JpdHkgb2Ygbm9kZSBv cGVyYXRvcnMgbWlnaHQgb2JqZWN0IHRvLgoKMjU2IGJ5dGVzICgyMDQ4IGJpdHMpIGlzIGFsc28g bW9yZSB0aGFuIHN1ZmZpY2llbnQgZm9yIHJlYXNvbmFibHkgbGFyZ2UgbnVtYmVycyB0aGF0IG1p Z2h0IGJlIHBvdGVudGlhbGx5IG5lZWRlZCBpbiBsZWdpdGltYXRlIGNyeXB0b2dyYXBoeSwgcmVp bmZvcmNpbmcgQml0Y29pbidzIGludGVuZGVkIHB1cnBvc2UgYXMgYSBtb25ldGFyeSBuZXR3b3Jr LgoKJycnV29uJ3Qgc3BhbW1lcnMganVzdCBzcHJlYWQgdGhlaXIgZGF0YSBvdmVyIG11bHRpcGxl IGZpZWxkcz8nJycKCldoaWxlIGl0IGlzIGltcG9zc2libGUgdG8gZnVsbHkgcHJldmVudCBzdGVn YW5vZ3JhcGh5LCBsaW1pdGluZyBkYXRhIHNpemVzIGVuc3VyZXMgc3VjaCBhYnVzZXMgYXJlIG5v bi1jb250aWd1b3VzIGFuZCBvYmZ1c2NhdGVkIHdpdGhpbiBhbm90aGVyIGludGVuZGVkIG1lYW5p bmcgKHNjcmlwdCBjb2RlLCBzdHJ1Y3R1cmUsIGV0YykuCkFzIGZhciBhcyBCaXRjb2luIGlzIGNv bmNlcm5lZCwgdGhlIGRhdGEgaGFzIHNvbWUgbWVhbmluZyBvdGhlciB0aGFuIHRoZSBzcGFtbWVy cycgbWlzaW50ZXJwcmV0YXRpb24sIGFuZCBhbnkgZXh0ZXJuYWwgY29kZSB0byAicmVhc3NlbWJs ZSIgdGhlIHVuaW50ZW5kZWQgZGF0YSBpcyByZXNwb25zaWJsZSBmb3IgcHJvZHVjaW5nIGl0Cihp dCBpcyBwb3NzaWJsZSB0byB3cml0ZSBjb2RlIHRoYXQgdHJhbnNmb3JtcyAqYW55KiBkYXRhIGlu dG8gYW55IG90aGVyIGRhdGEgLSB3aGF0IG1hdHRlcnMgaXMgdGhhdCBCaXRjb2luIGhhcyBhIHdl bGwtZGVmaW5lZCBtZWFuaW5nIHRoYXQgaXMgZGlzdGluY3QgZnJvbSB0aGUgdW5zdXBwb3J0ZWQg b25lKS4KVGhpcyBwcm9wb3NhbCBhbHNvIHNlbmRzIGEgY2xlYXIgbWVzc2FnZSB0aGF0IGRhdGEg c3RvcmFnZSBhYnVzZXMgaW4gZ2VuZXJhbCBhcmUgdW53ZWxjb21lIHJhdGhlciB0aGFuIHNhbmN0 aW9uZWQgb3Igc3VwcG9ydGVkLgoKJycnV2h5IGlzIHRoZXJlIGFuIGV4Y2VwdGlvbiBmb3IgQklQ MTYgcmVkZWVtU2NyaXB0cz8nJycKClRoZSBjb250ZW50IG9mIHJlZGVlbVNjcmlwdHMgYXJlIGFu b3RoZXIgc2NyaXB0LCB3aGljaCBpcyB0aGVuIGV4ZWN1dGVkLgpJdHMgY29udGVudHMgYXJlIHRo ZW4gYWxzbyBzdWJqZWN0IHRvIHRoZSBzYW1lIE9QX1BVU0hEQVRBKiByZXN0cmljdGlvbnMuClJl c3RyaWN0aW5nIGl0IGlzIG5vdCBvbmx5IHVubmVjZXNzYXJ5LCBidXQgd291bGQgcmVkdWNlIHRo ZSBhYmlsaXR5IHRvIG1ha2UgdXNlIG9mIHRoZSBpbnRlbmRlZCBzY3JpcHQgY2FwYWJpbGl0aWVz LCBhbmQgY291bGQgaW1wYWN0IGxlZ2l0aW1hdGUgcmVhbC13b3JsZCB1c2FnZS4KCicnJ1doeSBt YWtlIHNwZW5kaW5nIHVuZGVmaW5lZCB3aXRuZXNzL1RhcGxlYWYgdmVyc2lvbnMgaW52YWxpZD8n JycKClNpbmNlIHRoZXkgYXJlIHVuZGVmaW5lZCwgd2l0bmVzcyBzdGFja3Mgc3BlbmRpbmcgdGhl c2UgdmVyc2lvbnMgYXJlIGNvbXBsZXRlbHkgdW5saW1pdGVkIGN1cnJlbnRseSB0byBhbGxvdyBt YXhpbXVtIGZsZXhpYmlsaXR5IGluIGZ1dHVyZSB1cGdyYWRlcy4KQW55IGZ1dHVyZSB1cGdyYWRl LCBob3dldmVyLCB3b3VsZCBuZWVkIG1vcmUgdGhhbiBhIHllYXIgb2YgY29vcmRpbmF0aW9uLCBz byB0aGlzIHNvZnRmb3JrIHdpbGwgbm90IGFjdHVhbGx5IHJlc3RyaWN0IGl0LCBhbmQgb25seSBz YWZlZ3VhcmRzIGFnYWluc3QgYWJ1c2UgaW4gdGhlIG1lYW50aW1lLgoKJycnV2h5IG5vdCBtYWtl IGl0IGludmFsaWQgdG8gc2VuZCB0byB1bmRlZmluZWQgd2l0bmVzcyB2ZXJzaW9ucz8nJycKClRo aXMgd291bGQgcmVxdWlyZSB0aGUgc2VuZGVycyBvZiB0cmFuc2FjdGlvbnMgdG8gY2hlY2sgdGhl IHdpdG5lc3MgdmVyc2lvbiBwcmlvciB0byBzZW5kaW5nLCBhbmQgcmVxdWlyZSBhZGRpdGlvbmFs IGNvb3JkaW5hdGlvbiB3aGVuIGEgbmV3IHdpdG5lc3MgdmVyc2lvbiBpcyBpbnRlbmRlZCB0byBi ZWNvbWUgdXNlZC4KCicnJ1doeSBub3QgYWxsb3cgc3BlbmRpbmcgdW5kZWZpbmVkIHdpdG5lc3Mg dmVyc2lvbnMgd2l0aCBhbiBlbXB0eSB3aXRuZXNzPycnJwoKVGhpcyBoYXMgbm8gdXNlIGNhc2Us IGJ1dCB3b3VsZCByZXF1aXJlIG5vZGVzIHRvIHRyYWNrIHRoZXNlIFVUWE9zIGluIGNhc2Ugb2Yg cG90ZW50aWFsIHNwZW5kaW5nLgpCeSBtYWtpbmcgc3BlbmRpbmcgaW52YWxpZCwgaXQgaXMgcG9z c2libGUgZm9yIG5vZGVzIHRvIHN0b3JlIHRoZW0gaW5zdGVhZCBpbiBzbG93IG1lbW9yeSBub3Qg bmVlZGVkIHVudGlsIHRoaXMgc29mdGZvcmsgZXhwaXJlcy4KKFdpdGggcHJvcGVyIHBsYW5uaW5n LCBpdCBhbHNvIG1ha2VzIGl0IHBvc3NpYmxlIGZvciBhIGZ1dHVyZSBzb2Z0Zm9yayBtYWtpbmcg dXNlIG9mIHRoZXNlIHdpdG5lc3MgdmVyc2lvbnMgdG8gYWxsb3cgdXNlcnMgdG8gcmVjZWl2ZSB3 aXRoIGFuIHVwZ3JhZGVkIHdhbGxldCBldmVuIHByaW9yIHRvIGFjdGl2YXRpb24gb2YgdGhlIHVw Z3JhZGUuKQoKJycnV2h5IG1ha2UgdGhlIFRhcHJvb3QgYW5uZXggaW52YWxpZD8nJycKClRoZSBh bm5leCBpcyBjdXJyZW50bHkgdW5kZWZpbmVkIGRhdGEgd2l0aCB1bmxpbWl0ZWQgc2l6ZS4KSXQg ZXhpc3RzIGZvciBmdXR1cmUgdXBncmFkZXMsIGJ1dCBoYXMgbm8gbGVnaXRpbWF0ZSB1c2FnZSB0 b2RheS4KQW55IGZ1dHVyZSB1cGdyYWRlLCBob3dldmVyLCB3b3VsZCBuZWVkIG1vcmUgdGhhbiBh IHllYXIgb2YgY29vcmRpbmF0aW9uLCBzbyB0aGlzIHNvZnRmb3JrIHdpbGwgbm90IGFjdHVhbGx5 IHJlc3RyaWN0IGl0LCBhbmQgb25seSBzYWZlZ3VhcmRzIGFnYWluc3QgYWJ1c2UgaW4gdGhlIG1l YW50aW1lLgoKJycnV2h5IGlzIHRoZSBUYXByb290IGNvbnRyb2wgYmxvY2sgbGltaXRlZCB0byAy NTcgYnl0ZXMgaW5zdGVhZCBvZiAyNTY/JycnCgpUaGUgY29udHJvbCBibG9jayBpcyBhIHNlcmll cyBvZiBoYXNoZXMgcHJvdmluZyB0aGUgVGFwc2NyaXB0IGlzIHBhcnQgb2YgdGhlIFRhcHRyZWUs IHBsdXMgYSBzaW5nbGUgYnl0ZSB3aXRoIHRoZSBsZWFmIHZlcnNpb24gYW5kIHBhcml0eSBiaXQu ClNlZSBCSVAgMzQxIGZvciBkZXRhaWxzLgoKJycnV2h5IG1ha2UgT1BfU1VDQ0VTUyogaW52YWxp ZD8nJycKCk9QX1NVQ0NFU1MqIGlzIG1lYW50IGZvciBmdXR1cmUgdXBncmFkZXMuIFNlZSBhYm92 ZSByZWdhcmRpbmcgdW5kZWZpbmVkIHdpdG5lc3MgdmVyc2lvbnMuCgonJydXaHkgbWFrZSBPUF9J Ri9PUF9OT1RJRiBpbnZhbGlkPycnJwoKT1BfSUYvT1BfTk9USUYgb3JpZ2luYXRlZCBpbiBwcmUt VGFwcm9vdCBCaXRjb2luIHNjcmlwdCBsYW5ndWFnZSBhcyBhIHdheSB0byBleGVjdXRlIGRpZmZl cmVudCBzdWJzY3JpcHRzIGJhc2VkIG9uIGEgY29uZGl0aW9uLgpXaXRoIFRhcHJvb3QsIHRoZSBj b25kaXRpb25zIGNhbiBpbnN0ZWFkIGJlIGV2YWx1YXRlZCBvZmYtY2hhaW4sIHJldmVhbGluZyBv bmx5IHRoZSBpbnRlbmRlZCB2ZXJpZmljYXRpb24gZXhlY3V0aW9uIHBhdGguCkZ1cnRoZXJtb3Jl LCB3aGVuIHRoZSBjb25kaXRpb25zIGFyZSBtZXQsIHRoZSBpbnRlbnQgaXMgdGhhdCB0aGUga2V5 cGF0aCBzcGVuZCBwYXRoIHNob3VsZCBiZSB1c2VkIGluc3RlYWQsIGF2b2lkaW5nIHB1Ymxpc2hp bmcgYW55IHNjcmlwdHMgYXQgYWxsLgoKT1BfSUYgaXMgbm90IG9ubHkgcmVkdW5kYW50IGZvciBU YXBzY3JpcHQsIGl0IGlzIGFsc28gY29tbW9ubHkgYWJ1c2VkIHRvZGF5IHRvIGluamVjdCBzcGFt IHRoYXQgZ2V0cyBza2lwcGVkIGF0IGV4ZWN1dGlvbi4KV2hpbGUgaXQgaXMgaW1wb3NzaWJsZSB0 byBmdWxseSBwcmV2ZW50IHN0ZWdhbm9ncmFwaHksIGNsb3NpbmcgdGhpcyBnYXAgZWxpbWluYXRl cyBvbmUgY29tbW9uIGFidXNlIHRvZGF5IGJhc2ljYWxseSBmb3IgZnJlZSwgYW5kIHNlbmRzIGEg bWVzc2FnZSB0aGF0IHN1Y2ggYWJ1c2VzIGFyZSBub3Qgd2VsY29tZS4KCicnJ1doeSBpcyB0aGUg cHJvcG9zYWwgc28gc2ltcGxlPycnJwoKQSBtb3JlIGNvbXBsaWNhdGVkIHByb3Bvc2FsIGNvdWxk IGJlIGVudmlzaW9uZWQgdGhhdCBiZXR0ZXIgYmFsYW5jZXMgaW5ub3ZhdGlvbiB3aXRoIHNhZmV0 eSwgYnV0IGltcGxlbWVudGluZyB0aGlzIHByb3Blcmx5IHdvdWxkIHJlcXVpcmUgZXh0ZW5zaXZl IHJlZmFjdG9yaW5nIGFuZCByZXZpZXcsIGRlbGF5aW5nIGRlcGxveW1lbnQgd2hlbiB0aGVyZSBp cyBhbHJlYWR5IG5vIHRpbWUgdG8gd2FpdC4KVGhlIHJ1bGVzIHByb3Bvc2VkIGhlcmVpbiBoYXZl IGJlZW4gaW50ZW50aW9uYWxseSBrZXB0IHZlcnkgc2ltcGxlIHRvIG1pbmltaXNlIHJldmlldyB0 aW1lIGFuZCBhdm9pZCB1bm5lY2Vzc2FyeSByaXNrcyBvZiBvdmVybG9va2luZyB1bmV4cGVjdGVk IHNpZGUgZWZmZWN0cy4KCicnJ1doeSBpcyB0aGlzIHNvZnRmb3JrIHRlbXBvcmFyeT8nJycKClRo ZSBpbXBhY3Qgb2YgdGhlc2UgcmVzdHJpY3Rpb25zIHdvdWxkIHNldmVyZWx5IGNvbnN0cmFpbiBm dXR1cmUgdXBncmFkZXMsIHBvdGVudGlhbGx5IGZvcmNpbmcgdGhlbSB0byBiZSBkZXNpZ25lZCBh cyBhIGhhcmRmb3JrIGluc3RlYWQgb2YgYSBzb2Z0Zm9yay4KU29tZSByZXN0cmljdGlvbnMgYXJl IGFsc28gbm90IGlkZWFsLCBidXQgYW4gaW1wcm92ZWQgbGltaXQgd291bGQgYmUgbW9yZSBjb21w bGljYXRlZCB0byBkZXZlbG9wIGFuZCB0ZXN0IC0KYnkgZGVwbG95aW5nIHRoZXNlIHNpbXBsZXIg cmVzdHJpY3Rpb25zIG5vdywgd2UgYXZvaWQgbWFraW5nIHRoZSBwZXJmZWN0IHRoZSBlbmVteSBv ZiB0aGUgZ29vZCBlbm91Z2gsIHdoaWxlIHN0aWxsIGFsbG93aW5nIGZvciB1cGdyYWRpbmcgdGhl IGxpbWl0cyB0byBiZXR0ZXIgdmFyaWFudHMgaW4gdGhlIGZ1dHVyZS4KCk92ZXIgdGhlIG5leHQg eWVhciwgaW50ZXJlc3RlZCBkZXZlbG9wZXJzIGNhbiBpbXBsZW1lbnQgYW5kIHByb3Bvc2UgYSBs b25nZXItdGVybSBzb2x1dGlvbiB0byBhZGRyZXNzIHRoZSBuZWVkcyBvZiB0aGUgcHJvdG9jb2wg d2l0aG91dCB0aGUgdHJhZGVvZmZzIG9yIGJsdW50L3NpbXBsaWZpZWQgY2hhbmdlcy4KCj09PVRy YWRlb2Zmcz09PQoKJycnQXJlIHRoZXJlIGFueSB0cmFkZW9mZnM/JycnCgpZZXM6CgojIExpbWl0 aW5nIFRhcHJvb3QgY29udHJvbCBibG9ja3MgdG8gMjU3IGJ5dGVzIGRpcmVjdGx5IGNvbnN0cmFp bnMgdGhlIHNpemUgb2YgdGhlIG9uLWNoYWluLCBjb25zZW5zdXMtZW5mb3JjZWQgc2NyaXB0IHRy ZWUuIFRoaXMgY291bGQgY29tcGxpY2F0ZSBvciBwb3NzaWJseSBldmVuIGltcGVkZSBhZHZhbmNl ZCBzbWFydCBjb250cmFjdGluZyBsaWtlIEJpdFZNLCB3aGljaCByZWxpZXMgb24gYSBsYXJnZSBu dW1iZXIgb2YgZXhlY3V0YWJsZSBzY3JpcHRzLiBJbiB0aGUgd29yc3QgY2FzZSBzY2VuYXJpbywg dGhlc2UgdXNlIGNhc2VzIG1heSBqdXN0IG5lZWQgdG8gd2FpdCB1bnRpbCB0aGlzIHNvZnRmb3Jr IGV4cGlyZXMuIEFzIHRoZXkgYXJlIHN0aWxsIGluIGVhcmx5IGRldmVsb3BtZW50LCB0ZXN0bmV0 IGFuZCBzaWRlY2hhaW5zIHNob3VsZCBiZSBzdWZmaWNpZW50IGZvciB0aGUgbmV4dCB5ZWFyIHdo aWxlIGEgbW9yZSBzY2FsYWJsZSBydWxlIGlzIGltcGxlbWVudGVkLgojIFVwZ3JhZGUgaG9va3Mg YXJlIG5vdCBhdmFpbGFibGUgZm9yIG90aGVyIHNvZnRmb3Jrcy4gQXMgc29mdGZvcmtzIG5lZWQg YXQgbGVhc3QgYSB5ZWFyIHRvIGFjdGl2YXRlLCB0aGlzIHNob3VsZG4ndCBiZSBhIHByYWN0aWNh bCBpc3N1ZS4KIyBTb21lIHdhbGxldCBzb2Z0d2FyZSBzdWNoIGFzIE1pbmlzY3JpcHQgaGFiaXR1 YWxseSBjcmVhdGUgVGFwbGVhdmVzIGNvbnRhaW5pbmcgT1BfSUYuIFRvIG1pdGlnYXRlIHRoZSBy aXNrIG9mIGZyZWV6aW5nIHRoZXNlIGZ1bmRzIGZvciBhIHllYXIsIHRoaXMgcHJvcG9zYWwgZXhl bXB0cyBpbnB1dHMgdGhhdCBzcGVuZCBvdXRwdXRzIHRoYXQgd2VyZSBjcmVhdGVkIGJlZm9yZSBh Y3RpdmF0aW9uLgoKJycnSXNuJ3QgdGhlIGxpbWl0IG9uIFRhcHJvb3QgY29udHJvbCBibG9ja3Mg dG9vIHJlc3RyaWN0aXZlPycnJwoKUG9zc2libHkuClRoZSBwcmV2aW91cyBsaW1pdCBhbGxvd3Mg Zm9yIDM0MCwyODIsMzY2LDkyMCw5MzgsNDYzLDQ2MywzNzQsNjA3LDQzMSw3NjgsMjExLDQ1NiBz Y3JpcHRzLCB3aGljaCBpcyBvYnZpb3VzbHkgd2F5IG1vcmUgdGhhbiBhbnlvbmUgY291bGQgZXZl ciBuZWVkLgoyNTcgYnl0ZXMgYWxsb3dzIGZvciAxMjggc2NyaXB0cywgd2hpY2ggaXMgc3VmZmlj aWVudCBmb3IgbW9kZXJuIGFuZCBjb21wbGV4IHRyYW5zYWN0aW9ucy4KSG93ZXZlciwgaXQgbWF5 IHByb3ZlIHRvbyBsaW1pdGluZyBmb3IgYWR2YW5jZWQgb2ZmLWNoYWluIGZ1bmN0aW9uYWxpdHkg c3VjaCBhcyB1c2VkIGJ5IEJpdFZNLgpUaGlzIGlzIGFuIHVuZm9ydHVuYXRlIHRyYWRlb2ZmIHRo YXQgKGlmIHRoaXMgc29mdGZvcmsgaXMgYWNjZXB0ZWQpIHdlIGhhdmUgY2hvc2VuIHRvIGFjY2Vw dCBpbiB0aGUgc2hvcnQtdGVybSBmb3IgdGhlIGltbWVkaWF0ZSBiZW5lZml0cyBvZiB0aGlzIHNv ZnRmb3JrLgpUaGUgaW50ZW50IGlzIHRvIHJlbGF4IHRoaXMgcmVzdHJpY3Rpb24gbGF0ZXIsIHdo ZW4gdGhpcyBzb2Z0Zm9yayBleHBpcmVzLCB3aXRoIGEgbmV3IGFwcHJvYWNoIGFsbG93aW5nIGxh cmdlciB0cmVlcywgeWV0IHRvIGJlIGRldmVsb3BlZC4KCkRvIG5vdGUgdGhhdCBub24tc2NyaXB0 IChvciBub24tQml0Y29pbi1MMSBzY3JpcHRzKSB1c2FnZSBvZiB0aGUgdGFwdHJlZSBkb2VzIG5v dCBoYXZlIHRoaXMgc2FtZSBsaW1pdGF0aW9uOgpqdXN0IGEgc2luZ2xlIG9mIHRoZSAxMjggbGVh dmVzIGNvdWxkIHZlcnkgd2VsbCBiZSBhbiBleHRlbnNpb24gb2YgdGhlIG1lcmtsZSB0cmVlIHRv IGdyZWF0ZXIgZGVwdGhzIHRoYW4gZW5mb3JjZWQgYnkgdGhpcyBzb2Z0Zm9yay4KCicnJ0FyZW4n dCBUYXB0cmVlcyBpbnRlbmRlZCB0byBiZSB1bmJhbGFuY2VkPycnJwoKV2hpbGUgaXQgaXMgdHJ1 ZSB0aGF0IG9wdGltYWwgdXNlIG9mIFRhcHRyZWVzIG1heSBvZnRlbiBiZSB1bmJhbGFuY2VkIHRv IGZhdm91ciBtb3JlLWxpa2VseS1leGVjdXRlZCBzY3JpcHRzLCB0aGlzIGlzIG9wdGlvbmFsLCBh bmQgdGhlIGZ1bGwgY2FwYWNpdHkgKGluIHRoaXMgY2FzZSwgMTI4IHNjcmlwdHMpIGNhbiBzdGls bCBiZSB1c2VkIGlmIG5lZWRlZC4KQWRkaXRpb25hbGx5LCBpbiBpZGVhbC9vcmRpbmFyeSBjaXJj dW1zdGFuY2VzLCBuZWl0aGVyIHRoZSBUYXB0cmVlIG5vciBhIG1lcmtsZSBicmFuY2ggdGhyb3Vn aCBpdCBpcyBldmVyIHB1Ymxpc2hlZDoKYWxsIGNvdW50ZXJwYXJ0aWVzIG91Z2h0IHRvIGV2YWx1 YXRlIHRoZSBjb25kaXRpb25zIGZvciBzcGVuZGluZyBvZmYtY2hhaW4gYW5kIHJlYnJvYWRjYXN0 IHRoZSB0cmFuc2FjdGlvbiB1c2luZyB0aGUga2V5cGF0aCBzcGVuZGluZy4KVGFwc2NyaXB0cyBh cmUgaW50ZW5kZWQgdG8gb25seSBiZSB1c2VkIHdoZW4gb25lIG9yIG1vcmUgcGFydGllcyBpcyB1 bnJlYWNoYWJsZSBvciB1bmNvb3BlcmF0aXZlOyB0aGVpciBleGlzdGVuY2UgbWFpbmx5IG9ubHkg c2VydmVzIHRvIGRldGVyIGludGVudGlvbmFsIG5vbi1jb29wZXJhdGlvbiBieSBtYWtpbmcgaXQg cG9pbnRsZXNzLgoKPT09QWx0ZXJuYXRpdmVzIC8gQWxzb3M9PT0KJycnV2h5IG5vdCBsZXQgdGhl IGZlZSBtYXJrZXQgbWFuYWdlIGRhdGEgc3RvcmFnZT8nJycKClRoZSBmZWUgbWFya2V0IGlzIGRl c2lnbmVkIHRvIHByaW9yaXRpemUgdHJhbnNhY3Rpb25zIGJhc2VkIG9uIGVjb25vbWljIHVyZ2Vu Y3kuCgpIb3dldmVyLCB0aGUgbWFya2V0IGZvciBkYXRhIHN0b3JhZ2Ugb24gdGhlIGJsb2NrY2hh aW4gaXMgYSBjb21wbGV0ZWx5IGRpZmZlcmVudCBtYXJrZXQgZnJvbSB0aGUgbWFya2V0IGZvciBw YXltZW50cywgd2l0aCBjb21wbGV0ZWx5IGRpZmZlcmVudCBpbmNlbnRpdmVzLgoKU3BlY2lmaWNh bGx5LCB0aGUgZmVlIGZvciBhIG1vbmV0YXJ5IHRyYW5zYWN0aW9uIGluY2VudGl2aXNlcyBhIG1p bmVyIHRvIGluY2x1ZGUgdGhlIHRyYW5zYWN0aW9uIGluIGEgYmxvY2ssIHJlcHJlc2VudGluZyBh IG9uZS10aW1lIHRyYW5zZmVyIG9mIG9uZSBvciBtb3JlIFVUWE9zLiBUaGUgbWluZXIgdGh1cyBw cm92aWRlcyB0aGUgb25lLXRpbWUgc2VydmljZSBvZiBzZWN1cmluZyBhIHBheW1lbnQsIGZvciBh IG9uZS10aW1lIGZlZS4KCk9uY2UgdGhlIHBheW1lbnQgaXMgc2VjdXJlZCwgdGhlIHBheW9yIGRv ZXMgbm90IHJlY2VpdmUgYW55IGFkZGl0aW9uYWwgYmVuZWZpdCBmcm9tIHRoZSBCaXRjb2luIG5l dHdvcmssIGJlc2lkZXMgdGhlIGludGVncml0eSBvZiBCaXRjb2luJ3MgdHJhbnNhY3Rpb24gaGlz dG9yeSAoYSBzZXJ2aWNlIHRvIHdoaWNoIGFsbCBub2RlIG9wZXJhdG9ycyBhcmUgaGFwcHkgdG8g Y29udHJpYnV0ZSwgYmVjYXVzZSBCaXRjb2luIHdvdWxkIG5vdCBmdW5jdGlvbiBhcyBtb25leSBv dGhlcndpc2UpLgoKQ29udmVyc2VseSwgdGhlIGZlZSBmb3IgYSBkYXRhIHN0b3JhZ2UgdHJhbnNh Y3Rpb24gc3RpbGwgZ29lcyBvbmx5IHRvIHRoZSBtaW5lciB3aG8gaW5jbHVkZXMgdGhlIGRhdGEg aW4gYSBibG9jaywgYnV0IHRoZSBidXJkZW4gb2Ygc3RvcmluZyB0aGUgZGF0YSBmYWxscyBvbiBh bGwgbm9kZSBvcGVyYXRvcnMsIHdobyBuZXZlciByZWNlaXZlZCBldmVuIGEgcGFydCBvZiB0aGUg ZmVlLCB5ZXQgYXJlIGZvcmNlZCB0byBjb250aW51ZSBkb3dubG9hZGluZywgc3RvcmluZywgYW5k IHNlcnZpbmcgdGhlIGRhdGEgZm9yZXZlci4KCkluIHRoaXMgY2FzZSwgdGhlIG1pbmVyIGFjY2Vw dHMgYSBvbmUtdGltZSBmZWUsIGFuZCBpbiBleGNoYW5nZSwgdGhlIHByaWNlbGVzcyBzZXJ2aWNl IG9mIGhpZ2hseS1hdmFpbGFibGUsIHVuY2Vuc29yYWJsZSBkYXRhIHN0b3JhZ2UgaXMgcHJvdmlk ZWQgaW4gcGVycGV0dWl0eSAnJ2ZvciBmcmVlJycgYnkgbm9kZSBvcGVyYXRvcnMuCgpUaGUgcHJv YmxlbSBiZWNvbWVzIGV2ZW4gd29yc2Ugd2hlbiB0aGUgZGF0YSBpcyBvYmplY3Rpb25hYmxlIHRv IG5vZGUgb3BlcmF0b3JzLCBhcyB0aGlzIHJlcHJlc2VudHMgYW4gZXZlbiBsYXJnZXIsIHVuZXhw ZWN0ZWQgY29zdCBmb3IgdGhlbS4KCicnJ0hvdyBhYm91dCBPUF9SRVRVUk4yLyJibG9ic3BhY2Ui IG1ha2luZyB0aGUgZGF0YSBvcHRpb25hbCBmb3Igbm9kZXM/JycnCgpUaGlzIGhhcyBiZWVuIGF0 dGVtcHRlZCBtdWx0aXBsZSB0aW1lcyBpbiB0aGUgcGFzdC4KVGhlcmUgaXMgcGVyaGFwcyBubyBo YXJtIGluIHRyeWluZyB5ZXQgYWdhaW4sIGFuZCB0aGlzIHByb3Bvc2FsIGRvZXMgbm90IHByZXZl bnQgZG9pbmcgc28sCmJ1dCB1bHRpbWF0ZWx5IHRoZXNlIHNjaGVtZXMgZGVwZW5kIG9uIHRoZSBj b29wZXJhdGlvbiBvZiB0aGUgc2VuZGVyLCB3aG8gdXN1YWxseSB3YW50cyB0byBleHBsaWNpdGx5 IGZvcmNlIHRoZSBjb250ZW50IG9uIG5vbi1jb25zZW50aW5nIG5vZGUgb3BlcmF0b3JzCihvciB0 aGV5IHdvdWxkIGJlIHVzaW5nIG90aGVyIGV4aXN0aW5nIGRpc3RyaWJ1dGlvbiBtZXRob2RzIGFs cmVhZHkpLgpUaGVzZSBvdGhlciBpZGVhcyBhbHNvIGRvIG5vdCBzb2x2ZSB0aGUgcHJvYmxlbSBv ZiBvYmplY3Rpb25hYmxlIGNvbnRlbnQuCgonJydTaG91bGRuJ3Qgc3BhbSBiZSBmb3VnaHQgaW4g cG9saWN5PyBEb2VzIHRoaXMgcHJvcG9zYWwgYWZmaXJtIHRoYXQgcG9saWN5IGlzIGluZWZmZWN0 aXZlPycnJwoKSXQgcmVtYWlucyB0cnVlIHRoYXQgcG9saWN5IGlzIHN0aWxsIHRoZSBiZXN0IHBs YWNlIHRvIGZpZ2h0IHNwYW0uCkhvd2V2ZXIsIGl0IGlzIGFsc28gdHJ1ZSB0aGF0IHBvbGljeSBj YW5ub3QgZ3VhcmFudGVlIDEwMCUgZWZmZWN0aXZlbmVzcywgcGFydGljdWxhcmx5IGFnYWluc3Qg YmFkIGFjdG9ycyB3aG8gYXJlIG1pbmluZy4KVGhpcyBzb2Z0Zm9yayBtaW5pbWlzZXMgdGhlIGlt cGFjdCBvZiBzdWNoIG1hbGljaW91cyBtaW5lcnMsIGNsb3NpbmcgdGhlIHdvcnN0LWNhc2Ugcmlz a3MuCgonJydEb2VzIHRoaXMgcHJvcG9zYWwgc29sdmUgc3BhbSBjb21wbGV0ZWx5PycnJwoKTm8u Ckl0IGlzIGltcG9zc2libGUgdG8gc29sdmUgc3BhbSBjb21wbGV0ZWx5LCBhbmQgdHlwaWNhbGx5 IHNwYW0gaXMgYmVzdCBmb3VnaHQgd2l0aCBwb2xpY3kvZmlsdGVycywgbm90IGNvbnNlbnN1cy4K V2hhdCB0aGlzIHNvZnRmb3JrIGRvZXMgaXMgcmVxdWlyZSB1c2VycyB3YW50aW5nIHRvIHN0b3Jl IGxhcmdlIHVuZW5jcnlwdGVkIGZpbGVzIGluIHRoZSBibG9ja2NoYWluIHRvIGRpc2d1aXNlIHRo ZSBkYXRhIGFzIGZpbmFuY2lhbCBkYXRhIGFuZC9vciBicmVhayBpdCB1cCBpbnRvIG11bHRpcGxl IGRhdGEgcHVzaGVzLiBPYnZpb3VzbHkgZG9pbmcgc28gaXMgY29uc2lkZXJlZCBhbiBhYnVzZSBv ZiBiaXRjb2luIGFuZCBzaG91bGQgYmUgYXZvaWRlZCwgYnV0IGlmIGl0IGRvZXMgaGFwcGVuLCB0 aGlzIEJJUCBzdHJlbmd0aGVucyB0aGUgYXJndW1lbnQgdGhhdCBkYXRhIHN0b3JhZ2UgaXMgbm90 IGEgc3VwcG9ydGVkIHVzZSBjYXNlLgoKJycnV2h5IGRvZXNuJ3QgdGhpcyBwcm9wb3NhbCBhZGRy ZXNzIG5vbi1CaXRjb2luIHRva2Vucz8nJycKClRoZXJlIGFyZSBhIHdpZGUgdmFyaWV0eSBvZiBu b24tQml0Y29pbiB0b2tlbnMsIG1vc3RseSBzY2FtcywgdGhhdCBhIHNpZ25pZmljYW50IHBvcnRp b24gb2YgdGhlIGNvbW11bml0eSBjb25zaWRlcnMgc3BhbS4KSG93ZXZlciwgdGhlc2Ugc2NoZW1l cyBhcmUgYmVzdCBjb3VudGVyZWQgaW4gcG9saWN5IHJhdGhlciB0aGFuIGNvbnNlbnN1cywgYW5k IGJlc2lkZXMsIHRoaXMgcHJvcG9zYWwgZG9lcyBub3QgYWltIHRvIGVsaW1pbmF0ZSBzcGFtIGVu dGlyZWx5LgoKJycnSXMgdGhpcyBhIHNsaXBwZXJ5IHNsb3BlPyBJZiB3ZSBtYWtlIHJ1bGVzIGFn YWluc3QgZGF0YSB0b2RheSwgd2lsbCB3ZSBzdGFydCBiYW5uaW5nIHVzZSBjYXNlcyB3ZSBkb24n dCBsaWtlIHRvbW9ycm93PycnJwoKTm8uClRoZXNlIHJ1bGVzIG1heSBiZSBuZXcgYXQgdGhlIGNv bnNlbnN1cyBsZXZlbCwgYnV0IHRoZXkgYXJlIG1lcmVseSBlbnNocmluaW5nIGxvbmctc3RhbmRp bmcgcHJpbmNpcGxlcyBvZiBCaXRjb2luLCBhcyBuZWNlc3NhcnkgdG8gYWRkcmVzcyBhIHRocmVh dCB0byB0aGUgZGVjZW50cmFsaXphdGlvbiBvZiB0aGUgbmV0d29yayBhbmQgaXRzIHVzYWJpbGl0 eSBmb3IgbW9uZXRhcnkgcHVycG9zZXMuCgpUaGlzIHNvZnRmb3JrIGRvZXMgbm90IGF0dGVtcHQg dG8gaW1wb3NlIHJlc3RyaWN0aW9ucyBvbiBtb25ldGFyeSBhY3Rpdml0eSBvciB0aGUgdmFsaWRp dHkgb2YgbW9uZXRhcnkgdHJhbnNhY3Rpb25zIHRoZW1zZWx2ZXMuCkJ5IHJlc3RyaWN0aW5nIHRo ZSBkYXRhIHN0b3JhZ2UgdXNlIGNhc2UgYXMgbXVjaCBhcyBwb3NzaWJsZSwgdGhpcyBwcm9wb3Nh bCByZWluZm9yY2VzIEJpdGNvaW4ncyBndWFyYW50ZWUgb2Ygc291bmQsIHBlcm1pc3Npb25sZXNz IG1vbmV5IGZvciB0aGUgbG9uZy10ZXJtLgpUaGlzIGNsZWFyIGRpc3RpbmN0aW9uIGJldHdlZW4g bWl0aWdhdGluZyBhIHN5c3RlbWljIHJpc2sgZnJvbSBub24tbW9uZXRhcnkgZGF0YSBhYnVzZSBh bmQgaW50ZXJmZXJpbmcgd2l0aCBhY3R1YWwgbW9uZXRhcnkgdXNlIGNhc2VzIHByb3ZpZGVzIGEg c3Ryb25nIGJhcnJpZXIgYWdhaW5zdCBmdXR1cmUgb3ZlcnJlYWNoLgoKVGhlIGV4cGxpY2l0bHkg dGVtcG9yYXJ5IG5hdHVyZSBvZiB0aGUgc29mdGZvcmsgZnVydGhlciByZWluZm9yY2VzIHRoYXQg dGhpcyBpcyBhIHRhcmdldGVkIGludGVydmVudGlvbiB0byBtaXRpZ2F0ZSBhIHNwZWNpZmljIGNy aXNpcywgbm90IGEgY29tbWl0bWVudCBvciBwcm9wb3NhbCBvZiBhIG5ldyBkaXJlY3Rpb24gb2Yg ZGV2ZWxvcG1lbnQuCklmIG5vIGZ1cnRoZXIgYWN0aW9uIGlzIHRha2VuIGJ5IHlvdSwgaXQgd2ls bCBleHBpcmUgaW4gYSB5ZWFyLgpFdmVuIGlmIGEgZm9sbG93dXAgc29mdGZvcmsgaXMgcHJvcG9z ZWQgZm9yIHRoYXQgdGltZSwgeW91IHJldGFpbiB0aGUgcmlnaHQgdG8gcmVqZWN0IGl0LgoKJycn V2h5IG5vdCByZWR1Y2UgdGhlIGJsb2NrIHdlaWdodC9zaXplIGxpbWl0IHRvbz8nJycKCkl0IGlz IHBvc3NpYmxlIHRoaXMgc29mdGZvcmsgbWF5IGFjdGl2YXRlIGJlZm9yZSBtaW5lcnMgaGF2ZSBm dWxseSB1cGdyYWRlZC4KVG8gZW5zdXJlIGNvbnRpbnVpdHkgb2YgQml0Y29pbiB0aHJvdWdoIGEg cG90ZW50aWFsbHkgbG93LWhhc2hyYXRlIHBlcmlvZCwgd2UgbXVzdCBhc3N1bWUgdGhlcmUncyBh IHBvc3NpYmlsaXR5IG9mIGVhY2ggYmxvY2sgdGFraW5nIDEwIHRpbWVzIGFzIGxvbmcgYXMgaW50 ZW5kZWQgKGllLCB+MiBob3VycyBwZXIgYmxvY2spLCB3aGljaCB3b3VsZCBtZWFuIDQgTVdVIHBl ciBibG9jayB3b3VsZCBiZSBhIG1lcmUgMzMzIGtXVSBwZXIgMTAgbWludXRlcy4KCklmIHRoZXJl IGlzIGNvbW11bml0eSBzdXBwb3J0IGZvciByZWR1Y2luZyBibG9jayBzaXplcywgaXQgc2hvdWxk IHRoZXJlZm9yZSBiZSBkb25lIHNlcGFyYXRlbHkgYW5kIGNhbG1seSwgYWZ0ZXIgdGhlIG5ldHdv cmsgaGFzIHNldHRsZWQgZG93bi4KCicnJ1doeSBub3QgYWN0aXZhdGUgQ1RWIGF0IHRoZSBzYW1l IHRpbWU/JycnCgpDVFYgaXMgc3RpbGwgY29udHJvdmVyc2lhbCB3aXRoIGEgbWlub3JpdHkgb2Yg dGhlIGNvbW11bml0eSwgYW5kIGJ1bmRsaW5nIGl0IHdpdGggdGhpcyBzb2Z0Zm9yayBjb3VsZCBi ZSBzZWVuIGFzIGFuIGF0dGVtcHQgdG8gdHJpY2svZm9yY2UgaXQgb24gdGhlIG5ldHdvcmsuCgpI b3dldmVyLCB0aGlzIHNvZnRmb3JrIGRvZXMgInNldCB0aGUgc3RhZ2UiIGZvciBhIGZvbGxvd3Vw IHNvZnRmb3JrIGluIGEgeWVhciwgd2hpY2ggd291bGQgYmUgYW4gaWRlYWwgc3RhZ2UgdG8gaW5j bHVkZSBDVFYgaWYgdGhlIGNvbW11bml0eSBkZWVtcyBpdCBhcHByb3ByaWF0ZS4KCj09QmFja3dh cmRzIGNvbXBhdGliaWxpdHk9PQoKQW55IFVUWE9zIGNvbmZpcm1lZCBiZWZvcmUgYWN0aXZhdGlv biB3aWxsIGJlIHNwZW5kYWJsZSB3aGlsZSB0aGlzIGRlcGxveW1lbnQgaXMgYWN0aXZlOyBvbmx5 IG91dHB1dHMgdGhhdCBhcmUgY3JlYXRlZCAnJ2R1cmluZycnIHRoZSBkZXBsb3ltZW50IHdpbGwg aGF2ZSB0byB3YWl0IHVudGlsIGl0IGV4cGlyZXMgaW4gb3JkZXIgdG8gYmUgc3BlbmRhYmxlLgoK PT1SZWZlcmVuY2UgaW1wbGVtZW50YXRpb249PQoKaHR0cHM6Ly9naXRodWIuY29tL2JpdGNvaW5r bm90cy9iaXRjb2luL2NvbXBhcmUvMjkueC1rbm90cy4uLlVBU0Y6Yml0Y29pbjoyOS4yLmtub3Rz MjAyNTEwMTArQklQNDQ0P2V4cGFuZD0xCgo9PURlcGxveW1lbnQ9PQoKV2UgcHJvcG9zZSBhIGZs YWcgZGF5IHN0YXJ0aGVpZ2h0IG9mIDkzNDg2NCAoMjAyNi0wMi0wMSksIHdpdGggbWFuZGF0b3J5 IHNpZ25hbGluZyBsZWFkaW5nIHVwIHRvIGFjdGl2YXRpb24uIFRoaXMgaW1wbGllcyBhbiBleHBp cnkgZGF5IHN0b3BoZWlnaHQgb2YgOTg3NDI0ICgyMDI3LTAyLTAxKS4gVGhlc2UgaGVpZ2h0cyB3 ZXJlIGV4dHJhcG9sYXRlZCBmcm9tIGJsb2NrIDkyMDQ2NCB3aGljaCBvY2N1cnJlZCBuZWFyIDAw OjAwIFVUQyBvbiAyMDI1LTEwLTI0LgoKPT1DcmVkaXRzPT0KCk9yaWdpbmFsIGRyYWZ0IGFuZCBh ZHZpY2U6IEx1a2UtSnIK --b1=_da521U4mS6JX9S1wzywA4Dmwiu9hqP2sd03S8eeL0I--