From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp11.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms8.migadu.com with LMTPS id cM3+HeGkPmWnAQEA9RJhRA:P1 (envelope-from ) for ; Sun, 29 Oct 2023 19:30:57 +0100 Received: from aspmx1.migadu.com ([2001:41d0:303:e16b::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp11.migadu.com with LMTPS id cM3+HeGkPmWnAQEA9RJhRA (envelope-from ) for ; Sun, 29 Oct 2023 19:30:57 +0100 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id D89635A689 for ; Sun, 29 Oct 2023 19:30:56 +0100 (CET) Authentication-Results: aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20230601 header.b=V4xLii8c; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none) ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1698604257; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding:resent-cc: resent-from:resent-sender:resent-message-id:in-reply-to:in-reply-to: references:references:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=6cfZVEaWis1avDCK8zET2rhQOrezW6SPILNNnI1u6vk=; b=KAUriNhv002l6cy5xZqgXTF4Is4lXuiUc0i6ErUKesUr4suNlMikOpruOx90TYWjCsARkg HODjahsoSXJjyb5Xgss+AgD7PjrHio6BYX13i4HIQ5WK4NIzfmmJBIMkKi/BG+nLyRdVW/ AtA8vdASkYNejSwoUySdlpWlw2Juhnrc5eaYNjYEhD7RK1CB00FXwjBN3JZxFRihqvmh8P y+e2VnrFmG8flxxe/UTCq+GV1siNUFgEru5eRFx75cuH4aRXJkWUJ6QtmMJnAOZVNFiLN2 A4oCANVKgijXOmdqiFeFhNGMLedgYT3BzHB250ejbHEvJ5Q+v6y6nz1GBWStJg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("headers rsa verify failed") header.d=gmail.com header.s=20230601 header.b=V4xLii8c; spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org"; dmarc=fail reason="SPF not aligned (relaxed)" header.from=gmail.com (policy=none) ARC-Seal: i=1; s=key1; d=yhetil.org; t=1698604257; a=rsa-sha256; cv=none; b=Zb3H9E5fxQ/LNr+25dr4ZsRWbv0UnY7zEOUwVg5ZlokS4SabAzrJU0oeJZGRVGA6q3gYlY 47Sa8YAJN6Y/OJdHT0vzQcMJakktHxdYXnKj9yUBvqPhGdAk7xjxjtM6hG8OKjRhDLhIiP isMEMRwcjr9UJEZfn8uJVbfOzC55SJaSAgMgDVZk+Ywjlru9gbpuNT3BcHra/UdKANyE7F RxnukTzgQx4fSjlJPRd6pqeVTQuV10YCDhaZl6RnjQObbrFoSE4w+wrxGE4PP/naadaE3z ef9gxQfv9WnwOeNCNp7N6eXpCQu8fi3egI9bkORy0I2l97Dt1Ny9cnUPWklcbA== Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1qxAYR-00069P-An; Sun, 29 Oct 2023 14:30:31 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1qxAYQ-00068v-2Z for guix-patches@gnu.org; Sun, 29 Oct 2023 14:30:30 -0400 Received: from debbugs.gnu.org ([2001:470:142:5::43]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1qxAYP-0005XI-QA for guix-patches@gnu.org; Sun, 29 Oct 2023 14:30:29 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1qxAYw-0007gy-5Z for guix-patches@gnu.org; Sun, 29 Oct 2023 14:31:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#66801] [PATCH va3e5ae0f..37252e07 01/32] rebar-build-system and packages. Resent-From: Liliana Marie Prikler Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 29 Oct 2023 18:31:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 66801 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Pierre-Henry =?UTF-8?Q?Fr=C3=B6hring?= , 66801@debbugs.gnu.org Received: via spool by 66801-submit@debbugs.gnu.org id=B66801.169860424126900 (code B ref 66801); Sun, 29 Oct 2023 18:31:02 +0000 Received: (at 66801) by debbugs.gnu.org; 29 Oct 2023 18:30:41 +0000 Received: from localhost ([127.0.0.1]:43334 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxAYZ-0006xO-Qj for submit@debbugs.gnu.org; Sun, 29 Oct 2023 14:30:41 -0400 Received: from mail-ed1-x544.google.com ([2a00:1450:4864:20::544]:57536) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1qxAYV-0006X3-34 for 66801@debbugs.gnu.org; Sun, 29 Oct 2023 14:30:38 -0400 Received: by mail-ed1-x544.google.com with SMTP id 4fb4d7f45d1cf-53e2dc8fa02so6344215a12.2 for <66801@debbugs.gnu.org>; Sun, 29 Oct 2023 11:30:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1698604196; x=1699208996; darn=debbugs.gnu.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:from:to:cc:subject:date :message-id:reply-to; bh=6cfZVEaWis1avDCK8zET2rhQOrezW6SPILNNnI1u6vk=; b=V4xLii8cbAIirP80kbclQAUL20zUZnj22MxO0gjGfPxptUV/G9uGtC+jDvxUVVG9MM neJzp8aFm1d4Dad5sP5+mf1CrKBY3wdgyWKSD9cOfah2qognS0Gc2xjAYjCsuw0diVLL XR4EeFyUfYYMM7xoU69VjqhILNVuDoxTaFBN+/e8kL3awMcXoYevxHV0yP7FXGQ0hoNA 0rzzOSQRzY8HUHVVC+d7h7tVqc9v9pgCQF5Lfr8LUP+BhgGZPc5IBF4wiUUEzhxPPwLq VI/xydgelFz2E7eE9gi1NMiFe/ZkBAv4LkCzgf71QY7+MbSQHQhMSNkqR5dMsg66EQrq OXzw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1698604196; x=1699208996; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:to:from:subject:message-id:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=6cfZVEaWis1avDCK8zET2rhQOrezW6SPILNNnI1u6vk=; b=r7guuuxX1CwzJsU6p/Pq1RBQJyXfVFtG6lA80AbGv9VRS2pqdUMSbn1mQ/Zgjao/HR +En8ojqarEiSeu8UIVbnIXhnt92K4O0QKy+bvRLnJqpSlHHTiG46FdzAtDmZRyTMHXBT aD7Zqv5y+HsEtd+6ceZyDsGxn7VmPPgR+fsIsplSK0XBpTQG2nTFYY4PUrAY7l1GXmo5 /e008Cp3VeQzpbDJ5+7AwHmfQ/zB6RLjqUl8yOzgpZ9XxUhueKHz3Tkz5vVQCod+7+iV qZ02d3ktoEO8wbm2zIoqDsjYOr8s6YIPFxoRv34jy7vi1QImxsoxBlqiJpTmIw44zHVI x7bQ== X-Gm-Message-State: AOJu0YzuCLb+6ckBz5lwnnzzAYRSOyVkNOZDW6FSEW/9t4eAECPjhds4 2z/LcIYhxL+tMvaqii0sXIo= X-Google-Smtp-Source: AGHT+IFTK0pn2uHoyE2izXen+GyG/34Ptv3jspD9ZsGwjU9NBcJdtgMZqx+Wsyj/e57+nRqBzI84vA== X-Received: by 2002:a17:906:db09:b0:9ad:f7e5:67d9 with SMTP id xj9-20020a170906db0900b009adf7e567d9mr6668805ejb.4.1698604195565; Sun, 29 Oct 2023 11:29:55 -0700 (PDT) Received: from lumine.fritz.box (85-127-52-93.dsl.dynamic.surfer.at. [85.127.52.93]) by smtp.gmail.com with ESMTPSA id n11-20020a170906b30b00b00989828a42e8sm4664271ejz.154.2023.10.29.11.29.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 29 Oct 2023 11:29:54 -0700 (PDT) Message-ID: <7ceab0dcbe069f664377786b5bb531e2196fffc1.camel@gmail.com> From: Liliana Marie Prikler Date: Sun, 29 Oct 2023 19:29:53 +0100 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.46.4 MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: guix-patches-bounces+larch=yhetil.org@gnu.org X-Migadu-Flow: FLOW_IN X-Migadu-Country: US X-Migadu-Spam-Score: 3.00 X-Spam-Score: 3.00 X-Migadu-Queue-Id: D89635A689 X-Migadu-Scanner: mx13.migadu.com X-TUID: I65Riogg8fmR QW0gU29ubnRhZywgZGVtIDI5LjEwLjIwMjMgdW0gMTU6MzYgKzAxMDAgc2NocmllYiBQaWVycmUt SGVucnkKRnLDtmhyaW5nOgo+ICBbUEFUQ0ggdmEzZTVhZTBmLi4zNzI1MmUwNyAwMS8zMl0KVGhl IG1pZGRsZSBzaG91bGQgaW5kaWNhdGUgYSByZXZpc2lvbiBudW1iZXIgYW5kIGFuIG9wdGlvbmFs IGJyYW5jaCAoYXMKd2VsbCBhcyBvcHRpb25hbCBXSVAgYW5kIFJGQykuICBTaW5jZSB0aGlzIGdv ZXMgdG8gbWFzdGVyIChJIGFzc3VtZSksCml0IHNob3VsZCBqdXN0IGJlIHYyLCB2Mywg4oCmIHZO Cgo+IFRoZSBidWlsZGVyIG5vdyBhY2NlcHRzIHRoZSBgIzpzb3VyY2VzLWVybGFuZ2AgcGFyYW1l dGVyLCB3aGljaAo+IGV4cGVjdHMgYSBsaXN0IG9mICJTb3VyY2UiIGl0ZW1zLiBFYWNoICJTb3Vy Y2UiIGNvcnJlc3BvbmRzIHRvIHRoZQo+IHNvdXJjZSBjb2RlIG9mIGEgbGlicmFyeSBkaXJlY3Rv cnksIHdoaWNoIGlzIHdoZXJlIEVybGFuZyBsb29rcyBmb3IKPiBjb21waWxlZCBtb2R1bGVzLgo+ IERvY3VtZW50YXRpb246Cj4gaHR0cHM6Ly93d3cuZXJsYW5nLm9yZy9kb2MvbWFuL2NvZGUjY29k ZS1wYXRoLiBFYWNoIFNvdXJjZSBpcwo+IGluc3RhbGxlZCBhcyBhICJDaGVja291dCIsIHdoaWNo IGFyZSBsb2NhbCBkZXBlbmRlbmNpZXMgbGlua2VkIHRvCj4gZGlyZWN0b3JpZXMgbWFuYWdlZCBi eSByZWJhci4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZQo+IGh0dHBzOi8vcmViYXIzLm9yZy9k b2NzL2NvbmZpZ3VyYXRpb24vZGVwZW5kZW5jaWVzLyNjaGVja291dC1kZXBlbmRlbmNpZXMKPiAu IExhY2tpbmcgY2hlY2tvdXRzLCByZWJhcjMgd2lsbCBub3QgY29tcGlsZSBpZiB0aGVyZSBpcyBu byBuZXR3b3JrCj4gYWNjZXNzLgo+IAo+IENoYW5nZS1JZDogSWRjM2FhOGJiMjA0ZjU1ZDA1OTRj MTY2OTM5OTg0NWNkOWI5ZTg2YWIKPiAtLS0KPiDCoGd1aXgvYnVpbGQtc3lzdGVtL3JlYmFyLnNj bcKgwqDCoMKgwqDCoCB8IDI3NCArKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCj4gLS0KPiDC oGd1aXgvYnVpbGQvcmViYXItYnVpbGQtc3lzdGVtLnNjbSB8IDI1NSArKysrKysrKysrKysrKysr Ky0tLS0tLS0tLS0KPiDCoDIgZmlsZXMgY2hhbmdlZCwgMzM5IGluc2VydGlvbnMoKyksIDE5MCBk ZWxldGlvbnMoLSkKPiAKPiBkaWZmIC0tZ2l0IGEvZ3VpeC9idWlsZC1zeXN0ZW0vcmViYXIuc2Nt IGIvZ3VpeC9idWlsZC0KPiBzeXN0ZW0vcmViYXIuc2NtCj4gaW5kZXggZGUxMjk0ZWMuLjg2Mjcy MWVlIDEwMDY0NAo+IC0tLSBhL2d1aXgvYnVpbGQtc3lzdGVtL3JlYmFyLnNjbQo+ICsrKyBiL2d1 aXgvYnVpbGQtc3lzdGVtL3JlYmFyLnNjbQo+IEBAIC0xLDYgKzEsNyBAQAo+IMKgOzs7IEdOVSBH dWl4IC0tLSBGdW5jdGlvbmFsIHBhY2thZ2UgbWFuYWdlbWVudCBmb3IgR05VCj4gwqA7OzsgQ29w eXJpZ2h0IMKpIDIwMTYgUmljYXJkbyBXdXJtdXMgPHJla2Fkb0BlbGVwaGx5Lm5ldD4KPiDCoDs7 OyBDb3B5cmlnaHQgwqkgMjAyMCBIYXJ0bXV0IEdvZWJlbCA8aC5nb2ViZWxAY3JhenktY29tcGls ZXJzLmNvbT4KPiArOzs7IENvcHlyaWdodCDCqSAyMDIzIFBpZXJyZS1IZW5yeSBGcsO2aHJpbmcK PiA8cGhmcm9ocmluZ0BkZWVwbGlua3MuY29tPgo+IMKgOzs7Cj4gwqA7OzsgVGhpcyBmaWxlIGlz IHBhcnQgb2YgR05VIEd1aXguCj4gwqA7OzsKPiBAQCAtMTgsMTAyICsxOSwxMTcgQEAKPiDCoDs7 OyBhbG9uZyB3aXRoIEdOVSBHdWl4LsKgIElmIG5vdCwgc2VlCj4gPGh0dHA6Ly93d3cuZ251Lm9y Zy9saWNlbnNlcy8+Lgo+IMKgCj4gwqAoZGVmaW5lLW1vZHVsZSAoZ3VpeCBidWlsZC1zeXN0ZW0g cmViYXIpCj4gLcKgICM6dXNlLW1vZHVsZSAoZ3VpeCBzdG9yZSkKPiAtwqAgIzp1c2UtbW9kdWxl IChndWl4IHV0aWxzKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQtc3lzdGVtIGdudSkK PiArwqAgIzp1c2UtbW9kdWxlIChndWl4IGJ1aWxkLXN5c3RlbSkKPiDCoMKgICM6dXNlLW1vZHVs ZSAoZ3VpeCBnZXhwKQo+IC3CoCAjOnVzZS1tb2R1bGUgKGd1aXggcGFja2FnZXMpCj4gwqDCoCAj OnVzZS1tb2R1bGUgKGd1aXggbW9uYWRzKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGd1aXggcGFja2Fn ZXMpCj4gwqDCoCAjOnVzZS1tb2R1bGUgKGd1aXggc2VhcmNoLXBhdGhzKQo+IC3CoCAjOnVzZS1t b2R1bGUgKGd1aXggYnVpbGQtc3lzdGVtKQo+IC3CoCAjOnVzZS1tb2R1bGUgKGd1aXggYnVpbGQt c3lzdGVtIGdudSkKPiAtwqAgIzpleHBvcnQgKGhleHBtLXVyaQo+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGhleHBtLXBhY2thZ2UtdXJsCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgJXJlYmFy LWJ1aWxkLXN5c3RlbS1tb2R1bGVzCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcmViYXItYnVp bGQKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCByZWJhci1idWlsZC1zeXN0ZW0pKQo+ICvCoCAj OnVzZS1tb2R1bGUgKGd1aXggc3RvcmUpCj4gK8KgICM6dXNlLW1vZHVsZSAoZ3VpeCB1dGlscykK PiArwqAgIzp1c2UtbW9kdWxlIChpY2UtOSBtYXRjaCkKPiArwqAgIzp1c2UtbW9kdWxlIChpY2Ut OSByZWdleCkKPiArwqAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkKPiArwqAgIzpleHBvcnQg KGhleHBtLXVyaSBoZXhwbS1wYWNrYWdlLXVybCAlcmViYXItYnVpbGQtc3lzdGVtLW1vZHVsZXMK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJlYmFyLWJ1aWxk IHJlYmFyLWJ1aWxkLXN5c3RlbSkpCj4gwqAKPiAtOzs7Cj4gLTs7OyBEZWZpbml0aW9ucyBmb3Ig dGhlIGhleC5wbSByZXBvc2l0b3J5LAo+IC07OzsKPiArOzsgU291cmNlCj4gKzs7wqDCoCBBIMKr IFNvdXJjZSDCuyByZXByZW5zZW50cyB0aGUgc291cmNlIGNvZGUgdG8gYSBsaWJyYXJ5Cj4gZGly ZWN0b3J5LiBJdCBpcwo+ICs7O8KgwqAgZGVmaW5lZCBhcyAobGlzdCA8bmFtZT4gPG9yaWdpbj4p IHdoZXJlOiA8bmFtZT4gaXMgYSBzdHJpbmcKPiByZXByZXNlbnRpbmcKPiArOzvCoMKgIHRoZSBu YW1lIG9mIGEgbGlicmFyeSBkaXJlY3RvcnkgYW5kIDxvcmlnaW4+IGlzIGFuIG9yaWdpbiBhcwo+ IGRlZmluZWQKPiArOzvCoMKgIChndWl4IHBhY2thZ2VzKS4KPiArCj4gKwo+ICs7OyBQYXR0ZXJu IHRoYXQgYW4gRXJsYW5nIEd1aXggcGFja2FnZSBuYW1lIGlzIGV4cGVjdGVkIHRvIG1hdGNoLgo+ ICsoZGVmaW5lIHBrZy1uYW1lLXJlICJeZXJsYW5nLSguKikiKQpFbWFjcywgUnVzdCwgZXRjLiBi dWlsZCBzeXN0ZW1zIGp1c3Qgc3RyaXAgb3V0IHRoZSBwcmVmaXguICBObyBuZWVkIHRvCmdvIGFs bCBmYW5jeSByZWdleHB5IDopCgo+ICsoZGVmaW5lIChwa2ctbmFtZS0+bWF0Y2ggbmFtZSkKPiAr wqAgIlJldHVybiB0aGUgbWF0Y2ggb2JqZWN0IGZyb20gTkFNRSBpZiBOQU1FIHN0YXJ0cyB3aXRo IHBrZy1uYW1lLQo+IHByZWZpeC4iCj4gK8KgIChzdHJpbmctbWF0Y2ggcGtnLW5hbWUtcmUgbmFt ZSkpCj4gKwo+ICsoZGVmaW5lIChwa2ctbmFtZT8gbmFtZSkKPiArwqAgIlRlc3QgaWYgTkFNRSBp cyB0aGUgbmFtZSBvZiBhbiBFcmxhbmcgR3VpeCBwYWNrYWdlLiIKPiArwqAgKG9yIChwa2ctbmFt ZS0+bWF0Y2ggbmFtZSkgI2YpKQo+IMKgCj4gLTs7IFVSTCBhbmQgcGF0aHMgZnJvbQo+IC07OyBo dHRwczovL2dpdGh1Yi5jb20vaGV4cG0vc3BlY2lmaWNhdGlvbnMvYmxvYi9tYXN0ZXIvZW5kcG9p bnRzLm1kCj4gLShkZWZpbmUgJWhleHBtLXJlcG8tdXJsCj4gLcKgIChtYWtlLXBhcmFtZXRlciAi aHR0cHM6Ly9yZXBvLmhleC5wbSIpKQo+ICsoZGVmaW5lIChwa2ctbmFtZS0+c3VmZml4IG5hbWUp Cj4gK8KgICJSZXR1cm4gdGhlIHN1ZmZpeCBvZiB0aGUgbmFtZSBvZiBhbiBFcmxhbmcgR3VpeCBw YWNrYWdlLiIKPiArwqAgKHJlZ2V4cC1zdWJzdGl0dXRlICNmIChwa2ctbmFtZS0+bWF0Y2ggbmFt ZSkgMSkpCj4gwqAKPiAtKGRlZmluZSBoZXhwbS1wYWNrYWdlLXVybAo+IC3CoCAoc3RyaW5nLWFw cGVuZCAoJWhleHBtLXJlcG8tdXJsKSAiL3RhcmJhbGxzLyIpKQo+ICsoZGVmaW5lKiAocGtnLW5h bWUtPmxpYnJhcnktZGlyZWN0b3J5LW5hbWUgbmFtZSAjOmtleSAodmVyc2lvbiAiIikpCj4gK8Kg ICJSZXR1cm4gdGhlIG5hbWUgb2YgdGhlIGxpYnJhcnkgZGlyZWN0b3J5IGFzc29jaWF0ZWQgd2l0 aCB0aGUKPiBFcmxhbmcgR3VpeCBwYWNrYWdlIG5hbWUgTkFNRS4iCj4gK8KgIChzdHJpbmctYXBw ZW5kIChzdHJpbmctcmVwbGFjZS1zdWJzdHJpbmcgKHBrZy1uYW1lLT5zdWZmaXggbmFtZSkKPiAi LSIgIl8iKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoaWYgKHN0cmluZz0g dmVyc2lvbiAiIikgIiIgKHN0cmluZy1hcHBlbmQgIi0iCj4gdmVyc2lvbikpKSkKPiArCj4gKzs7 IFNlZToKPiBodHRwczovL2dpdGh1Yi5jb20vaGV4cG0vc3BlY2lmaWNhdGlvbnMvYmxvYi9tYXN0 ZXIvZW5kcG9pbnRzLm1kCj4gKyhkZWZpbmUgaGV4cG0gKG1ha2UtcGFyYW1ldGVyICJodHRwczov L3JlcG8uaGV4LnBtIikpCj4gKwo+ICsoZGVmaW5lIGhleHBtLXRhcmJhbGxzIChzdHJpbmctYXBw ZW5kIChoZXhwbSkgIi90YXJiYWxscy8iKSkKPiDCoAo+IMKgKGRlZmluZSAoaGV4cG0tdXJpIG5h bWUgdmVyc2lvbikKPiDCoMKgICJSZXR1cm4gYSBVUkkgc3RyaW5nIGZvciB0aGUgcGFja2FnZSBo b3N0ZWQgYXQgaGV4LnBtCj4gY29ycmVzcG9uZGluZyB0byBOQU1FCj4gLWFuZCBWRVJTSU9OLiIK PiAtwqAgKHN0cmluZy1hcHBlbmQgaGV4cG0tcGFja2FnZS11cmwgbmFtZSAiLSIgdmVyc2lvbiAi LnRhciIpKQo+ICthbmQgVkVSU0lPTi4KPiDCoAo+IC07Owo+IC07OyBTdGFuZGFyZCBidWlsZCBw cm9jZWR1cmUgZm9yIEVybGFuZyBwYWNrYWdlcyB1c2luZyBSZWJhci4KPiAtOzsKPiArWFhYOiBz aG91bGQgYSB3YXJuaW5nIGJlIGVtaXR0ZWQ/Cj4gK0lmIE5BTUUgaXMgbm90IGFuIEVybGFuZyBH dWl4IHBhY2thZ2UgbmFtZSwgdGhlbiBlbWl0IGEgd2FybmluZy4gVGhlCj4gZG93bmxvYWQKPiAr d2lsbCBmYWlsIGlmIGl0IGlzIG5vdCBjb3JyZWN0IGFueXdheS4iCj4gwqAKPiAtKGRlZmluZSAl cmViYXItYnVpbGQtc3lzdGVtLW1vZHVsZXMKPiAtwqAgOzsgQnVpbGQtc2lkZSBtb2R1bGVzIGlt cG9ydGVkIGJ5IGRlZmF1bHQuCj4gLcKgIGAoKGd1aXggYnVpbGQgcmViYXItYnVpbGQtc3lzdGVt KQo+IC3CoMKgwqAgLEAlZ251LWJ1aWxkLXN5c3RlbS1tb2R1bGVzKSkKPiArwqAgKGRlZmluZSAo d2Fybi1hYm91dCBuYW1lKQo+ICvCoMKgwqAgKGZvcm1hdCAjdCAiQXNzZXJ0aW9uV2FybmluZyA0 ZGNiZmYyNwo+ICvCoCBBc3NlcnRpb246IHJlIG1hdGNoZXMgbmFtZS4KPiArwqDCoMKgIHJlID0g fmEKPiArwqDCoMKgIG5hbWUgPSB+YQo+ICsiIHBrZy1uYW1lLXJlIG5hbWUpCj4gKwo+ICvCoMKg wqAgbmFtZSkK5L2V44Gn77yfCgo+IMKgCj4gLShkZWZpbmUgKGRlZmF1bHQtcmViYXIzKQo+IC3C oCAiUmV0dXJuIHRoZSBkZWZhdWx0IFJlYmFyMyBwYWNrYWdlLiIKPiArwqAgKGRlZmluZSAobmFt ZS0+YXJjaGl2ZS1uYW1lIG5hbWUpCj4gK8KgwqDCoCAoaWYgKHBrZy1uYW1lPyBuYW1lKQo+ICvC oMKgwqDCoMKgwqDCoCAoc3RyaW5nLWFwcGVuZCAocGtnLW5hbWUtPmxpYnJhcnktZGlyZWN0b3J5 LW5hbWUgbmFtZQo+ICM6dmVyc2lvbiB2ZXJzaW9uKSAiLnRhciIpCj4gK8KgwqDCoMKgwqDCoMKg IChzdHJpbmctYXBwZW5kICh3YXJuLWFib3V0IG5hbWUpICItIiB2ZXJzaW9uICIudGFyIikpKQo+ ICsKPiArwqAgKHN0cmluZy1hcHBlbmQgaGV4cG0tdGFyYmFsbHMgKG5hbWUtPmFyY2hpdmUtbmFt ZSBuYW1lKSkpCj4gKwo+ICsoZGVmaW5lIChyZWJhci1kZWZhdWx0KQo+IMKgwqAgOzsgTGF6aWx5 IHJlc29sdmUgdGhlIGJpbmRpbmcgdG8gYXZvaWQgYSBjaXJjdWxhciBkZXBlbmRlbmN5Lgo+IMKg wqAgKGxldCAoKGVybGFuZy1tb2QgKHJlc29sdmUtaW50ZXJmYWNlICcoZ251IHBhY2thZ2VzIGVy bGFuZykpKSkKPiDCoMKgwqDCoCAobW9kdWxlLXJlZiBlcmxhbmctbW9kICdyZWJhcjMpKSkKSSBz dWdnZXN0IG5vdCB0byByZW5hbWUgdGhlc2UgcHJvY2VkdXJlcy4gIGRlZmF1bHQtWCByZWFkcyBt b3JlCm5hdHVyYWxseSB0aGFuIFgtZGVmYXVsdC4KCj4gLShkZWZpbmUgKGRlZmF1bHQtZXJsYW5n KQo+IC3CoCAiUmV0dXJuIHRoZSBkZWZhdWx0IEVybGFuZyBwYWNrYWdlLiIKPiArKGRlZmluZSAo ZXJsYW5nLWRlZmF1bHQpCj4gwqDCoCA7OyBMYXppbHkgcmVzb2x2ZSB0aGUgYmluZGluZyB0byBh dm9pZCBhIGNpcmN1bGFyIGRlcGVuZGVuY3kuCj4gwqDCoCAobGV0ICgoZXJsYW5nLW1vZCAocmVz b2x2ZS1pbnRlcmZhY2UgJyhnbnUgcGFja2FnZXMgZXJsYW5nKSkpKQo+IMKgwqDCoMKgIChtb2R1 bGUtcmVmIGVybGFuZy1tb2QgJ2VybGFuZykpKQo+IMKgCj4gLShkZWZpbmUqIChsb3dlciBuYW1l Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmtleSBzb3VyY2UgaW5wdXRzIG5h dGl2ZS1pbnB1dHMgb3V0cHV0cyBzeXN0ZW0KPiB0YXJnZXQKPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIChyZWJhciAoZGVmYXVsdC1yZWJhcjMpKQo+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKGVybGFuZyAoZGVmYXVsdC1lcmxhbmcpKQo+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgIzphbGxvdy1vdGhlci1rZXlzCj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAjOnJlc3QgYXJndW1lbnRzKQo+IC3CoCAiUmV0dXJuIGEgYmFnIGZvciBO QU1FIGZyb20gdGhlIGdpdmVuIGFyZ3VtZW50cy4iCj4gLcKgIChkZWZpbmUgcHJpdmF0ZS1rZXl3 b3Jkcwo+IC3CoMKgwqAgJygjOnRhcmdldCAjOnJlYmFyICM6ZXJsYW5nICM6aW5wdXRzICM6bmF0 aXZlLWlucHV0cykpCj4gLQo+IC3CoCAoYW5kIChub3QgdGFyZ2V0KcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7WFhYOiBubyBjcm9z cy0KPiBjb21waWxhdGlvbgo+IC3CoMKgwqDCoMKgwqAgKGJhZwo+IC3CoMKgwqDCoMKgwqDCoMKg IChuYW1lIG5hbWUpCj4gLcKgwqDCoMKgwqDCoMKgwqAgKHN5c3RlbSBzeXN0ZW0pCj4gLcKgwqDC oMKgwqDCoMKgwqAgKGhvc3QtaW5wdXRzIGAoLEAoaWYgc291cmNlCj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgYCgoInNvdXJjZSIg LHNvdXJjZSkpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgJygpKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICxAaW5wdXRzKSkKPiAtwqDCoMKgwqDCoMKgwqDCoCAoYnVpbGQtaW5wdXRz IGAoKCJyZWJhciIgLHJlYmFyKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKCJlcmxhbmciICxlcmxhbmcpIDs7IGZvciBlc2NyaXB0aXplCj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAsQG5hdGl2ZS1p bnB1dHMKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IDs7IEtlZXAgdGhlIHN0YW5kYXJkIGlucHV0cyBvZiAnZ251LWJ1aWxkLQo+IHN5c3RlbScuCj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAsQChzdGFu ZGFyZC1wYWNrYWdlcykpKQo+IC3CoMKgwqDCoMKgwqDCoMKgIChvdXRwdXRzIG91dHB1dHMpCj4g LcKgwqDCoMKgwqDCoMKgwqAgKGJ1aWxkIHJlYmFyLWJ1aWxkKQo+IC3CoMKgwqDCoMKgwqDCoMKg IChhcmd1bWVudHMgKHN0cmlwLWtleXdvcmQtYXJndW1lbnRzIHByaXZhdGUta2V5d29yZHMKPiBh cmd1bWVudHMpKSkpKQo+IC0KPiAtKGRlZmluZSogKHJlYmFyLWJ1aWxkIG5hbWUgaW5wdXRzCj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6a2V5Cj4gLcKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGd1aWxlIHNvdXJjZQo+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAocmViYXItZmxh Z3MgJycoInNraXBfZGVwcz10cnVlIiAiLXZ2IikpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICh0ZXN0cz8gI3QpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICh0ZXN0LXRhcmdldCAiZXVuaXQiKQo+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7OyBUT0RPOiBpbnN0YWxsLW5h bWXCoCA7IGRlZmF1bHQ6IGJhc2VkIG9uCj4gZ3VpeCBwYWNrYWdlIG5hbWUKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGluc3RhbGwtcHJvZmlsZSAiZGVm YXVsdCIpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChw aGFzZXMgJyhAIChndWl4IGJ1aWxkIHJlYmFyLWJ1aWxkLXN5c3RlbSkKPiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg JXN0YW5kYXJkLXBoYXNlcykpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgIChvdXRwdXRzICcoIm91dCIpKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAoc2VhcmNoLXBhdGhzICcoKSkKPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKG5hdGl2ZS1zZWFyY2gtcGF0aHMgJygpKQo+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3lzdGVtICgl Y3VycmVudC1zeXN0ZW0pKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAoaW1wb3J0ZWQtbW9kdWxlcyAlcmViYXItYnVpbGQtc3lzdGVtLQo+IG1vZHVsZXMp Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtb2R1bGVz ICcoKGd1aXggYnVpbGQgcmViYXItYnVpbGQtc3lzdGVtKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGd1aXggYnVp bGQgdXRpbHMpKSkpCj4gKyhkZWZpbmUgaW1wb3J0ZWQtbW9kdWxlcwo+ICvCoCBgKChndWl4IGJ1 aWxkIHJlYmFyLWJ1aWxkLXN5c3RlbSkKPiArwqDCoMKgICxAJWdudS1idWlsZC1zeXN0ZW0tbW9k dWxlcykpCj4gKwo+ICsoZGVmaW5lIChpbnB1dC0+c291cmNlIGlucHV0KQo+ICvCoCAiUmV0dXJu IGEgU291cmNlIGFzc29jaWF0ZWQgdG8gdGhlIElucHV0IElOUFVULiIKPiArwqAgKG1hdGNoIGlu cHV0Cj4gK8KgwqDCoCAoKG5hbWUgcGFja2FnZSkKPiArwqDCoMKgwqAgKGxpc3QgKHBrZy1uYW1l LT5saWJyYXJ5LWRpcmVjdG9yeS1uYW1lIG5hbWUpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgIChw YWNrYWdlLXNvdXJjZSBwYWNrYWdlKSkpKSkKPiArCj4gKyhkZWZpbmUqIChyZWJhci1idWlsZCBu YW1lCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnB1dHMK PiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6a2V5Cj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBndWlsZQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc291cmNlCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAocmViYXItZmxhZ3MgJycoKSkKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICh0ZXN0cz8gI3QpCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAodGVzdC10YXJnZXQgImV1 bml0IikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIDs7IFRP RE86IGluc3RhbGwtbmFtZcKgIDsgZGVmYXVsdDogYmFzZWQgb24KPiBndWl4IHBhY2thZ2UgbmFt ZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGluc3RhbGwt cHJvZmlsZSAiZGVmYXVsdCIpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAocGhhc2VzICcoQCAoZ3VpeCBidWlsZCByZWJhci1idWlsZC1zeXN0ZW0pCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoCAlc3RhbmRhcmQtcGhhc2VzKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChvdXRwdXRzICcoIm91dCIpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHNlYXJjaC1wYXRocyAnKCkpCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobmF0aXZlLXNlYXJjaC1wYXRocyAnKCkp Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3lzdGVtICgl Y3VycmVudC1zeXN0ZW0pKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKGltcG9ydGVkLW1vZHVsZXMgaW1wb3J0ZWQtbW9kdWxlcykKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtb2R1bGVzICcoKGd1aXggYnVpbGQgcmVi YXItYnVpbGQtc3lzdGVtKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChndWl4IGJ1aWxkIHV0aWxzKSkpCj4gK8KgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc291cmNlcy1lcmxhbmcgJygp KSkKPiDCoMKgICJCdWlsZCBTT1VSQ0Ugd2l0aCBJTlBVVFMuIgo+IMKgCj4gwqDCoCAoZGVmaW5l IGJ1aWxkZXIKPiBAQCAtMTIyLDM1ICsxMzgsOTUgQEAgKGRlZmluZSogKHJlYmFyLWJ1aWxkIG5h bWUgaW5wdXRzCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHVzZS1tb2R1bGVzICMkQChzZXhwLT5n ZXhwIG1vZHVsZXMpKQo+IMKgCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqAgIyQod2l0aC1idWlsZC12 YXJpYWJsZXMgaW5wdXRzIG91dHB1dHMKPiArCj4gwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oCAjfihyZWJhci1idWlsZCAjOnNvdXJjZSAjK3NvdXJjZQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpzeXN0ZW0gIyRzeXN0ZW0KPiAtwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6bmFtZSAjJG5hbWUKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6cmViYXItZmxhZ3MgIyRyZWJhci1m bGFncwo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzp0ZXN0 cz8gIyR0ZXN0cz8KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg ICM6dGVzdC10YXJnZXQgIyR0ZXN0LXRhcmdldAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgOzsgVE9ETzogIzppbnN0YWxsLW5hbWUgIyRpbnN0YWxsLW5hbWUK PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6aW5zdGFsbC1w cm9maWxlICMkaW5zdGFsbC1wcm9maWxlCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAjOnBoYXNlcyAjJChpZiAocGFpcj8gcGhhc2VzKQo+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKHNleHAtPmdleHAgcGhhc2VzKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgcGhhc2VzKQo+IC3C oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpvdXRwdXRzICVvdXRw dXRzCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnNlYXJj aC1wYXRocyAnIyQoc2V4cC0+Z2V4cAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobWFwIHNl YXJjaC1wYXRoLQo+IHNwZWNpZmljYXRpb24tPnNleHAKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIHNlYXJjaC1wYXRocykpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoCAjOmlucHV0cyAlYnVpbGQtaW5wdXRzKSkpKSkKPiAtCj4gLcKgICht bGV0ICVzdG9yZS1tb25hZCAoKGd1aWxlIChwYWNrYWdlLT5kZXJpdmF0aW9uIChvciBndWlsZQo+ IChkZWZhdWx0LWd1aWxlKSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgc3lzdGVtICM6Z3JhZnQ/Cj4gI2YpKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpzb3VyY2VzLWVybGFuZyAnIyRzb3Vy Y2VzLWVybGFuZwpUaGlzIHJlZWtzIG9mIHRoZSBoYWNrIHRoYXQgd2UgbmVlZCBmb3IgY2FyZ28t YnVpbGQtc3lzdGVtLCBleGNlcHQgd2l0aAphIHdvcnNlIHZhcmlhYmxlIG5hbWUuICBJIHN0cm9u Z2x5IHN1Z2dlc3QgbG9va2luZyBpbnRvIHdheXMgd2UgY2FuIGRvCndpdGhvdXQgaXQuCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6 c3lzdGVtICMkc3lzdGVtCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgICM6bmFtZSAjJG5hbWUKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpyZWJhci1mbGFncyAjJHJlYmFy LWZsYWdzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICM6dGVzdHM/ICMkdGVzdHM/Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6dGVzdC10YXJnZXQgIyR0ZXN0LXRhcmdl dAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCA7OyBUT0RPOiAjOmluc3RhbGwtbmFtZSAjJGluc3RhbGwtbmFtZQo+ICvCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmluc3RhbGwt cHJvZmlsZSAjJGluc3RhbGwtcHJvZmlsZQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOnBoYXNlcyAjJChpZiAocGFpcj8KPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwaGFzZXMpCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIChzZXhwLT5nZXhwCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgcGhhc2VzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBwaGFzZXMpCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6 b3V0cHV0cyAlb3V0cHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAjOnNlYXJjaC1wYXRocyAnIyQoc2V4cC0+Z2V4cAo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChtYXAKPiArwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNlYXJjaC1wYXRoLQo+IHNwZWNpZmljYXRpb24tPnNl eHAKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHNlYXJjaC1wYXRo cykpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICM6aW5wdXRzCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgICVidWlsZC1pbnB1dHMpKSkpKQo+ICsKPiArwqAgKG1sZXQgJXN0 b3JlLW1vbmFkCj4gK8KgwqDCoMKgwqAgKChndWlsZSAocGFja2FnZS0+ZGVyaXZhdGlvbiAob3Ig Z3VpbGUKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZGVmYXVsdC1ndWlsZSkpIHN5c3RlbQo+ICvC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgICM6Z3JhZnQ/ICNmKSkpCj4gKwo+IMKgwqDCoMKgIDs7IE5vdGU6 IEFsd2F5cyBwYXNzICM6Z3JhZnQ/ICNmLsKgIFdpdGhvdXQgaXQsIEFMTE9XRUQtCj4gUkVGRVJF TkNFUyAmCj4gwqDCoMKgwqAgOzsgY28uIHdvdWxkIGJlIGludGVycHJldGVkIGFzIHJlZmVycmlu ZyB0byBncmFmdGVkIHBhY2thZ2VzLgo+IC3CoMKgwqAgKGdleHAtPmRlcml2YXRpb24gbmFtZSBi dWlsZGVyCj4gK8KgwqDCoCAoZ2V4cC0+ZGVyaXZhdGlvbiBuYW1lCj4gK8KgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWlsZGVyCj4gwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzpzeXN0ZW0gc3lzdGVtCj4gwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzp0YXJnZXQgI2YKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmdyYWZ0PyAjZgo+IMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6Z3VpbGUtZm9yLWJ1aWxkIGd1 aWxlKSkpCj4gwqAKPiArKGRlZmluZSogKGxvd2VyIG5hbWUKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICM6a2V5Cj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAoZXJsYW5nIChlcmxhbmctZGVmYXVsdCkpCj4gK8KgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBpbnB1dHMKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG5hdGl2ZS1pbnB1dHMKPiArwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIG91dHB1dHMKPiArwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChyZWJhciAocmViYXItZGVmYXVsdCkpCj4g K8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBzb3VyY2UKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHN5c3RlbQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgdGFyZ2V0Cj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmFsbG93LW90aGVyLWtleXMgIzpyZXN0 IGFyZ3VtZW50cykKPiArwqAgIlJldHVybiBhIGJhZyBmb3IgTkFNRSBmcm9tIHRoZSBnaXZlbiBh cmd1bWVudHMuIgo+ICsKPiArwqAgKGxldCogKChlcmxhbmctcGFja2FnZXMKPiArwqDCoMKgwqDC oMKgwqDCoMKgIChmaWx0ZXIgKGxhbWJkYSAoaW5wdXQpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIChtYXRjaCBpbnB1dAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgKChuYW1lIF8pIChwa2ctbmFtZT8gbmFtZSkpKSkKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoYXBwZW5kIGlucHV0cyBuYXRpdmUtaW5w dXRzKSkpCj4gKwo+ICvCoMKgwqDCoMKgwqDCoMKgIChlcmxhbmctc291cmNlcyAobWFwIGlucHV0 LT5zb3VyY2UgZXJsYW5nLXBhY2thZ2VzKSkpCj4gKwo+ICvCoMKgwqAgKGRlZmluZSBwcml2YXRl LWtleXdvcmRzCj4gK8KgwqDCoMKgwqAgJygjOnRhcmdldCAjOnJlYmFyICM6ZXJsYW5nICM6aW5w dXRzICM6bmF0aXZlLWlucHV0cwo+ICM6c291cmNlcy1lcmxhbmcpKQo+ICsKPiArwqDCoMKgIChh bmQgKG5vdCB0YXJnZXQpIDtYWFg6IG5vIGNyb3NzLWNvbXBpbGF0aW9uCj4gK8KgwqDCoMKgwqDC oMKgwqAgKGJhZyAobmFtZSBuYW1lKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoc3lz dGVtIHN5c3RlbSkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGhvc3QtaW5wdXRzIGlu cHV0cykKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGJ1aWxkLWlucHV0cyBgKCxAKHN0 YW5kYXJkLXBhY2thZ2VzKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgICgiZXJsYW5nIiAsZXJsYW5nKQo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICgicmViYXIiICxy ZWJhcikKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAsQGlucHV0cwo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICxAbmF0aXZlLWlucHV0cykpCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChvdXRwdXRzIG91dHB1dHMpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgIChidWlsZCByZWJhci1idWlsZCkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg KGFyZ3VtZW50cyAoYXBwZW5kIChsaXN0ICM6c291cmNlcy1lcmxhbmcgZXJsYW5nLQo+IHNvdXJj ZXMpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgKHN0cmlwLWtleXdvcmQtYXJndW1lbnRzIHByaXZhdGUtCj4ga2V5d29y ZHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgCj4gYXJndW1lbnRzKSkpKSkpKQo+ICsKPiDCoChkZWZpbmUgcmViYXItYnVpbGQtc3lz dGVtCj4gLcKgIChidWlsZC1zeXN0ZW0KPiAtwqDCoMKgIChuYW1lICdyZWJhcikKPiAtwqDCoMKg IChkZXNjcmlwdGlvbiAiVGhlIHN0YW5kYXJkIFJlYmFyIGJ1aWxkIHN5c3RlbSIpCj4gLcKgwqDC oCAobG93ZXIgbG93ZXIpKSkKPiArwqAgKGJ1aWxkLXN5c3RlbSAobmFtZSAncmViYXIpCj4gK8Kg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZGVzY3JpcHRpb24gIlRoZSBzdGFuZGFyZCBS ZWJhciBidWlsZCBzeXN0ZW0iKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGxv d2VyIGxvd2VyKSkpCj4gKwo+ICsKPiArOzs7Cj4gKzs7OyBFeHBvcnRzCj4gKzs7Owo+ICsKPiAr KGRlZmluZSBoZXhwbS1wYWNrYWdlLXVybCBoZXhwbS10YXJiYWxscykKPiArCj4gKyhkZWZpbmUg JXJlYmFyLWJ1aWxkLXN5c3RlbS1tb2R1bGVzIGltcG9ydGVkLW1vZHVsZXMpCj4gKwo+ICsKPiAr Ozs7IHJlYmFyLnNjbSBlbmRzIGhlcmUKPiBkaWZmIC0tZ2l0IGEvZ3VpeC9idWlsZC9yZWJhci1i dWlsZC1zeXN0ZW0uc2NtIGIvZ3VpeC9idWlsZC9yZWJhci0KPiBidWlsZC1zeXN0ZW0uc2NtCj4g aW5kZXggZmI2NjQyMjguLmI2ODM0OGJkIDEwMDY0NAo+IC0tLSBhL2d1aXgvYnVpbGQvcmViYXIt YnVpbGQtc3lzdGVtLnNjbQo+ICsrKyBiL2d1aXgvYnVpbGQvcmViYXItYnVpbGQtc3lzdGVtLnNj bQo+IEBAIC0yLDYgKzIsNyBAQAo+IMKgOzs7IENvcHlyaWdodCDCqSAyMDE2LCAyMDE4IFJpY2Fy ZG8gV3VybXVzIDxyZWthZG9AZWxlcGhseS5uZXQ+Cj4gwqA7OzsgQ29weXJpZ2h0IMKpIDIwMTkg QmrDtnJuIEjDtmZsaW5nCj4gPGJqb2Vybi5ob2VmbGluZ0Biam9lcm5ob2VmbGluZy5kZT4KPiDC oDs7OyBDb3B5cmlnaHQgwqkgMjAyMCwgMjAyMiBIYXJ0bXV0IEdvZWJlbAo+IDxoLmdvZWJlbEBj cmF6eS1jb21waWxlcnMuY29tPgo+ICs7OzsgQ29weXJpZ2h0IMKpIDIwMjMgUGllcnJlLUhlbnJ5 IEZyw7ZocmluZwo+IDxwaGZyb2hyaW5nQGRlZXBsaW5rcy5jb20+Cj4gwqA7OzsKPiDCoDs7OyBU aGlzIGZpbGUgaXMgcGFydCBvZiBHTlUgR3VpeC4KPiDCoDs7Owo+IEBAIC0yMywxMjUgKzI0LDE5 NyBAQCAoZGVmaW5lLW1vZHVsZSAoZ3VpeCBidWlsZCByZWJhci1idWlsZC1zeXN0ZW0pCj4gwqDC oCAjOnVzZS1tb2R1bGUgKChndWl4IGJ1aWxkIHV0aWxzKSAjOmhpZGUgKGRlbGV0ZSkpCj4gwqDC oCAjOnVzZS1tb2R1bGUgKGljZS05IG1hdGNoKQo+IMKgwqAgIzp1c2UtbW9kdWxlIChpY2UtOSBm dHcpCj4gK8KgICM6dXNlLW1vZHVsZSAoaWNlLTkgc3RyaW5nLWZ1bikKPiArwqAgIzp1c2UtbW9k dWxlIChpY2UtOSByZWNlaXZlKQo+ICvCoCAjOnVzZS1tb2R1bGUgKGljZS05IHJlZ2V4KQo+IMKg wqAgIzp1c2UtbW9kdWxlIChzcmZpIHNyZmktMSkKPiDCoMKgICM6dXNlLW1vZHVsZSAoc3JmaSBz cmZpLTI2KQo+IC3CoCAjOmV4cG9ydCAocmViYXItYnVpbGQKPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCAlc3RhbmRhcmQtcGhhc2VzKSkKPiArwqAgIzpleHBvcnQgKHJlYmFyLWJ1aWxkICVzdGFu ZGFyZC1waGFzZXMpKQo+IMKgCj4gwqA7Owo+IMKgOzsgQnVpbGRlci1zaWRlIGNvZGUgb2YgdGhl IHN0YW5kYXJkIGJ1aWxkIHByb2NlZHVyZSBmb3IgRXJsYW5nCj4gcGFja2FnZXMgdXNpbmcKPiDC oDs7IHJlYmFyMy4KPiDCoDs7Cj4gLTs7IFRPRE86IFRoaW5rIGFib3V0IHdoZXRoZXIgYmluZGly ICgiZWJpbiIpLCBsaWJkaXIgKCJwcml2IikgYW5kCj4gaW5jbHVkZWRpcgo+IC07OyAiKGluY2x1 ZGUiKSBuZWVkIHRvIGJlIGNvbmZpZ3VyYWJsZQo+ICs7OyBMaWJyYXJ5IGRpcmVjdG9yeQo+ICs7 O8KgwqAgQSDCqyBsaWJyYXJ5IGRpcmVjdG9yeSDCuyBpcyBhIGRpcmVjdG9yeSB3aGVyZSBFcmxh bmcgc2VhcmNoZXMKPiBmb3IgY29tcGlsZWQKPiArOzvCoMKgIGNvZGUuIEl0cyBuYW1lIHNob3Vs ZCBsb29rIGxpa2U6IGBhX25hbWUtMS4yLjMnIHdoZXJlIHRoZQo+IHN1ZmZpeCBgLTEuMi4zJwo+ ICs7O8KgwqAgaXMgb3B0aW9uYWwuIFNlZToKPiBodHRwczovL3d3dy5lcmxhbmcub3JnL2RvYy9t YW4vY29kZSNjb2RlLXBhdGguCj4gKzs7Cj4gKzs7IFBhY2thZ2UgbmFtZQo+ICs7O8KgwqAgQSDC qyBwYWNrYWdlIG5hbWUgwrsgaXMgdGhlIHZhbHVlIG9mIHRoZSBuYW1lIGZpZWxkIG9mIGEgcGFj a2FnZQo+ICs7O8KgwqAgZGVmaW5pdGlvbi4gSXQgbG9va3MgbGlrZTogYHByZWZpeC1hLW5hbWUt MS4yLjMnLiBTZWU6Cj4gKzs7wqDCoCBodHRwczovL2d1aXguZ251Lm9yZy9tYW51YWwvZW4vaHRt bF9ub2RlL1BhY2thZ2UtTmFtaW5nLmh0bWwKPiArOzsKPiArOzsgUHJvZmlsZQo+ICs7O8KgwqAg Rm9yIFJlYmFyMywgYSDCqyBwcm9maWxlIMK7IGlzIGEgbmFtZSBhc3NvY2lhdGVkIHRvIGEgc2V0 IG9mCj4gY29uZmlndXJhdGlvbgo+ICs7O8KgwqAgc2V0dGluZ3Mgb3ZlcnJpZGluZyBvciBjb21w bGVtZW50aW5nIHRoZSByZWd1bGFyIGNvbmZpZ3VyYXRpb24uCj4gU2VlOgo+ICs7O8KgwqAgaHR0 cHM6Ly9yZWJhcjMub3JnL2RvY3MvY29uZmlndXJhdGlvbi9wcm9maWxlcwo+ICs7Owo+ICs7OyBT b3VyY2UKPiArOzvCoMKgIEEgwqsgc291cmNlIMK7IHJlcHJlc2VudHMgdGhlIHNvdXJjZSBjb2Rl IGFzc29jaWF0ZWQgdG8gYSBHdWl4Cj4gcGFja2FnZSBhcwo+ICs7O8KgwqAgZGVmaW5lZCBieSBp dHMgYHNvdXJjZScgZmllbGQuIEhlcmUsIHRoZSBkYXRhIHNjdHJ1Y3R1cmUgdXNlZAo+IHRvCj4g Kzs7wqDCoCByZXByZXNlbnQgYSBzb3VyY2UgaGFzIHRoZSBmb3JtIGAobGlzdCBuYW1lIHBhdGgp JyB3aGVyZSBgbmFtZScKPiBpcyBhCj4gKzs7wqDCoCBsaWJyYXJ5IGRpcmVjdG9yeSBuYW1lIGFu ZCBgcGF0aCcgaXMgdGhlIHN0b3JlIHBhdGggd2hlcmUgdG8KPiBmaW5kIHRoZQo+ICs7O8KgwqAg c291cmNlIGNvZGUuCj4gKzs7Cj4gKzs7IENoZWNrb3V0Cj4gKzs7wqDCoCBBIMKrIGNoZWNrb3V0 IMK7IGlzIGEgbG9jYWxseSBkZWZpbmVkIGRlcGVuZGVuY3kgcmVsYXRlZCB0byBhCj4gZGlyZWN0 b3J5Cj4gKzs7wqDCoCBtYW5hZ2VkIGJ5IHJlYmFyLsKgIFNlZToKPiArOzvCoMKgCj4gaHR0cHM6 Ly9yZWJhcjMub3JnL2RvY3MvY29uZmlndXJhdGlvbi9kZXBlbmRlbmNpZXMvI2NoZWNrb3V0LWRl cGVuZGVuY2llcwo+IMKgCj4gLShkZWZpbmUgJWVybGFuZy1saWJkaXIgIi9saWIvZXJsYW5nL2xp YiIpCj4gKyhkZWZpbmUgc2VwICIvIikKVWhtLCBkaWQgeW91IG1lYW4gZmlsZS1uYW1lLXNlcGFy YXRvci1zdHJpbmcgZnJvbSBHdWlsZSBjb3JlPwoKPiAtKGRlZmluZSogKGVybGFuZy1kZXBlbmRz ICM6a2V5IGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCj4gLcKgIChkZWZpbmUgaW5wdXQtZGly ZWN0b3JpZXMKPiAtwqDCoMKgIChtYXRjaCBpbnB1dHMKPiAtwqDCoMKgwqDCoCAoKChfIC4gZGly KSAuLi4pCj4gLcKgwqDCoMKgwqDCoCBkaXIpKSkKPiAtwqAgKG1rZGlyLXAgIl9jaGVja291dHMi KQo+IC0KPiAtwqAgKGZvci1lYWNoCj4gLcKgwqAgKGxhbWJkYSAoaW5wdXQtZGlyKQo+IC3CoMKg wqDCoCAobGV0ICgoZWxpYmRpciAoc3RyaW5nLWFwcGVuZCBpbnB1dC1kaXIgJWVybGFuZy1saWJk aXIpKSkKPiAtwqDCoMKgwqDCoMKgICh3aGVuIChkaXJlY3RvcnktZXhpc3RzPyBlbGliZGlyKQo+ IC3CoMKgwqDCoMKgwqDCoMKgIChmb3ItZWFjaAo+IC3CoMKgwqDCoMKgwqDCoMKgwqAgKGxhbWJk YSAoZGlybmFtZSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAobGV0ICgoZGVzdCAoc3RyaW5n LWFwcGVuZCBlbGliZGlyICIvIiBkaXJuYW1lKSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoCAobGluayAoc3RyaW5nLWFwcGVuZCAiX2NoZWNrb3V0cy8iIGRpcm5hbWUpKSkK PiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKHdoZW4gKG5vdCAoZmlsZS1leGlzdHM/IGxp bmspKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgOzsgUkVUSElOSzogTWF5YmUg YmV0dGVyIGNvcHkgYW5kIG1ha2Ugd3JpdGFibGUgdG8KPiBhdm9pZCBzb21lCj4gLcKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCA7OyBlcnJvciBtZXNzYWdlcyBlLmcuIHdoZW4gdXNpbmcg d2l0aCByZWJhcjMtZ2l0LQo+IHZzbi4KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg IChzeW1saW5rIGRlc3QgbGluaykpKSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgIChsaXN0LWRpcmVj dG9yaWVzIGVsaWJkaXIpKSkpKQo+IC3CoMKgIGlucHV0LWRpcmVjdG9yaWVzKSkKPiArOzsgV2hl cmUgRXJsYW5nIGxpYnJhcmllcyBhcmUgaW5zdGFsbGVkIHJlbGF0aXZlIHRvIGEgcGFja2FnZSBw YXRoCj4gaW4gdGhlIHN0b3JlLgo+ICsoZGVmaW5lIGxpYi1lcmxhbmctbGliICJsaWIvZXJsYW5n L2xpYiIpCj4gKwo+ICsoZGVmaW5lIChsaXN0LWRpcmVjdG9yaWVzIGRpcmVjdG9yeSkKPiArwqAg IlJldHVybiBmaWxlIG5hbWVzIG9mIHRoZSBzdWItZGlyZWN0b3J5IG9mIERJUkVDVE9SWS4iCj4g K8KgIChzY2FuZGlyIGRpcmVjdG9yeQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoCAobGFtYmRhIChm aWxlKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGFuZCAobm90IChtZW1iZXIgZmlsZSAn KCIuIiAiLi4iKSkpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGZpbGUt aXMtZGlyZWN0b3J5PyAoc3RyaW5nLWFwcGVuZCBkaXJlY3Rvcnkgc2VwCj4gZmlsZSkpKSkpKQpX ZSBoYXZlIGZpbmQtZmlsZXM/Cj4gKwo+ICsoZGVmaW5lKiAocGtnLW5hbWUtPmxpYmRpci1uYW1l IG5hbWUpCj4gK8KgICJSZXR1cm4gdGhlIGxpYnJhcnkgbmFtZSBkZWR1Y2VkIGZyb20gdGhlIEVy bGFuZyBwYWNrYWdlIG5hbWUKPiBOQU1FLiIKPiArwqAgKGxldCogKChzdWZmaXggKHJlZ2V4cC1z dWJzdGl0dXRlICNmIChzdHJpbmctbWF0Y2ggIl5lcmxhbmctKC4qKSIKPiBuYW1lKSAxKSkKPiAr wqDCoMKgwqDCoMKgwqDCoCAoZWxlbWVudHMgKHN0cmluZy1zcGxpdCBzdWZmaXggI1wtKSkpCj4g K8KgwqDCoCAoc3RyaW5nLWFwcGVuZCAoc3RyaW5nLWpvaW4gKGRyb3AtcmlnaHQgZWxlbWVudHMg MSkgIl8iKSAiLSIKPiAobGFzdCBlbGVtZW50cykpKSkKPiArCj4gKyhkZWZpbmUgKGxpYmRpci1u YW1lLT5wcmVmaXggbmFtZSkKPiArwqAgIlJldHVybiB0aGUgcHJlZml4IG9mIGEgbGlicmFyeSBk aXJlY3RvcnkgbmFtZSBOQU1FLiIKPiArwqAgKGNhciAoc3RyaW5nLXNwbGl0IG5hbWUgI1wtKSkp Cj4gKwo+ICsoZGVmaW5lIChyZWJhci1idWlsZC1kaXIgcHJvZmlsZSkKPiArwqAgIlJldHVybiB0 aGUgcGF0aCB3aGVyZSByZWJhciBidWlsZHMgbGlicmFyaWVzIGdpdmVuIHRoZSBwcm9maWxlCj4g UFJPRklMRS4iCj4gK8KgIChmb3JtYXQgI2YgIl9idWlsZC9+YS9saWIiIHByb2ZpbGUpKQo+ICsK PiArKGRlZmluZSogKHBrZy1uYW1lLT5idWlsZC1kaXIgbmFtZSAjOmtleSAocHJvZmlsZSAiZGVm YXVsdCIpKQo+ICvCoCAiUmV0dXJuIHRoZSBwYXRoIG9mIGxpYnJhcnkgZGlyZWN0b3J5IHdoZXJl IHJlYmFyMyBidWlsZHMgY29kZSBvZgo+IGFuIEVybGFuZyBwYWNrYWdlIG5hbWVkIE5BTUUgZ2l2 ZW4gdGhlIHByb2ZpbGUgUFJPRklMRS4iCj4gK8KgIChzdHJpbmctYXBwZW5kIChyZWJhci1idWls ZC1kaXIgcHJvZmlsZSkgc2VwIChsaWJkaXItbmFtZS0+cHJlZml4Cj4gKHBrZy1uYW1lLT5saWJk aXItbmFtZSBuYW1lKSkpKQo+IMKgCj4gwqAoZGVmaW5lKiAodW5wYWNrICM6a2V5IHNvdXJjZSAj OmFsbG93LW90aGVyLWtleXMpCj4gLcKgICJVbnBhY2sgU09VUkNFIGluIHRoZSB3b3JraW5nIGRp cmVjdG9yeSwgYW5kIGNoYW5nZSBkaXJlY3RvcnkKPiB3aXRoaW4gdGhlCj4gLXNvdXJjZS7CoCBX aGVuIFNPVVJDRSBpcyBhIGRpcmVjdG9yeSwgY29weSBpdCBpbiBhIHN1Yi1kaXJlY3Rvcnkgb2YK PiB0aGUgY3VycmVudAo+IC13b3JraW5nIGRpcmVjdG9yeS4iCj4gLcKgIChsZXQgKChnbnUtdW5w YWNrIChhc3NvYy1yZWYgZ251OiVzdGFuZGFyZC1waGFzZXMgJ3VucGFjaykpKQo+IC3CoMKgwqAg KGdudS11bnBhY2sgIzpzb3VyY2Ugc291cmNlKQo+IC3CoMKgwqAgOzsgUGFja2FnZXMgZnJvbSBo ZXgucG0gdHlwaWNhbGx5IGhhdmUgYSBjb250ZW50cy50YXIuZ3oKPiBjb250YWluaW5nIHRoZQo+ IC3CoMKgwqAgOzsgYWN0dWFsIHNvdXJjZS4gSWYgdGhpcyB0YXIgZmlsZSBleGlzdHMsIGV4dHJh Y3QgaXQuCj4gLcKgwqDCoCAod2hlbiAoZmlsZS1leGlzdHM/ICJjb250ZW50cy50YXIuZ3oiKQo+ IC3CoMKgwqDCoMKgIChpbnZva2UgInRhciIgInh2ZiIgImNvbnRlbnRzLnRhci5neiIpKSkpCj4g LQo+IC0oZGVmaW5lKiAoYnVpbGQgIzprZXkgKHJlYmFyLWZsYWdzICcoKSkgIzphbGxvdy1vdGhl ci1rZXlzKQo+ICvCoCAoaWYgKGZpbGUtaXMtZGlyZWN0b3J5PyBzb3VyY2UpCj4gK8KgwqDCoMKg wqAgOzsgSWYgc291cmNlIGlzIGEgY2hlY2tvdXQ6Cj4gK8KgwqDCoMKgwqAgKGJlZ2luCj4gK8Kg wqDCoMKgwqDCoMKgIDs7IFByZXNlcnZlIHRpbWVzdGFtcHMgKHNldCB0byB0aGUgRXBvY2gpIG9u IHRoZSBjb3BpZWQgdHJlZQo+IHNvIHRoYXQKPiArwqDCoMKgwqDCoMKgwqAgOzsgdGhpbmdzIHdv cmsgZGV0ZXJtaW5pc3RpY2FsbHkuCj4gK8KgwqDCoMKgwqDCoMKgIChjb3B5LXJlY3Vyc2l2ZWx5 IHNvdXJjZSAiLiIgIzprZWVwLW10aW1lPyAjdCkKPiArwqDCoMKgwqDCoMKgwqAgOzsgTWFrZSB0 aGUgc291cmNlIGNoZWNrb3V0IGZpbGVzIHdyaXRhYmxlLCBmb3IgY29udmVuaWVuY2UuCj4gK8Kg wqDCoMKgwqDCoMKgIChmb3ItZWFjaCAobGFtYmRhIChmKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoCAoZmFsc2UtaWYtZXhjZXB0aW9uIChtYWtlLWZpbGUtd3JpdGFi bGUgZikpKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChmaW5kLWZpbGVz ICIuIikpKQo+ICsKPiArwqDCoMKgwqDCoCA7OyBJZiBzb3VyY2UgaXMgYW4gaGV4LnBtIGFyY2hp dmU6Cj4gK8KgwqDCoMKgwqAgKGJlZ2luCj4gK8KgwqDCoMKgwqDCoMKgIChpbnZva2UgInRhciIg Inh2ZiIgc291cmNlKQo+ICvCoMKgwqDCoMKgwqDCoCAoaW52b2tlICJ0YXIiICJ4dmYiICJjb250 ZW50cy50YXIuZ3oiKQo+ICsKPiArwqDCoMKgwqDCoMKgwqAgOzsgUHJldmVudCBhbiBlcnJvciBt ZXNzYWdlIGR1cmluZyB0aGUgaW5zdGFsbCBwaGFzZS4KPiArwqDCoMKgwqDCoMKgwqAgOzvCoMKg IGByZWJhcjMgY29tcGlsZScgcHJvZHVjZXMgc3ltbGlua3MgbGlrZSBzbyBpbiBfYnVpbGQvOgo+ ICvCoMKgwqDCoMKgwqDCoCA7O8KgwqDCoMKgwqAgcHJpdiAtPiAuLi8uLi8uLi8uLi9wcml2Cj4g K8KgwqDCoMKgwqDCoMKgIDs7wqDCoMKgwqDCoCBpbmNsdWRlIC0+IC4uLy4uLy4uLy4uL2luY2x1 ZGUKPiArwqDCoMKgwqDCoMKgwqAgOzsKPiArwqDCoMKgwqDCoMKgwqAgOzvCoMKgIFRoZSBpbnN0 YWxsIHBoYXNlIGNvcGllcyB3aGF0ZXZlciBoYXMgYmVlbiBidWlsdCB0byB0aGUKPiBvdXRwdXQg ZGlyZWN0b3J5Lgo+ICvCoMKgwqDCoMKgwqDCoCA7O8KgwqAgSWYgdGhlIHByaXYvIGRpcmVjdG9y eSBpcyBhYnNlbnQsIHRoZW4gYW4gZXJyb3IgYGkvbwo+IGVycm9yOgo+ICvCoMKgwqDCoMKgwqDC oCA7O8KgwqAgX2J1aWxkL+KApi9wcml2OiBObyBzdWNoIGZpbGUgb3IgZGlyZWN0b3J5JyBvY2N1 cnMuIFNvLAo+IHdlIG1ha2Ugc3VyZSB0aGF0IGEKPiArwqDCoMKgwqDCoMKgwqAgOzvCoMKgIGRp cmVjdG9yeSBleGlzdHMuCj4gK8KgwqDCoMKgwqDCoMKgIChmb3ItZWFjaCAobGFtYmRhIChkaXIp IChta2Rpci1wIGRpcikpIChsaXN0ICJwcml2Igo+ICJpbmNsdWRlIikpKSkpClVobSwgaG93IGFy ZSB5b3UgaW1wcm92aW5nIHRoZSBzdGF0dXMgcXVvIGhlcmU/Cgo+ICsKPiArKGRlZmluZSAoY29u ZmlndXJlLUhPTUUgLiBpZ25vcmVkX2FyZ3MpCkp1c3QgXyBpcyBmaW5lIGZvciBpZ25vcmVkIGFy Z3VtZW50cy4KPiArwqAgIkluIHNvbWUgY2FzZXMsIGl0IGlzIG5lZWRlZCBmb3IgdGhlIGVudmly b25tZW50IHZhcmlhYmxlIEhPTUUgdG8KPiBiZSBkZWZpbmVkCj4gK2FzIGEgZGlyZWN0b3J5IHdp dGggd3JpdGUgcGVybWlzc2lvbi4gRXhhbXBsZXMgb2YgZXJyb3JzOgo+ICsKPiArQ291bGQgbm90 IHdyaXRlIHRvIFwiL2hvbWVsZXNzLXNoZWx0ZXIvLmNhY2hlL3JlYmFyMy9oZXhcIi4gUGxlYXNl Cj4gZW5zdXJlIHRoZSBwYXRoIGlzIHdyaXRlYWJsZS4KPiArIgo+ICvCoCAobGV0ICgoSE9NRSAi SE9NRSIpCj4gK8KgwqDCoMKgwqDCoMKgICh0bXAgIi90bXAiKSkKPiArwqDCoMKgIChzZXRlbnYg SE9NRSB0bXApCj4gK8KgwqDCoCAoZm9ybWF0ICN0ICJ+YT1+YVxuIiBIT01FIHRtcCkpKQpUaGUg Y2Fub25pY2FsIHdheSBpcyB0byB1c2UgKGdldGN3ZCkgYXMgSE9NRS4gIFlvdSBjYW4gY291bGQg YWxzbyB0cnkKc29tZXRoaW5nIGxpa2UgKGNhbm9uaWNhbGl6ZS1wYXRoICIuLi9oZXhwbS1ob21l IikuICBBbnlob3csIHlvdSBtaWdodAp3YW50IHRvIHRyeSB1c2luZyBhIHZhcmlhYmxlIHRoYXQg aXMgbGVzcyBnbG9iYWwgdGhhbiBIT01FLgoKPiArKGRlZmluZSogKGNvbmZpZ3VyZS1kZXBlbmRl bmNpZXMgIzprZXkKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoaW5zdGFsbC1wcm9maWxlICJkZWZhdWx0IikKPiArwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoCBpbnB1dHMKPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBuYW1lCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc291cmNlcy1lcmxhbmcgO0xp c3Qgb2YgU291cmNlLgo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHZlcnNpb24KPiArwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjOmFsbG93LW90aGVy LWtleXMpCj4gK8KgICJSZWJhcjMgcmVmdXNlcyB0byBjb21waWxlIHdpdGhvdXQgbmV0d29yayBh Y2Nlc3MgdW5sZXNzIGl0cwo+IGRlcGVuZGVuY2llcyBhcmUKPiArcHJlc2VudCBhcyBzb3VyY2Ug Y2hlY2tvdXRzLiBUbyBwcmV2ZW50IHVubmVjZXNzYXJ5IGNvbXBpbGF0aW9ucywgd2UKPiBtdXN0 IMKrCj4gK3ByZS1pbnN0YWxsIMK7IGRlcGVuZGVuY2llcyBpbiBSZWJhcidzIGJ1aWxkIGRpcmVj dG9yeS4iCkkgc3VnZ2VzdCBub3QgdXNpbmcgZnJlbmNoIHF1b3RlcyDigJMgdGhleSBhcmUgY29u ZnVzaW5nIGJldHdlZW4gRnJlbmNoCmFuZCBHZXJtYW4gbmF0aXZlIHNwZWFrZXJzIDopCllvdSBt aWdodCB3YW50IHRvIGxvb2sgaW50byBwb3NzaWJsZSBQQVRIIHZhcmlhYmxlcyBvciBwdXQgdGhl c2UKc291cmNlcyBpbnRvIGEgc3BlY2lhbCBmb2xkZXIgc28gdGhhdCB5b3UgY2FuIHVzZSBzZWFy Y2gtcGF0aC1hcy1saXN0LgoKQWxzbywgSUlVQyBlcmxhbmctZGVwZW5kcyBhbHJlYWR5IGRvZXMg c29tZXRoaW5nIHJhdGhlciBzaW1pbGFyLiAgSXMKdGhlcmUgYW55IHJlYXNvbiBpdCdzIGJyb2tl biBmb3IgeW91Pwo+ICsKPiArwqAgOzsgSWYgc291cmNlIGluIHNvdXJjZXMtZXJsYW5nLCB0aGVu IGluc3RhbGwgaXQgdW5kZXIgX2NoZWNrb3V0cy8uCj4gK8KgIChsZXQgKChfY2hlY2tvdXRzICJf Y2hlY2tvdXRzIikpCj4gK8KgwqDCoCAobWtkaXItcCBfY2hlY2tvdXRzKQo+ICsKPiArwqDCoMKg IChkZWZpbmUgKGluc3RhbGwtc291cmNlIHNvdXJjZSkKPiArwqDCoMKgwqDCoCAiSW5zdGFsbCB0 aGUgU291cmNlIFNPVVJDRSBpbiBfY2hlY2tvdXRzLiIKPiArwqDCoMKgwqDCoCAobWF0Y2ggc291 cmNlCj4gK8KgwqDCoMKgwqDCoMKgICgobmFtZSBwYXRoKQo+ICvCoMKgwqDCoMKgwqDCoMKgIChs ZXQgKChzcmMgKHN0cmluZy1hcHBlbmQgX2NoZWNrb3V0cyBzZXAgbmFtZSkpKQo+ICvCoMKgwqDC oMKgwqDCoMKgwqDCoCAobWtkaXItcCBzcmMpCj4gK8KgwqDCoMKgwqDCoMKgwqDCoMKgICh3aXRo LWRpcmVjdG9yeS1leGN1cnNpb24gc3JjICh1bnBhY2sgIzpzb3VyY2UgcGF0aCkpKSkKPiArwqDC oMKgwqDCoMKgwqAgKF8gI2YpKSkKPiArCj4gK8KgwqDCoCAoZm9yLWVhY2ggaW5zdGFsbC1zb3Vy Y2Ugc291cmNlcy1lcmxhbmcpKQo+ICsKPiArwqAgOzsgSWYgaW5wdXQgaW4gaW5wdXRzIGlzIGFu IEVybGFuZyBwYWNrYWdlLCB0aGVuIGluc3RhbGwgaXQgdW5kZXIKPiBfYnVpbGQvLgo+ICvCoCAo bGV0ICgoX2J1aWxkIChmb3JtYXQgI2YgIl9idWlsZC9+YS9jaGVja291dHMiIGluc3RhbGwtcHJv ZmlsZSkpKQo+ICvCoMKgwqAgKG1rZGlyLXAgX2J1aWxkKQo+ICsKPiArwqDCoMKgIChkZWZpbmUg KGluc3RhbGwtbGliZGlyIGVsaWIgbmFtZSBkZXN0KQo+ICvCoMKgwqDCoMKgICJJbnN0YWxsIHRo ZSBsaWJyYXJ5IGRpcmVjdG9yeSBuYW1lZCBOQU1FIGZyb20gRUxJQiB0byBERVNULiIKPiArwqDC oMKgwqDCoCAobGV0ICgoc3JjIChzdHJpbmctYXBwZW5kIGVsaWIgc2VwIG5hbWUpKQo+ICvCoMKg wqDCoMKgwqDCoMKgwqDCoMKgIChkZXN0IChzdHJpbmctYXBwZW5kIGRlc3Qgc2VwIChsaWJkaXIt bmFtZS0+cHJlZml4Cj4gbmFtZSkpKSkKPiArwqDCoMKgwqDCoMKgwqAgKGNvcHktcmVjdXJzaXZl bHkgc3JjIGRlc3QpCj4gK8KgwqDCoMKgwqDCoMKgIChta2Rpci1wIChzdHJpbmctYXBwZW5kIGRl c3QgIi9wcml2IikpKSkKPiArCj4gK8KgwqDCoCAoZGVmaW5lIChpbnN0YWxsLWFsbC1saWJkaXJz IGRpciBkZXN0KQo+ICvCoMKgwqDCoMKgICJJbnN0YWxsIGluIERFU1QgYWxsIGxpYnJhcnkgZGly ZWN0b3JpZXMgaW4gRElSLiIKPiArwqDCoMKgwqDCoCAobGV0ICgoZWxpYiAoc3RyaW5nLWFwcGVu ZCBkaXIgc2VwIGxpYi1lcmxhbmctbGliKSkpCj4gK8KgwqDCoMKgwqDCoMKgICh3aGVuIChkaXJl Y3RvcnktZXhpc3RzPyBlbGliKQo+ICvCoMKgwqDCoMKgwqDCoMKgwqAgKGZvci1lYWNoIChsYW1i ZGEgKG5hbWUpIChpbnN0YWxsLWxpYmRpciBlbGliIG5hbWUgZGVzdCkpCj4gK8KgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChsaXN0LWRpcmVjdG9yaWVzIGVsaWIpKSkpKQo+ ICsKPiArwqDCoMKgIChtYXRjaCBpbnB1dHMKPiArwqDCoMKgwqDCoCAoKChfIC4gZGlycykgLi4x KQo+ICvCoMKgwqDCoMKgwqAgKGZvci1lYWNoCj4gK8KgwqDCoMKgwqDCoMKgIChsYW1iZGEgKGRp cikgKGluc3RhbGwtYWxsLWxpYmRpcnMgZGlyIF9idWlsZCkpCj4gK8KgwqDCoMKgwqDCoMKgIGRp cnMpKQo+ICvCoMKgwqDCoMKgIChfICNmKSkpKQo+ICsKPiArKGRlZmluZSogKGJ1aWxkICM6a2V5 IG5hbWUgKHJlYmFyLWZsYWdzICcoKSkgIzphbGxvdy1vdGhlci1rZXlzKQo+IMKgwqAgKGFwcGx5 IGludm9rZSBgKCJyZWJhcjMiICJjb21waWxlIiAsQHJlYmFyLWZsYWdzKSkpCj4gwqAKPiAtKGRl ZmluZSogKGNoZWNrICM6a2V5IHRhcmdldCAocmViYXItZmxhZ3MgJygpKSAodGVzdHM/IChub3Qg dGFyZ2V0KSkKPiArKGRlZmluZSogKGNoZWNrICM6a2V5IHRhcmdldAo+ICvCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKHJlYmFyLWZsYWdzICcoKSkKPiArwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICh0ZXN0cz8gKG5vdCB0YXJnZXQpKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICh0ZXN0LXRhcmdldCAiZXVuaXQiKQo+IMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgICM6YWxsb3ctb3RoZXIta2V5cykKPiDCoMKgIChpZiB0ZXN0cz8KPiDCoMKg wqDCoMKgwqAgKGFwcGx5IGludm9rZSBgKCJyZWJhcjMiICx0ZXN0LXRhcmdldCAsQHJlYmFyLWZs YWdzKSkKPiDCoMKgwqDCoMKgwqAgKGZvcm1hdCAjdCAidGVzdCBzdWl0ZSBub3QgcnVufiUiKSkp Cj4gwqAKPiAtKGRlZmluZSAoZXJsYW5nLXBhY2thZ2U/IG5hbWUpCj4gLcKgICJDaGVjayBpZiBO QU1FIGNvcnJlc3BvbmQgdG8gdGhlIG5hbWUgb2YgYW4gRXJsYW5nIHBhY2thZ2UuIgo+IC3CoCAo c3RyaW5nLXByZWZpeD8gImVybGFuZy0iIG5hbWUpKQo+IC0KPiAtKGRlZmluZSAocGFja2FnZS1u YW1lLXZlcnNpb24tPmVybGFuZy1uYW1lIG5hbWUrdmVyKQo+IC3CoCAiQ29udmVydCB0aGUgR3Vp eCBwYWNrYWdlIE5BTUUtVkVSIHRvIHRoZSBjb3JyZXNwb25kaW5nIEVybGFuZwo+IG5hbWUtdmVy c2lvbgo+IC1mb3JtYXQuwqAgRXNzZW50aWFsbHkgZHJvcCB0aGUgcHJlZml4IHVzZWQgaW4gR3Vp eCBhbmQgcmVwbGFjZSBkYXNoZXMKPiBieQo+IC11bmRlcnNjb3Jlcy4iCj4gLcKgIChsZXQqICgo bmFtZS0gKHBhY2thZ2UtbmFtZS0+bmFtZSt2ZXJzaW9uIG5hbWUrdmVyKSkpCj4gLcKgwqDCoCAo c3RyaW5nLWpvaW4KPiAtwqDCoMKgwqAgKHN0cmluZy1zcGxpdAo+IC3CoMKgwqDCoMKgIChpZiAo ZXJsYW5nLXBhY2thZ2U/IG5hbWUtKcKgIDsgY2hlY2tzIGZvciAiZXJsYW5nLSIgcHJlZml4Cj4g LcKgwqDCoMKgwqDCoMKgwqDCoCAoc3RyaW5nLWRyb3AgbmFtZS0gKHN0cmluZy1sZW5ndGggImVy bGFuZy0iKSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgIG5hbWUtKQo+IC3CoMKgwqDCoMKgICNcLSkK PiAtwqDCoMKgwqAgIl8iKSkpCj4gLQo+IC0oZGVmaW5lIChsaXN0LWRpcmVjdG9yaWVzIGRpcmVj dG9yeSkKPiAtwqAgIlJldHVybiBmaWxlIG5hbWVzIG9mIHRoZSBzdWItZGlyZWN0b3J5IG9mIERJ UkVDVE9SWS4iCj4gLcKgIChzY2FuZGlyIGRpcmVjdG9yeQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDC oCAobGFtYmRhIChmaWxlKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGFuZCAobm90ICht ZW1iZXIgZmlsZSAnKCIuIiAiLi4iKSkpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKGZpbGUtaXMtZGlyZWN0b3J5PyAoc3RyaW5nLWFwcGVuZCBkaXJlY3RvcnkgIi8iCj4g ZmlsZSkpKSkpKQo+IC0KPiAtKGRlZmluZSogKGluc3RhbGwgIzprZXkgbmFtZSBvdXRwdXRzCj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgKGluc3RhbGwtbmFtZSAocGFja2Fn ZS1uYW1lLXZlcnNpb24tPmVybGFuZy1uYW1lCj4gbmFtZSkpCj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqAgKGluc3RhbGwtcHJvZmlsZSAiZGVmYXVsdCIpIDsgYnVpbGQgcHJv ZmlsZQo+IG91dHB1dHMgdG8gaW5zdGFsbAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgICM6YWxsb3ctb3RoZXIta2V5cykKPiAtwqAgKGxldCogKChvdXQgKGFzc29jLXJlZiBv dXRwdXRzICJvdXQiKSkKPiAtwqDCoMKgwqDCoMKgwqDCoCAocGtnLWRpciAoc3RyaW5nLWFwcGVu ZCBvdXQgJWVybGFuZy1saWJkaXIgIi8iIGluc3RhbGwtCj4gbmFtZSkpKQo+IC3CoMKgwqAgKGxl dCAoKGJpbi1kaXIgKHN0cmluZy1hcHBlbmQgIl9idWlsZC8iIGluc3RhbGwtcHJvZmlsZSAiL2Jp biIpKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqAgKGxpYi1kaXIgKHN0cmluZy1hcHBlbmQgIl9idWls ZC8iIGluc3RhbGwtcHJvZmlsZQo+ICIvbGliIikpKQo+IC3CoMKgwqDCoMKgIDs7IGluc3RhbGwg X2J1aWxkL1BST0ZJTEUvYmluCj4gLcKgwqDCoMKgwqAgKHdoZW4gKGZpbGUtZXhpc3RzPyBiaW4t ZGlyKQo+IC3CoMKgwqDCoMKgwqDCoCAoY29weS1yZWN1cnNpdmVseSBiaW4tZGlyIG91dCAjOmZv bGxvdy1zeW1saW5rcz8gI3QpKQo+IC3CoMKgwqDCoMKgIDs7IGluc3RhbGwgX2J1aWxkL1BST0ZJ TEUvbGliLyove2ViaW4saW5jbHVkZSxwcml2fQo+IC3CoMKgwqDCoMKgIChmb3ItZWFjaAo+IC3C oMKgwqDCoMKgwqAgKGxhbWJkYSAoKikKPiAtwqDCoMKgwqDCoMKgwqDCoCAoZm9yLWVhY2gKPiAt wqDCoMKgwqDCoMKgwqDCoMKgIChsYW1iZGEgKGRpcm5hbWUpCj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgKGxldCAoKHNyYy1kaXIgKHN0cmluZy1hcHBlbmQgbGliLWRpciAiLyIgKiAiLyIKPiBk aXJuYW1lKSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZHN0LWRpciAo c3RyaW5nLWFwcGVuZCBwa2ctZGlyICIvIiBkaXJuYW1lKSkpCj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgICh3aGVuIChmaWxlLWV4aXN0cz8gc3JjLWRpcikKPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgIChjb3B5LXJlY3Vyc2l2ZWx5IHNyYy1kaXIgZHN0LWRpciAjOmZvbGxv dy1zeW1saW5rcz8KPiAjdCkpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIChmYWxzZS1p Zi1leGNlcHRpb24KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAoZGVsZXRlLWZpbGUg KHN0cmluZy1hcHBlbmQgZHN0LWRpcgo+ICIvLmdpdGlnbm9yZSIpKSkpKQo+IC3CoMKgwqDCoMKg wqDCoMKgwqAgJygiZWJpbiIgImluY2x1ZGUiICJwcml2IikpKQo+IC3CoMKgwqDCoMKgwqAgKGxp c3QtZGlyZWN0b3JpZXMgbGliLWRpcikpCj4gLcKgwqDCoMKgwqAgKGZhbHNlLWlmLWV4Y2VwdGlv bgo+IC3CoMKgwqDCoMKgwqAgKGRlbGV0ZS1maWxlIChzdHJpbmctYXBwZW5kIHBrZy1kaXIgIi9w cml2L1J1bi1ldW5pdC0KPiBsb29wLmV4cGVjdCIpKSkpKSkKPiArKGRlZmluZSogKGluc3RhbGwg IzprZXkgbmFtZSBvdXRwdXRzIChpbnN0YWxsLXByb2ZpbGUgImRlZmF1bHQiKQo+ICM6YWxsb3ct b3RoZXIta2V5cykKPiArwqAgKGxldCogKChzcmMgKHBrZy1uYW1lLT5idWlsZC1kaXIgbmFtZSAj OnByb2ZpbGUgaW5zdGFsbC1wcm9maWxlKSkKPiArwqDCoMKgwqDCoMKgwqDCoCAoZGVzdCAoc3Ry aW5nLWFwcGVuZCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpCj4gK8KgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2VwIGxpYi1lcmxhbmct bGliIHNlcAo+ICvCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIChwa2ctbmFtZS0+bGliZGlyLW5hbWUgbmFtZSkpKSkKPiArwqDCoMKgICht a2Rpci1wIGRlc3QpCj4gK8KgwqDCoCAoY29weS1yZWN1cnNpdmVseSBzcmMgZGVzdCAjOmZvbGxv dy1zeW1saW5rcz8gI3QpKSkKPiDCoAo+IMKgKGRlZmluZSAlc3RhbmRhcmQtcGhhc2VzCj4gwqDC oCAobW9kaWZ5LXBoYXNlcyBnbnU6JXN0YW5kYXJkLXBoYXNlcwo+IMKgwqDCoMKgIChyZXBsYWNl ICd1bnBhY2sgdW5wYWNrKQo+ICvCoMKgwqAgKGFkZC1hZnRlciAndW5wYWNrICdjb25maWd1cmUt SE9NRSBjb25maWd1cmUtSE9NRSkKPiDCoMKgwqDCoCAoZGVsZXRlICdib290c3RyYXApCj4gwqDC oMKgwqAgKGRlbGV0ZSAnY29uZmlndXJlKQo+IC3CoMKgwqAgKGFkZC1iZWZvcmUgJ2J1aWxkICdl cmxhbmctZGVwZW5kcyBlcmxhbmctZGVwZW5kcykKPiArwqDCoMKgIChhZGQtYmVmb3JlICdidWls ZCAnY29uZmlndXJlLWRlcGVuZGVuY2llcyBjb25maWd1cmUtCj4gZGVwZW5kZW5jaWVzKQo+IMKg wqDCoMKgIChyZXBsYWNlICdidWlsZCBidWlsZCkKPiDCoMKgwqDCoCAocmVwbGFjZSAnY2hlY2sg Y2hlY2spCj4gwqDCoMKgwqAgKHJlcGxhY2UgJ2luc3RhbGwgaW5zdGFsbCkpKQo+IMKgCj4gLShk ZWZpbmUqIChyZWJhci1idWlsZCAjOmtleSBpbnB1dHMgKHBoYXNlcyAlc3RhbmRhcmQtcGhhc2Vz KQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgIzphbGxvdy1v dGhlci1rZXlzICM6cmVzdCBhcmdzKQo+ICsoZGVmaW5lKiAocmViYXItYnVpbGQgIzprZXkgaW5w dXRzIChwaGFzZXMgJXN0YW5kYXJkLXBoYXNlcykKPiAjOmFsbG93LW90aGVyLWtleXMgIzpyZXN0 IGFyZ3MpCj4gwqDCoCAiQnVpbGQgdGhlIGdpdmVuIEVybGFuZyBwYWNrYWdlLCBhcHBseWluZyBh bGwgb2YgUEhBU0VTIGluIG9yZGVyLiIKPiDCoMKgIChhcHBseSBnbnU6Z251LWJ1aWxkICM6aW5w dXRzIGlucHV0cyAjOnBoYXNlcyBwaGFzZXMgYXJncykpCj4gKwo+ICs7OzsgcmViYXItYnVpbGQt c3lzdGVtLnNjbSBlbmRzIGhlcmUKPiAKPiBiYXNlLWNvbW1pdDogNGRmYmM1MzY2ODliMDdlNTZh ZWFkM2RkODY0YjhhZjU0NjEzZDA5MQo+IC0tCj4gMi40MS4wCkNoZWVycwo=