Received: from localhost ([::1]:53834 helo=stodi.digitalkingdom.org) by stodi.digitalkingdom.org with esmtp (Exim 4.80.1) (envelope-from ) id 1WmN15-0005E0-DI; Mon, 19 May 2014 05:50:07 -0700 Received: from 173-13-139-235-sfba.hfc.comcastbusiness.net ([173.13.139.235]:57895 helo=jukni.digitalkingdom.org) by stodi.digitalkingdom.org with smtp (Exim 4.80.1) (envelope-from ) id 1WmN0v-0005Dm-CL for wikichanges@lojban.org; Mon, 19 May 2014 05:50:04 -0700 Received: by jukni.digitalkingdom.org (sSMTP sendmail emulation); Mon, 19 May 2014 05:49:57 -0700 From: "Apache" Date: Mon, 19 May 2014 05:49:57 -0700 To: wikichanges@lojban.org X-PHP-Originating-Script: 48:htmlMimeMail.php MIME-Version: 1.0 Message-ID: X-Spam-Score: 2.0 (++) X-Spam_score: 2.0 X-Spam_score_int: 20 X-Spam_bar: ++ X-Spam-Report: Spam detection software, running on the system "stodi.digitalkingdom.org", has identified this incoming email as possible spam. The original message has been attached to this so you can view it (if it isn't spam) or label similar future email. If you have any questions, see the administrator of that system for details. Content preview: The page gadri: an unofficial commentary from a logical point of view was changed by guskant at 12:49 UTC You can view the page by following this link: http://www.lojban.org/tiki/gadri%3A%20an%20unofficial%20commentary%20from%20a%20logical%20point%20of%20view [...] Content analysis details: (2.0 points, 5.0 required) pts rule name description ---- ---------------------- -------------------------------------------------- 1.6 RCVD_IN_BRBL_LASTEXT RBL: RCVD_IN_BRBL_LASTEXT [173.13.139.235 listed in bb.barracudacentral.org] 0.4 RDNS_DYNAMIC Delivered to internal network by host with dynamic-looking rDNS Subject: [Wikichanges] Wiki page gadri: an unofficial commentary from a logical point of view changed by guskant X-BeenThere: wikichanges@lojban.org X-Mailman-Version: 2.1.15 Precedence: list Reply-To: webmaster@lojban.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: wikichanges-bounces@lojban.org VGhlIHBhZ2UgZ2Fkcmk6IGFuIHVub2ZmaWNpYWwgY29tbWVudGFyeSBmcm9tIGEgbG9naWNhbCBw b2ludCBvZiB2aWV3IHdhcyBjaGFuZ2VkIGJ5IGd1c2thbnQgYXQgMTI6NDkgVVRDCgpZb3UgY2Fu IHZpZXcgdGhlIHBhZ2UgYnkgZm9sbG93aW5nIHRoaXMgbGluazoKIApodHRwOi8vd3d3LmxvamJh bi5vcmcvdGlraS9nYWRyaSUzQSUyMGFuJTIwdW5vZmZpY2lhbCUyMGNvbW1lbnRhcnklMjBmcm9t JTIwYSUyMGxvZ2ljYWwlMjBwb2ludCUyMG9mJTIwdmlldwoKWW91IGNhbiB2aWV3IGEgZGlmZiBi YWNrIHRvIHRoZSBwcmV2aW91cyB2ZXJzaW9uIGJ5IGZvbGxvd2luZyB0aGlzIGxpbms6IApodHRw Oi8vd3d3LmxvamJhbi5vcmcvdGlraS90aWtpLXBhZ2VoaXN0b3J5LnBocD9wYWdlPWdhZHJpJTNB JTIwYW4lMjB1bm9mZmljaWFsJTIwY29tbWVudGFyeSUyMGZyb20lMjBhJTIwbG9naWNhbCUyMHBv aW50JTIwb2YlMjB2aWV3JmNvbXBhcmU9MSZvbGR2ZXI9MTEmbmV3dmVyPTEyCgoKKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioKVGhlIGNo YW5nZXMgaW4gdGhpcyB2ZXJzaW9uIGZvbGxvdyBiZWxvdywgZm9sbG93ZWQgYWZ0ZXIgYnkgdGhl IGN1cnJlbnQgZnVsbCBwYWdlIHRleHQuCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqKioqKioqCgoKKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0r LSstKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSsKQEAgLUxpbmVzOiA0NjgtNDcyIGNoYW5n ZWQgdG8gK0xpbmVzOiA0NjgtNDcyIEBACistKy0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rLSst Ky0rLSstKy0rLSstKy0rLSstKy0rLSstKy0rCl5zdSdvaSBkYSB6byd1IGxlIGNtYW5hIGRhIGJh IGNsYXh1Xgp3aGljaCBtZWFucyB0aGF0IHRoZXJlIGlzIGEgcmVmZXJlbnQgb2YgIndoYXQgaXMg bGFja2VkIGJ5IHRoZSBtb3VudGFpbiIgaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4KLSBU aGUgc3RyYW5nZW5lc3MgY29tZXMgZnJvbSB0aGUgZmFjdCB0aGF0IHgyIG9mIHtjbGF4dX0gX19h cHBhcmVudGx5X18gbWVhbnMgbm9uLWV4aXN0ZW5jZS4gV2UgY2FuIGludGVycHJldCBpdCBjb25z aXN0ZW50bHkgdGhhdCB7Y2xheHV9IG1lYW5zIG9ubHkgdGhhdCB0aGUgcmVmZXJlbnQgb2YgeDIg aXMgbm90IHBsYWNlZCBhdCB0aGUgcmVmZXJlbnQgb2YgeDEsIGFuZCBpdCBzYXlzIG5vdGhpbmcg YWJvdXQgZXhpc3RlbmN5IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuIAorIFRoZSBzdHJh bmdlbmVzcyBjb21lcyBmcm9tIHRoZSBmYWN0IHRoYXQgeDIgb2Yge2NsYXh1fSBfX2FwcGFyZW50 bHlfXyBtZWFucyBub24tZXhpc3RlbmNlLiBXZSBjYW4gaW50ZXJwcmV0IGl0IGNvbnNpc3RlbnRs eSB0aGF0IHtjbGF4dX0gbWVhbnMgb25seSB0aGF0IHRoZSByZWZlcmVudCBvZiB4MiBpcyBub3Qg cGxhY2VkIGF0IHRoZSByZWZlcmVudCBvZiB4MSwgYW5kIGl0IHNheXMgbm90aGluZyBhYm91dCBl eGlzdGVuY2UgaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4gCgohISEjIHpvJ2UgaXMgYSBw bHVyYWwgY29uc3RhbnQKCgoKCioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqKioqKioqKioqKioqKioqKioqClRoZSBuZXcgcGFnZSBjb250ZW50IGZvbGxvd3MgYmVsb3cu CioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioq KioqCgooKEJQRksgU2VjdGlvbjogZ2Fkcml8QlBGSydzIGdhZHJpIHBhZ2UpKSBjb250YWlucyBl eHByZXNzaW9ucyBtaXNsZWFkaW5nIHBlb3BsZSB3aG8gaGF2ZSBhdCBsZWFzdCBhIGxpdHRsZSBr bm93bGVkZ2Ugb2YgbG9naWMgKFtodHRwczovL2dyb3Vwcy5nb29nbGUuY29tL2QvdG9waWMvbG9q YmFuL1JBdEU3WWstZHF3L2Rpc2N1c3Npb258ZGlzY3Vzc2lvbl0pLgoKSSB3aWxsIG1ha2UgaGVy ZSBhIGNvbW1lbnRhcnkgb24gQlBGSydzIGdhZHJpIHNvIHRoYXQgaXQgaXMgdW5kZXJzb29kIGJ5 IHRoZW0gY29ycmVjdGx5LgoKCgp7bWFrZXRvY30KCgoKISEjIEdsb3NzYXJ5CgpXZSB3aWxsIHVz ZSB0aGUgZm9sbG93aW5nIHRlcm1zIGluIHRoaXMgY29tbWVudGFyeS4KCjtfX2FyZ3VtZW50IChz dW10aSlfXzogU3ltYm9sIHRoYXQgcmVmZXJzIHRvIGEgcmVmZXJlbnQsIG9yIHRoYXQgYW5vdGhl ciBhcmd1bWVudCBjYW4gYmUgc3Vic3RpdHV0ZWQgZm9yLgoKO19fdW5pdmVyc2Ugb2YgZGlzY291 cnNlX186IFNldCBvZiBhbGwgcmVmZXJlbnRzIG9mIGFyZ3VtZW50cy4gSXQgaXMgbmF0dXJhbGx5 IGEgdW5pdmVyc2UgdGhhdCBpcyBkaXNjdXNzZWQuIEEgdW5pdmVyc2Ugb2YgZGlzY291cnNlIGRl cGVuZHMgb24gdGhlIGNvbnRleHQuCgo7X19jb25zdGFudF9fOiBBcmd1bWVudCB0aGF0IHJlZmVy cyB0byBhIHJlZmVyZW50LgoKO19fdmFyaWFibGVfXzogQXJndW1lbnQgYXMgYSBwbGFjZSBob2xk ZXIuIEl0IGRvZXMgbm90IHJlZmVyIHRvIGFueXRoaW5nLiBJdCBpcyB0byBiZSBzdWJzdGl0dXRl ZCBmb3IuIFZhcmlhYmxlIG90aGVyIHRoYW4gYm91bmQgdmFyaWFibGUgdGhhdCB3aWxsIGJlIGRl ZmluZWQgYmVsbG93IGlzIGNhbGxlZCBfX2ZyZWUgdmFyaWFibGVfXy4gVGhlIHRydXRoIHZhbHVl IG9mIGEgc2VudGVuY2UgdGhhdCBpbmNsdWRlcyBhIGZyZWUgdmFyaWFibGUgaXMgaW5kZWZpbml0 ZS4gU3VjaCBhIHNlbnRlbmNlIGlzIGNhbGxlZCBfX29wZW4gc2VudGVuY2VfXy4KCl5JbiBMb2pi YW4sIHtrZSdhfSBhbmQge2NlJ3V9IGFyZSBhbHdheXMgZnJlZSB2YXJpYWJsZXMuIEEgc2VudGVu Y2UgaW4gTk9JLWNsYXVzZSBvciBOVS1jbGF1c2Ugd2l0aCB7Y2UndX0gaXMgb3Blbi4gKEEgc2Vu dGVuY2UgaW4gTlUtY2xhc2Ugd2l0aCBubyB7Y2UndX0gaGFzIGEgdHJ1dGggdmFsdWUsIGJ1dCBl YWNoIG9mIHRoZSBpbnNpZGUgYW5kIHRoZSBvdXRzaWRlIG9mIE5VLWNsYXVzZSBoYXMgYW4gaW5k ZXBlbmRlbnQgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCBhbmQgdGh1cyBlYWNoIG9mIHRoZW0gaGFz IGFuIGluZGVwZW5kZW50IHRydXRoIHZhbHVlIChmb3IgZXhhbXBsZSwgc2VlIFtodHRwOi8vZGFn LmdpdGh1Yi5pby9jbGwvOS83L3xDTEw5LjddKS4gSW4gZGVmaW5pdGlvbnMgb2Ygd29yZHMgaW4g TG9qYmFuLCBrbydWL2ZvJ1Ygc2VyaWVzIHtrbydhLCBrbydlLCAuLi59IG9mIHNlbG1hJ28gS09o QTQgYXJlIHVzZWQgYXMgZnJlZSB2YXJpYWJsZXMsIGJ1dCBpdCBpcyBvbmx5IGEgY3VzdG9tIGZv ciBjb252ZW5pZW5jZS4gQWxsIGNtYXZvIG9mIEtPaEEyLDMsNCw1LDYgYW5kIHt6bydlfSBvZiBL T2hBNyBhcmUgZXNzZW50aWFsbHkgY29uc3RhbnRzLl4KCjtfX3F1YW50aWZ5X186IEluIHN1YnN0 aXR1dGluZyBwb3NzaWJsZSBhcmd1bWVudHMgb25lIGJ5IG9uZSBmb3IgYSB2YXJpYWJsZSBpbiBh IHNlbnRlbmNlLCBjb3VudCB0aGUgbnVtYmVyIG9mIHJlZmVyZW50cyB0aGF0IG1ha2UgdGhlIHNl bnRlbmNlIHRydWUsIGFuZCBwcmVmaXggdGhlIG51bWJlciB0byB0aGUgdmFyaWFibGUuCgo7X19x dWFudGlmaWVyX186IE51bWJlciB1c2VkIGZvciBxdWFudGlmaWNhdGlvbi4gQmVzaWRlcyB7cGF9 LCB7cmV9LCB7dmVpIG55IHN1J2kgcGEgKHZlJ28pfSBhbmQgc28gb24sIHtyb30gImFsbCIgYW5k IHtzdSdvfSAidGhlcmUgaXMgb25lIG9yIG1vcmUiIGFyZSBhbHNvIHF1YW50aWZpZXJzLgoKO19f Ym91bmQgdmFyaWFibGVfXzogVmFyaWFibGUgcHJlZml4ZWQgYnkgYSBxdWFudGlmaWVyLiBBcyBh IHJlc3VsdCBvZiBxdWFudGlmaWNhdGlvbiwgdGhlcmUgaXMgbm8gcm9vbSBmb3Igc3Vic3RpdHV0 aW5nIGFuIGFyYml0cmFyeSBhcmd1bWVudCBmb3IgdGhlIHZhcmlhYmxlLgoKXkluIExvamJhbiwg e2RhfSwge2RlfSBhbmQge2RpfSBhcmUgYm91bmQgdmFyaWFibGVzLiBGb3IgZXhhbXBsZSwge3Jv IGRhIHpvJ3UgZGEgYnJvZGF9IG1lYW5zICJGb3IgYWxsIHtkYX0gaW4gdGhlIHVuaXZlcnNlIG9m IGRpc2NvdXJzZSwge2RhIGJyb2RhfSBpcyB0cnVlLiIgSW4gdGhlIGNhc2UgdGhhdCB7ZGF9LCB7 ZGV9IG9yIHtkaX0gYXJlIG5vdCBwcmVmaXhlZCBieSBhIHF1YW50aWZpZXIsIHRoZXkgYXJlIHJl Z2FyZGVkIGFzIGltcGxpY2l0bHkgcHJlZml4ZWQgYnkge3N1J299Ll4KCjtfX2RvbWFpbl9fOiBS YW5nZSBvZiByZWZlcmVudHMgdG8gYmUgc3Vic3RpdHV0ZWQgZm9yIGEgdmFyaWFibGUsIG9yIHJh bmdlIHRvIGJlIGNvbnNpZGVyZWQgaW4gY291bnRpbmcgcmVmZXJlbnRzIGluIHF1YW50aWZpY2F0 aW9uLgoKXkluIExvamJhbiwgYSBkb21haW4gb2YgYSBib3VuZCB2YXJpYWJsZSBjYW4gYmUgbGlt aXRlZCB3aXRoIGFuIGV4cHJlc3Npb24ge2RhIHBvaS4uLn0uIEZvciBleGFtcGxlLCB7cm8gZGEg cG9pIGtlJ2EgYnJvZGEgem8ndSBkYSBicm9kZX0gbWVhbnMgIkZvciBhbGwge2RhfSB0aGF0IGFy ZSB4MSBvZiB7YnJvZGF9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIHtkYSBicm9kZX0g aXMgdHJ1ZS4iIElmIHtwb2kuLi59IGRvZXMgbm90IGZvbGxvdyB7ZGF9LCB0aGUgZG9tYWluIGlz IHRoZSB3aG9sZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuXgoKO19fdGF1dG9sb2d5X186IFNlbnRl bmNlIHRoYXQgaXMgYWx3YXlzIHRydWUgaW5kZXBlbmRlbnRseSBvZiBjb250ZXh0LiB7a28nYSBk dSBrbydhfSBldGMuCgo7X19sb2dpY2FsIGF4aW9tc19fOiBTZW50ZW5jZXMgc2VsZWN0ZWQgZnJv bSB0YXV0b2xvZ2llcyBzbyB0aGF0IGFsbCB0YXV0b2xvZ2llcyBhcmUgcHJvdmVkIGZyb20gdGhl bSB3aXRoIHJ1bGVzIG9mIGluZmVyZW5jZSB0aGF0IGFyZSBkZWZpbmVkLgoKCgohISMgUGx1cmFs IHF1YW50aWZpY2F0aW9uCgpJbiBvcmRlciB0byB1bmRlcnN0YW5kIGFyZ3VtZW50cyBvZiBMb2pi YW4gZnJvbSBhIGxvZ2ljYWwgcG9pbnQgb2YgdmlldywgaXQgaXMgZXNzZW50aWFsIHRvIGhhdmUg YSBrbm93bGVkZ2Ugb2YgX19wbHVyYWwgcXVhbnRpZmljYXRpb25fXy4KCgoKUGx1cmFsIHF1YW50 aWZpY2F0aW9uIHdhcyBpbnZlbnRlZCBpbiBvcmRlciB0byBmYWNpbGl0YXRlIGV4cHJlc3Npb24g b2YgcHJvcG9zaXRpb24gdGhhdCBpcyBtZWFuaW5nZnVsIG9ubHkgd2hlbiB0aGUgcmVmZXJlbnQg b2YgYW4gYXJndW1lbnQgaXMgcGx1cmFsLiAKCl4KCjtFeGFtcGxlOiBQZW9wbGUgZ2F0aGVyZWQs IGNvb2tlZCBhbmQgYXRlLl4KCkxvZ2ljYWxseSwgdGhpcyBzZW50ZW5jZSBpcyBhIHByb3Bvc2l0 aW9uIHRoYXQgY29uc2lzdHMgb2YgYSBjb25zdGFudCAicGVvcGxlIiBhbmQgdGhyZWUgcHJlZGlj YXRlcyAiZ2F0aGVyZWQiICJjb29rZWQiIGFuZCAiYXRlIi4gVGhlIHByZWRpY2F0ZXMgYXJlIGRp ZmZlcmVudCBmcm9tIGVhY2ggb3RoZXIgaW4gcHJvcGVydHkgb2YgdHJlYXRpbmcgdGhlIGFyZ3Vt ZW50LiBXZSB3aWxsIGRpc2N1c3MgcHJlY2lzZWx5IGhvdyB0aGUgYXJndW1lbnQgaW4gdGhlIHNl bnRlbmNlIGlzIHRyZWF0ZWQuCgoKCiEhISMgQ29sbGVjdGl2aXR5IGFuZCBkaXN0cmlidXRpdml0 eQoKCgpDb25zaWRlciB0aGUgZXhwcmVzc2lvbiAicGVvcGxlIGdhdGhlcmVkIjogYmFzZWQgb24g dGhlIG1lYW5pbmcgb2YgdGhlIHByZWRpY2F0ZSAiZ2F0aGVyZWQiLCB0aGUgY29uc3RhbnQgInBl b3BsZSIgc2hvdWxkIHJlZmVyIHRvIHBsdXJhbCBwZW9wbGUuCgpXaGVuIHJlZmVyZW50cyBvZiBh biBhcmd1bWVudCBzYXRpc2Z5IGEgcHJlZGljYXRlIGFzIGNvbGxlY3RpdmUgcGx1cmFsIHRoaW5n cyBsaWtlIHRoaXMsIHdlIGV4cHJlc3MgaXQgYXMgImFuIGFyZ3VtZW50IHNhdGlzZmllcyBhbiBw cmVkaWNhdGUgX19jb2xsZWN0aXZlbHlfXyIsIG9yICJ0aGUgYXJndW1lbnQgaGFzIF9fY29sbGVj dGl2aXR5X18iLgoKCgpBcyBmb3IgZWFjaCBvZiB0aGUgcGx1cmFsIHBlb3BsZSByZWZlcnJlZCB0 byBieSB0aGUgY29uc3RhbnQsICBlYWNoIHNlbnRlbmNlIHN1Y2ggdGhhdCAiQWxpY2UgZ2F0aGVy ZWQiLCAiQm9iIGdhdGhlcmVkIiBhbmQgc28gb24gaXMgbm9uc2Vuc2UuCgpXaGVuIGVhY2ggcmVm ZXJlbnQgcmVmZXJyZWQgdG8gYnkgYSBjb25zdGFudCBjYW5ub3Qgc2F0aXNmeSBhIHByZWRpY2F0 ZSBhbG9uZSwgd2UgZXhwcmVzcyBpdCBhcyAiYW4gYXJndW1lbnQgc2F0aXNmaWVzIGFuIHByZWRp Y2F0ZSBfX25vbi1kaXN0cmlidXRpdmVseV9fIi4KCgoKT24gdGhlIG90aGVyIGhhbmQsIGluIHRo ZSBleHByZXNzaW9uICJwZW9wbGUgYXRlIiwgYWx0aG91Z2ggdGhlIGNvbnN0YW50ICJwZW9wbGUi IHJlZmVycyB0byBwbHVyYWwgcGVvcGxlLCB0aGUgcHJlZGljYXRlICJhdGUiIGlzIHNhdGlzZmll ZCBieSBlYWNoIHBlcnNvbi4gVGhhdCBpcyB0byBzYXksIGVhY2ggc2VudGVuY2Ugc3VjaCB0aGF0 ICJBbGljZSBhdGUiLCAiQm9iIGF0ZSIgYW5kIHNvIG9uIGlzIG1lYW5pbmdmdWwuCgpXaGVuIGVh Y2ggcmVmZXJlbnQgcmVmZXJyZWQgdG8gYnkgYSBjb25zdGFudCBzYXRpc2ZpZXMgYSBwcmVkaWNh dGUgYWxvbmUsIHdlIGV4cHJlc3MgaXQgYXMgImFuIGFyZ3VtZW50IHNhdGlzZmllcyBhbiBwcmVk aWNhdGUgX19kaXN0cmlidXRpdmVseV9fIiwgb3IgInRoZSBhcmd1bWVudCBoYXMgX19kaXN0cmli dXRpdml0eV9fIi4KCgoKTW9yZW92ZXIsIGlmIHRoZSBwcmVkaWNhdGUgImVhdCIgbWVhbnMgYW4g YWN0ICJwdXQgZm9vZCBpbiBhIG1vdXRoLCBiaXRlIGl0LCBsZXQgaXQgcGFzcyB0aHJvdWdoIGFu IGVzb3BoYWd1cyBhbmQgc2VuZCBpdCB0byBhIHN0b21hY2giLCBpdCBpcyBoYXJkbHkgY29uc2lk ZXJlZCB0aGF0ICJwZW9wbGUiIHNhdGlzZmllcyAiZWF0IiBjb2xsZWN0aXZlbHkuIEV2ZW4gaWYg YSBwZXJzb24gaGVscHMgYW5vdGhlciB0byBlYXQsIHRoZSBoZWxwZXIgaXMgbm90IGVhdGVyLCBh bmQgdGhlIGVhdGVyIGlzIG5vdCBjb2xsZWN0aXZlIHBlb3BsZSBidXQgYW4gaW5kaXZpZHVhbC4g CgpXaGVuIGVhY2ggcmVmZXJlbnQgcmVmZXJyZWQgdG8gYnkgYSBjb25zdGFudCBjYW5ub3Qgc2F0 aXNmeSBhIHByZWRpY2F0ZSBhcyBjb2xsZWN0aXZlIHBsdXJhbCB0aGluZ3MsIHdlIGV4cHJlc3Mg aXQgYXMgImFuIGFyZ3VtZW50IHNhdGlzZmllcyBhbiBwcmVkaWNhdGUgX19ub24tY29sbGVjdGl2 ZWx5X18iLgoKKEhvd2V2ZXIsIGl0IGlzIHBvc3NpYmxlIHRvIGludGVycHJldCB0aGUgcHJlZGlj YXRlICJlYXQiIGFzIGludm9sdmluZyBjb2xsZWN0aXZpdHkuIEZvciBleGFtcGxlLCBpZiBpdCBp cyBpbnRlcnByZXRlZCBhcyAicHV0IGZvb2QgYXdheSBmcm9tIG91dHNpZGUgdG8gaW5zaWRlIG9m IGJvZHkiLCB3ZSBtYXkgc2F5ICJjb2xsZWN0aXZlbHkgZWF0IiB0byBleHByZXNzIGFuIGV2ZW50 IHRoYXQgcGVvcGxlIGVhdCBhbmQgY29uc3VtZSBhIG1hc3Mgb2YgZm9vZCB0b2dldGhlci4pCgoK ClRoZXJlIGFyZSBhbHNvIHByZWRpY2F0ZXMgdGhhdCBhbGxvdyBib3RoIHByb3BlcnRpZXMgImNv bGxldnRpdml0eSIgYW5kICJkaXN0cmlidXRpdml0eSIuCgoiUGVvcGxlIGNvb2tlZCIgbWF5IG1l YW4gdGhhdCBwbHVyYWwgcGVvcGxlIGtuZWFkIHBhc3RlIG9mIHBpenphIHRvZ2V0aGVyLCBhbmQg dGhhdCBlYWNoIG9mIHRoZW0gaXMgaW4gY2hhcmdlIG9mIGNha2VzIG9yIHBvdC1hdS1mZXUuIElu IHRoaXMgY2FzZSwgdGhlIGNvbnN0YW50ICJwZW9wbGUiIHJlZmVycyB0byBwbHVyYWwgcGVvcGxl LCBhbmQgdGhleSBjb29rZWQgcGl6emEgY29sbGVjdGl2ZWx5LCBjYWtlcyBhbmQgcG90LWF1LWZl dSBkaXN0cmlidXRpdmVseS4gVGhlIGNvbnN0YW50ICJwZW9wbGUiIHRodXMgc2F0aXNmaWVzIHRo ZSBwcmVkaWNhdGUgImNvb2tlZCIgY29sbGVjdGl2ZWx5IGFuZCBkaXN0cmlidXRpdmVseS4KCgoK Tm90ZSB0aGF0IHRoZSBjb25zdGFudCAicGVvcGxlIiByZWZlcnMgdG8gd2hhdCBpcyBjb21tb24g dG8gdGhyZWUgcHJlZGljYXRlcyAiZ2F0aGVyZWQiLCAiY29va2VkIiBhbmQgImF0ZSIuIE5vIG1h dHRlciBpZiBhIGNvbnN0YW50IHNhdGlzZmllcyBwcmVkaWNhdGVzIGNvbGxlY3RpdmVseSBvciBk aXN0cmlidXRpdmVseSwgdGhlIHJlZmVyZW50IGlzIHRoZSBzYW1lLgoKCgpJZiB3ZSB1c2UgYW4g YXJndW1lbnQgImEgc2V0IG9mIHBlb3BsZSIgaW4gdGhlIGNhc2Ugb2Ygc2F0aXNmeWluZyBhIHBy ZWRpY2F0ZSBjb2xsZWN0aXZlbHksIGl0IG1pZ2h0IGJlIHBvc3NpYmxlIHRvIGludGVycHJldCB0 aGUgcHJlZGljYXRlICJnYXRoZXJlZCIgc28gdGhhdCB0aGUgYXJndW1lbnQgc2F0aXNmaWVzIGl0 LCBidXQgdGhlIHNhbWUgYXJndW1lbnQgY2Fubm90IHNhdGlzZnkgdGhlIHByZWRpY2F0ZSAiYXRl IiwgYmVjYXVzZSB3ZSBjYW4gaGFyZGx5IHNheSB0aGF0IGEgc2V0IG9mIHBlb3BsZSwgd2hpY2gg aXMgYW4gYWJzdHJhY3QgZW50aXR5LCBwZXJmb3JtcyAiYXRlIi4KCgoKVXNpbmcgcGx1cmFsIGNv bnN0YW50cyBhbmQgcGx1cmFsIHZhcmlhYmxlcyB0aGF0IHdpbGwgYmUgZGlzY3Vzc2VkIGluIHRo ZSBmb2xsb3dpbmcgc2VjdGlvbnMsIHdlIGNhbiBleHByZXNzIHBsdXJhbCB0aGluZ3MgaW4gdGhl IGZvcm0gb2YgcHJlZGljYXRlIGxvZ2ljIHdpdGhvdXQgdXNpbmcgc2V0cy4KCgoKISEhIyBQbHVy YWwgY29uc3RhbnQgYW5kIHBsdXJhbCB2YXJpYWJsZQoKQW4gYXJndW1lbnQgdGhhdCByZWZlcnMg dG8gcmVmZXJlbnQgd2l0aG91dCBpbnRyb2R1Y2luZyBhIG5vdGlvbiBvZiBzZXRzLCB3aXRob3V0 IGRpc3Rpbmd1aXNoaW5nIGNvbGxlY3Rpdml0eSBhbmQgZGlzdHJpYnV0aXZpdHksIHdpdGhvdXQg ZGlzdGluZ3Vpc2hpbmcgcGx1cmFsaXR5IGFuZCBzaW5ndWxhcml0eSwgaXMgY2FsbGVkIF9fcGx1 cmFsIGNvbnN0YW50X18uCgpBIHZhcmlhYmxlIGZvciB3aGljaCBhIHBsdXJhbCBjb25zdGFudCBj YW4gYmUgc3Vic3RpdHV0ZWQgaXMgY2FsbGVkIF9fcGx1cmFsIHZhcmlhYmxlX18uCgpRdWFudGlm eWluZyBhIHBsdXJhbCB2YXJpYWJsZSBpcyBjYWxsZWQgX19wbHVyYWwgcXVhbnRpZmljYXRpb25f Xy4gQSBxdWFudGlmaWVyIHVzZWQgZm9yIHBsdXJhbCBxdWFudGlmaWNhdGlvbiBpcyBjYWxsZWQg X19wbHVyYWwgcXVhbnRpZmllcl9fLiBBIHBsdXJhbCB2YXJpYWJsZSBwcmVmaXhlZCB3aXRoIGEg cGx1cmFsIHF1YW50aWZpZXIgaXMgY2FsbGVkIGEgX19ib3VuZCBwbHVyYWwgdmFyaWFibGVfXy4K CgoKISEhISMgbWUgYW5kIGpvJ3UKCldlIGludHJvZHVjZSByZWxhdGlvbnMgYmV0d2VlbiBwbHVy YWwgY29uc3RhbnRzIGFuZCBwbHVyYWwgdmFyaWFibGVzOiB7bWV9IGFuZCB7am8ndX0uCgoKCnx8 CgpYIG1lIFkgKG1lJ3UpIH5oc358fmhzfiBYIGlzIGFtb25nIFkKCnx8CgpYIGFuZCBZIHJlcHJl c2VudCBoZXJlIHBsdXJhbCBjb25zdGFudHMgb3IgcGx1cmFsIHZhcmlhYmxlcy4gQSBjbHVzdGVy IHttZSBZIChtZSd1KX0gaXMgYSBzZWxicmkgaW4gTG9qYmFuIGdyYW1tYXIuIHttZSd1fSBpcyBh biBlbGlkYWJsZSB0ZXJtaW5hdG9yIG9mIHN0cnVjdHVyZSBiZWdpbm5pbmcgd2l0aCB7bWV9LgoK Cgp7bWV9IGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgd2l0aCBhcmJpdHJhcnkgYXJndW1l bnRzIFgsIFkgYW5kIFo6CgojIFggbWUgWCAocmVmbGV4aXZpdHkpCgojIFggbWUgWSBpamVibyBZ IG1lIFogaW5hamEgWCBtZSBaICh0cmFuc2l0aXZpdHkpCgojIFggbWUgWSBpamVibyBZIG1lIFgg aWpvIFggZHUgWSAoaWRlbnRpdHkpCgpUaGUgcHJvcGVydHkgMyBtZWFucyB0aGF0IHRoZSBpZGVu dGl0eSBiZXR3ZWVuIHJlZmVyZW50cyBvZiBYIGFuZCBZIGlzIHJlcHJlc2VudGVkIHdpdGgge21l fSwgYXMgYSByZWxhdGlvbiB0aGF0IHtYIG1lIFkgaWplYm8gWSBtZSBYfS4KCgoKfHwKClggam8n dSBZIH5oc358fmhzfiBYIGFuZCBZCgp8fAoKe2pvJ3V9IGNvbWJpbmVzIHR3byBhcmd1bWVudHMg WCBhbmQgWSBpbnRvIG9uZSBwbHVyYWwgY29uc3RhbnQgb3Igb25lIHBsdXJhbCB2YXJpYWJsZS4K CgoKe2pvJ3V9IGhhcyB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXMgd2l0aCBhcmJpdHJhcnkgYXJn dW1lbnRzIFggYW5kIFk6CgojIFggbWUgWCBqbyd1IFkKCiMgWCBqbyd1IFkgZHUgWSBqbyd1IFgK CiMgWCBqbyd1IFggZHUgWAoKVGhlIHByb3BlcnR5IDIgbWVhbnMgdGhhdCB0aGUgcmVmZXJlbnQg b2YgdGhlIHdob2xlIGFyZ3VtZW50IGRvZXMgbm90IHZhcnkgd2hlbiB0d28gYXJndW1lbnRzIGNv bWJpbmVkIGJ5IHtqbyd1fSBhcmUgaW50ZXJjaGFuZ2VkIHdpdGggZWFjaCBvdGhlci4gVGhlIHBy b3BlcnR5IDMgbWVhbnMgdGhhdCB7am8ndX0gZG9lcyBub3QgYWRkIGFueSByZWZlcmVudCB3aGVu IGl0IGNvbWJpbmVzIGFuIGFyZ3VtZW50IHdpdGggaXRzZWxmLgoKCgpVc2luZyB7am8ndX0sIHRo ZSBmb2xsb3dpbmcgZXhwcmVzc2lvbiBpcyBwb3NzaWJsZToKCl4KCjtFeGFtcGxlOiBCIGFuZCBD IGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0ZS4KCjs6IGJ5IGpvJ3UgY3kgam1hamkgZ2knZSBqdWtw YSBnaSdlIGNpdGthXgoKRWFjaCBvZiB7Ynl9IGFuZCB7Y3l9IGlzIGEgcGx1cmFsIGNvbnN0YW50 LgoKCgpUaGUgcHJlZGljYXRlIHtqdWtwYX0gKGNvb2spIGNhbiBiZSBpbnRlcnByZXRlZCBjb2xs ZWN0aXZlbHkgYW5kL29yIGRpc3RyaWJ1dGl2ZWx5LCBidXQgdGhlIHBsdXJhbCBjb25zdGFudCB7 Ynkgam8ndSBjeX0gc2F5cyBub3RoaW5nIGFib3V0IHdoZXRoZXIgaXQgc2F0aXNmaWVzIHtqdWtw YX0gY29sbGVjdGl2ZWx5IGFuZC9vciBkaXN0cmlidXRpdmVseS4gSWYgd2Ugd2FudCB0byBtYWtl IGV4cGxpY2l0IHRoYXQgdGhleSBjb29rZWQgImNvbGxlY3RpdmVseSIsIHdlIHNheSB7Ynkgam9p IGN5fSB1c2luZyAoKEJQRksgU2VjdGlvbjogTm9uLWxvZ2ljYWwgQ29ubmVjdGl2ZXN8e2pvaX0g dGhhdCBjb21iaW5lcyB0d28gYXJndW1lbnRzIGludG8gYW4gYXJndW1lbnQgdGhhdCBzYXRpc2Zp ZXMgYSBwcmVkaWNhdGUgbm9uLWRpc3RyaWJ1dGl2ZWx5KSksIG9yIHtsdSdvIGJ5IGpvJ3UgY3l9 IHVzaW5nIHtsdSdvfSB0aGF0IHdpbGwgYmUgZGlzY3Vzc2VkIGluICgofCNSZWxhdGlvbl9iZXR3 ZWVuX2x1X2FfbHVfb19sdV9pX2FuZF9nYWRyaXxTZWN0aW9uIDMuMykpLiBDb250cmFzdGl2ZWx5 LCBpZiB3ZSB3YW50IHRvIG1ha2UgZXhwbGljaXQgdGhhdCB0aGV5IGNvb2tlZCAiZGlzdHJpYnV0 aXZlbHkiLCB3ZSBzYXkgIHtsdSdhIGJ5IGpvJ3UgY3l9IHVzaW5nIHtsdSdhfSB0aGF0IHdpbGwg YmUgZGlzY3Vzc2VkIGluICgofCNSZWxhdGlvbl9iZXR3ZWVuX2x1X2FfbHVfb19sdV9pX2FuZF9n YWRyaXxTZWN0aW9uIDMuMykpLiBIb3dldmVyLCB0aGVzZSBhcmd1bWVudHMgdGhhdCBzYXlzIGV4 cGxpY2l0bHkgY29sbGVjdGl2aXR5IGFuZC9vciBkaXN0cmlidXRpdml0eSBhcmUgbm90IGFsd2F5 cyBjb21tb25seSB1c2VkIGZvciBvdGhlciBwcmVkaWNhdGVzIGxpa2Uge2ptYWppfSBvciB7Y2l0 a2F9LgoKCgpUaGUgZGlhZ3JhbSBiZWxsb3cgc2hvd3MgcmVsYXRpb25zIGNvbnN0cnVjdGVkIHdp dGgge21lfSBhbmQge2pvJ3V9IHJlcHJlc2VudGVkIHdpdGggYSBkaXJlY3RlZCBncmFwaCwgaW4g d2hpY2ggdGhlIHZlcnRpY2VzIHJlcHJlc2VudCBwbHVyYWwgY29uc3RhbnRzLgoKCgp7aW1nIGZp bGVJZD0iNyIgdGh1bWI9InkiIHJlbD0iYm94W2ddIn0KCgoKISEhISMgSW5kaXZpZHVhbAoKUmVm ZXJlbnQgb2YgYSBwbHVyYWwgY29uc3RhbnQgaXMgbm90IG5lY2Vzc2FyaWx5IHBsdXJhbDogYSBw bHVyYWwgY29uc3RhbnQgY2FuIHJlZmVyIHRvIG9uZSBpbmRpdmlkdWFsLgoKX19BbiBpbmRpdmlk dWFsX18gaXMgZGVmaW5lZCBhcyBmb2xsb3dzOgoKfHwKCl9fWCBpcyBhbiBpbmRpdmlkdWFsX18g fmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiBybydvaSBkYSBwb2kga2UnYSBtZSBYIHpvJ3UgWCBt ZSBkYQoKfHwKCgoKd2hlcmUgX19ybydvaV9fIGlzIGFuIGV4cGVyaW1lbnRhbCBjbWF2byBwcm9w b3NlZCBieSAoKHhvcnhlc3xsYSB4b3J4ZXMpKSwgd2hpY2ggaXMgYSBwbHVyYWwgcXVhbnRpZmll ciBtZWFuaW5nICJhbGwiLiAge3JvJ29pIGRhfSBpcyBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBt ZWFuaW5nICJmb3IgYWxsIHRoYXQgY2FuIGJlIHN1YnN0aXR1dGVkIGZvciB7ZGF9Ii4gVGhpcyBk ZWZpbml0aW9uIG1lYW5zIHRoYXQgWCBpcyBjYWxsZWQgYW4gaW5kaXZpZHVhbCB3aGVuIHRoZSBj b25kaXRpb24gImZvciBhbGwge2RhfSB0aGF0IGFyZSBhbW9uZyBYLCBYIGlzIGFtb25nIHtkYX0i IGlzIHNhdGlzZmllZC4gSW4gb3RoZXIgd29yZHMsICJpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291 cnNlLCBub3RoaW5nIG90aGVyIHRoYW4ge1h9IGNhbiBiZSBzdWJzdGl0dXRlZCBmb3Ige2RhfSBz dWNoIHRoYXQge1ggbWUgZGF9IiBpcyBleHByZXNzZWQgYnkgIlggaXMgYW4gaW5kaXZpZHVhbCIu CgoKCldoZW4gZWFjaCBvZiBYIGFuZCBZIGlzIGFuIGluZGl2aWR1YWwsIHtYIGpvJ3UgWX0gaXMg Y2FsbGVkIF9faW5kaXZpZHVhbHNfXy4gV2hlbiBlYWNoIG9mIFggYW5kIFkgaXMgYW4gaW5kaXZp ZHVhbCBvciBpbmRpdmlkdWFscywge1ggam8ndSBZfSBpcyBjYWxsZWQgaW5kaXZpZHVhbHMgYXMg d2VsbC4KCgoKISEhISMgRGlmZmVyZW5jZSBiZXR3ZWVuIHBsdXJhbCBhbmQgc2luZ3VsYXIKCkEg cGx1cmFsIGNvbnN0YW50IHRoYXQgaXMgYW4gaW5kaXZpZHVhbCBpcyBjYWxsZWQgX19zaW5ndWxh ciBjb25zdGFudF9fLgoKCgpObyBtYXR0ZXIgd2hldGhlciBlYWNoIG9mIFggYW5kIFkgaXMgcGx1 cmFsIG9yIHNpbmd1bGFyLCB7WCBqbyd1IFl9IGlzIG5vdCBhIHNpbmd1bGFyIGNvbnN0YW50LiBJ dCBpcyBiZWNhdXNlIAoKXlggbWUgWCBqbyd1IFkgaWplbmFpIFggam8ndSBZIG1lIFheCgpob2xk cyB0cnVlLCBhbmQgdGhlbiB7WCBqbyd1IFl9IGRvZXMgbm90IHNhdGlzZnkgdGhlIGNvbmRpdGlv biBvZiBhbiBpbmRpdmlkdWFsIHtybydvaSBkYSBwb2kga2UnYSBtZSBYIGpvJ3UgWSB6byd1IFgg am8ndSBZIG1lIGRhfS4KCgoKISEhISMgQm91bmQgc2luZ3VsYXIgdmFyaWFibGUKCldoZW4gdGhl IGRvbWFpbiBvZiBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBpcyByZXN0cmljdGVkIHRvIHdoYXQg aXMgYW4gaW5kaXZpZHVhbCwgdGhlIHZhcmlhYmxlIGlzIGNhbGxlZCBfX2JvdW5kIHNpbmd1bGFy IHZhcmlhYmxlX18uCgp7cm8gZGF9IChmb3IgYWxsIHtkYX0pIGFuZCB7c3UnbyBkYX0gKHRoZXJl IGlzIGF0IGxlYXN0IG9uZSB7ZGF9KSwgd2hpY2ggYXJlIG9mZmljaWFsbHkgZGVmaW5lZCBpbiBM b2piYW4sIGFyZSBib3VuZCBzaW5ndWxhciB2YXJpYWJsZXMuIFRoZXkgY2FuIGJlIGRlZmluZWQg d2l0aCBib3VuZCBwbHVyYWwgdmFyaWFibGVzIGFzIGZvbGxvd3M6Cgp8fAoKcm8gZGEgfmhzfnx+ aHN+IHJvJ29pIGRhIHBvaSBybydvaSBkZSBwb2kga2UnYSB4aSBwYSBtZSBrZSdhIHhpIHJlIHpv J3Uga2UnYSB4aSByZSBtZSBkZQoKc3UnbyBkYSB+aHN+fH5oc34gc3Unb2kgZGEgcG9pIHJvJ29p IGRlIHBvaSBrZSdhIHhpIHBhIG1lIGtlJ2EgeGkgcmUgem8ndSBrZSdhIHhpIHJlIG1lIGRlCgp8 fAoKX19zdSdvaV9fIGlzIGFuIGV4cGVyaW1lbnRhbCBjbWF2byBwcm9wb3NlZCBieSAoKHhvcnhl c3xsYSB4b3J4ZXMpKSwgYW5kIGlzIGEgcGx1cmFsIHF1YW50aWZpZXIgbWVhbmluZyAidGhlcmUg aXMvYXJlIi4gTm90ZSB0aGF0IHtzdSdvaX0gaXMgX19ub3RfXyAiYXQgbGVhc3Qgb25lIi4ge3N1 J29pIGRhfSBpcyBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSBtZWFuaW5nICJ0aGVyZSBpcy9hcmUg e2RhfSIuCgoKCkZvciBleGFtcGxlLCBhIHBsdXJhbCBjb25zdGFudCB7QSBqbyd1IEJ9IGNhbiBi ZSBpbiBhIGRvbWFpbiBvZiBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSwgYnV0IGl0IGNhbm5vdCBi ZSBpbiBhIGRvbWFpbiBvZiBhIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlIGJlY2F1c2UgaXQgaXMg bm90IGFuIGluZGl2aWR1YWwuCgoKCiEhISEjIFdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFs IG5vciBpbmRpdmlkdWFscwoKUmVmZXJlbnQgb2YgYSBwbHVyYWwgY29uc3RhbnQgaXMgbm90IG5l Y2Vzc2FyaWx5IGFuIGluZGl2aWR1YWwgb3IgaW5kaXZpZHVhbHMuIAoKSXQgaXMgcG9zc2libGUg dG8gZGlzY3VzcyBhIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBzdWNoIHRoYXQgcmVmZXJlbnQgb2Yg YSBwbHVyYWwgY29uc3RhbnQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFs cy4KCgoKRm9yIGV4YW1wbGUsIGNvbnNpZGVyIHN1Y2ggYSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2Ug aW4gd2hpY2ggdGhlIGZvbGxvd2luZyBwcm9wb3NpdGlvbiBob2xkcyB0cnVlLgoKXnJvJ29pIGRh IHBvaSBrZSdhIG1lIGtvJ2Ega3UnbyBzdSdvaSBkZSB6byd1IGRlIG1lIGRhIGlqZW5haSBkYSBt ZSBkZSB+LS1+IENvbmRpdGlvbl8xXgoKSW4gb3RoZXIgd29yZHMsIGluIHRoaXMgdW5pdmVyc2Ug b2YgZGlzY291cnNlLCBmb3IgYWxsIFggc3VjaCB0aGF0IHtYIG1lIGtvJ2F9LCB0aGVyZSBpcyBh bHdheXMgWSBzdWNoIHRoYXQge1kgbWUgWH0gYW5kIG5vdCB7WCBtZSBZfS4KCgoKO1RoZW9yZW06 IEluIGEgdW5pdmVyc2Ugb2YgZGlzY291cnNlIHdoZXJlIENvbmRpdGlvbl8xIGlzIHRydWUsIHtr bydhfSBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgo7UHJvb2Y6 IFN1cHBvc2Uge2tvJ2F9IGlzIGFuIGluZGl2aWR1YWwuIEZyb20gdGhlIGRlZmluaXRpb24gb2Yg ImFuIGluZGl2aWR1YWwiOgoKXnJvJ29pIGRhIHBvaSBrZSdhIG1lIGtvJ2Egem8ndSBrbydhIG1l IGRhIH4tLX4gU3VwcG9zaXRpb25fMl4KClJlcGxhY2Uge3JvJ29pIGRhfSB3aXRoIHtuYWt1IHN1 J29pIGRhIG5ha3V9OgoKXm5ha3Ugc3Unb2kgZGEgcG9pIGtlJ2EgbWUga28nYSBrdSdvIG5ha3Ug em8ndSBrbydhIG1lIGRhIH4tLX4gU3VwcG9zaXRpb25fMi0xXgoKTW92ZSB0aGUgaW5uZXItbW9z dCB7bmFrdX0gaW50byB0aGUgcHJvcG9zaXRpb246CgpebmFrdSBzdSdvaSBkYSBwb2kga2UnYSBt ZSBrbydhIHpvJ3UgbmFrdSBrbydhIG1lIGRhIH4tLX4gU3VwcG9zaXRpb25fMi0yXgoKUmVwbGFj ZSB7c3Unb2kgZGEgcG9pfSB3aXRoIHtpamV9IGFuZCBtb3ZlIGludG8gdGhlIHByb3Bvc2l0aW9u OgoKXm5ha3Ugc3Unb2kgZGEgem8ndSBkYSBtZSBrbydhIGlqZSBuYWt1IGtvJ2EgbWUgZGEgfi0t fiBTdXBwb3NpdGlvbl8yLTNeCgpSZXBsYWNlIHtpamUgbmFrdX0gd2l0aCB7aWplbmFpfToKCl5u YWt1IHN1J29pIGRhIHpvJ3UgZGEgbWUga28nYSBpamVuYWkga28nYSBtZSBkYSB+LS1+IFN1cHBv c2l0aW9uXzItNF4KCkJ5IHRoZSB3YXksIGZyb20gYSBwcm9wZXJ0eSBvZiB7bWV9LAoKXmtvJ2Eg bWUga28nYSBeCgppcyBhbHdheXMgdHJ1ZS4ge2tvJ2F9IGlzIHRoZXJlZm9yZSBpbiB0aGUgZG9t YWluIG9mIHtkYX0gb2YgQ29uZGl0aW9uXzEuIFJlcGxhY2Uge3JvJ29pIGRhfSBvZiBDb25kaXRp b25fMSB3aXRoIHtrbydhfSwgYW5kIGl0IHRodXMgaG9sZHMgdHJ1ZToKCl5zdSdvaSBkZSB6byd1 IGRlIG1lIGtvJ2EgaWplbmFpIGtvJ2EgbWUgZGUgfi0tfiBDb25kaXRpb25fMS0xXgoKQ29uZGl0 aW9uXzEtMSBhbmQgU3VwcG9zaXRpb25fMi00IGNvbnRyYWRpY3QgZWFjaCBvdGhlci4KClN1cHBv c2l0aW9uXzIgaXMgdGh1cyByZWplY3RlZCBieSByZWR1Y3RpbyBhZCBhYnN1cmR1bS4KCkl0IG1l YW5zIHRoYXQge2tvJ2F9IGlzIG5vdCBhbiBpbmRpdmlkdWFsLgoKCgpNb3Jlb3Zlciwgd2hlbiB7 a28nYX0gaXMgZXhwYW5kZWQgdG8ge0Egam8ndSBCfSwgZnJvbSBhIHByb3BlcnR5IG9mIHtqbyd1 fSwgdGhlIGZvbGxvd2luZyBwcm9wb3NpdGlvbnMgaG9sZCB0cnVlOgoKXkEgbWUga28nYX5wcH4K Cn4vcHB+QiBtZSBrbydhXgoKRWFjaCBvZiBBIGFuZCBCIGlzIGluIHRoZSBkb21haW4gb2Yge2Rh fSBvZiBDb25kaXRpb25fMS4gQ29uc2lkZXJpbmcgc2ltaWxhcmx5IHRvIENvbmRpdGlvbl8xLTEs IG5laXRoZXIgQSBub3IgQiBpcyBhbiBpbmRpdmlkdWFsLiB7a28nYX0gaXMgdGh1cyBub3QgaW5k aXZpZHVhbHMuCgpRLkUuRC4KCgoKV2hlbiB7a28nYX0gaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFs IG5vciBpbmRpdmlkdWFscywgd2hhdCBhY3R1YWxseSBkb2VzIGl0IHJlZmVyIHRvPwoKV2UgbWF5 IGludGVycHJldCB0aGF0IGl0IHJlZmVycyB0byB3aGF0IGlzIHJlZmVyZWQgdG8gYnkgYSBtYXRl cmlhbCBub3VuLCBmb3IgZXhhbXBsZS4KCkJ5IGEgc3BlYWtlciB3aG8gdGhpbmtzIHRoYXQgYSBj dXQtb2ZmIHBpZWNlIG9mIGJyZWFkIGlzIGFsc28gYnJlYWQsIGJyZWFkIGlzIHJlZ2FyZGVkIGFz IG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMuCgoKCltodHRwczovL2dyb3Vw cy5nb29nbGUuY29tL2QvbXNnL2xvamJhbi9SQXRFN1lrLWRxdy9wQ0dlWUNFOWwxUUp8KFJlbGF0 ZWQgZGlzY3Vzc2lvbjogZm9yIHRoZSBjYXNlIG9mIHtrbydhfT17bG8gc2lkYm99LCBJIHdyb3Rl IHRoZSBzYW1lIHByb29mIG9ubHkgaW4gTG9qYmFuLildCgoKCiEhISEjIEEgbG9naWNhbCBheGlv bSBvbiBwbHVyYWwgY29uc3RhbnQKClRoZSBmb2xsb3dpbmcgbG9naWNhbCBheGlvbSBpcyBnaXZl biB0byBhbiBhcmJpdHJhcnkgcGx1cmFsIGNvbnN0YW50IEM6CgpeZ2FuYWkgQyBicm9kYSBnaSBz dSdvaSBkYSB6byd1IGRhIGJyb2RhXgoKCgpJdCBtZWFucyAiaW4gYSB1bml2ZXJzZSBvZiBkaXNj b3Vyc2UsIGlmIGEgcHJvcG9zaXRpb24gaW4gd2hpY2ggYSBwbHVyYWwgY29uc3RhbnQgaXMgeDEg b2Yge2Jyb2RhfSBob2xkcyB0cnVlLCB0aGVyZSBpcyByZWZlcmVudCB0aGF0IGlzIHgxIG9mIHti cm9kYX0iLgoKCgpUaGF0IGlzIHRvIHNheSwgYW4gYXJndW1lbnQgdGhhdCBoYXMgbm8gcmVmZXJl bnQgaW4gYSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UgY2Fubm90IGJlIHJlcHJlc2VudGVkIGJ5IGEg cGx1cmFsIGNvbnN0YW50LiBBbiBhcmd1bWVudCB0aGF0IGhhcyBubyByZWZlcmVudCBpcyBleHBy ZXNzZWQgaW4gdGhlIGZvcm0ge25ha3Ugc3Unb2kgZGF9LCB3aGljaCBpcyBhIG5lZ2F0aW9uIG9m IGEgYm91bmQgcGx1cmFsIHZhcmlhYmxlIHtzdSdvaSBkYX0gbWVhbmluZyAidGhlcmUgaXMvYXJl Ii4KCgoKISEjIERlZmluaXRpb24gb2YgZ2FkcmkKCjtfX2xvX18gKExFKTogSXQgaXMgcHJlZml4 ZWQgdG8gc2VsYnJpLCBhbmQgZm9ybXMgYSBwbHVyYWwgY29uc3RhbnQgdGhhdCByZWZlcnMgdG8g d2hhdCBzYXRpc2ZpZXMgeDEsIHRoZSBmaXJzdCBwbGFjZSBvZiB0aGUgc2VsYnJpLiBJZiBhIHF1 YW50aWZpZXIgZm9sbG93cyB7bG99LCB0aGUgcXVhbnRpZmllciByZXByZXNlbnRzIHRoZSBzdW0g b2YgYWxsIHRoZSByZWZlcmVudHMgb2YgdGhlIHBsdXJhbCBjb25zdGFudC4gSW4gdGhlIGNhc2Ug dGhhdCBhIHF1YW50aWZpZXIgZm9sbG93cyB7bG99LCBhIHN1bXRpIG1heSBmb2xsb3cgaXQsIGFu ZCB0aGUgcXVhbnRpZmllciByZXByZXNlbnRzIHRoZSBzdW0gb2YgYWxsIHRoZSByZWZlcmVudHMg b2YgdGhlIHN1bXRpLgoKfHwKCmxvIFtbUEFdIGJyb2RhIChrdSkgfmhzfnx+aHN+IHpvJ2Ugbm9p IGtlJ2EgYnJvZGEgW1tnaSdlIHppbGthbmN1IGxpIFBBIGxvIGJyb2RhXSAoa3Unbykgfmhzfnx+ aHN+IHdoYXQgaXMvYXJlIGJyb2RhIFtbdGhhdCBpcy9hcmUgUEEgaW4gdG90YWxdCgpsbyBQQSAn J3N1bXRpJycgKGt1KSB+aHN+fH5oc34gbG8gUEEgbWUgJydzdW10aScnIChtZSd1KSAoa3UpIH5o c358fmhzfiB3aGF0IGlzL2FyZSBhbW9uZyAnJ3N1bXRpJycgdGhhdCBpcy9hcmUgUEEgaW4gdG90 YWwKCnx8Cgp7a3V9LCB7a3Unb30sIHttZSd1fSBhcmUgZWxpZGFibGUgdGVybWluYXRvcnMuCgoK ClB1dHRpbmcgYSBxdWFudGlmaWVyIGFmdGVyIGdhZHJpIGxpa2Uge2xvIFBBfSBpcyBjYWxsZWQg X19pbm5lciBxdWFudGlmaWNhdGlvbl9fLCBhbmQgdGhlIHF1YW50aWZpZXIgaXMgY2FsbGVkIF9f aW5uZXIgcXVhbnRpZmllcl9fLiBBbHRob3VnaCB0aGUgdGVybSAicXVhbnRpZnkiIGlzIGludm9s dmVkLCBpdCBpcyBkaWZmZXJlbnQgZnJvbSBxdWFudGlmaWNhdGlvbiBvZiBsb2dpYy4gSW5uZXIg cXVhbnRpZmljYXRpb24gZG9lcyBub3QgaW52b2x2ZSBjb3VudGluZyByZWZlcmVudHMgb2YgY29u c3RhbnRzIHRoYXQgY2FuIGJlIHN1YnN0aXR1dGVkIGZvciBhIHZhcmlhYmxlLCBidXQgY291bnRp bmcgYWxsIHRoZSByZWZlcmVudHMgb2Ygb25lIHBsdXJhbCBjb25zdGFudC4gSW5uZXIgcXVhbnRp ZmljYXRpb24gd2lsbCBiZSBkaXNjdXNzZWQgbW9yZSBwcmVjaXNlbHkgaW4gKCh8I0lubmVyX3F1 YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSkuCgoKCk9uIHRoZSBvdGhlciBoYW5kLCBwdXR0aW5n IGEgcXVhbnRpZmllciBiZWZvcmUgZ2FkcmksIG9yIGJlZm9yZSBhIHN1bXRpIG1vcmUgZ2VuZXJh bGx5LCBpcyBjYWxsZWQgX19vdXRlciBxdWFudGlmaWNhdGlvbl9fLCBhbmQgdGhlIHF1YW50aWZp ZXIgaXMgY2FsbGVkIF9fb3V0ZXIgcXVhbnRpZmllcl9fLiBPdXRlciBxdWFudGlmaWNhdGlvbiB3 aWxsIGJlIGRpc2N1c3NlZCBtb3JlIHByZWNpc2VseSBpbiAoKHwjT3V0ZXJfcXVhbnRpZmljYXRp b258U2VjdGlvbiAzLjIpKS4KCgoKQWxsIHN1bXRpIGZvcm1lZCB3aXRoIGdhZHJpIGFyZSBkZWZp bmVkIHNvIHRoYXQgdGhleSBhcmUgZXhwYW5kZWQgaW50byBleHByZXNzaW9ucyB3aXRoIHt6bydl fS4gVGhhdCBpcyB0byBzYXksIHRoZSBtb3N0IGdlbmVyYWwgcGx1cmFsIGNvbnN0YW50IGlzIHJl cHJlc2VudGVkIGJ5IGEgc2luZ2xlIHt6bydlfS4gQSBzdW10aSBmb3JtZWQgd2l0aCBnYWRyaSBp cyB7em8nZX0gYWNjb25wYW5pZWQgYnkgYW4gZXhwbGFuYXRpb24uCgpeCgo7RXhhbXBsZTogUGVv cGxlIGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0ZS4KCjs6IGxvIHByZW51IGN1IGptYWppIGdpJ2Ug anVrcGEgZ2knZSBjaXRrYV4KCgoKV2hpbGUgdGhlIHByZWRpY2F0ZSB7anVrcGF9IChjb29rKSBj YW4gYmUgaW50ZXJwcmV0ZWQgY29sbGVjdGl2ZWx5IGFzIHdlbGwgYXMgZGlzdHJpYnV0aXZlbHks IHRoZSBwbHVyYWwgY29uc3RhbnQge2xvIHByZW51fSAocGVvcGxlKSBkb2VzIG5vdCBzYXkgZXhw bGljaXRseSBpZiBpdCBzYXRpc2ZpZXMge2p1a3BhfSBjb2xsZWN0aXZlbHkgb3IgZGlzdHJpYnV0 aXZlbHkuIElmIHdlIHdhbnQgdG8gc2F5IGV4cGxpY2l0bHkgdGhhdCB0aGV5ICJjb2xsZWN0aXZl bHkiIGNvb2tlZCwgd2UgdXNlIHtsb2l9LCB3aGljaCB3aWxsIGJlIGRpc2N1c3NlZCBsYXRlciwg YW5kIHNheSB7bG9pIHByZW51fS4gQ29udHJhc3RpdmVseSwgaWYgd2Ugd2FudCB0byBzYXkgZXhw bGljaXRseSB0aGF0IHRoZXkgImRpc3RyaWJ1dGl2ZWx5IiBjb29rZWQsIHdlIHNheSB7cm8gbG8g cHJlbnV9IHdpdGggYW4gb3V0ZXIgcXVhbnRpZmljYXRpb24sIG9yIHtsdSdhIGxvIHByZW51fS4g SG93ZXZlciwgYSBzdW10aSB0aGF0IHNheXMgZXhwbGljaXRseSBjb2xsZWN0aXZpdHkgb3IgZGlz dHJpYnV0aXZpdHkgaXMgbm90IG5lY2Vzc2FyaWx5IGFibGUgdG8gYmUgc2hhcmVkIHdpdGggb3Ro ZXIgcHJlZGljYXRlIGxpa2Uge2ptYWppfSBvciB7Y2l0a2F9LgoKCgo7X19sZV9fIChMRSk6IHts ZSBicm9kYX0gcmVmZXJzIF9fc3BlY2lmaWNhbGx5X18gdG8gYSByZWZlcmVudCBvZiB7bG8gYnJv ZGF9LCBhbmQgX19leHBsaWNpdGx5IGV4cHJlc3MgdGhhdCB0aGUgc3BlYWtlciBoYXMgdGhlIHJl ZmVyZW50IGluIG1pbmRfXy4gSXRzIGxvZ2ljYWwgcHJvcGVydHkgaXMgdGhlIHNhbWUgYXMgdGhh dCBvZiB7bG99LgoKfHwKCmxlIFtbUEFdIGJyb2RhIChrdSkgfmhzfnx+aHN+IHpvJ2Ugbm9pIG1p IGtlJ2EgZG8gc2tpY3UgbG8ga2EgY2UndSBicm9kYSBbW2dpJ2Ugemlsa2FuY3UgbGkgUEEgbG8g YnJvZGFdIChrdSdvKSAKCmxlIFBBICcnc3VtdGknJyAoa3UpIH5oc358fmhzfiBsZSBQQSBtZSAn J3N1bXRpJycgKG1lJ3UpIChrdSkKCnx8CgoKCjtfX2xhX18gKExBKTogSXQgaXMgcHJlZml4ZWQg dG8gc2VsYnJpIG9yIGNtZXZsYSwgYW5kIGZvcm1zIGEgcGx1cmFsIGNvbnN0YW50IHRoYXQgcmVm ZXJzIHRvIHdoYXQgaXMgbmFtZWQgdGhlIHNlbGJyaSBvciBjbWV2bGEgc3RyaW5nLiBJdHMgbG9n aWNhbCBwcm9wZXJ0eSBpcyB0aGUgc2FtZSBhcyB0aGF0IG9mIHtsb30uCgp8fAoKbGEgW1tQQV0g YnJvZGEgKGt1KSB+aHN+fH5oc34gem8nZSBub2kgbHUgW1tQQV0gYnJvZGEgbGkndSBjbWVuZSBr ZSdhIG1pIChrdSdvKSAKCmxhIFBBICcnc3VtdGknJyAoa3UpIH5oc358fmhzfiB6bydlIG5vaSBs dSBQQSBzdW10aSBsaSd1IGNtZW5lIGtlJ2EgbWkgKGt1J28pIAoKfHwKCgoKO19fbG9pX18gKExF KSwgX19sZWlfXyAoTEUpLCBfX2xhaV9fIChMQSk6IHtsb2kvbGVpL2xhaSBicm9kYX0gcmVmZXJz IHRvIGEgcmVmZXJlbnQgb2Yge2xvL2xlL2xhIGJyb2RhfSwgYW5kIF9fZXhwbGljaXRseSBleHBy ZXNzIHRoYXQgdGhlIHJlZmVyZW50IHNhdGlzZmllcyBhIHByZWRpY2F0ZSBjb2xsZWN0aXZlbHlf Xy4KCnx8Cgpsb2kgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxvIFtbUEFdIGJy b2RhCgpsZWkgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxlIFtbUEFdIGJyb2Rh CgpsYWkgW1tQQV0gYnJvZGEgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxhIFtbUEFdIGJyb2RhCgps b2kgUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBndW5tYSBiZSBsbyBQQSAnJ3N1bXRpJycKCmxl aSBQQSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIGd1bm1hIGJlIGxlIFBBICcnc3VtdGknJwoKbGFp IFBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gZ3VubWEgYmUgbGEgUEEgJydzdW10aScnCgp8fAoK QmFjYXVzZSB7bG9pL2xlaS9sYWl9IGlzIHRodXMgZGVmaW5lZCBieSBhbm90aGVyIHBsdXJhbCBj b25zdGFudCB7bG8gZ3VubWEgYmUgbG8vbGUvbGF9LCBpdCBkb2VzIG5vdCByZWZlciBkaXJlY3Rs eSB0byByZWZlcmVudCBvZiB7bG8gYnJvZGF9IG9yIHtsbyBQQSAnJ3N1bXRpJyd9LCBidXQgcmVm ZXJlbnQgb2Yge2xvIGd1bm1hfS4gVGhlcmVmb3JlLCBldmVuIGlmIHtsbyBicm9kYX0gb3Ige2xv IFBBICcnc3VtdGknJ30gaXMgbm90IGFuIGluZGl2aWR1YWwsIHtsb2kgYnJvZGF9IG9yIHtsb2kg UEEgJydzdW10aScnfSBjYW4gYmUgYW4gaW5kaXZpZHVhbCB7bG8gZ3VubWF9IHVuZGVyIHRoZSBm b2xsb3dpbmcgY29uZGl0aW9uOgoKXnJvJ29pIGRhIHBvaSBrZSdhIG1lIGxvIGd1bm1hIGJlIGxv L2xlL2xhIFtbUEFdIGJyb2RhIHpvJ3UgbG8gZ3VubWEgYmUgbG8vbGUvbGEgW1tQQV0gYnJvZGEg Y3UgbWUgZGF+cHB+Cgp+L3BwfnJvJ29pIGRhIHBvaSBrZSdhIG1lIGxvIGd1bm1hIGJlIGxvL2xl L2xhIFBBICcnc3VtdGknJyB6byd1IGxvIGd1bm1hIGJlIGxvL2xlL2xhIFBBICcnc3VtdGknJyBj dSBtZSBkYV4KCgoKO19fbG8naV9fIChMRSksIF9fbGUnaV9fIChMRSksIF9fbGEnaV9fIChMQSk6 IHtsbydpL2xlJ2kvbGEnaSBicm9kYX0gcmVmZXJzIHRvIGEgc2V0IG9yIHNldHMgb2YgaW5kaXZp ZHVhbChzKSB0aGF0IGNvbnN0aXR1dGUocykgYSBwbHVyYWwgY29uc3RhbnQge2xvL2xlL2xhIGJy b2RhfS4gQmVjYXVzZSB7bG8naS9sZSdpL2xhJ2l9IGZvcm1zIGEgc2V0IG9yIHNldHMsIGl0IGlz IGRlZmluZWQgb25seSB3aGVuIGl0cy90aGVpciBtZW1iZXIocykge2xvL2xlL2xhIGJyb2RhfSBp cy9hcmUgYW4gaW5kaXZpZHVhbCBvciBpbmRpdmlkdWFscy4gQSBzZXQgaXRzZWxmIGlzIGFsd2F5 cyBhbiBpbmRpdmlkdWFsLCBhbmQgc2V0cyBhcmUgYWx3YXlzIGluZGl2aWR1YWxzOiB0aGVyZSBp cyBubyBzZXQgdGhhdCBpcyBub3QgYW4gaW5kaXZpZHVhbC4KCnx8CgpsbydpIFtbUEFdIGJyb2Rh IH5oc358fmhzfiBsbyBzZWxjbWkgYmUgbG8gW1tQQV0gYnJvZGEKCmxlJ2kgW1tQQV0gYnJvZGEg fmhzfnx+aHN+IGxvIHNlbGNtaSBiZSBsZSBbW1BBXSBicm9kYQoKbGEnaSBbW1BBXSBicm9kYSB+ aHN+fH5oc34gbG8gc2VsY21pIGJlIGxhIFtbUEFdIGJyb2RhCgpsbydpIFBBICcnc3VtdGknJyB+ aHN+fH5oc34gbG8gc2VsY21pIGJlIGxvIFBBICcnc3VtdGknJwoKbGUnaSBQQSAnJ3N1bXRpJycg fmhzfnx+aHN+IGxvIHNlbGNtaSBiZSBsZSBQQSAnJ3N1bXRpJycKCmxhJ2kgUEEgJydzdW10aScn IH5oc358fmhzfiBsbyBzZWxjbWkgYmUgbGEgUEEgJydzdW10aScnCgp8fAoKQmVjYXVzZSB7bG8n aS9sZSdpL2xhJ2l9IGlzIGRlZmluZWQgYnkgYW5vdGhlciBwbHVyYWwgY29uc3RhbnQge2xvIHNl bGNtaSBiZSBsby9sZS9sYX0sIGl0IGRvZXMgbm90IHJlZmVyIGRpcmVjdGx5IHRvIHJlZmVyZW50 IG9mIHtsbyBicm9kYX0gb3Ige2xvIFBBICcnc3VtdGknJ30sIGJ1dCByZWZlcmVudCBvZiB7bG8g c2VsY21pfS4KCgoKQW4gZW1wdHkgc2V0IGlzIHtsbyBzZWxjbWkgYmUgbm8gZGF9LCBhbmQgYW4g ZXhwcmVzc2lvbiB7bG8gbm8gYnJvZGF9IGlzIG9mZmljaWFsbHkgbWVhbmluZ2xlc3MgKHNlZSAo KHwjSW5uZXJfcXVhbnRpZmljYXRpb258U2VjdGlvbiAzLjEpKS4gVGhpcyBpbXBsaWVzIHRoYXQg YW4gZW1wdHkgc2V0IGNhbm5vdCBiZSBleHByZXNzZWQgd2l0aCB7bG8naS9sZSdpL2xhJ2l9LiAK CgoKISEhIyBJbm5lciBxdWFudGlmaWNhdGlvbgoKKChCUEZLIFNlY3Rpb246IGdhZHJpfEJQRksg ZGVmaW5lcyBpbm5lciBxdWFudGlmaWNhdGlvbikpIGFzIGZvbGxvd3M6Cgp8fAoKbG8gW1tQQV0g YnJvZGEgfmhzfnx+aHN+IHpvJ2Ugbm9pIGtlJ2EgYnJvZGEgW1tnaSdlIHppbGthbmN1IGxpIFBB IGxvIGJyb2RhXQoKbG8gUEEgJydzdW10aScnIH5oc358fmhzfiBsbyBQQSBtZSAnJ3N1bXRpJycK Cnx8CgpUaGF0IGlzIHRvIHNheSwgaW5uZXIgcXVhbnRpZmllciBtZWFucyBudW1iZXIgb2YgcmVm ZXJlbnQgY291bnRlZCBieSB1bml0IHtsbyBicm9kYX0gb3Ige2xvIG1lICcnc3VtdGknJ30gdGhh dCBpcyB4MyBvZiB7emlsa2FuY3V9LiAKCkhvd2V2ZXIsIGluc3RlYWQgb2Yge3ppbGthbmN1fSwg dGhlIG1lYW5pbmcgb2Ygd2hpY2ggaXMgdG9vIHZhZ3VlIGZvciBkZWZpbml0aW9uLCBbaHR0cHM6 Ly9ncm91cHMuZ29vZ2xlLmNvbS9kL21zZy9sb2piYW4vUkF0RTdZay1kcXcveGkyaDZBMTdDdXNK fGFuIGlkZWEgb2YgcmVkZWZpbml0aW9uIHVzaW5nIHttZWl9IHdhcyBzdWdnZXN0ZWRdIGFzIGZv bGxvd3M6CgoKCjtBeGlvbSAxOiBybydvaSBkYSBzdSdvIHBhIG1laQoKO0RlZmluaXRpb246fHwK CihEMSkga28nYSBzdSdvIE4gbWVpIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34gc3Unb2kgZGEg cG9pIG1lIGtvJ2Ega3UnbyBzdSdvaSBkZSBwb2kgbWUga28nYSB6byd1IGdlIGRhIHN1J28gTi0x IG1laSBnaW5haSBkZSBtZSBkYQoKKEQyKSBrbydhIE4gbWVpIH5oc358fmhzfiA9Y2EnZSB+aHN+ fH5oc34ga28nYSBzdSdvIE4gbWVpIGdpJ2UgbmFpIHN1J28gTisxIG1laSAKCihEMykgbG8gUEEg YnJvZGEgfmhzfnx+aHN+ID1jYSdlIH5oc358fmhzfiB6bydlIG5vaSBrZSdhIFBBIG1laSBnaSdl IGJyb2RhCgp8fAoKCgpVc2luZyB0aGVzZSBkZWZpbml0aW9ucyBhbmQgQXhpb20gMSwgdGhlIGZv bGxvd2luZyB0aGVvcmVtIHdpbGwgYmUgcHJvdmVkLgoKXklmIGFuZCBvbmx5IGlmIHtrbydhIHBh IG1laX0sIHtrbydhfSBpcyBhbiBpbmRpdmlkdWFsLl4KCgoKO1Byb29mOiAoRDIpIGlzCgp8fAoK a28nYSBOIG1laQl8PXwga28nYSBzdSdvIE4gbWVpIGdpJ2UgbmFpIHN1J28gTisxIG1laSAKCgkJ fD18IGdlIGtvJ2Egc3UnbyBOIG1laSAtLS0tLShTMSkKCgkJfCB8IGdpIG5ha3Uga28nYSBzdSdv IE4rMSBtZWkgLS0tLS0oUzIpCgp8fAoKQXBwbHlpbmcgKEQxKSB0byAoUzIpLCAKCnx8CgooUzIp CQl8PXwgbmFrdSBzdSdvaSBkYSBwb2kgbWUga28nYSBrdSdvIHN1J29pIGRlIHBvaSBtZSBrbydh IHpvJ3UgCgoJCXwgfCBnZSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwgZ2luYWkgZGUgbWUgZGEKCgkJ fD18IHJvJ29pIGRhIHBvaSBtZSBrbydhIGt1J28gcm8nb2kgZGUgcG9pIG1lIGtvJ2Egem8ndQoK CQl8IHwgbmFrdSBnZSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwgZ2kgbmFrdSBkZSBtZSBkYQoKCQl8 PXwgcm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydvaSBkZSBwb2kgbWUga28nYSB6byd1CgoJ CXwgfCBnYW5haSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwgZ2kgZGUgbWUgZGEKCnx8CgooRDIpIGlz IHRoZXJlZm9yZQoKfHwKCmtvJ2EgTiBtZWkJfD18IGdlIChTMSkgZ2kgKFMyKSAKCgkJfD18IGdl IGtvJ2Egc3UnbyBOIG1laQoKCQl8IHwgZ2kgcm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydv aSBkZSBwb2kgbWUga28nYSB6byd1CgoJCXwgfCBnYW5haSBkYSBzdSdvIE4gbWVpIAoKCQl8IHwg Z2kgZGUgbWUgZGEKCnx8CgpXaGVuIE49MSwKCnx8CgprbydhIHBhIG1laQl8PXwgZ2Uga28nYSBz dSdvIHBhIG1laQoKCQl8IHwgZ2kgcm8nb2kgZGEgcG9pIG1lIGtvJ2Ega3UnbyBybydvaSBkZSBw b2kgbWUga28nYSB6byd1CgoJCXwgfCBnYW5haSBkYSBzdSdvIHBhIG1laSAKCgkJfCB8IGdpIGRl IG1lIGRhIAoKfHwKCkJlY2F1c2Ugb2YgQXhpb20gMSwgaXQgaW1wbGllcwoKfHwKCmtvJ2EgcGEg bWVpCXw9fCBybydvaSBkYSBwb2kgbWUga28nYSBrdSdvIHJvJ29pIGRlIHBvaSBtZSBrbydhIHpv J3UgZGUgbWUgZGEKCnx8CgpUaGUgcmlnaHQgc2lkZSBpbXBsaWVzIHtybydvaSBkYSBwb2kga2Un YSBtZSBrbydhIHpvJ3Uga28nYSBtZSBkYX0sIHdoaWNoIGlzIHRoZSBjb25kaXRpb24gZm9yICJ7 a28nYX0gaXMgYW4gaW5kaXZpZHVhbCIuIEl0cyBjb252ZXJzZSBpcyBhbHNvIHRydWUuCgpRLkUu RC4KCgoKVGhlIGRpYWdyYW0gYmVsb3cgc2hvd3MgYSBwcm9jZWR1cmUgb2YgY291bnRpbmcgc29t ZXRoaW5nIHVwIHRvIGZvdXIgcmVwcmVzZW50ZWQgd2l0aCBhIGRpcmVjdGVkIGdyYXBoLiBJbiB0 aGlzIGRpYWdyYW0sIGxvb3BzIHN1Y2ggYXMge1ggbWUgWH0gYXJlIG9taXR0ZWQgZm9yIHNpbXBs aWNpdHksIHRob3VnaCB0aGV5IGV4aXN0LiBDb3VudGluZyB1cCBjb3JyZXNwb25kcyB0byBzZWxl Y3RpbmcgYSBzdWJncmFwaCBvZiBhIGRpcmVjdGVkIGdyYXBoIGZvcm1lZCB3aXRoIHttZX06IHRo ZSBzdWJncmFwaCB0aGF0IGhhcyBhIGZvcm0gb2YgdHJlZSB0aGF0IGluY2x1ZGVzIGFsbCBsZWF2 ZXMgKGNvbnN0YW50cyBlYWNoIG9mIHdoaWNoIGlzIGFuIGluZGl2aWR1YWwpIHRvIGJlIGNvdW50 ZWQsIGZvciBleGFtcGxlIHRoZSBwYXJ0IG9mIG1hZ2VudGEgY29sb3IgaW4gdGhlIGRpYWdyYW0u CgoKCntpbWcgZmlsZUlkPSIxMCIgdGh1bWI9InkiIHJlbD0iYm94W2ddIn0KCgoKISEhISMgUmVw ZWF0aW5nIGlubmVyIHF1YW50aWZpY2F0aW9uCgpCZWNhdXNlIHtsbyBQQSAnJ3N1bXRpJyd9IGlz IGRlZmluZWQsIHdlIGNhbiByZXBlYXQgaW5uZXIgcXVhbnRpZmljYXRpb24gdG8gZm9ybSBhbiBh cmd1bWVudC4KCl4KCjtFeGFtcGxlOiBsbyBtdWxubyBrYXJkeWdyaSBjdSBndW5tYSBsbyB2byBs b2kgcGFjaSBrYXJkYSB+aHN+ICcnQSBmdWxsIGRlY2sgY29uc2lzdHMgb2YgZm91ciBncm91cHMg b2YgdGhpcnRlZW4gY2FyZHMuJycKCjs6IHN1J28gZGEgem8ndSBsb2kgcmUgbG8naSBybyBtb2tj YSBub2kgc2VwbGkgcHkgbm9pIG1va2NhIGt1J28gZGEgY3UgcmVsY3VrdGFpIH5oc34gJydUd28g c2V0cyBvZiBwb2ludHMgdGhhdCBhcmUgZXF1aWRpc3RhbnQgZnJvbSBhIHBvaW50IFAgaXMgYSBk b3VibGUgY2lyY2xlLicnXgoKCgohISEhIyBQcm9ibGVtcyBvbiBpbm5lciBxdWFudGlmaWNhdGlv bgoKISEhISEjIENhbm5vdCBzYXkgemVybwoKCgpCZWNhdXNlIGFuIGFyZ3VtZW50IGZvcm1lZCBi eSBnYWRyaSBpcyBhIHBsdXJhbCBjb25zdGFudCwge2xvIGJyb2RhfSBpbXBsaWVzIHtzdSdvaSBk YSB6byd1IGRhIGJyb2RhfSBhY2NvcmRpbmcgdG8gdGhlIGxvZ2ljYWwgYXhpb20gb24gcGx1cmFs IGNvbnN0YW50IHNob3duIGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25fcGx1cmFsX2NvbnN0YW50 fFNlY3Rpb24gMi4yLjYpKS4gVGhhdCBpcyB0byBzYXksIHRoZSBleHByZXNzaW9uIHtsbyBubyBi cm9kYX0gaW1wbGllcyAidGhlcmUgYXJlIHdoYXQgYXJlIGJyb2RhLCB3aGljaCBhcmUgY291bnRl ZCAwIiwgd2hpY2ggc2VlbXMgbWVhbmluZ2xlc3MuCgoKClRoaXMgbWVhbnMgdGhhdCBvZmZpY2lh bCBMb2piYW4gY2Fubm90IGV4cHJlc3MgbmVnYXRpb24gb2YgZXhpc3RlbmNlIG9mIHBsdXJhbCB2 YXJpYWJsZSB7bmFrdSBzdSdvaSBkYX0sIHdoaWNoIGlzIG5ldmVydGhlbGVzcyBuZWNlc3Nhcnks IGZvciBleGFtcGxlIGluIHRoZSBmb2xsb3dpbmcgc2l0dWF0aW9uOgoKCgpeIGxvIHhvIHByZW51 IGN1IGptYWppIGdpJ2UganVrcGEgZ2knZSBjaXRrYSB+aHN+fi0tfiBub35wcH4KCn4vcHB+Jyci SG93IG1hbnkgcGVvcGxlIGdhdGhlcmVkLCBjb29rZWQgYW5kIGF0ZT8iICJ6ZXJvLiInJ14KCgoK VGhpcyByZXNwb25zZSBpcyBhbiBhYmJyZXZpYXRlZCBmb3JtIG9mIHtsbyBubyBwcmVudSBjdSBq bWFqaSBnaSdlIGp1a3BhIGdpJ2UgY2l0a2F9LgoKCgpUaGlzIHByb3Bvc2l0aW9uIG1lYW5zIHRo YXQge2xvIG5vIHByZW51fSBzYXRpc2ZpZXMgc2VsYnJpIHtqbWFqaX0gY29sbGVjdGl2ZWx5IGFu ZCAoamUpIG5vbi1kaXN0cmlidXRpdmVseSwge2p1a3BhfSBjb2xsZWN0aXZlbHkgb3IgKGphKSBk aXN0cmlidXRpdmVseSwge2NpdGthfSBub24tY29sbGVjdGl2ZWx5IGFuZCAoamUpIGRpc3RyaWJ1 dGl2ZWx5LiBCZWNhdXNlIGl0IGluY2x1ZGVzIHNlbGJyaSB7am1haml9IHRvIGJlIHNhdGlzZmll ZCBub24tZGlzdHJpYnV0aXZlbHksIHRoZSBzdW10aSBjYW5ub3QgYmUgcmVwbGFjZWQgYnkgbmVn YXRpb24gb2YgZXhpc3RlbmNlIG9mIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlIHtuYWt1IHN1J28g ZGF9PXtubyBkYX0uIE1vcmVvdmVyLCBiZWNhdXNlIGl0IGluY2x1ZGVzIHNlbGJyaSB7Y2l0a2F9 IHRvIGJlIHNhdGlzZmllZCBub24tY29sbGVjdGl2ZWx5LCB7bG99IG9mIHRoZSBzdW10aSBjYW5u b3QgYmUgcmVwbGFjZWQgYnkge2xvaX09e2xvIGd1bm1hIGJlIGxvfS4KCgoKRm9yIG1ha2luZyBz dWNoIGEgcHJvcG9zaXRpb24gbWVhbmluZ2Z1bCwgaXQgaXMgZXNzZW50aWFsIHRvIGdpdmUgYW4g ZXhwcmVzc2lvbiB7bG8gbm8gYnJvZGF9IGEgbWVhbmluZyBvZiBuZWdhdGlvbiBvZiBleGlzdGVu Y2Ugb2YgcGx1cmFsIHZhcmlhYmxlLgoKRm9yIHRoaXMgcHVycG9zZSwgSSBzdWdnZXN0IHRoZSBm b2xsb3dpbmcgZGVmaW5pdGlvbiB2YWxpZCBpbiB0aGUgY2FzZSB0aGF0IFBBPTAgZm9yIHtsbyBQ QSBicm9kYX0uCgo7VW5vZmZpY2lhbCBkZWZpbml0aW9uIG9mIHtsbyBubyBicm9kYX06fHwKCmxv IG5vIGJyb2RhIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34gbmFrdSBzdSdvaSBkYSBwb2kga2Un YSBicm9kYQoKfHwKCgoK77yISWYgaXQgd2VyZSBkZWZpbmVkIGFzIHtuYWt1IGxvIGJyb2RhfSwg dGhlIG5lZ2F0aW9uIHdvdWxkIGhhdmUgc3Bhbm5lZCB0aGUgd2hvbGUgcHJvcG9zaXRpb24sIGFu ZCBpdCB3b3VsZCBub3QgaGF2ZSBpbXBsaWVkIHF1YW50aWZpY2F0aW9uLiBJIGFiYW5kb25lZCB0 aGVyZWZvcmUgc3VjaCBhIGRlZmluaXRpb24uKQoKCgohISEhISMgQ2Fubm90IHF1YW50aWZ5IG1h dGVyaWFsIG5vdW4gb3Igc29tZXRoaW5nCgpBeGlvbSAxIG9mICgofCNJbm5lcl9xdWFudGlmaWNh dGlvbnxTZWN0aW9uIDMuMSkpIGV4Y2x1ZGVzIHN1bXRpIHRoYXQgaXMgbmVpdGhlciBhbiBpbmRp dmlkdWFsIG5vciBpbmRpdmlkdWFscyBmcm9tIGV4cHJlc3Npb25zIHsoc3UnbykgTiBtZWl9IGFu ZCB7bG8gTiBicm9kYX0uCgoKCkNhbiB3ZSB1c2Uge3BpUEF9IGZvciBzdW10aSB0aGF0IGlzIG5l aXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMsIHRoZW4/IE5vLgoKKChCUEZLIFNl Y3Rpb246IGdhZHJpfEFjdHVhbGx5LCBwaVBBIGlzIGRlZmluZWQgb25seSBmb3Igb3V0ZXIgcXVh bnRpZmljYXRpb24uKSkKCnx8CgpwaVBBICcnc3VtdGknJyB+aHN+fH5oc34gbG8gcGlQQSBzaSdl IGJlIHBhIG1lICcnc3VtdGknJwoKfHwKCkFzIHdlIGNhbiBzZWUgaW4gdGhlIGRlZmluaXRpb24s IHRoZSBib2R5IG9mIG91dGVyIHF1YW50aWZpY2F0aW9uIGJ5IHtwaVBBfSBpcyBwbHVyYWwgY29u c3RhbnQge2xvIHBpUEEgc2knZX0sIHdoaWNoIGlzIG5vdCBhIGJvdW5kIHNpbmd1bGFyIHZhcmlh YmxlLiBIb3dldmVyLCB4MiBvZiB7cGlQQSBzaSdlfSBpcyB7cGEgbWUgJydzdW10aScnfSwgdG8g d2hpY2ggKChCUEZLIFNlY3Rpb246IGdhZHJpfHRoZSBkZWZpbnRpb24gb2YgUEEgYnJvZGEpKSBp cyBhcHBsaWVkOgoKfHwKClBBIGJyb2RhIH5oc358fmhzfiBQQSBkYSBwb2kgYnJvZGEgCgp8fAoK QXMgYSByZXN1bHQsIHtwaVBBICcnc3VtdGknJ30gaXMgZGVmaW5lZCBvbmx5IHdoZW4gdGhlcmUg aXMgYW4gaW5kaXZpZHVhbCB0aGF0IHNhdGlzZmllcyB4MSBvZiB7bWUgJydzdW10aScnfS4gVGhh dCBpcyB0byBzYXksIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFs cyBpcyBleGNsdWRlZCBhbHNvIGZyb20gYW4gZXhwcmVzc2lvbiBvZiBvdXRlciBxdWFudGlmaWNh dGlvbiB3aXRoIHtwaVBBfS4KCgoKV2hhdCB3b3VsZCBiZSBpZiB7cGlQQX0gd2VyZSBkZWZpbmVk IGFsc28gZm9yIGlubmVyIHF1YW50aWZpY2F0aW9uPwoKSW4gdGhhdCBjYXNlLCB0aGUgZm9sbG93 aW5nIGRlZmluaXRpb24gd291bGQgYmUgZGVzaXJhYmxlIHRvIGNvbmZvcm0gdGhlIGRlZmluaXRp b24gb2Yge3BpUEF9IG9mIG91dGVyIHF1YW50aWZpY2F0aW9uOgoKOyBVbm9mZmljaWFsIGRlZmlu aXRpb24gb2Yge3BpUEF9IG9mIGlubmVyIHF1YW50aWZpY2F0aW9uOnx8CgpsbyBwaVBBIGJyb2Rh IH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34gem8nZSBub2kga2UnYSBwaVBBIHNpJ2UgYmUgbG8g cGEgYnJvZGEKCnx8CgpUaGlzIGRlZmluaXRpb24gb2Yge3BpUEF9IG9mIGlubmVyIHF1YW50aWZp Y2F0aW9uIHN0aWxsIGV4Y2x1ZGVzIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBp bmRpdmlkdWFscyB1bmxlc3Mge2xvIHBhIGJyb2RhfSBpcyBkZWZpbmVkIGluIGFub3RoZXIgd2F5 IHNvIHRoYXQgaXQgY2FuIGJlIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5vciBpbmRp dmlkdWFscy4KCgoKV2h5IGRvbid0IHdlIHVzZSB7UEEgc2knZX0gdG8gZXhwcmVzcyBxdWFudGlm aWNhdGlvbiBvZiB3aGF0IGlzIG5laXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHM/ IAoKSXQgaXMgcG9zc2libGUsIGJ1dCAoKEJQRksgU2VjdGlvbjogTnVtZXJpYyBzZWxicml8QlBG SydzIGN1cnJlbnQgZGVmaW5pdGlvbiBvZiB7c2knZX0pKSBkZXBlbmRzIG9uIHtwYWdidX06Cgp8 fAoKeDEgbnVtYmVyIHNpJ2UgeDIgfmhzfnx+aHN+IHgxIHBhZ2J1IHgyIGdpJ2Uga2xhbmkgbGkg bnVtYmVyIGxvIHNlIGdyYWR1IGJlIHgyCgp8fAoKSWYgd2UgaW50ZXJwcmV0IHtwYWdidX0gc28g dGhhdCB4MSBpcyBub3QgbGFyZ2VyIHRoYW4geDIgKGFuZCB0aGlzIGlzIG9yZGluYXJ5IGludGVy cHJldGF0aW9uKSwgW2h0dHBzOi8vZ3JvdXBzLmdvb2dsZS5jb20vZC9tc2cvbG9qYmFuL1JBdEU3 WWstZHF3L25VYlppd21CMk0wSnx7c2knZX0gaXMgdmVyeSBpbmNvbnZlbmllbnQgYmVjYXVzZSB0 aGUgdW5pdCBzaG91bGQgYmUgY2hhbmdlZCBldmVyeSB0aW1lIGNvdW50aW5nIHVwLl0gSWYge3Np J2V9IHdlcmUgZGVmaW5lZCBzbyB0aGF0IFBBIG9mIHtQQSBzaSdlfSBjb3VsZCBiZSBsYXJnZXIg dGhhbiAxLCB7c2knZX0gd291bGQgaGF2ZSBiZWVuIHByYWdtYXRpYyBmb3IgcXVhbnRpZmljYXRp b24gb2Ygd2hhdCBpcyBuZWl0aGVyIGFuIGluZGl2aWR1YWwgbm9yIGluZGl2aWR1YWxzLgoKCgpC ZXNpZGVzIHRob3NlIGNvbnNpZGVyYXRpb25zLCBpZiB3ZSBhYmFuZG9uIEF4aW9tIDEgb2YgKCh8 I0lubmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4xKSksIERlZmluaXRpb25zIChEMSkgKEQy KSAoRDMpIGNhbiBiZSBhcHBsaWVkIHRvIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRpdmlkdWFsIG5v ciBpbmRpdmlkdWFscy4KCkluIHRoaXMgY2FzZSwgYSBzcGVha2VyIHNob3VsZCBzZWxlY3Qgc29t ZSBwbHVyYWwgY29uc3RhbnRzIHtrbydhLCBrbydlLCAuLi59LCBhbmQgZGVjaWRlIHRoYXQge1tb a28nYS9rbydlLy4uLl0gc3UnbyBwYSBtZWl9OyB0aGUgc2VsZWN0aW9uIG11c3QgYmUgZG9uZSBh dHRlbnRpdmVseSBzbyB0aGF0IHJlZmVyZW50cyBvZiBwbHVyYWwgY29uc3RhbnRzIHRoYXQgYXJl IHtwYSBtZWl9IGRvIG5vdCBvdmVybGFwIHdpdGggZWFjaCBvdGhlci4KClRob3NlIHByZXBhcmF0 aW9ucyBvZiB7a28nYSwga28nZSwgLi4ufSBhbmQgKEQyKSBpbXBseSBvbmx5Cgp8fAoKZ2FuYWkg W1trbydhL2tvJ2UvLi4uXSBwYSBtZWkgCgpnaSBybydvaSBkZSBwb2kgbWUgW1trbydhL2tvJ2Uv Li4uXSB6byd1IGRlIG1lIFtba28nYS9rbydlLy4uLl0KCnx8CgpVbmRlciB0aGVzZSBjb25kaXRp b25zLCB0aGVyZSBpcyBubyBuZWVkIHRoYXQgd2hhdCBpcyB4MSBvZiB7cGEgbWVpfSBpcyBhbiBp bmRpdmlkdWFsLgoKCgpXaGVuIHdlIHVzZSBEZWZpbml0aW9ucyAoRDEpIChEMikgKEQzKSB3aXRo b3V0IHVzaW5nIEF4aW9tIDEgb2YgKCh8I0lubmVyX3F1YW50aWZpY2F0aW9ufFNlY3Rpb24gMy4x KSksIGEgY29uZGl0aW9uIHtnaSdlIHN1J28gcGEgbWVpfSBtdXN0IGJlIGFkZGVkIHRvIHtkZX0g b2YgKEQxKe+8iFdoZW4gQXhpb20gMSBpcyB1c2VkLCByZWZlcmVudHMgaW4gdGhlIGRvbWFpbiBv ZiB2YXJpYWJsZSB7ZGV9IHNhdGlzZmllcyB0aGlzIGNvbmRpdGlvbiBhdXRvbWF0aWNhbGx5KS4g Cgo7VW5vZmZpY2lhbCBkZWZpbml0aW9ucyB1bmRlciB0aGUgY29uZGl0aW9uIHRoYXQgQXhpb20g MSBpcyBhYmFuZG9uZWQ6fHwKCihEMScpIGtvJ2Egc3UnbyBOIG1laSB+aHN+fH5oc34gPWNhJ2Ug fmhzfnx+aHN+IHN1J29pIGRhIHBvaSBtZSBrbydhIGt1J28gc3Unb2kgZGUgcG9pIG1lIGtvJ2Eg Z2knZSBzdSdvIHBhIG1laSB6byd1IGdlIGRhIHN1J28gTi0xIG1laSBnaW5haSBkZSBtZSBkYQoK KEQyKSBrbydhIE4gbWVpIH5oc358fmhzfiA9Y2EnZSB+aHN+fH5oc34ga28nYSBzdSdvIE4gbWVp IGdpJ2UgbmFpIHN1J28gTisxIG1laSAKCihEMykgbG8gUEEgYnJvZGEgfmhzfnx+aHN+ID1jYSdl IH5oc358fmhzfiB6bydlIG5vaSBrZSdhIFBBIG1laSBnaSdlIGJyb2RhCgp8fAoKVXNpbmcgdGhl c2UgZGVmaW5pdGlvbnMsIGlubmVyIHF1YW50aWZpY2F0aW9uIG9mIHdoYXQgaXMgbmVpdGhlciBh biBpbmRpdmlkdWFsIG5vciBpbmRpdmlkdWFscyBiZWNvbWVzIHBvc3NpYmxlLiBNb3Jlb3Zlciwg IlVub2ZmaWNpYWwgZGVmaW5pdGlvbiBvZiB7cGlQQX0gb2YgaW5uZXIgcXVhbnRpZmljYXRpb24i IGRpc2N1c3NlZCBhYm92ZSBiZWNvbWVzIGFibGUgdG8gYmUgYXBwbGllZCB0byB3aGF0IGlzIG5l aXRoZXIgYW4gaW5kaXZpZHVhbCBub3IgaW5kaXZpZHVhbHMuCgoKClRoZSBkaWFncmFtIGJlbG93 IHNob3dzIGEgcHJvY2VkdXJlIG9mIGNvdW50aW5nIHVwIHdoYXQgaXMgbmVpdGhlciBhbiBpbmRp dmlkdWFsIG5vciBpbmRpdmlkdWFscyByZXByZXNlbnRlZCB3aXRoIGEgZGlyZWN0ZWQgZ3JhcGgu IEluIHRoaXMgZGlhZ3JhbSwgbG9vcHMgc3VjaCBhcyB7WCBtZSBYfSBhcmUgb21pdHRlZCBmb3Ig c2ltcGxpY2l0eSwgdGhvdWdoIHRoZXkgZXhpc3QuIEFtb25nIGluZmluaXRlIG51bWJlciBvZiB2 ZXJ0aWNlcyAocGx1cmFsIGNvbnN0YW50cyksIHRoZSB2ZXJ0aWNlcyB0aGF0IGEgc3BlYWtlciBz ZWxlY3RlZCBhcyB7c3UnbyBwYSBtZWl9IGFyZSBjb2xvcmVkIHBpbmsuIENvdW50aW5nIHVwIGNv cnJlc3BvbmRzIHRvIHNlbGVjdGluZyBhIHRyZWUgdGhhdCBpcyBhIHN1YmdyYXBoIG9mIGEgZGly ZWN0ZWQgZ3JhcGggZm9ybWVkIHdpdGgge21lfSwgZm9yIGV4YW1wbGUgdGhlIHBhcnQgb2YgYmx1 ZSBjb2xvciBpbiB0aGUgZGlhZ3JhbS4KCgoKe2ltZyBmaWxlSWQ9IjkiIHRodW1iPSJ5IiByZWw9 ImJveFtnXSJ9CgoKCiEhISMgT3V0ZXIgcXVhbnRpZmljYXRpb24KCigoQlBGSyBTZWN0aW9uOiBn YWRyaXxCUEZLIGRlZmluZXMgb3V0ZXIgcXVhbnRpZmljYXRpb24pKSBhcyBmb2xsb3dzOgoKfHwK ClBBICcnc3VtdGknJyB+aHN+fH5oc34gUEEgZGEgcG9pIGtlJ2EgbWUgJydzdW10aScnCgpQQSBi cm9kYSB+aHN+fH5oc34gUEEgZGEgcG9pIGJyb2RhIAoKcGlQQSAnJ3N1bXRpJycgfmhzfnx+aHN+ IGxvIHBpUEEgc2knZSBiZSBwYSBtZSAnJ3N1bXRpJycKCnx8CgoKCk91dGVyIHF1YW50aWZpY2F0 aW9uIGV4Y2VwdCB7cGlQQX0gZm9ybXMge1BBIGRhfSwgd2hpY2ggaXMgb2ZmaWNpYWxseSBhIGJv dW5kIHNpbmd1bGFyIHZhcmlhYmxlLiBJdCBpbXBsaWVzIHRoYXQgdGhlc2UgYXJndW1lbnRzIHNh dGlzZnkgYSBwcmVkaWNhdGUgX19kaXN0cmlidXRpdmVseV9fLiBGb3IgZXhhbXBsZSwgaXQgaXMg bWVhbmluZ2xlc3MgdG8gdXNlIHtjaSBsbyBwcmVudX0gYXMgeDEgb2Yge2ptYWppfSAoZ2F0aGVy KSwgYmVjYXVzZSBpdCBpcyBub3QgdGhlIGNhc2UgdGhhdCBlYWNoIG9mIHRocmVlIHBlb3BsZSBz YXRpc2ZpZXMgdGhlIHByZWRpY2F0ZSAiZ2F0aGVyIi4KCgoKSG93ZXZlciwgaWYgd2UgdXNlIHVu b2ZmaWNpYWwgcGx1cmFsIHF1YW50aWZpZXJzIHtybydvaX0gb3Ige3N1J29pfSBmb3IgUEEsIG91 dGVyIHF1YW50aWZpY2F0aW9uIGNhbiBmb3JtIGJvdW5kIHBsdXJhbCB2YXJpYWJsZS4gRm9yIGV4 YW1wbGUsCgpec3Unb2kgcHJlbnUgY3Ugam1hamkgfmhzfiB0aGVyZSBhcmUgcGVvcGxlIHdobyBn YXRoZXIuXgoKVGhpcyBwcm9wb3NpdGlvbiBpcyBpbXBsaWVkIGJ5IGEgcHJvcG9zaXRpb24gaW5j bHVkaW5nIHBsdXJhbCBjb25zdGFudAoKXmxvIHByZW51IGN1IGptYWppIH5oc34gUGVvcGxlIGdh dGhlci5eCgp3aXRoIHRoZSBsb2dpY2FsIGF4aW9tIGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25f cGx1cmFsX2NvbnN0YW50fFNlY3Rpb24gMi4yLjYpKS4KCgoKe1BBIGxvIGJyb2RhfSBkaWZmZXJz IGZyb20ge1BBIGJyb2RhfSBpbiBkb21haW4gb2YgcmVmZXJlbnRzIG9mIGJvdW5kIHNpbmd1bGFy IHZhcmlhYmxlIHRvIGJlIGNvdW50ZWQuIFRoZSBkZWZpbml0aW9ucyBvZiBvdXRlciBxdWFudGlm aWNhdGlvbiBhcmUgYXBwbGllZCB0byB0aGVtIGFzIGZvbGxvd3M6Cgp8fAoKUEEgbG8gYnJvZGEg fmhzfnx+aHN+IFBBIGRhIHBvaSBrZSdhIG1lIGxvIGJyb2RhIH5oc358fmhzfiBUaGUgZG9tYWlu IG9mIGJvdW5kIHNpbmd1bGFyIHZhaWFibGUgaXMgYSByZWZlcmVudCBvZiBwbHVyYWwgY29uc3Rh bnQge2xvIGJyb2RhfSBpbiB0aGUgdW5pdmVyc2Ugb2YgZGlzY291cnNlLCBhbmQgY291bnRlZCB0 byBiZSBQQQoKUEEgYnJvZGEgfmhzfnx+aHN+IFBBIGRhIHBvaSBrZSdhIGJyb2RhIH5oc358fmhz fiBUaGUgZG9tYWluIG9mIGJvdW5kIHNpbmd1bGFyIHZhcmlhYmxlIGlzIGFsbCB0aGF0IGFyZSB7 YnJvZGF9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UsIGFuZCBjb3VudGVkIHRvIGJlIFBB Cgp8fAoKCgpeCgo7RXhhbXBsZSAxOiBybyBqbWl2ZSBiYSBtb3JzaSB+aHN+ICcnQWxsIGxpdmlu ZyB0aGluZ3Mgd2lsbCBkaWUnJwoKO0V4YW1wbGUgMjogcm8gbG8gcHJlbnUgdGkga2xhbWEgfmhz fiAnJ0FsbCB0aGUgcGVvcGxlIGNvbWUgaGVyZScnXgoKRXhhbXBsZSAxIG1lbnRpb25zIGFsbCB7 am1pdmV9IGluIHRoZSB1bml2ZXJzZSBvZiBkaXNjb3Vyc2UuIEluIHRoZSB1bml2ZXJzZSBvZiBk aXNjb3Vyc2Ugb2YgRXhhbXBsZSAyLCBpdCBpcyBwb3NzaWJsZSB0byBpbnRlcnByZXQgdGhhdCB0 aGVyZSBhcmUge3ByZW51fSBvdGhlciB0aGFuIHRoZSByZWZlcmVudCBvZiB0aGUgcGx1cmFsIGNv bnN0YW50IHtsbyBwcmVudX0uCgoKClRoZSBvdXRlciBxdWFudGlmaWNhdGlvbiBieSB7cGlQQX0g Zm9ybXMgcGx1cmFsIGNvbnN0YW50IHtsbyBwaVBBIHNpJ2V9LiBIb3dldmVyLCB4MiBvZiB7cGlQ QSBzaSdlfSBpcyBib3VuZCBzaW5ndWxhciB2YXJpYWJsZSB7cGEgbWUgJydzdW10aScnfS4ge3Bp fSBpbiB0aGlzIGRlZmluaXRpb24gbWVhbnMgIm5vdCBsYXJnZXIgdGhhbiAxIjsgcHJhY3RpY2Fs bHksIHtmaSd1fSBvciBzb21ldGhpbmcgY2FuIGJlIHVzZWQgaW5zdGVhZCBvZiB7cGl9CgoKCiEh ISEjIENvbWJpbmF0aW9uIG9mIG91dGVyIGFuZCBpbm5lciBxdWFudGlmaWNhdGlvbnMKClRoZSBk ZWZpbml0aW9ucyBvZiBpbm5lciBhbmQgb3V0ZXIgcXVhbnRpZmljYXRpb24gaW1wbHkgdGhlIGZv bGxvd2luZyBpbnRlcnByZXRhdGlvbnM6Cgp8fAoKTSBsbyBbW05dIGJyb2RhIH5oc358fmhzfiBN ICh3aGljaCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgZGlzdHJpYnV0aXZlbHkpIG9mIHtsbyBicm9k YX0gW1t0aGF0IGFyZSBOXQoKTSBsb2kgW1tOXSBicm9kYSB+aHN+fH5oc34gTSAod2hpY2ggc2F0 aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5KSBvZiB7bG8gZ3VubWF9IHRoYXQgY29u c2lzdHMgb2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpNIGxvJ2kgW1tOXSBicm9kYSB+aHN+ fH5oc34gTSAod2hpY2ggc2F0aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5KSBvZiB7 bG8gc2VsY21pfSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKcGkg TSBsbyBbW05dIGJyb2RhIH5oc358fmhzfiBRdWFudGl0eSB7cGkgTSBzaSdlfSBvZiBhIHBhcnQg b2Ygb25lIG9mIHtsbyBicm9kYX0gW1t0aGF0IGFyZSBOXQoKcGkgTSBsb2kgW1tOXSBicm9kYSB+ aHN+fH5oc34gUXVhbnRpdHkge3BpIE0gc2knZX0gb2YgYSBwYXJ0IG9mIG9uZSBvZiB7bG8gZ3Vu bWF9IHRoYXQgY29uc2lzdHMgb2Yge2xvIGJyb2RhfSBbW3RoYXQgYXJlIE5dCgpwaSBNIGxvJ2kg W1tOXSBicm9kYSB+aHN+fH5oc34gUXVhbnRpdHkge3BpIE0gc2knZX0gb2YgYSBwYXJ0IChzdWJz ZXQpIG9mIG9uZSBvZiB7bG8gc2VsY21pfSB0aGF0IGNvbnNpc3RzIG9mIHtsbyBicm9kYX0gW1t0 aGF0IGFyZSBOXQoKfHwKCgoKQW1vbmcgdGhlbSwge00gbG8gW1tOXSBicm9kYX0gYW5kIHtwaSBN IGxvaSBbW05dIGJyb2RhfSBjYW4gZXhwcmVzcyBzb21lIG9mIHBsdXJhbCBudW1iZXIgb2YgdGhp bmdzLgoKXgoKO0V4YW1wbGUgMTogcmUgbG8gW1tjaV0gbWxhdHUgbWkgdmlza2EgfmhzfiAnJ1R3 byBbW29mIHRocmVlXSBjYXRzIHNlZSBtZS4nJwoKO0V4YW1wbGUgMjogcmUgZmkndSBjaSBsb2kg W1t2ZWkgY2kgcGknaSBueSAodmUnbyldIG1sYXR1IG1pIHZpc2thIH5oc34gJydUd28gdGhpcmQg b2YgW1szbl0gY2F0cyBzZWUgbWUuJydeCgoKCntyZSBsbyBbW2NpXSBtbGF0dX0gb2YgRXhhbXBs ZSAxIHJlZmVycyB0byB0d28gY2F0cyBhbW9uZyBbW3RocmVlXSBjYXRzIHRoYXQgYXJlIHJlZmVy ZW50IG9mIHtsbyBbW2NpXSBtbGF0dX0uCgpJZiB0aGUgaW5uZXIgcXVhbnRpZmllciB7Y2l9IGlz IG5vdCBzYWlkLCBpdCBpcyB1bmNsZWFyIGhvdyBtYW55IGNhdHMgYXJlIHJlZmVycmVkIHRvIGJ5 IHtsbyBtbGF0dX07IGluIGFueSBjYXNlIHtyZSBsbyBtbGF0dX0gcmVmZXJzIHRvIHR3byBvZiB0 aGVtLgoKCgpJbiBFeGFtcGxlIDIsIHRoZSBhcmd1bWVudCBpcyBmb3JtZWQgYnkge2xvaX0sIGFu ZCB0aGUgcmVmZXJlbnQgaXMgYWN0dWFsbHkge2xvIGd1bm1hfS4gRXhwYW5kaW5nIEV4YW1wbGUg MiBhY2NvcmRpbmcgdG8gdGhlIGRlZmluaXRpb25zIG9mIHtsb2l9IGFuZCB7cGlQQSAnJ3N1bXRp Jyd9LAoKXgoKO0V4YW1wbGUgMi0xOiBsbyByZSBmaSd1IGNpIHNpJ2UgYmUgcGEgbWUgbG8gZ3Vu bWEgYmUgbG8gW1t2ZWkgY2kgcGknaSBueSAodmUnbyldIG1sYXR1IG1pIHZpc2thXgoKVGhhdCBp cyB0byBzYXksIHtyZSBmaSd1IGNpIGxvaS4uLn0gcmVmZXJzIHRvIHR3byB0aGlyZCBvZiBhbiBp bmRpdmlkdWFsIHtwYSBtZSBsbyBndW5tYS4uLn0uIFRoaXMge2xvIGd1bm1hfSBjb25zaXN0cyBv ZiB7dmVpIGNpIHBpJ2kgbnkgKHZlJ28pfSBjYXRzLiAKCklmIHRoZSBpbm5lciBxdWFudGlmaWVy IGlzIG5vdCBzYWlkLCBpdCBpcyB1bmNsZWFyIGhvdyBtYW55IGNhdHMgY29uc3RpdHV0ZSB7bG8g Z3VubWF9IHRoYXQgaXMge2xvaSBtbGF0dX07IGluIGFueSBjYXNlIHtyZSBmaSd1IGNpIGxvaSBt bGF0dX0gcmVmZXJzIHRvIHR3byB0aGlyZCBvZiB7bG8gZ3VubWF9LiBIb3dldmVyLCAKCl5yZSBm aSd1IGNpIGxvaSBtbGF0dSBtaSB2aXNrYV4KCmlzIG1lYW5pbmdmdWwgb25seSB3aGVuIHtsb2kg bWxhdHV9IGNvbnNpc3RzIG9mIDNuIGNhdHMsIGJlY2F1c2UgaXQgaXMgbm90IG9yZGluYXJ5IHRv IGludGVycHJldCB0aGF0IGEgZnJhZ21lbnQgb2YgYSBjYXQgc2F0aXNmaWVzIHRoZSBwcmVkaWNh dGUge3Zpc2thfS4KCkFjY29yZGluZyB0byBCUEZLJ3MgZGVmaW5pdGlvbiwge2xvaX0gY2Fubm90 IGZvcm0gYSBwbHVyYWwgY29uc3RhbnQgdGhhdCBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgbm9uLWNv bGxlY3RpdmVseS4gSWYgeW91IHdhbnQgdG8gbWVhbiAiY2F0cyBzZWUgbWUgbm9uLWNvbGxlY3Rp dmVseSIsIGF2b2lkIHtsb2l9LCBvciB1c2Uge2x1J2F9LCB3aGljaCB3aWxsIGJlIGRpc2N1c3Nl ZCBpbiAoKHwjUmVsYXRpb25fYmV0d2Vlbl9sdV9hX2x1X29fbHVfaV9hbmRfZ2Fkcml8U2VjdGlv biAzLjMpKToKCl5sdSdhIHJlIGZpJ3UgY2kgbG9pIG1sYXR1IG1pIHZpc2thXgoKCgohISEjIFJl bGF0aW9uIGJldHdlZW4gbHUnYSwgbHUnbywgbHUnaSBhbmQgZ2FkcmkKCigoQlBGSyBTZWN0aW9u OiBJbmRpcmVjdCBSZWZlcmVyc3xCUEZLIGRlZmluZXMpKSB7bHUnYX0sIHtsdSdvfSwge2x1J2l9 IG9mIExBaEUgYXMgZm9sbG93czoKCnx8CgpsdSdhICcnc3VtdGknJyB+aHN+fH5oc34gbG8gbWUg JydzdW10aScnIH5oc358fmhzfiBsbyBjbWltYSBiZSAnJ3N1bXRpJycgW1tub2kgc2VsY21pXQoK bHUnbyAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvaSBtZSAnJ3N1bXRpJycKCmx1J2kgJydzdW10aScn IH5oc358fmhzfiBsbydpIG1lICcnc3VtdGknJwoKfHwKCkhvd2V2ZXIsIGd1ZXNzaW5nIGZyb20g dGhlIEVuZ2xpc2ggZGVmaW5pdGlvbnMgb24gdGhlIHNhbWUgcGFnZSwgdGhlIGRlZmluaXRpb24g b2Yge2x1J2F9IGlzIHVuc2F0aXNmYWN0b3J5LCBhbmQgdGhhdCBvZiB7bHUnb30gaGFzIHNvbWUg cHJvYmxlbS4KCgoKe2x1J2F9IGV4dHJhY3RzIHgyIG9mIHtzZWxjbWl9IGZyb20gc3VtdGkgdGhh dCBpcyB7bG8gc2VsY21pfSwgYW5kIHgyIG9mIHtndW5tYX0gZnJvbSBzdW10aSB0aGF0IGlzIHts byBndW5tYX0uIE1vcmVvdmVyLCB7bHUnYX0gbWFrZXMgZXhwbGljaXQgdGhhdCB0aGUgc3VtdGkg c2F0aXNmaWVzIGEgcHJlZGljYXRlIGRpc3RyaWJ1dGl2ZWx5IGFuZCBub24tY29sbGVjdGl2ZWx5 LiBPbiB0aGUgb3RoZXIgaGFuZCwgYWNjb3JkaW5nIHRvIHRoZSBkZWZpbml0aW9uIG9mIHtsb30s IHtsbyBtZSAnJ3N1bXRpJyd9IGRvZXMgbm90IGltcGx5ICJkaXN0cmlidXRpdmVseSBhbmQgbm9u LWNvbGxlY3RpdmVseSIuCgoKCntsdSdvfSBtYWtlcyBleHBsaWNpdCB0aGF0IHRoZSBzdW10aSBz YXRpc2ZpZXMgYSBwcmVkaWNhdGUgbm9uLWRpc3RyaWJ1dGl2ZWx5IGFuZCBjb2xsZWN0aXZlbHku IE9uIHRoZSBvdGhlciBoYW5kLCBhY2NvcmRpbmcgdG8gdGhlIGRlZmluaXRpb24gb2Yge2xvaX0s IHtsb2kgbWUgJydzdW10aScnfSBzYXRpc2ZpZXMgYSBwcmVkaWNhdGUgY29sbGVjdGl2ZWx5LCBi dXQgc3RpbGwgdW5jbGVhciBpZiBpdCBkb2VzIG5vbi1kaXN0cmlidXRpdmVseS4gRm9yIGNvbnNp c3RlbmN5LCBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gYWRkICJ7bG9pIGJyb2RhfSBpbXBsaWVzIHRo YXQgcmVmZXJlbnQgb2YgeDEgb2YgYnJvZGEgY29sbGVjdGl2ZWx5IGFuZCBub24tZGlzdHJpYnV0 aXZlbHkgc2F0aXNmaWVzIGEgcHJlZGljYXRlIiB0byB0aGUgZGVmaW5pdGlvbiBvZiB7bG9pfS4K CgoKQXMgYSBjb25jbHVzaW9uIG9mIHRoaXMgc2VjdGlvbiwgSSBzdWdnZXN0IHRvIHJlLWRlZmlu ZSB7bHUnYX0gYXMgZm9sbG93czoKCjsgVW5vZmZpY2lhbCBkZWZpbml0aW9uIG9mIHtsdSdhfTp8 fAoKbHUnYSAnJ3N1bXRpJycgfmhzfnx+aHN+IGxvIGNtaW1hIGJlICcnc3VtdGknJyBub2kgc2Vs Y21pIGt1IG9uYWkgbG8gc2UgZ3VubWEgYmUgJydzdW10aScnIG5vaSBndW5tYSBrdSBvbmFpIGxv IG1lICcnc3VtdGknJyBrdSB+cHB+Cgp+L3BwfiB+aHN+IHZ1J28gbm9pIHN1J28gZGEgem8ndSBk YSBtZSBrZSdhIGdpJ2Ugbm8nYQoKfHwKCkluIHtub2l9IGNsYXVzZSBhZnRlciB7dnUnb30sIGl0 IGlzIG1hZGUgZXhwbGljaXQgdGhhdCB0aGUgcmVmZXJlbnQgb2Yge2x1J2EgJydzdW10aScnfSBk aXN0cmlidXRpdmVseSBzYXRpc2ZpZXMgdGhlIHNlbnRlbmNlIHRoYXQgaW5jbHVkZXMgdGhpcyBz dW10aS4KCgoKISEjIE5vdGVzCgpUaGlzIHNlY3Rpb24gY29uc2lzdHMgb2Ygbm90ZXMgb2YgdGhl IGF1dGhvciBndXNrYW50LCBhbmQgaXQgaXMgbm90IGF0IGFsbCBpbXBvcnRhbnQgZm9yIHVuZGVy c3RhbmRpbmcgZ2FkcmkuCgoKCiEhISMgQWJvdXQgb250b2xvZ3kKCl4oKEJQRksgU2VjdGlvbjog Z2Fkcml8JydQb3NpdGl2ZSBpbXBhY3Q6IFNvbWUgdXNhZ2VzIHRoYXQgbWFrZSBsaXR0bGUgc2Vu c2Ugd2l0aCB7bG99PXtzdSdvfSBiZWNvbWUgdmFsaWRhdGVkLicnKSkgYWNjb3JkaW5nIHRvIEJQ RksuXgoKCgp7bG99PXtzdSdvfSB3YXMgYWJhbmRvbmVkLCBidXQgYmVjYXVzZSBvZiB0aGUgZmFj dCB0aGF0IHtsbyBicm9kYX0gaXMgYSBwbHVyYWwgY29uc3RhbnQsIGFuZCBiZWNhdXNlIG9mIGEg bG9naWNhbCBheGlvbSBvZiBwbHVyYWwgY29uc3RhbnQgaW4gKCh8I0FfbG9naWNhbF9heGlvbV9v bl9wbHVyYWxfY29uc3RhbnR8U2VjdGlvbiAyLjIuNikpLCB7bG8gYnJvZGEgY3UgYnJvZGV9IGlt cGxpY2l0bHkgaW1wbGllcyB7c3Unb2kgZGEgYnJvZGV9LgoKCgohISEjIGNsYXh1IHgyCgpeKChC UEZLIFNlY3Rpb246IGdhZHJpfGxlIGNtYW5hIF9fbG9fXyBjaWRqYSBiYSBjbGF4dSkpfnBwfgoK fi9wcH4gICcnSW4gdGhlIG1vdW50YWlucyB0aGVyZSBpcyBubyBmb29kLicnfnBwfgoKfi9wcH4o KGxhcG9pIHBlbHh1IGt1J28gdHJhanlub2JsaSkpXgoKCgpFeHBhbmRpbmcge2xvIGNpZGphfSwg CgpebGUgY21hbmEgem8nZSBub2kga2UnYSBjaWRqYSBrdSdvIGJhIGNsYXh1XgoKQWNjb3JkaW5n IHRvICgoQlBGSyBTZWN0aW9uOiBTdWJvcmRpbmF0b3JzfHRoZSBkZWZpbml0aW9uIG9mIHtub2l9 KSksIAoKXmxlIGNtYW5hIHpvJ2UgdG8gcmkgeGkgcmF1IGNpZGphIHRvaSBiYSBjbGF4dV4KClRo ZSBwYXJ0IGJldHdlZW4ge3RvfSBhbmQge3RvaX0gaXMgYSBwYXJlbnRoZXRpY2FsIGV4cHJlc3Np b24uIFRoZSBtYWluIHByb3Bvc2l0aW9uIGlzIHRodXMKCl5sZSBjbWFuYSB6bydlIGJhIGNsYXh1 XgoKd2hlcmUge3pvJ2V9IGlzIGEgcGx1cmFsIGNvbnN0YW50LiBBY2NvcmRpbmcgdG8gdGhlIGxv Z2ljYWwgYXhpb20gb2YgcGx1cmFsIGNvbnN0YW50IGluICgofCNBX2xvZ2ljYWxfYXhpb21fb25f cGx1cmFsX2NvbnN0YW50fFNlY3Rpb24gMi4yLjYpKSwgVGhpcyBwcm9wb3NpdGlvbiBpbXBsaWVz IAoKXnN1J29pIGRhIHpvJ3UgbGUgY21hbmEgZGEgYmEgY2xheHVeCgp3aGljaCBtZWFucyB0aGF0 IHRoZXJlIGlzIGEgcmVmZXJlbnQgb2YgIndoYXQgaXMgbGFja2VkIGJ5IHRoZSBtb3VudGFpbiIg aW4gdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZS4KClRoZSBzdHJhbmdlbmVzcyBjb21lcyBmcm9t IHRoZSBmYWN0IHRoYXQgeDIgb2Yge2NsYXh1fSBfX2FwcGFyZW50bHlfXyBtZWFucyBub24tZXhp c3RlbmNlLiBXZSBjYW4gaW50ZXJwcmV0IGl0IGNvbnNpc3RlbnRseSB0aGF0IHtjbGF4dX0gbWVh bnMgb25seSB0aGF0IHRoZSByZWZlcmVudCBvZiB4MiBpcyBub3QgcGxhY2VkIGF0IHRoZSByZWZl cmVudCBvZiB4MSwgYW5kIGl0IHNheXMgbm90aGluZyBhYm91dCBleGlzdGVuY2UgaW4gdGhlIHVu aXZlcnNlIG9mIGRpc2NvdXJzZS4gCgoKCiEhISMgem8nZSBpcyBhIHBsdXJhbCBjb25zdGFudAoK QXNzdW1pbmcgdGhhdCB7em8nZX0gY2FuIGJlIGFueSBvZiBmcmVlIHZhcmlhYmxlLCBib3VuZCBw bHVyYWwgdmFyaWFibGUgb3IgcGx1cmFsIGNvbnN0YW50LCB0aGUgbGFuZ3VhZ2Ugd291bGQgYmUg bW9yZSByZWFzb25hYmxlIGZyb20gYSBsb2dpY2FsIHBvaW50IG9mIHZpZXcuCgpIb3dldmVyLCB0 aGlzIGlkZWEgd2FzIGNsZWFybHkgZGVuaWVkIGluIFtodHRwczovL2dyb3Vwcy5nb29nbGUuY29t L2QvdG9waWMvbG9qYmFuL1JBdEU3WWstZHF3L2Rpc2N1c3Npb258dGhlIGRpc2N1c3Npb25dLiBU aGF0IGlzIHRvIHNheSwge3pvJ2V9IGlzIGFsd2F5cyBhIHBsdXJhbCBjb25zdGFudCBhY2NvcmRp bmcgdG8gdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uLgoKSSB3aWxsIGV4YW1pbmUgdGhlc2Ug Y29uZmxpY3RpbmcgaWRlYXMsIGFuZCB0cnkgdG8gc29sdmUgc29tZSBwcm9ibGVtcyBjYXVzZWQg YnkgdGhlIG9mZmljaWFsIGludGVycHJldGF0aW9uIHRoYXQge3pvJ2V9IGlzIGEgcGx1cmFsIGNv bnN0YW50LgoKCgohISEhIyBJZiB6bydlIGNvdWxkIGJlIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxl CgpJIHdpbGwgbGlzdCB1cCBoZXJlIG1lcml0cyBhbmQgZGVtZXJpdHMgb2YgYXNzdW1pbmcgdGhh dCB7em8nZX0gaW4gbm8gY29udGV4dCBpcyBhIGZyZWUgdmFyaWFibGUsIGFuZCB0aGF0IHRoZSBj b250ZXh0IGRldGVybWluZXMgdGhlIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSwgYmFzZWQgb24gd2hp Y2gge3pvJ2V9IGlzIHJlZ2FyZGVkIGFzIHN1YnN0aXR1dGVkIGZvciBieSBhIHBsdXJhbCBjb25z dGFudCwgb3IgYm91bmQgYnkgYSBwbHVyYWwgcXVhbnRpZmllci4KCgoKISEhISEjIE1lcml0cwoK VW5kZXIgdGhpcyBhc3N1bXB0aW9uLCB0aGVyZSBpcyBubyBuZWVkIHRvIGV4Y2x1ZGUgdGhlIGNh c2UgUEE9MCBvZiB7bG8gUEEgYnJvZGF9LCBvciBnaXZlIGl0IGFuIHVub2ZmaWNpYWwgZGVmaW5p dGlvbiBhcyBkaXNjdXNzZWQgaW4gKCh8I0Nhbm5vdF9zYXlfemVyb3xTZWN0aW9uIDMuMS4yLjEp KS4gSXQgaXMgYmVjYXVzZSBpZiB7bG8gUEEgYnJvZGF9IGluIG5vIGNvbnRleHQgaXMgYSBmcmVl IHZhcmlhYmxlLCB3ZSBjYW4gaW50ZXJwcmV0IGl0LCB3aGVuIGEgY29udGV4dCBpcyBnaXZlbiwg YXMgc3Vic3RpdHV0ZWQgZm9yIGJ5IGEgcGx1cmFsIGNvbnN0YW50IG9yIGJvdW5kIGJ5IGEgcGx1 cmFsIHF1YW50aWZpZXIgbGlrZSB7c3Unb2kgZGF9IGluIHRoZSBjYXNlIG9mIFBBPjA7IHdlIGNh biBpbnRlcnByZXQgaXQgYXMgYm91bmQgYnkge25ha3Ugc3Unb2kgZGF9IGluIHRoZSBjYXNlIG9m IFBBPTAgYXMgd2VsbC4KCgoKVGhpcyBhc3N1bXB0aW9uIG1ha2VzIHRoZSBpbnRlcnByZXRhdGlv biBjbG9zZXIgdG8gbmF0dXJhbCBsYW5ndWFnZXMgbm90IG9ubHkgaW4gdGhlIGNhc2UgUEE9MCBi dXQgYWxzbyBpbiB0aGUgY2FzZSBQQT4wLiBGb3IgZXhhbXBsZSwgCgpebG8gY2kgeGFudG8gY3Ug emlsa2FuY3UgbGkgY2kgbG8geGFudG9eCgpUaGUgbGFzdCB7bG8geGFudG99IGlzIGEgdW5pdCBv ZiBjb3VudGluZy4gSXQgaXMgbmF0dXJhbCB0byBpbnRlcnByZXQgaXQgYXMgYSBib3VuZCBwbHVy YWwgdmFyaWFibGUgcXVhbnRpZmllZCBieSAiMSIgcmF0aGVyIHRoYW4gYSBwbHVyYWwgY29uc3Rh bnQsIHdoaWNoIHNob3VsZCByZWZlciB0byBzb21ldGhpbmcuIElmIHdlIGludGVycHJldCBpdCBh cyBhIGJvdW5kIHBsdXJhbCB2YXJpYWJsZSwgd2Ugc2hvdWxkIGNvbnNpZGVyIHRoZSByZWxhdGl2 ZSBvcmRlciB3aXRoIHRoZSBvdGhlciBib3VuZCB2YXJpYWJsZXMgYW5kIHtuYWt1fS4gV2UgY2Fu IGhhbmRsZSB0aGUgb3JkZXIgZnJlZWx5IGJ5IHB1dHRpbmcgdGhlIGFyZ3VtZW50cyBpbiBwcmVu ZXguCgoKCk1vcmVvdmVyLCB0aGlzIGFzc3VtcHRpb24gZW1ib2RpZXMgdGhlIHByb3BlcnR5IG9m IG5hdHVyYWwgbGFuZ3VhZ2VzIHRoYXQgdGhlIHRydXRoIHZhbHVlIG9mIGEgcHJvcG9zaXRpb24g aW4gbm8gY29udGV4dCBpcyBnZW5lcmFsbHkgaW5kZWZpbml0ZS4gQnkgaW50ZXJwcmV0aW5nIHRo YXQge3pvJ2V9IGluIG5vIGNvbnRleHQgaXMgYSBmcmVlIHZhcmlhYmxlLCB3aGljaCB3aWxsIGJl IHN1YnN0aXR1dGVkIGZvciBieSBhIHBsdXJhbCBjb25zdGFudCBvciBib3VuZCBieSBhIHBsdXJh bCBxdWFudGlmaWVyIHdoZW4gYSBjb250ZXh0IGlzIGdpdmVuLCBuYXR1cmFsIGludGVycHJldGF0 aW9uIG9mIExvamJhbiBzZW50ZW5jZSBpcyBwb3NzaWJsZSB3aXRob3V0IGxvc2luZyBsb2dpY2Fs IGFzcGVjdHMgYW5kIHN0cnVjdHVyYWwgYmVhdXR5LgoKCgohISEhISMgRGVtZXJpdHMKCkJlY2F1 c2Uge3pvJ2V9IGNhbiBiZSBhIGZyZWUgdmFyaWFibGUsIGEgYm91bmQgcGx1cmFsIHZhcmlhYmxl IG9yIGEgcGx1cmFsIGNvbnN0YW50IGRlcGVuZGluZyBvbiB0aGUgY29udGV4dCwgYSBzaW5nbGUg YnJpZGkgZG9lcyBub3QgbGV0IGxpc3RlbmVycyBkZXRlcm1pbmUgd2hpY2ggb2YgdGhlbSBpcyB0 aGUgY3VycmVudCB7em8nZX0sIG9yIHRoZSB0cnV0aCB2YWx1ZSBvZiB0aGUgcHJvcG9zaXRpb24u CgpIb3dldmVyLCBzdWNoIGFuIGFzcGVjdCB0aGF0IHRoZSB0cnV0aCB2YWx1ZSBvZiBhIHByb3Bv c2l0aW9uIGdlbmVyYWxseSBkZXBlbmRzIG9uIHRoZSBjb250ZXh0IGlzIGEgY29tbW9uIHByb3Bl cnR5IHRvIGFsbCBuYXR1cmFsIGxhbmd1YWdlcy4KCgoKT24gdGhlIG90aGVyIGhhbmQsIGV2ZW4g aWYgd2UgdGFrZSB0aGUgb2ZmaWNpYWwgaW50ZXJwcmV0YXRpb24gdGhhdCB7em8nZX0gaXMgYWx3 YXlzIGEgcGx1cmFsIGNvbnN0YW50LCBsaXN0ZW5lcnMgYXJlIG9ubHkgaW5mb3JtZWQgYnkge3pv J2V9IHRoYXQgYSBjZXJ0YWluIHVuaXZlcnNlIG9mIGRpc2NvdXJzZSBpcyBnaXZlbi4gV2l0aCBu byBjb250ZXh0LCB0aGVyZSBpcyBubyB3YXkgdG8gZGV0ZXJtaW5lIHdoYXQgaXMgdGhlIHVuaXZl cnNlIG9mIGRpc2NvdXJzZS4gVGhlIHRydXRoIHZhbHVlIG9mIGEgcHJvcG9zaXRpb24gaW4gbm8g Y29udGV4dCBpcyBpbmRlZmluaXRlIGV2ZW4gd2l0aCB0aGUgb2ZmaWNpYWwgaW50ZXJwcmV0YXRp b24uCgoKCiEhISEjIFByb2JsZW1zIGNhdXNlZCBieSB0aGUgZmFjdCB0aGF0IHpvJ2UgaXMgYSBw bHVyYWwgY29uc3RhbnQgYW5kIHRoZSBjb3VudGVyLW1lYXN1cmVzCgpUaGUgb2ZmaWNpYWwgaW50 ZXJwcmV0YXRpb24gdGhhdCB7em8nZX0gaXMgYSBwbHVyYWwgY29uc3RhbnQgY2F1c2VzIHRoZSBm b2xsb3dpbmcgcHJvYmxlbXMuCgoKCiEhISEhIyBDYW5ub3QgZXhwcmVzcyBwbHVyYWwgcXVhbnRp ZmljYXRpb24gb2Ygbm9uLWV4aXN0ZW5jZQoKUmVhc29uYWJsZSBpbnRlcnByZXRhdGlvbiBvZiB7 bG8gbm8gYnJvZGF9IGlzIG9mZmljaWFsbHkgZXhjbHVkZWQgZnJvbSBMb2piYW4uIFRoYXQgaXMg dG8gc2F5LCBMb2piYW4gY2Fubm90IG9mZmljaWFsbHkgZGVhbCB3aXRoIHRoZSBleHByZXNzaW9u ICJ0aGVyZSBpcyBub3Qgd2hhdCBpcyBzdWJzdGl0dXRlZCBmb3Ige2RhfSIgZm9yIHBsdXJhbCB2 YXJpYWJsZSAoe25ha3Ugc3Unb2kgZGF9KSwgd2hpY2ggaXMgbmF0dXJhbGx5IGRlYWx0IHdpdGgg YnkgcGx1cmFsIHF1YW50aWZpY2F0aW9uLiBJbiBvcmRlciB0byBleHByZXNzIHtsbyBubyBicm9k YX0gd2l0aCByZWFzb25hYmxlIGludGVycHJldGF0aW9uLCB3ZSBuZWVkIGFuIHVub2ZmaWNpYWwg aW50ZXJwcmV0YXRpb24gbGlrZSAoKHwjQ2Fubm90X3NheV96ZXJvfFNlY3Rpb24gMy4xLjIuMSkp LgoKCgohISEhISMgQ2Fubm90IGV4cHJlc3MgYm91bmQgcGx1cmFsIHZhcmlhYmxlLCB3aGljaCBk b2VzIG5vdCBzcGVjaWZ5IGEgcmVmZXJlbnQKCkJlY2F1c2UgdGhlIG9mZmljaWFsIGludGVycHJl dGF0aW9uIGRvZXMgbm90IGFsbG93IHtsbyBQQSBicm9kYX0gdG8gYmUgYSBib3VuZCBwbHVyYWwg dmFyaWFibGUgZGVwZW5kaW5nIG9uIHRoZSBjb250ZXh0LCBhbiBhcmd1bWVudCB0aGF0IHNob3Vs ZCByZWZlciB0byBub3RoaW5nLCBhIHVuaXQgb2YgY291bnRpbmcgZm9yIGV4YW1wbGUsIHNob3Vs ZCBiZSBpbnRlcnByZXRlZCBhcyBhIHBsdXJhbCBjb25zdGFudCwgd2hpY2ggcmVmZXJzIHRvIHNv bWV0aGluZy4gRm9yIGV4YW1wbGUgCgpebG8gY2kgeGFudG8gY3Ugemlsa2FuY3UgbGkgY2kgbG8g eGFudG9eCgpmb3Igd2hpY2ggd2UgYXJlIGNvbXBlbGxlZCB0byBpbnRlcnByZXQgdGhhdCB0aGVy ZSBpcyB0aGUgIkVsZXBoYW50IGRlcyBBcmNoaXZlcyIgaW4gdGhlIHVuaXZlcnNlIG9mIGRpc2Nv dXJzZSwganVzdCBsaWtlIHRoZSAiTcOodHJlIGRlcyBBcmNoaXZlcyIgKGFsdGhvdWdoIGl0IGhh cyBhbHJlYWR5IGZpbmlzaGVkIGl0cyByb2xlKSwgaW4gb3JkZXIgdG8gdXNlIHtsbyB4YW50b30g YXMgYSB1bml0IGluIGEgcHJvcG9zaXRpb24uCgoKCiEhISEhIyBDYW5ub3QgZXhwcmVzcyBlbGVt ZW50YXJ5IHBhcnRpY2xlcyB3aXRoIGxvCgpBcyBsb25nIGFzIHtsbyBicm9kYX0gaXMgaW50ZXJw cmV0ZWQgYXMgYSBwbHVyYWwgY29uc3RhbnQsIHRoZSBmb2xsb3dpbmcgTG9qYmFuIHNlbnRlbmNl IGlzIG1lYW5pbmdsZXNzOgoKCgpebG8gZ3Vza2EndSBjdSBnYXUgam1hamkgc2VwaSdvIGxvIGxl bmpvIGdpJ2UgcGFncmUgbG8gZmVucmF+cHB+Cgp+L3BwficnUGhvdG9ucyBhcmUgY29uZGVuc2Vk IGJ5IGxlbnNlcywgYW5kIHBhc3MgdGhyb3VnaCBzbGl0cy4nJ14KCgoKQWN0dWFsbHksIHBob3Rv bnMgYXJlIGluZGl2aWR1YWxzLCBhbmQgd2UgY2FuIGNvdW50IHRoZW0sIGJ1dCB3ZSBjYW5ub3Qg ZGlzdGluZ3Vpc2ggZWFjaCBvZiB0aGVtOiB3ZSBjYW5ub3QgcmVmZXIgdG8gYSBzcGVjaWZpYyBw aG90b24uIFF1YW50aWZpY2F0aW9uIGlzIGluZGVlZCBzdWl0YWJsZSBmb3IgYXJndW1lbnRzIHRo YXQgcmVwcmVzZW50IHBhcnRpY2xlcyBsaWtlIHBob3RvbnMuIEhvd2V2ZXIsIExvamJhbiBvZmZp Y2lhbGx5IGRvZXMgbm90IGhhdmUgYSBwbHVyYWwgcXVhbnRpZmllciwgYW5kIGNhbm5vdCBleHBy ZXNzIHF1YW50aWZpY2F0aW9uIG9mICBzdW10aSB0aGF0IHNhdGlzZmllcyBzZWxicmkgYm90aCBj b2xsZWN0aXZlbHkgYW5kIGRpc3RyaWJ1dGl2ZWx5LiBNb3Jlb3ZlciwgYmVjYXVzZSB7bG8gYnJv ZGF9IGlzIG9mZmljaWFsbHkgYWx3YXlzIGEgcGx1cmFsIGNvbnN0YW50LCB0aGVyZSBpcyBubyBy b29tIHRvIGludGVycHJldCB7bG8gZ3Vza2EndX0gYXMgYSBib3VuZCBwbHVyYWwgdmFyaWFibGUu IEluIG9yZGVyIHRvIHNvbHZlIHRoZSBwcm9ibGVtLCB3ZSBzaG91bGQgdXNlIGFuIHVub2ZmaWNp YWwgcGx1cmFsIHF1YW50aWZpZXIge3N1J29pfSBzdWdnZXN0ZWQgYnkgKCh4b3J4ZXN8bGEgeG9y eGVzKSkuCgoKCl5zdSdvaSBkYSBwb2kga2UnYSBndXNrYSd1IGN1IGdhdSBqbWFqaSBzZXBpJ28g bG8gbGVuam8gZ2knZSBwYWdyZSBsbyBmZW5yYV4KCgoKISEhISEjIEhvdyB0byBpbnRlcnByZXQg YSBwcmV2YWlsaW5nIHZpZXcKClRoZSBmb2xsb3dpbmcgZXhhbXBsZSBpcyBnaXZlbiBvbiAoKEJQ RksgU2VjdGlvbjogZ2Fkcml8QlBGSydzIGdhZHJpIHBhZ2UpKToKCgoKXmxvIHBhIHBpeHJhIGN1 IHNlIHZhbWppIGxvIGtpJ28gdmFsc2l+cHB+Cgp+L3BwficnT25lIHBpY3R1cmUgaXMgd29ydGgg YSB0aG91c2FuZCB3b3Jkcy4nJyBeCgoKCkV2ZW4gaW4gc3VjaCBhIHNlbnRlbmNlIHRoYXQgc2Vl bXMgYSBwcmV2YWlsaW5nIHZpZXcsIHtsbyBwYSBwaXhyYX0gYW5kIHtsbyBraSdvIHZhbHNpfSBh cmUgaW50ZXJwcmV0ZWQgYXMgcmVmZXJyaW5nIHRvIHNvbWV0aGluZy4gV2Ugc2hvdWxkIHByZXBh cmUgc29tZSByZWZlcmVudHMgb2Ygc3VtdGkgb2YgYSBwcmV2YWlsaW5nIHZpZXcgaW4gdGhlIHVu aXZlcnNlIG9mIGRpc2NvdXJzZS4KCgoKSW50dWl0aW9uYWxseSBzcGVha2luZywgd2UgbWF5IHVz ZSB7bG8nZX0gaW5zdGVhZCBvZiB7bG99LCBidXQgd2UgY2Fubm90IHlldCBleHBsYWluIHtsbydl fSBmcm9tIGEgbG9naWNhbCBwb2ludCBvZiB2aWV3IGJlY2F1c2UgKChCUEZLIFNlY3Rpb246IFR5 cGljYWxzfGFjdHVhbGx5IHRoZXJlIGlzIG5vIG9mZmljaWFsIGNvbmNsdXNpb24gYWJvdXQgcmVs YXRpb24gYmV0d2VlbiB7bG8nZX0gYW5kIHtsb30pKS4KCgoKQXMgYSBtZXRob2Qgb2YgYXZvaWRp bmcgbWVudGlvbiBvZiBhIHJlZmVyZW50IGluIGFuIGV4cHJlc3Npb24gb2YgcHJldmFpbGluZyB2 aWV3LCB3ZSBtYXkgcHV0IHRoZSB3aG9sZSBwcm9wb3NpdGlvbiBpbiBOVSBjbGF1c2UuIEluIGZh Y3QsIHRydXRoIHZhbHVlIG9mIGEgcHJvcG9zaXRpb24gaW4gTlUgY2xhdXNlIGRvZXMgbm90IGlu Zmx1ZW5jZSB0cnV0aCB2YWx1ZSBvZiB0aGUgb3V0ZXIgcHJvcG9zaXRpb24gKHJlZmVyZW50aWFs bHkgb3BhcXVlOyB0aGlzIHRvcGljIGlzIHJlbGF0ZWQgdG8gW2h0dHA6Ly9kYWcuZ2l0aHViLmlv L2NsbC85LzcvfENMTDkuN10pLiBJbiBvdGhlciB3b3JkcywgdGhlIHVuaXZlcnNlIG9mIGRpc2Nv dXJzZSBvZiBhIHByb3Bvc2l0aW9uIGluIE5VIGNsYXVzZSBpcyBkaWZmZXJlbnQgZnJvbSB0aGUg dW5pdmVyc2Ugb2YgZGlzY291cnNlIG9mIGEgcHJvcG9zaXRpb24gb3V0IG9mIE5VLgoKSWYgd2Ug YWNjZXB0IHRoaXMgbWV0aG9kLCB0aGUgZXhhbXBsZSBhYm92ZSB3aWxsIGJlIG1vZGlmaWVkLCB1 c2luZyB7c2knb30gZm9yIGV4YW1wbGUsIGFzIGZvbGxvd3M6CgoKCl5zaSdvIGxvIHBhIHBpeHJh IGN1IHNlIHZhbWppIGxvIGtpJ28gdmFsc2kgfnBwfgoKfi9wcH4nJ0lzIGFuIGlkZWEgdGhhdCBv bmUgcGljdHVyZSBpcyB3b3J0aCBhIHRob3VzYW5kIHdvcmRzLicnXgoKCgp3aGVyZSB4MSBvZiB7 c2knb30gaXMgaW1wbGljaXQge3pvJ2V9LCB3aGljaCBoYXMgYSByZWZlcmVudCBpbiB0aGUgdW5p dmVyc2Ugb2YgZGlzY291cnNlLiBBcyBhbiBpbnRlcnByZXRhdGlvbiBvZiBhIHByZXZhaWxpbmcg dmlldywgc3VwcG9zaW5nIGEgcmVmZXJlbnQgb2YgeDEgb2Yge3NpJ299IGlzIG1vcmUgbmF0dXJh bCB0aGFuIHN1cHBvc2luZyBhIHJlZmVyZW50IG9mIHtsbyBwYSBwaXhyYX0gb3Ige2xvIGtpJ28g dmFsc2l9LgoKKFN1Y2ggYSBicmlkaSB3aXRoIG5vIHRlcmJyaSBpcyBjYWxsZWQgIm9ic2VydmF0 aXZlIiBpbiAoKFRoZSBDb21wbGV0ZSBMb2piYW4gTGFuZ3VhZ2UpKSwgYnV0IHRoaXMgaW50ZXJw cmV0YXRpb24gaXMgbm90IHN1aXRhYmxlIGhlcmUsIGJlY2F1c2UgdGhpcyBpcyBub3QgdGhlIHV0 dGVyYW5jZSB0aGF0IGlzIGFsd2F5cyBjYXVzZWQgYnkgYSBzcGVjaWZpYyBzdGltdWx1cy4pCgoK CiEhISEhIyBIb3cgdG8gZXhwcmVzcyBmcmVlIHZhcmlhYmxlcwoKQXMgYSBjdXN0b20sIGtvJ1Yv Zm8nViBzZXJpZXMgb2YgS09oQTQgYXJlIHVzZWQgYXMgZnJlZSB2YXJpYWJsZXMgaW4gZGVmaW5p dGlvbnMgb2Ygd29yZHMgb3Igc29tZXRoaW5nLiBIb3dldmVyLCB0aGV5IGFyZSBhY3R1YWxseSBw bHVyYWwgY29uc3RhbnRzLgoKSWYgd2UgYWJhbmRvbiB0aGlzIGN1c3RvbSwge2tlJ2F9IGFuZCB7 Y2UndX0gYXJlIHN1aXRhYmxlIGZvciBleHByZXNzaW9uIHdpdGggZnJlZSB2YXJpYWJsZXMgKG9w ZW4gc2VudGVuY2UpLCBiZWNhdXNlIHRoZSB0cnV0aCB2YWx1ZSBvZiBicmlkaSBpbiB3aGljaCB7 a2UnYX0gb3Ige2NlJ3V9IGlzIHVzZWQgaXMgaW5kZWZpbml0ZS4gCgpJbiBhIGJyaWRpIGluIHdo aWNoIHtrZSdhfSBhcHBlYXJzIHR3byB0aW1lcyBvciBtb3JlLCB0aGVzZSB7a2UnYX1zIGFyZSBy ZWdhcmRlZCBhcyByZXByZXNlbnRpbmcgYW4gaWRlbnRpY2FsIHN1bXRpOgoKXmRhIHBvaSBrZSdh IGd5IHhsdXJhIGtlJ2EgY3UgcGFuY2kgbG8ga2EnZSBzZSBjaXRrYX5wcH4KCn4vcHB+fi0tfiAo KGxvIG51IGJpbnhvKSleCgpPbiB0aGUgb3RoZXIgaGFuZCwgaW4gYSBicmlkaSBpbiB3aGljaCB7 Y2UndX0gYXBwZWFycyB0d28gdGltZXMgb3IgbW9yZSwgdGhlc2Uge2NlJ3V9cyBhcmUgbm90IG5l Y2Vzc2FyaWx5IHJlZ2FyZGVkIGFzIHJlcHJlc2VudGluZyBhbiBpZGVudGljYWwgc3VtdGk6Cgpe bG8gbWFtdGEgam8ndSBsbyBtZW5zaSBjdSBzaW14dSBsbyBrYSBjZSd1IGNpc21hIGZhJ2EgY2Un dX5wcH4KCn4vcHB+fi0tfiAoKGxvIG51IGJpbnhvKSleCgpDb25zaWRlcmluZyB0aGVzZSBwcm9w ZXJ0aWVzLCBpbiBvcmRlciB0byBleHByZXNzIGFuIG9wZW4gc2VudGVuY2Ugd2l0aCBmcmVlIHZh cmlhYmxlcyBpbiBubyBjb250ZXh0LCB7Y2UndX0gaXMgbW9yZSBjb252ZW5pZW50IHRoYW4ge2tl J2F9IHdoaWNoIGhhcyByZXN0cmljdGlvbiBvZiBpZGVudGljYWwgc3VtdGkuCgpeY2UndSBjZSd1 IGNpdGthfnBwfgoKfi9wcH4nJ0EgZWF0cyBCLicnIChPcGVuIHNlbnRlbmNlLCB0cnV0aCB2YWx1 ZSBpbmRlZmluaXRlLileCgoKCgpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fXwpXaWtpY2hhbmdlcyBtYWlsaW5nIGxpc3QKV2lraWNoYW5nZXNAbG9qYmFuLm9y ZwpodHRwOi8vbWFpbC5sb2piYW4ub3JnL21haWxtYW4vbGlzdGluZm8vd2lraWNoYW5nZXMK