Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pv5jw-0002nK-2i for pgsql-hackers@arkaria.postgresql.org; Sat, 06 May 2023 00:25:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1pv5js-0002lZ-U7 for pgsql-hackers@arkaria.postgresql.org; Sat, 06 May 2023 00:25:28 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pv5js-0002lQ-5l for pgsql-hackers@lists.postgresql.org; Sat, 06 May 2023 00:25:28 +0000 Received: from mail-pf1-x42f.google.com ([2607:f8b0:4864:20::42f]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.94.2) (envelope-from ) id 1pv5jm-000lXl-Tv for pgsql-hackers@lists.postgresql.org; Sat, 06 May 2023 00:25:26 +0000 Received: by mail-pf1-x42f.google.com with SMTP id d2e1a72fcca58-6436e075166so1879422b3a.0 for ; Fri, 05 May 2023 17:25:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=j-davis-com.20221208.gappssmtp.com; s=20221208; t=1683332721; x=1685924721; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=hTrnZJaH/lnZpikmCXNpDGPSO5viQSNu2N7XECrQc3Y=; b=f9U6aIC5PMyNYslV+nADbrtwsTcVm5HcdcnJrn2t5n2tlrgzFqgD9TINndZwahz7p+ HgBvmDgN1zhgs740GlDOiRp+vUibsLEDIDrte7ib6+UB5K5yHyCxNpAEaMFoyjsNDxTl vcPBsHQm4/Y7fW9jSyaLRezEZnd926ZZQH/VNIm7uhJieC7ksiHEUgB33ebf2/hfthFA pIKIYad+CEwxlaydVvdlPobH3zcv9VFjvZH5WtuPLuWGjgH0bwsfKrBc6m3ALA1LfrDb bJpwZ0aAgVS16AteZQXhX1toiMN+ZBenVFuKrNrp/amMH951sXuIneKzXQmQEZdT6IjQ wwfA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683332721; x=1685924721; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=hTrnZJaH/lnZpikmCXNpDGPSO5viQSNu2N7XECrQc3Y=; b=bXmSH97qJxQYnERRBoY0LprRIa8IFoWa7fdfSTQf9PABtO5NDZNbmzX/Bg3uRsnXYH 3T8PDDQHTHDs2vBn0/uhzJwcNzrv6d49x5+gbPtImQY+PKcQOag/EXSz+kwydH3UuwD/ rgnWBOP9KfCNSbPiMk4tkAnur7aveW6ZOSf+lFcyG///5ifnEalqKJJeJGNRa1KYi20C 5mLjpMlLfhe6XLI+8p3AQUIpty39af2Hn2CUF8AFh520idiMYwUJYuoT/5Rsyzu8nX90 cmCPmMHaFPDmjoSvGvRUrw43hC8VsQsguHL7b2exqKNtZS8ERYmOlY3lN5WoZxrNAfa5 PUfA== X-Gm-Message-State: AC+VfDw1Dn4N+GgbBA026sDmGDlFOVfm3lyVTjuj2qaCUj/SUWZKQP04 mSaqUXzM0WzEi2T2UJc6xScMMQ== X-Google-Smtp-Source: ACHHUZ5fHqMCyQ005CFLkiEP2jMAE9Ju0YWqDV1YmwzxMnsfV7WmS6gezG2qP4eMdXfBmN0sn90KyA== X-Received: by 2002:a05:6a00:10d3:b0:63b:5496:7afa with SMTP id d19-20020a056a0010d300b0063b54967afamr4309467pfu.11.1683332721051; Fri, 05 May 2023 17:25:21 -0700 (PDT) Received: from jeff-laptop.lan (c-73-170-46-202.hsd1.ca.comcast.net. [73.170.46.202]) by smtp.gmail.com with ESMTPSA id e1-20020aa78241000000b00640f01e130fsm2129314pfn.124.2023.05.05.17.25.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 05 May 2023 17:25:20 -0700 (PDT) Message-ID: <2ffe8ffb9291b9390b9ed6c1e34b4fae8e8ce324.camel@j-davis.com> Subject: Re: Order changes in PG16 since ICU introduction From: Jeff Davis To: Robert Haas Cc: Tom Lane , Regina Obe , Peter Eisentraut , Sandro Santilli , pgsql-hackers@lists.postgresql.org Date: Fri, 05 May 2023 17:25:18 -0700 In-Reply-To: References: <000b01d97465$c34bbd60$49e33820$@pcorp.us> <3353947.1682092131@sss.pgh.pa.us> <533d93c5-f604-8e5f-4a48-975c08c53d59@enterprisedb.com> <3365333.1682098091@sss.pgh.pa.us> <002d01d97477$f0395640$d0ac02c0$@pcorp.us> <3367226.1682099185@sss.pgh.pa.us> <003b01d9747a$910471c0$b30d5540$@pcorp.us> <3368986.1682099982@sss.pgh.pa.us> <000001d9747d$066b7560$13426020$@pcorp.us> <3372735.1682101425@sss.pgh.pa.us> <7ee07b7d5aa4fb0b47e5657640568fdd25ba168f.camel@j-davis.com> Content-Type: multipart/mixed; boundary="=-flFLEZJY7XlPJwr/sxsL" User-Agent: Evolution 3.44.4-0ubuntu1 MIME-Version: 1.0 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --=-flFLEZJY7XlPJwr/sxsL Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Fri, 2023-04-21 at 20:12 -0400, Robert Haas wrote: > On Fri, Apr 21, 2023 at 5:56=E2=80=AFPM Jeff Davis wr= ote: > > Most of the complaints seem to be complaints about v15 as well, and > > while those complaints may be a reason to not make ICU the default, > > they are also an argument that we should continue to learn and try > > to > > fix those issues because they exist in an already-released version. > > Leaving it the default for now will help us fix those issues rather > > than hide them. > >=20 > > It's still early, so we have plenty of time to revert the initdb > > default if we need to. >=20 > That's fair enough, but I really think it's important that some > energy > get invested in providing adequate documentation for this stuff. Just > patching the code is not enough. Attached a significant documentation patch. I tried to make it comprehensive without trying to be exhaustive, and I separated the explanation of language tags from what collation settings you can include in a language tag, so hopefully that's more clear. I added quite a few examples spread throughout the various sections, and I preserved the existing examples at the end. I also left all of the external links at the bottom for those interested enough to go beyond what's there. I didn't add additional documentation for ICU rules. There are so many options for collations that it's hard for me to think of realistic examples to specify the rules directly, unless someone wants to invent a new language. Perhaps useful if working with an interesting text file format with special treatment for delimiters? I asked the question about rules here: https://www.postgresql.org/message-id/e861ac4fdae9f9f5ce2a938a37bcb5e083f0f= 489.camel%40cybertec.at and got some limited response about addressing sort complaints. That sounds reasonable, but a lot of that can also be handled just by specifying the right collation settings. Someone who understands the use case better could add some more documentation. --=20 Jeff Davis PostgreSQL Contributor Team - AWS --=-flFLEZJY7XlPJwr/sxsL Content-Disposition: attachment; filename*0=v1-0001-Doc-improvements-for-language-tags-and-custom-ICU.pat; filename*1=ch Content-Type: text/x-patch; name="v1-0001-Doc-improvements-for-language-tags-and-custom-ICU.patch"; charset="UTF-8" Content-Transfer-Encoding: base64 RnJvbSBiMDk1MTViZmFmNWU5ZGUzMzAxMzhlYzRhNjI3ZDAyYTc5NDdkZTFhIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKZWZmIERhdmlzIDxqZWZmQGotZGF2aXMuY29tPgpEYXRlOiBU aHUsIDI3IEFwciAyMDIzIDE0OjQzOjQ2IC0wNzAwClN1YmplY3Q6IFtQQVRDSCB2MV0gRG9jIGlt cHJvdmVtZW50cyBmb3IgbGFuZ3VhZ2UgdGFncyBhbmQgY3VzdG9tIElDVQogY29sbGF0aW9ucy4K ClNlcGFyYXRlIHRoZSBkb2N1bWVudGF0aW9uIGZvciBsYW5ndWFnZSB0YWdzIGZyb20gdGhlIGRv Y3VtZW50YWl0b24KZm9yIHRoZSBhdmFpbGFibGUgY29sbGF0aW9uIHNldHRpbmdzIHdoaWNoIGNh biBiZSBpbmNsdWRlZCBpbiBhCmxhbmd1YWdlIHRhZy4KCkluY2x1ZGUgdGFibGVzIG9mIHRoZSBh dmFpbGFibGUgb3B0aW9ucywgbW9yZSBkZXRhaWxzIGFib3V0IHRoZQplZmZlY3RzIG9mIGVhY2gg b3B0aW9uLCBhbmQgYWRkaXRpb25hbCBleGFtcGxlcy4KCkFsc28gaW5jbHVkZSBhbiBleHBsYW5h dGlvbiBvZiB0aGUgImxldmVscyIgb2YgdGV4dHVhbCBmZWF0dXJlcyBhbmQKaG93IHRoZXkgcmVs YXRlIHRvIGNvbGxhdGlvbi4KLS0tCiBkb2Mvc3JjL3NnbWwvY2hhcnNldC5zZ21sIHwgNjU2ICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKystLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgNTM1 IGluc2VydGlvbnMoKyksIDEyMSBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9kb2Mvc3JjL3Nn bWwvY2hhcnNldC5zZ21sIGIvZG9jL3NyYy9zZ21sL2NoYXJzZXQuc2dtbAppbmRleCA2ZGQ5NWI4 OTY2Li5iZTc0MDY0MTY4IDEwMDY0NAotLS0gYS9kb2Mvc3JjL3NnbWwvY2hhcnNldC5zZ21sCisr KyBiL2RvYy9zcmMvc2dtbC9jaGFyc2V0LnNnbWwKQEAgLTM3Nyw3ICszNzcsMTI1IEBAIGluaXRk YiAtLWxvY2FsZS1wcm92aWRlcj1pY3UgLS1pY3UtbG9jYWxlPWVuCiAgICAgdmFyaWFudHMgYW5k IGN1c3RvbWl6YXRpb24gb3B0aW9ucy4KICAgIDwvcGFyYT4KICAgPC9zZWN0Mj4KKyAgPHNlY3Qy IGlkPSJpY3UtbG9jYWxlcyI+CisgICA8dGl0bGU+SUNVIExvY2FsZXM8L3RpdGxlPgorICAgPHNl Y3QzIGlkPSJpY3UtbG9jYWxlLW5hbWVzIj4KKyAgICA8dGl0bGU+SUNVIExvY2FsZSBOYW1lczwv dGl0bGU+CisgICAgPHBhcmE+CisgICAgIFRoZSBJQ1UgZm9ybWF0IGZvciB0aGUgbG9jYWxlIG5h bWUgaXMgYSA8bGluaworICAgICBsaW5rZW5kPSJpY3UtbGFuZ3VhZ2UtdGFnIj5MYW5ndWFnZSBU YWc8L2xpbms+LgorCis8cHJvZ3JhbWxpc3Rpbmc+CitDUkVBVEUgQ09MTEFUSU9OIG15Y29sbGF0 aW9uMSAoUFJPVklERVIgPSBpY3UsIExPQ0FMRSA9ICdqYS1KUCk7CitDUkVBVEUgQ09MTEFUSU9O IG15Y29sbGF0aW9uMiAoUFJPVklERVIgPSBpY3UsIExPQ0FMRSA9ICdmcicpOworPC9wcm9ncmFt bGlzdGluZz4KKyAgICA8L3BhcmE+CisgICA8L3NlY3QzPgorICAgPHNlY3QzIGlkPSJpY3UtY2Fu b25pY2FsaXphdGlvbiI+CisgICAgPHRpdGxlPkxvY2FsZSBDYW5vbmljYWxpemF0aW9uIGFuZCBW YWxpZGF0aW9uPC90aXRsZT4KKyAgICA8cGFyYT4KKyAgICAgV2hlbiBkZWZpbmluZyBhIG5ldyBJ Q1UgY29sbGF0aW9uIG9iamVjdCBvciBkYXRhYmFzZSB3aXRoIElDVSBhcyB0aGUKKyAgICAgcHJv dmlkZXIsIHRoZSBnaXZlbiBsb2NhbGUgbmFtZSBpcyB0cmFuc2Zvcm1lZCAoImNhbm9uaWNhbGl6 ZWQiKSBpbnRvIGEKKyAgICAgbGFuZ3VhZ2UgdGFnIGlmIG5vdCBhbHJlYWR5IGluIHRoYXQgZm9y bS4gRm9yIGluc3RhbmNlLAorCis8c2NyZWVuPgorQ1JFQVRFIENPTExBVElPTiBteWNvbGxhdGlv bjMgKFBST1ZJREVSID0gaWN1LCBMT0NBTEUgPSAnZW4tVVMtdS1rbi10cnVlJyk7CitOT1RJQ0U6 ICB1c2luZyBzdGFuZGFyZCBmb3JtICJlbi1VUy11LWtuIiBmb3IgbG9jYWxlICJlbi1VUy11LWtu LXRydWUiCitDUkVBVEUgQ09MTEFUSU9OIG15Y29sbGF0aW9uNCAoUFJPVklERVIgPSBpY3UsIExP Q0FMRSA9ICdkZV9ERS51dGY4Jyk7CitOT1RJQ0U6ICB1c2luZyBzdGFuZGFyZCBmb3JtICJkZS1E RSIgZm9yIGxvY2FsZSAiZGVfREUudXRmOCIKKzwvc2NyZWVuPgorCisgICAgIElmIHlvdSBzZWUg c3VjaCBhIG1lc3NhZ2UsIGVuc3VyZSB0aGF0IHRoZSA8c3ltYm9sPlBST1ZJREVSPC9zeW1ib2w+ IGFuZAorICAgICA8c3ltYm9sPkxPQ0FMRTwvc3ltYm9sPiBhcmUgYXMgeW91IGV4cGVjdCwgYW5k IGNvbnNpZGVyIHNwZWNpZnlpbmcKKyAgICAgZGlyZWN0bHkgYXMgdGhlIGNhbm9uaWNhbCBsYW5n dWFnZSB0YWcgaW5zdGVhZCBvZiByZWx5aW5nIG9uIHRoZQorICAgICB0cmFuc2Zvcm1hdGlvbi4K KyAgICA8L3BhcmE+CisgICAgPG5vdGU+CisgICAgIDxwYXJhPgorICAgICAgSUNVIGNhbiB0cmFu c2Zvcm0gbW9zdCBsaWJjIGxvY2FsZSBuYW1lcywgYXMgd2VsbCBhcyBzb21lIG90aGVyIGZvcm1h dHMsCisgICAgICBpbnRvIGxhbmd1YWdlIHRhZ3MgZm9yIGVhc2llciB0cmFuc2l0aW9uIHRvIElD VS4gSWYgYSBsaWJjIGxvY2FsZSBuYW1lCisgICAgICBpcyB1c2VkIGluIElDVSwgaXQgbWF5IG5v dCBoYXZlIHByZWNpc2VseSB0aGUgc2FtZSBiZWhhdmlvciBhcyBpbiBsaWJjLgorICAgICA8L3Bh cmE+CisgICAgPC9ub3RlPgorICAgIDxwYXJhPgorICAgICBJZiB0aGVyZSBpcyBzb21lIHByb2Js ZW0gaW50ZXJwcmV0aW5nIHRoZSBsb2NhbGUgbmFtZSwgb3IgaWYgaXQgcmVwcmVzZW50cworICAg ICBhIGxhbmd1YWdlIG9yIHJlZ2lvbiB0aGF0IElDVSBkb2VzIG5vdCByZWNvZ25pemUsIGEgbWVz c2FnZSB3aWxsIGJlIHJlcG9ydGVkOgogCis8c2NyZWVuPgorU0VUIGljdV92YWxpZGF0aW9uX2xl dmVsID0gRVJST1I7CitDUkVBVEUgQ09MTEFUSU9OIG5vbnNlbnNlIChQUk9WSURFUiA9IGljdSwg TE9DQUxFID0gJ25vbnNlbnNlJyk7CitFUlJPUjogIElDVSBsb2NhbGUgIm5vbnNlbnNlIiBoYXMg dW5rbm93biBsYW5ndWFnZSAibm9uc2Vuc2UiCitISU5UOiAgVG8gZGlzYWJsZSBJQ1UgbG9jYWxl IHZhbGlkYXRpb24sIHNldCBwYXJhbWV0ZXIgaWN1X3ZhbGlkYXRpb25fbGV2ZWwgdG8gRElTQUJM RUQuCis8L3NjcmVlbj4KKworICAgICA8eHJlZgorICAgICBsaW5rZW5kPSJndWMtaWN1LXZhbGlk YXRpb24tbGV2ZWwiLz4gY29udHJvbHMgaG93IHRoZSBtZXNzYWdlIGlzCisgICAgIHJlcG9ydGVk LiBJZiBzZXQgYmVsb3cgPGxpdGVyYWw+RVJST1I8L2xpdGVyYWw+LCB0aGUgY29sbGF0aW9uIHdp bGwgc3RpbGwKKyAgICAgYmUgY3JlYXRlZCwgYnV0IHRoZSBiZWhhdmlvciBtYXkgbm90IGJlIHdo YXQgdGhlIHVzZXIgaW50ZW5kZWQuCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mz4KKyAgIDxzZWN0 MyBpZD0iaWN1LWxhbmd1YWdlLXRhZyI+CisgICAgPHRpdGxlPkxhbmd1YWdlIFRhZzwvdGl0bGU+ CisgICAgPHBhcmE+CisgICAgIEJhc2ljIGxhbmd1YWdlIHRhZ3MgYXJlIHNpbXBseQorICAgICA8 cmVwbGFjZWFibGU+bGFuZ3VhZ2U8L3JlcGxhY2VhYmxlPjxsaXRlcmFsPi08L2xpdGVyYWw+PHJl cGxhY2VhYmxlPnJlZ2lvbjwvcmVwbGFjZWFibGU+OworICAgICBvciBldmVuIGp1c3QgPHJlcGxh Y2VhYmxlPmxhbmd1YWdlPC9yZXBsYWNlYWJsZT4uIFRoZQorICAgICA8cmVwbGFjZWFibGU+bGFu Z3VhZ2U8L3JlcGxhY2VhYmxlPiBpcyBhIGxhbmd1YWdlIGNvZGUKKyAgICAgKGUuZy4gPGxpdGVy YWw+ZnI8L2xpdGVyYWw+IGZvciBGcmVuY2ggb3IgPGxpdGVyYWw+dW5kPC9saXRlcmFsPiBmb3IK KyAgICAgInVuZGVmaW5lZCIpLCBhbmQgPHJlcGxhY2VhYmxlPnJlZ2lvbjwvcmVwbGFjZWFibGU+ IGlzIGEgcmVnaW9uIGNvZGUKKyAgICAgKGUuZy4gPGxpdGVyYWw+Q0E8L2xpdGVyYWw+IGZvciBD YW5hZGEpLiBFeGFtcGxlczoKKyAgICAgPGxpdGVyYWw+amEtSlA8L2xpdGVyYWw+LCA8bGl0ZXJh bD5kZTwvbGl0ZXJhbD4sIG9yCisgICAgIDxsaXRlcmFsPmZyLUNBPC9saXRlcmFsPi4KKyAgICA8 L3BhcmE+CisgICAgPHBhcmE+CisgICAgIENvbGxhdGlvbiBzZXR0aW5ncyBtYXkgYmUgaW5jbHVk ZWQgaW4gdGhlIGxhbmd1YWdlIHRhZyB0byBjdXN0b21pemUKKyAgICAgY29sbGF0aW9uIGJlaGF2 aW9yLiBJQ1UgYWxsb3dzIGV4dGVuc2l2ZSBjdXN0b21pemF0aW9uLCBzdWNoIGFzCisgICAgIHNl bnNpdGl2aXR5IChvciBpbnNlbnNpdGl2aXR5KSB0byBhY2NlbnRzLCBjYXNlLCBhbmQgcHVuY3R1 YXRpb247CisgICAgIHRyZWF0bWVudCBvZiBkaWdpdHMgd2l0aGluIHRleHQ7IGFuZCBtYW55IG90 aGVyIG9wdGlvbnMgdG8gc2F0aXNmeSBhCisgICAgIHZhcmlldHkgb2YgdXNlcy4KKyAgICA8L3Bh cmE+CisgICAgPHBhcmE+CisgICAgIFRvIGluY2x1ZGUgdGhpcyBhZGRpdGlvbmFsIGNvbGxhdGlv biBpbmZvcm1hdGlvbiBpbiBhIGxhbmd1YWdlIHRhZywKKyAgICAgYXBwZW5kIDxsaXRlcmFsPi11 PC9saXRlcmFsPiwgZm9sbG93ZWQgYnkgb25lIG9yIG1vcmUKKyAgICAgPGxpdGVyYWw+LTwvbGl0 ZXJhbD48cmVwbGFjZWFibGU+a2V5PC9yZXBsYWNlYWJsZT48bGl0ZXJhbD4tPC9saXRlcmFsPjxy ZXBsYWNlYWJsZT52YWx1ZTwvcmVwbGFjZWFibGU+CisgICAgIHBhaXJzLCB3aGVyZSA8cmVwbGFj ZWFibGU+a2V5PC9yZXBsYWNlYWJsZT4gaXMgdGhlIGtleSBmb3IgYSBjb2xsYXRpb24KKyAgICAg c2V0dGluZyBhbmQgPHJlcGxhY2VhYmxlPnZhbHVlPC9yZXBsYWNlYWJsZT4gaXMgYSB2YWxpZCB2 YWx1ZSBmb3IgdGhhdAorICAgICBzZXR0aW5nLiBGb3IgYm9vbGVhbiBzZXR0aW5ncywgdGhlCisg ICAgIDxsaXRlcmFsPi08L2xpdGVyYWw+PHJlcGxhY2VhYmxlPmtleTwvcmVwbGFjZWFibGU+IG1h eSBiZSBzcGVjaWZpZWQKKyAgICAgd2l0aG91dCBhIGNvcnJlc3BvbmRpbmcKKyAgICAgPGxpdGVy YWw+LTwvbGl0ZXJhbD48cmVwbGFjZWFibGU+dmFsdWU8L3JlcGxhY2VhYmxlPiwgd2hpY2ggaW1w bGllcyBhCisgICAgIHZhbHVlIG9mIDxsaXRlcmFsPnRydWU8L2xpdGVyYWw+LgorICAgIDwvcGFy YT4KKyAgICA8cGFyYT4KKyAgICAgRm9yIGV4YW1wbGUsIHRoZSBsYW5ndWFnZSB0YWcgPGxpdGVy YWw+ZW4tVVMtdS1rbi1rcy1sZXZlbDI8L2xpdGVyYWw+CisgICAgIG1lYW5zIHRoZSBsb2NhbGUg d2l0aCB0aGUgRW5nbGlzaCBsYW5ndWFnZSBpbiB0aGUgVVMgcmVnaW9uLCB3aXRoCisgICAgIGNv bGxhdGlvbiBzZXR0aW5ncyA8bGl0ZXJhbD5rbjwvbGl0ZXJhbD4gc2V0IHRvIDxsaXRlcmFsPnRy dWU8L2xpdGVyYWw+CisgICAgIGFuZCA8bGl0ZXJhbD5rczwvbGl0ZXJhbD4gc2V0IHRvIDxsaXRl cmFsPmxldmVsMjwvbGl0ZXJhbD4uIFRob3NlCisgICAgIHNldHRpbmdzIG1lYW4gdGhlIGNvbGxh dGlvbiB3aWxsIGJlIGNhc2UtaW5zZW5zaXRpdmUgYW5kIHRyZWF0IGEgc2VxdWVuY2UKKyAgICAg b2YgZGlnaXRzIGFzIGEgc2luZ2xlIG51bWJlcjoKKworPHNjcmVlbj4KK0NSRUFURSBDT0xMQVRJ T04gbXljb2xsYXRpb241IChQUk9WSURFUiA9IGljdSwgREVURVJNSU5JU1RJQyA9IGZhbHNlLCBM T0NBTEUgPSAnZW4tVVMtdS1rbi1rcy1sZXZlbDInKTsKK1NFTEVDVCAnYUInID0gJ0FiJyBDT0xM QVRFIG15Y29sbGF0aW9uNSBhcyByZXN1bHQ7CisgcmVzdWx0CistLS0tLS0tLQorIHQKKygxIHJv dykKKworU0VMRUNUICdOLTQ1JyAmbHQ7ICdOLTEyMycgQ09MTEFURSBteWNvbGxhdGlvbjUgYXMg cmVzdWx0OworIHJlc3VsdAorLS0tLS0tLS0KKyB0CisoMSByb3cpCis8L3NjcmVlbj4KKyAgICA8 L3BhcmE+CisgICAgPHBhcmE+CisgICAgIFNlZSA8eHJlZiBsaW5rZW5kPSJpY3UtY3VzdG9tLWNv bGxhdGlvbnMiLz4gZm9yIGRldGFpbHMgYW5kIGFkZGl0aW9uYWwKKyAgICAgZXhhbXBsZXMgb2Yg dXNpbmcgbGFuZ3VhZ2UgdGFncyB3aXRoIGN1c3RvbSBjb2xsYXRpb24gaW5mb3JtYXRpb24gZm9y IHRoZQorICAgICBsb2NhbGUuCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mz4KKyAgPC9zZWN0Mj4K ICAgPHNlY3QyIGlkPSJsb2NhbGUtcHJvYmxlbXMiPgogICAgPHRpdGxlPlByb2JsZW1zPC90aXRs ZT4KIApAQCAtNjU4LDYgKzc3NiwxMyBAQCBTRUxFQ1QgKiBGUk9NIHRlc3QxIE9SREVSIEJZIGEg fHwgYiBDT0xMQVRFICJmcl9GUiI7CiAgICAgY29kZSBieXRlIHZhbHVlcy4KICAgIDwvcGFyYT4K IAorICAgPG5vdGU+CisgICAgPHBhcmE+CisgICAgIFRoZSA8bGl0ZXJhbD5DPC9saXRlcmFsPiBh bmQgPGxpdGVyYWw+UE9TSVg8L2xpdGVyYWw+IGxvY2FsZXMgbWF5IGJlaGF2ZQorICAgICBkaWZm ZXJlbnRseSBkZXBlbmRpbmcgb24gdGhlIGRhdGFiYXNlIGVuY29kaW5nLgorICAgIDwvcGFyYT4K KyAgIDwvbm90ZT4KKwogICAgPHBhcmE+CiAgICAgQWRkaXRpb25hbGx5LCB0d28gU1FMIHN0YW5k YXJkIGNvbGxhdGlvbiBuYW1lcyBhcmUgYXZhaWxhYmxlOgogCkBAIC04NjksMTMyICs5OTQsMjMg QEAgQ1JFQVRFIENPTExBVElPTiBnZXJtYW4gKHByb3ZpZGVyID0gbGliYywgbG9jYWxlID0gJ2Rl X0RFJyk7CiAgICA8c2VjdDQgaWQ9ImNvbGxhdGlvbi1tYW5hZ2luZy1jcmVhdGUtaWN1Ij4KICAg ICA8dGl0bGU+SUNVIENvbGxhdGlvbnM8L3RpdGxlPgogCi0gICA8cGFyYT4KLSAgICBJQ1UgYWxs b3dzIGNvbGxhdGlvbnMgdG8gYmUgY3VzdG9taXplZCBiZXlvbmQgdGhlIGJhc2ljIGxhbmd1YWdl K2NvdW50cnkKLSAgICBzZXQgdGhhdCBpcyBwcmVsb2FkZWQgYnkgPGNvbW1hbmQ+aW5pdGRiPC9j b21tYW5kPi4gIFVzZXJzIGFyZSBlbmNvdXJhZ2VkCi0gICAgdG8gZGVmaW5lIHRoZWlyIG93biBj b2xsYXRpb24gb2JqZWN0cyB0aGF0IG1ha2UgdXNlIG9mIHRoZXNlIGZhY2lsaXRpZXMgdG8KLSAg ICBzdWl0IHRoZSBzb3J0aW5nIGJlaGF2aW9yIHRvIHRoZWlyIHJlcXVpcmVtZW50cy4KLSAgICBT ZWUgPHVsaW5rIHVybD0iaHR0cHM6Ly91bmljb2RlLW9yZy5naXRodWIuaW8vaWN1L3VzZXJndWlk ZS9sb2NhbGUvIj48L3VsaW5rPgotICAgIGFuZCA8dWxpbmsgdXJsPSJodHRwczovL3VuaWNvZGUt b3JnLmdpdGh1Yi5pby9pY3UvdXNlcmd1aWRlL2NvbGxhdGlvbi9hcGkuaHRtbCI+PC91bGluaz4g Zm9yCi0gICAgaW5mb3JtYXRpb24gb24gSUNVIGxvY2FsZSBuYW1pbmcuICBUaGUgc2V0IG9mIGFj Y2VwdGFibGUgbmFtZXMgYW5kCi0gICAgYXR0cmlidXRlcyBkZXBlbmRzIG9uIHRoZSBwYXJ0aWN1 bGFyIElDVSB2ZXJzaW9uLgotICAgPC9wYXJhPgotCi0gICA8cGFyYT4KLSAgICBIZXJlIGFyZSBz b21lIGV4YW1wbGVzOgotCi0gICAgPHZhcmlhYmxlbGlzdD4KLSAgICAgPHZhcmxpc3RlbnRyeSBp ZD0iY29sbGF0aW9uLW1hbmFnaW5nLWNyZWF0ZS1pY3UtZGUtdS1jby1waG9uZWJrLXgtaWN1Ij4K LSAgICAgIDx0ZXJtPjxsaXRlcmFsPkNSRUFURSBDT0xMQVRJT04gImRlLXUtY28tcGhvbmViay14 LWljdSIgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnZGUtdS1jby1waG9uZWJrJyk7PC9saXRl cmFsPjwvdGVybT4KLSAgICAgIDx0ZXJtPjxsaXRlcmFsPkNSRUFURSBDT0xMQVRJT04gImRlLXUt Y28tcGhvbmViay14LWljdSIgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnZGVAY29sbGF0aW9u PXBob25lYm9vaycpOzwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAgICA8bGlzdGl0ZW0+Ci0gICAgICAg PHBhcmE+R2VybWFuIGNvbGxhdGlvbiB3aXRoIHBob25lIGJvb2sgY29sbGF0aW9uIHR5cGU8L3Bh cmE+Ci0gICAgICAgPHBhcmE+Ci0gICAgICAgIFRoZSBmaXJzdCBleGFtcGxlIHNlbGVjdHMgdGhl IElDVSBsb2NhbGUgdXNpbmcgYSA8cXVvdGU+bGFuZ3VhZ2UKLSAgICAgICAgdGFnPC9xdW90ZT4g cGVyIEJDUCA0Ny4gIFRoZSBzZWNvbmQgZXhhbXBsZSB1c2VzIHRoZSB0cmFkaXRpb25hbAotICAg ICAgICBJQ1Utc3BlY2lmaWMgbG9jYWxlIHN5bnRheC4gIFRoZSBmaXJzdCBzdHlsZSBpcyBwcmVm ZXJyZWQgZ29pbmcKLSAgICAgICAgZm9yd2FyZCwgYW5kIGlzIHVzZWQgaW50ZXJuYWxseSB0byBz dG9yZSBsb2NhbGVzLgotICAgICAgIDwvcGFyYT4KLSAgICAgICA8cGFyYT4KLSAgICAgICAgTm90 ZSB0aGF0IHlvdSBjYW4gbmFtZSB0aGUgY29sbGF0aW9uIG9iamVjdHMgaW4gdGhlIFNRTCBlbnZp cm9ubWVudAotICAgICAgICBhbnl0aGluZyB5b3Ugd2FudC4gIEluIHRoaXMgZXhhbXBsZSwgd2Ug Zm9sbG93IHRoZSBuYW1pbmcgc3R5bGUgdGhhdAotICAgICAgICB0aGUgcHJlZGVmaW5lZCBjb2xs YXRpb25zIHVzZSwgd2hpY2ggaW4gdHVybiBhbHNvIGZvbGxvdyBCQ1AgNDcsIGJ1dAotICAgICAg ICB0aGF0IGlzIG5vdCByZXF1aXJlZCBmb3IgdXNlci1kZWZpbmVkIGNvbGxhdGlvbnMuCi0gICAg ICAgPC9wYXJhPgotICAgICAgPC9saXN0aXRlbT4KLSAgICAgPC92YXJsaXN0ZW50cnk+Ci0KLSAg ICAgPHZhcmxpc3RlbnRyeSBpZD0iY29sbGF0aW9uLW1hbmFnaW5nLWNyZWF0ZS1pY3UtdW5kLXUt Y28tZW1vamkteC1pY3UiPgotICAgICAgPHRlcm0+PGxpdGVyYWw+Q1JFQVRFIENPTExBVElPTiAi dW5kLXUtY28tZW1vamkteC1pY3UiIChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ3VuZC11LWNv LWVtb2ppJyk7PC9saXRlcmFsPjwvdGVybT4KLSAgICAgIDx0ZXJtPjxsaXRlcmFsPkNSRUFURSBD T0xMQVRJT04gInVuZC11LWNvLWVtb2ppLXgtaWN1IiAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9 ICdAY29sbGF0aW9uPWVtb2ppJyk7PC9saXRlcmFsPjwvdGVybT4KLSAgICAgIDxsaXN0aXRlbT4K LSAgICAgICA8cGFyYT4KLSAgICAgICAgUm9vdCBjb2xsYXRpb24gd2l0aCBFbW9qaSBjb2xsYXRp b24gdHlwZSwgcGVyIFVuaWNvZGUgVGVjaG5pY2FsIFN0YW5kYXJkICM1MQotICAgICAgIDwvcGFy YT4KLSAgICAgICA8cGFyYT4KLSAgICAgICAgT2JzZXJ2ZSBob3cgaW4gdGhlIHRyYWRpdGlvbmFs IElDVSBsb2NhbGUgbmFtaW5nIHN5c3RlbSwgdGhlIHJvb3QKLSAgICAgICAgbG9jYWxlIGlzIHNl bGVjdGVkIGJ5IGFuIGVtcHR5IHN0cmluZy4KLSAgICAgICA8L3BhcmE+Ci0gICAgICA8L2xpc3Rp dGVtPgotICAgICA8L3Zhcmxpc3RlbnRyeT4KLQotICAgICA8dmFybGlzdGVudHJ5IGlkPSJjb2xs YXRpb24tbWFuYWdpbmctY3JlYXRlLWljdS1lbi11LWtyLWdyZWstbGF0biI+Ci0gICAgICA8dGVy bT48bGl0ZXJhbD5DUkVBVEUgQ09MTEFUSU9OIGxhdGlubGFzdCAocHJvdmlkZXIgPSBpY3UsIGxv Y2FsZSA9ICdlbi11LWtyLWdyZWstbGF0bicpOzwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAgICA8dGVy bT48bGl0ZXJhbD5DUkVBVEUgQ09MTEFUSU9OIGxhdGlubGFzdCAocHJvdmlkZXIgPSBpY3UsIGxv Y2FsZSA9ICdlbkBjb2xSZW9yZGVyPWdyZWstbGF0bicpOzwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAg ICA8bGlzdGl0ZW0+Ci0gICAgICAgPHBhcmE+Ci0gICAgICAgIFNvcnQgR3JlZWsgbGV0dGVycyBi ZWZvcmUgTGF0aW4gb25lcy4gIChUaGUgZGVmYXVsdCBpcyBMYXRpbiBiZWZvcmUgR3JlZWsuKQot ICAgICAgIDwvcGFyYT4KLSAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgIDwvdmFybGlzdGVudHJ5Pgot Ci0gICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImNvbGxhdGlvbi1tYW5hZ2luZy1jcmVhdGUtaWN1LWVu LXUta2YtdXBwZXIiPgotICAgICAgPHRlcm0+PGxpdGVyYWw+Q1JFQVRFIENPTExBVElPTiB1cHBl cmZpcnN0IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ2VuLXUta2YtdXBwZXInKTs8L2xpdGVy YWw+PC90ZXJtPgotICAgICAgPHRlcm0+PGxpdGVyYWw+Q1JFQVRFIENPTExBVElPTiB1cHBlcmZp cnN0IChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ2VuQGNvbENhc2VGaXJzdD11cHBlcicpOzwv bGl0ZXJhbD48L3Rlcm0+Ci0gICAgICA8bGlzdGl0ZW0+Ci0gICAgICAgPHBhcmE+Ci0gICAgICAg IFNvcnQgdXBwZXItY2FzZSBsZXR0ZXJzIGJlZm9yZSBsb3dlci1jYXNlIGxldHRlcnMuICAoVGhl IGRlZmF1bHQgaXMKLSAgICAgICAgbG93ZXItY2FzZSBsZXR0ZXJzIGZpcnN0LikKLSAgICAgICA8 L3BhcmE+Ci0gICAgICA8L2xpc3RpdGVtPgotICAgICA8L3Zhcmxpc3RlbnRyeT4KLQotICAgIDx2 YXJsaXN0ZW50cnkgaWQ9ImNvbGxhdGlvbi1tYW5hZ2luZy1jcmVhdGUtaWN1LWVuLXUta2YtdXBw ZXIta3ItZ3Jlay1sYXRuIj4KLSAgICAgIDx0ZXJtPjxsaXRlcmFsPkNSRUFURSBDT0xMQVRJT04g c3BlY2lhbCAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdlbi11LWtmLXVwcGVyLWtyLWdyZWst bGF0bicpOzwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAgICA8dGVybT48bGl0ZXJhbD5DUkVBVEUgQ09M TEFUSU9OIHNwZWNpYWwgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnZW5AY29sQ2FzZUZpcnN0 PXVwcGVyO2NvbFJlb3JkZXI9Z3Jlay1sYXRuJyk7PC9saXRlcmFsPjwvdGVybT4KLSAgICAgIDxs aXN0aXRlbT4KLSAgICAgICA8cGFyYT4KLSAgICAgICAgQ29tYmluZXMgYm90aCBvZiB0aGUgYWJv dmUgb3B0aW9ucy4KLSAgICAgICA8L3BhcmE+Ci0gICAgICA8L2xpc3RpdGVtPgotICAgICA8L3Zh cmxpc3RlbnRyeT4KLQotICAgICA8dmFybGlzdGVudHJ5IGlkPSJjb2xsYXRpb24tbWFuYWdpbmct Y3JlYXRlLWljdS1lbi11LWtuLXRydWUiPgotICAgICAgPHRlcm0+PGxpdGVyYWw+Q1JFQVRFIENP TExBVElPTiBudW1lcmljIChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ2VuLXUta24tdHJ1ZScp OzwvbGl0ZXJhbD48L3Rlcm0+Ci0gICAgICA8dGVybT48bGl0ZXJhbD5DUkVBVEUgQ09MTEFUSU9O IG51bWVyaWMgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnZW5AY29sTnVtZXJpYz15ZXMnKTs8 L2xpdGVyYWw+PC90ZXJtPgotICAgICAgPGxpc3RpdGVtPgotICAgICAgIDxwYXJhPgotICAgICAg ICBOdW1lcmljIG9yZGVyaW5nLCBzb3J0cyBzZXF1ZW5jZXMgb2YgZGlnaXRzIGJ5IHRoZWlyIG51 bWVyaWMgdmFsdWUsCi0gICAgICAgIGZvciBleGFtcGxlOiA8bGl0ZXJhbD5BLTIxPC9saXRlcmFs PiAmbHQ7IDxsaXRlcmFsPkEtMTIzPC9saXRlcmFsPgotICAgICAgICAoYWxzbyBrbm93biBhcyBu YXR1cmFsIHNvcnQpLgotICAgICAgIDwvcGFyYT4KLSAgICAgIDwvbGlzdGl0ZW0+Ci0gICAgIDwv dmFybGlzdGVudHJ5PgotICAgIDwvdmFyaWFibGVsaXN0PgotCi0gICAgU2VlIDx1bGluayB1cmw9 Imh0dHBzOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS90cjM1LWNvbGxhdGlvbi5odG1s Ij5Vbmljb2RlCi0gICAgVGVjaG5pY2FsIFN0YW5kYXJkICMzNTwvdWxpbms+Ci0gICAgYW5kIDx1 bGluayB1cmw9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9iY3A0NyI+QkNQIDQ3PC91bGlu az4gZm9yCi0gICAgZGV0YWlscy4gIFRoZSBsaXN0IG9mIHBvc3NpYmxlIGNvbGxhdGlvbiB0eXBl cyAoPGxpdGVyYWw+Y288L2xpdGVyYWw+Ci0gICAgc3VidGFnKSBjYW4gYmUgZm91bmQgaW4KLSAg ICB0aGUgPHVsaW5rIHVybD0iaHR0cHM6Ly9naXRodWIuY29tL3VuaWNvZGUtb3JnL2NsZHIvYmxv Yi9tYXN0ZXIvY29tbW9uL2JjcDQ3L2NvbGxhdGlvbi54bWwiPkNMRFIKLSAgICByZXBvc2l0b3J5 PC91bGluaz4uCi0gICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAgIElDVSBjb2xsYXRpb25zIGNh biBiZSBjcmVhdGVkIGxpa2U6CiAKLSAgIDxwYXJhPgotICAgIE5vdGUgdGhhdCB3aGlsZSB0aGlz IHN5c3RlbSBhbGxvd3MgY3JlYXRpbmcgY29sbGF0aW9ucyB0aGF0IDxxdW90ZT5pZ25vcmUKLSAg ICBjYXNlPC9xdW90ZT4gb3IgPHF1b3RlPmlnbm9yZSBhY2NlbnRzPC9xdW90ZT4gb3Igc2ltaWxh ciAodXNpbmcgdGhlCi0gICAgPGxpdGVyYWw+a3M8L2xpdGVyYWw+IGtleSksIGluIG9yZGVyIGZv ciBzdWNoIGNvbGxhdGlvbnMgdG8gYWN0IGluIGEKLSAgICB0cnVseSBjYXNlLSBvciBhY2NlbnQt aW5zZW5zaXRpdmUgbWFubmVyLCB0aGV5IGFsc28gbmVlZCB0byBiZSBkZWNsYXJlZCBhcyBub3QK LSAgICA8Zmlyc3R0ZXJtPmRldGVybWluaXN0aWM8L2ZpcnN0dGVybT4gaW4gPGNvbW1hbmQ+Q1JF QVRFIENPTExBVElPTjwvY29tbWFuZD47Ci0gICAgc2VlIDx4cmVmIGxpbmtlbmQ9ImNvbGxhdGlv bi1ub25kZXRlcm1pbmlzdGljIi8+LgotICAgIE90aGVyd2lzZSwgYW55IHN0cmluZ3MgdGhhdCBj b21wYXJlIGVxdWFsIGFjY29yZGluZyB0byB0aGUgY29sbGF0aW9uIGJ1dAotICAgIGFyZSBub3Qg Ynl0ZS13aXNlIGVxdWFsIHdpbGwgYmUgc29ydGVkIGFjY29yZGluZyB0byB0aGVpciBieXRlIHZh bHVlcy4KLSAgIDwvcGFyYT4KKzxwcm9ncmFtbGlzdGluZz4KK0NSRUFURSBDT0xMQVRJT04gZ2Vy bWFuIChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ2RlLURFJyk7Cis8L3Byb2dyYW1saXN0aW5n PgogCi0gICA8bm90ZT4KKyAgICAgSUNVIGxvY2FsZXMgYXJlIHNwZWNpZmllZCBhcyBhIDxsaW5r IGxpbmtlbmQ9ImljdS1sYW5ndWFnZS10YWciPkxhbmd1YWdlCisgICAgIFRhZzwvbGluaz4sIGJ1 dCBjYW4gYWxzbyBhY2NlcHQgbW9zdCBsaWJjLXN0eWxlIGxvY2FsZSBuYW1lcyAod2hpY2ggd2ls bAorICAgICBiZSB0cmFuc2Zvcm1lZCBpbnRvIGxhbmd1YWdlIHRhZ3MgaWYgcG9zc2libGUpLgor ICAgIDwvcGFyYT4KICAgICA8cGFyYT4KLSAgICAgQnkgZGVzaWduLCBJQ1Ugd2lsbCBhY2NlcHQg YWxtb3N0IGFueSBzdHJpbmcgYXMgYSBsb2NhbGUgbmFtZSBhbmQgbWF0Y2gKLSAgICAgaXQgdG8g dGhlIGNsb3Nlc3QgbG9jYWxlIGl0IGNhbiBwcm92aWRlLCB1c2luZyB0aGUgZmFsbGJhY2sgcHJv Y2VkdXJlCi0gICAgIGRlc2NyaWJlZCBpbiBpdHMgZG9jdW1lbnRhdGlvbi4gIFRodXMsIHRoZXJl IHdpbGwgYmUgbm8gZGlyZWN0IGZlZWRiYWNrCi0gICAgIGlmIGEgY29sbGF0aW9uIHNwZWNpZmlj YXRpb24gaXMgY29tcG9zZWQgdXNpbmcgZmVhdHVyZXMgdGhhdCB0aGUgZ2l2ZW4KLSAgICAgSUNV IGluc3RhbGxhdGlvbiBkb2VzIG5vdCBhY3R1YWxseSBzdXBwb3J0LiAgSXQgaXMgdGhlcmVmb3Jl IHJlY29tbWVuZGVkCi0gICAgIHRvIGNyZWF0ZSBhcHBsaWNhdGlvbi1sZXZlbCB0ZXN0IGNhc2Vz IHRvIGNoZWNrIHRoYXQgdGhlIGNvbGxhdGlvbgotICAgICBkZWZpbml0aW9ucyBzYXRpc2Z5IG9u ZSdzIHJlcXVpcmVtZW50cy4KKyAgICAgTmV3IElDVSBjb2xsYXRpb25zIGNhbiBjdXN0b21pemUg Y29sbGF0aW9uIGJlaGF2aW9yIGV4dGVuc2l2ZWx5IGJ5CisgICAgIGluY2x1ZGluZyBjb2xsYXRp b24gYXR0cmlidXRlcyBpbiB0aGUgbGFuZ3VnYWdlIHRhZy4gU2VlIDx4cmVmCisgICAgIGxpbmtl bmQ9ImljdS1jdXN0b20tY29sbGF0aW9ucyIvPiBmb3IgZGV0YWlscyBhbmQgZXhhbXBsZXMuCiAg ICAgPC9wYXJhPgotICAgPC9ub3RlPgogICAgPC9zZWN0ND4KLQogICAgPHNlY3Q0IGlkPSJjb2xs YXRpb24tY29weSI+CiAgICA8dGl0bGU+Q29weWluZyBDb2xsYXRpb25zPC90aXRsZT4KIApAQCAt MTA3Miw2ICsxMDg4LDQwNCBAQCBDUkVBVEUgQ09MTEFUSU9OIGlnbm9yZV9hY2NlbnRzIChwcm92 aWRlciA9IGljdSwgbG9jYWxlID0gJ3VuZC11LWtzLWxldmVsMS1rYy10cgogICAgIDwvdGlwPgog ICAgPC9zZWN0Mz4KICAgPC9zZWN0Mj4KKyAgPHNlY3QyIGlkPSJpY3UtY3VzdG9tLWNvbGxhdGlv bnMiPgorICAgPHRpdGxlPklDVSBDdXN0b20gQ29sbGF0aW9uczwvdGl0bGU+CisKKyAgIDxwYXJh PgorICAgIElDVSBhbGxvd3MgZXh0ZW5zaXZlIGNvbnRyb2wgb3ZlciBjb2xsYXRpb24gYmVoYXZp b3IgYnkgZGVmaW5pbmcgbmV3CisgICAgY29sbGF0aW9ucyB3aXRoIGNvbGxhdGlvbiBzZXR0aW5n cyBhcyBhIHBhcnQgb2YgdGhlIGxhbmd1YWdlIHRhZy4gVGhlc2UKKyAgICBzZXR0aW5ncyBjYW4g bW9kaWZ5IHRoZSBjb2xsYXRpb24gb3JkZXIgdG8gc3VpdCBhIHZhcmlldHkgb2YgbmVlZHMuIEZv cgorICAgIGluc3RhbmNlOgorCis8cHJvZ3JhbWxpc3Rpbmc+CistLSBpZ25vcmUgZGlmZmVyZW5j ZXMgaW4gYWNjZW50cyBhbmQgY2FzZQorQ1JFQVRFIENPTExBVElPTiBpZ25vcmVfYWNjZW50X2Nh c2UgKFBST1ZJREVSID0gaWN1LCBERVRFUk1JTklTVElDID0gZmFsc2UsIExPQ0FMRSA9ICd1bmQt dS1rcy1sZXZlbDEnKTsKK1NFTEVDVCAnw4UnID0gJ0EnIENPTExBVEUgaWdub3JlX2FjY2VudF9j YXNlOyAtLSB0cnVlCitTRUxFQ1QgJ3onID0gJ1onIENPTExBVEUgaWdub3JlX2FjY2VudF9jYXNl OyAtLSB0cnVlCisKKy0tIHVwcGVyIGNhc2UgbGV0dGVycyBzb3J0IGJlZm9yZSBsb3dlciBjYXNl LgorQ1JFQVRFIENPTExBVElPTiB1cHBlcl9maXJzdCAoUFJPVklERVI9aWN1LCBMT0NBTEUgPSAn dW5kLXUta2YtdXBwZXInKTsKK1NFTEVDVCAnQicgJmx0OyAnYicgQ09MTEFURSB1cHBlcl9maXJz dDsgLS0gdHJ1ZQorCistLSB0cmVhdCBkaWdpdHMgbnVtZXJpY2FsbHkgYW5kIGlnbm9yZSBwdW5j dHVhdGlvbgorQ1JFQVRFIENPTExBVElPTiBudW1faWdub3JlX3B1bmN0IChQUk9WSURFUiA9IGlj dSwgREVURVJNSU5JU1RJQyA9IGZhbHNlLCBMT0NBTEUgPSAndW5kLXUta2Etc2hpZnRlZC1rbicp OworU0VMRUNUICdpZC00NScgJmx0OyAnaWQtMTIzJyBDT0xMQVRFIG51bV9pZ25vcmVfcHVuY3Q7 IC0tIHRydWUKK1NFTEVDVCAndzt4KnkteicgPSAnd3h5eicgQ09MTEFURSBudW1faWdub3JlX3B1 bmN0OyAtLSB0cnVlCis8L3Byb2dyYW1saXN0aW5nPgorCisgICAgTWFueSBvZiB0aGUgYXZhaWxh YmxlIG9wdGlvbnMgYXJlIGRlc2NyaWJlZCBpbiA8eHJlZgorICAgIGxpbmtlbmQ9ImljdS1jb2xs YXRpb24tc2V0dGluZ3MiLz4sIG9yIHNlZSA8eHJlZgorICAgIGxpbmtlbmQ9ImljdS1leHRlcm5h bC1yZWZlcmVuY2VzIi8+IGZvciBtb3JlIGRldGFpbHMuCisgICA8L3BhcmE+CisgICA8c2VjdDMg aWQ9ImljdS1jb2xsYXRpb24tY29tcGFyaXNvbi1sZXZlbHMiPgorICAgIDx0aXRsZT5JQ1UgQ29t cGFyaXNvbiBMZXZlbHM8L3RpdGxlPgorICAgIDxwYXJhPgorICAgICBDb21wYXJpc29uIG9mIHR3 byBzdHJpbmdzIChjb2xsYXRpb24pIGluIElDVSBpcyBkZXRlcm1pbmVkIGJ5IGEKKyAgICAgbXVs dGktbGV2ZWwgcHJvY2Vzcywgd2hlcmUgdGV4dHVhbCBmZWF0dXJlcyBhcmUgZ3JvdXBlZCBpbnRv CisgICAgICJsZXZlbHMiLiBUcmVhdG1lbnQgb2YgZWFjaCBsZXZlbCBpcyBjb250cm9sbGVkIGJ5 IHRoZSA8bGluaworICAgICBsaW5rZW5kPSJpY3UtY29sbGF0aW9uLXNldHRpbmdzLXRhYmxlIj5j b2xsYXRpb24gc2V0dGluZ3M8L2xpbms+LiBIaWdoZXIKKyAgICAgbGV2ZWxzIGNvcnJlc3BvbmQg dG8gZmluZXIgdGV4dHVhbCBmZWF0dXJlcy4KKyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAg IDx0YWJsZSBpZD0iaWN1LWNvbGxhdGlvbi1sZXZlbHMiPgorICAgICAgPHRpdGxlPklDVSBDb2xs YXRpb24gTGV2ZWxzPC90aXRsZT4KKyAgICAgIDx0Z3JvdXAgY29scz0iMyI+CisgICAgICAgPHRo ZWFkPgorICAgICAgICA8cm93PgorICAgICAgICAgPGVudHJ5PkxldmVsPC9lbnRyeT4KKyAgICAg ICAgIDxlbnRyeT5EZXNjcmlwdGlvbjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+ J2YnID0gJ2YnPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+J2Fi JyA9IFUmYW1wOydhXDIwNjNiJzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICAgPGVudHJ5Pjxs aXRlcmFsPid4LXknID0gJ3hfeSc8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgIDxlbnRyeT48 bGl0ZXJhbD4nZycgPSAnRyc8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgIDxlbnRyeT48bGl0 ZXJhbD4nbicgPSAnw7EnPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVy YWw+J3knID0gJ3onPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgIDwvcm93PgorICAgICAgIDwv dGhlYWQ+CisgICAgICAgPHRib2R5PgorICAgICAgICA8cm93PgorICAgICAgICAgPGVudHJ5Pmxl dmVsMTwvZW50cnk+CisgICAgICAgICA8ZW50cnk+QmFzZSBDaGFyYWN0ZXI8L2VudHJ5PgorICAg ICAgICAgPGVudHJ5PjxsaXRlcmFsPnRydWU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgIDxl bnRyeT48bGl0ZXJhbD50cnVlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxp dGVyYWw+dHJ1ZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPnRy dWU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD50cnVlPC9saXRl cmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+PC9l bnRyeT4KKyAgICAgICAgPC9yb3c+CisgICAgICAgIDxyb3c+CisgICAgICAgICA8ZW50cnk+bGV2 ZWwyPC9lbnRyeT4KKyAgICAgICAgIDxlbnRyeT5BY2NlbnRzPC9lbnRyeT4KKyAgICAgICAgIDxl bnRyeT48bGl0ZXJhbD50cnVlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxp dGVyYWw+dHJ1ZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPnRy dWU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD50cnVlPC9saXRl cmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+PC9l bnRyeT4KKyAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD48L2VudHJ5Pgor ICAgICAgICA8L3Jvdz4KKyAgICAgICAgPHJvdz4KKyAgICAgICAgIDxlbnRyeT5sZXZlbDM8L2Vu dHJ5PgorICAgICAgICAgPGVudHJ5PkNhc2UvVmFyaWFudHM8L2VudHJ5PgorICAgICAgICAgPGVu dHJ5PjxsaXRlcmFsPnRydWU8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgIDxlbnRyeT48bGl0 ZXJhbD50cnVlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+dHJ1 ZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmZhbHNlPC9saXRl cmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+PC9l bnRyeT4KKyAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD48L2VudHJ5Pgor ICAgICAgICA8L3Jvdz4KKyAgICAgICAgPHJvdz4KKyAgICAgICAgIDxlbnRyeT5sZXZlbDQ8L2Vu dHJ5PgorICAgICAgICAgPGVudHJ5PlB1bmN0dWF0aW9uPC9lbnRyeT4KKyAgICAgICAgIDxlbnRy eT48bGl0ZXJhbD50cnVlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVy YWw+dHJ1ZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmZhbHNl PC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+ZmFsc2U8L2xpdGVy YWw+PC9lbnRyeT4KKyAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD48L2Vu dHJ5PgorICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICAgIDwvcm93PgorICAgICAgICA8cm93PgorICAgICAgICAgPGVudHJ5PmlkZW50aWM8L2Vu dHJ5PgorICAgICAgICAgPGVudHJ5PkFsbDwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVy YWw+dHJ1ZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmZhbHNl PC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+ZmFsc2U8L2xpdGVy YWw+PC9lbnRyeT4KKyAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD48L2Vu dHJ5PgorICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPjwvZW50cnk+Cisg ICAgICAgICA8ZW50cnk+PGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAg PC9yb3c+CisgICAgICAgPC90Ym9keT4KKyAgICAgIDwvdGdyb3VwPgorICAgICA8L3RhYmxlPgor CisgICAgIFRoZSBhYm92ZSB0YWJsZSBzaG93cyB3aGljaCB0ZXh0dWFsIGZlYXR1cmUgZGlmZmVy ZW5jZXMgYXJlCisgICAgIGNvbnNpZGVyZWQgc2lnbmlmaWNhbnQgd2hlbiBkZXRlcm1pbmluZyBl cXVhbGl0eSBhdCB0aGUgZ2l2ZW4gbGV2ZWwuIFRoZQorICAgICB1bmljb2RlIGNoYXJhY3RlciA8 bGl0ZXJhbD5VKzIwNjM8L2xpdGVyYWw+IGlzIGFuIGludmlzaWJsZSBzZXBhcmF0b3IsCisgICAg IGFuZCBhcyBzZWVuIGluIHRoZSB0YWJsZSwgaXMgaWdub3JlZCBmb3IgYXQgYWxsIGxldmVscyBv ZiBjb21wYXJpc29uIGxlc3MKKyAgICAgdGhhbiA8bGl0ZXJhbD5pZGVudGljPC9saXRlcmFsPi4K KyAgICA8L3BhcmE+CisgICAgPHBhcmE+CisgICAgIEV4YW1wbGVzOgorCis8cHJvZ3JhbWxpc3Rp bmc+CitDUkVBVEUgQ09MTEFUSU9OIGxldmVsMyAoUFJPVklERVI9aWN1LCBERVRFUk1JTklTVElD PWZhbHNlLCBMT0NBTEU9J3VuZC11LWthLXNoaWZ0ZWQta3MtbGV2ZWwzJyk7CitDUkVBVEUgQ09M TEFUSU9OIGxldmVsNCAoUFJPVklERVI9aWN1LCBERVRFUk1JTklTVElDPWZhbHNlLCBMT0NBTEU9 J3VuZC11LWthLXNoaWZ0ZWQta3MtbGV2ZWw0Jyk7CitDUkVBVEUgQ09MTEFUSU9OIGlkZW50aWMg KFBST1ZJREVSPWljdSwgREVURVJNSU5JU1RJQz1mYWxzZSwgTE9DQUxFPSd1bmQtdS1rYS1zaGlm dGVkLWtzLWlkZW50aWMnKTsKKworLS0gaW52aXNpYmxlIHNlcGFyYXRvciBpZ25vcmVkIGF0IGFs bCBsZXZlbHMgZXhjZXB0IGlkZW50aWMKK1NFTEVDVCAnYWInID0gVSZhbXA7J2FcMjA2M2InIENP TExBVEUgbGV2ZWw0OyAtLSB0cnVlCitTRUxFQ1QgJ2FiJyA9IFUmYW1wOydhXDIwNjNiJyBDT0xM QVRFIGlkZW50aWM7IC0tIGZhbHNlCisKKy0tIHB1bmN0dWF0aW9uIGlnbm9yZWQgYXQgbGV2ZWwz IGJ1dCBub3QgYXQgbGV2ZWwgNAorU0VMRUNUICd4LXknID0gJ3hfeScgQ09MTEFURSBsZXZlbDM7 IC0tIHRydWUKK1NFTEVDVCAneC15JyA9ICd4X3knIENPTExBVEUgbGV2ZWw0OyAtLSBmYWxzZQor PC9wcm9ncmFtbGlzdGluZz4KKworICAgIDwvcGFyYT4KKyAgICA8bm90ZT4KKyAgICAgPHBhcmE+ CisgICAgICBGb3IgbWFueSBjb2xsYXRpb24gc2V0dGluZ3MsIHlvdSBtdXN0IGNyZWF0ZSB0aGUg Y29sbGF0aW9uIHdpdGgKKyAgICAgIDxvcHRpb24+REVURVJNSU5JU1RJQzwvb3B0aW9uPiBzZXQg dG8gPGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+IGZvciB0aGUKKyAgICAgIHNldHRpbmcgdG8gaGF2 ZSB0aGUgZGVzaXJlZCBlZmZlY3QuIEFkZGl0aW9uYWxseSwgc29tZSBzZXR0aW5ncyBvbmx5Cisg ICAgICB0YWtlIGVmZmVjdCB3aGVuIHRoZSBrZXkgPGxpdGVyYWw+a2E8L2xpdGVyYWw+IGlzIHNl dCB0bworICAgICAgPGxpdGVyYWw+c2hpZnRlZDwvbGl0ZXJhbD4gKHNlZSA8eHJlZgorICAgICAg bGlua2VuZD0iaWN1LWNvbGxhdGlvbi1zZXR0aW5ncy10YWJsZSIvPikuCisgICAgIDwvcGFyYT4K KyAgICA8L25vdGU+CisgICA8L3NlY3QzPgorICAgPHNlY3QzIGlkPSJpY3UtY29sbGF0aW9uLXNl dHRpbmdzIj4KKyAgICA8dGl0bGU+Q29sbGF0aW9uIFNldHRpbmdzIGZvciBhbiBJQ1UgTG9jYWxl PC90aXRsZT4KKyAgICA8cGFyYT4KKyAgICAgPHRhYmxlIGlkPSJpY3UtY29sbGF0aW9uLXNldHRp bmdzLXRhYmxlIj4KKyAgICAgIDx0aXRsZT5JQ1UgQ29sbGF0aW9uIFNldHRpbmdzPC90aXRsZT4K KyAgICAgIDx0Z3JvdXAgY29scz0iNCI+CisgICAgICAgPHRoZWFkPgorICAgICAgICA8cm93Pgor ICAgICAgICAgPGVudHJ5PktleTwvZW50cnk+CisgICAgICAgICA8ZW50cnk+VmFsdWVzPC9lbnRy eT4KKyAgICAgICAgIDxlbnRyeT5EZWZhdWx0PC9lbnRyeT4KKyAgICAgICAgIDxlbnRyeT5EZXNj cmlwdGlvbjwvZW50cnk+CisgICAgICAgIDwvcm93PgorICAgICAgIDwvdGhlYWQ+CisgICAgICAg PHRib2R5PgorICAgICAgICA8cm93PgorICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmNvPC9saXRl cmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+ZW1vamk8L2xpdGVyYWw+LCA8 bGl0ZXJhbD5waG9uZWJrPC9saXRlcmFsPiwgPGxpdGVyYWw+c3RhbmRhcmQ8L2xpdGVyYWw+LCA8 cmVwbGFjZWFibGU+Li4uPC9yZXBsYWNlYWJsZT48L2VudHJ5PgorICAgICAgICAgPGVudHJ5Pjxs aXRlcmFsPnN0YW5kYXJkPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+CisgICAg ICAgICAgQ29sbGF0aW9uIHR5cGUuIFNlZSA8eHJlZiBsaW5rZW5kPSJpY3UtZXh0ZXJuYWwtcmVm ZXJlbmNlcyIvPiBmb3IgYWRkaXRpb25hbCBvcHRpb25zIGFuZCBkZXRhaWxzLgorICAgICAgICAg PC9lbnRyeT4KKyAgICAgICAgPC9yb3c+CisgICAgICAgIDxyb3c+CisgICAgICAgICA8ZW50cnk+ PGxpdGVyYWw+a3M8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5s ZXZlbDE8L2xpdGVyYWw+LCA8bGl0ZXJhbD5sZXZlbDI8L2xpdGVyYWw+LCA8bGl0ZXJhbD5sZXZl bDM8L2xpdGVyYWw+LCA8bGl0ZXJhbD5sZXZlbDQ8L2xpdGVyYWw+LCA8bGl0ZXJhbD5pZGVudGlj PC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+bGV2ZWwzPC9saXRl cmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+CisgICAgICAgICAgU2Vuc2l0aXZpdHkgd2hl biBkZXRlcm1pbmluZyBlcXVhbGl0eSwgd2l0aAorICAgICAgICAgIDxsaXRlcmFsPmxldmVsMTwv bGl0ZXJhbD4gdGhlIGxlYXN0IHNlbnNpdGl2ZSBhbmQKKyAgICAgICAgICA8bGl0ZXJhbD5pZGVu dGljPC9saXRlcmFsPiB0aGUgbW9zdCBzZW5zaXRpdmUuIFNlZSA8eHJlZgorICAgICAgICAgIGxp bmtlbmQ9ImljdS1jb2xsYXRpb24tbGV2ZWxzIi8+IGZvciBkZXRhaWxzLgorICAgICAgICAgPC9l bnRyeT4KKyAgICAgICAgPC9yb3c+CisgICAgICAgIDxyb3c+CisgICAgICAgICA8ZW50cnk+PGxp dGVyYWw+a2E8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5ub2ln bm9yZTwvbGl0ZXJhbD4sIDxsaXRlcmFsPnNoaWZ0ZWQ8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5ub2lnbm9yZTwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICAg PGVudHJ5PgorICAgICAgICAgIElmIHNldCB0byA8bGl0ZXJhbD5zaGlmdGVkPC9saXRlcmFsPiwg Y2F1c2VzIHNvbWUgY2hhcmFjdGVycworICAgICAgICAgIChlLmcuIHB1bmN0dWF0aW9uIG9yIHNw YWNlKSB0byBiZSBpZ25vcmVkIGluIGNvbXBhcmlzb24uIEtleQorICAgICAgICAgIDxsaXRlcmFs PmtzPC9saXRlcmFsPiBtdXN0IGJlIHNldCB0byA8bGl0ZXJhbD5sZXZlbDM8L2xpdGVyYWw+IG9y CisgICAgICAgICAgbG93ZXIgdG8gdGFrZSBlZmZlY3QuIFNldCBrZXkgPGxpdGVyYWw+a3Y8L2xp dGVyYWw+IHRvIGNvbnRyb2wgd2hpY2gKKyAgICAgICAgICBjaGFyYWN0ZXIgY2xhc3NlcyBhcmUg aWdub3JlZC4KKyAgICAgICAgIDwvZW50cnk+CisgICAgICAgIDwvcm93PgorICAgICAgICA8cm93 PgorICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmtiPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAg ICA8ZW50cnk+PGxpdGVyYWw+dHJ1ZTwvbGl0ZXJhbD4sIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFs PjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgICAgIDxlbnRyeT4KKyAgICAgICAgICBCYWNrd2FyZHMgY29tcGFyaXNvbiBmb3Ig dGhlIGxldmVsIDIgZGlmZmVyZW5jZXMuIEZvciBleGFtcGxlLAorICAgICAgICAgIGxvY2FsZSA8 bGl0ZXJhbD51bmQtdS1rYjwvbGl0ZXJhbD4gc29ydHMgPGxpdGVyYWw+J8OgZSc8L2xpdGVyYWw+ CisgICAgICAgICAgYmVmb3JlIDxsaXRlcmFsPidhw6knPC9saXRlcmFsPi4KKyAgICAgICAgIDwv ZW50cnk+CisgICAgICAgIDwvcm93PgorICAgICAgICA8cm93PgorICAgICAgICAgPGVudHJ5Pjxs aXRlcmFsPmtrPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+dHJ1 ZTwvbGl0ZXJhbD4sIDxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8 ZW50cnk+PGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgIDxlbnRyeT4K KyAgICAgICAgICA8cGFyYT4KKyAgICAgICAgICAgRW5hYmxlIGZ1bGwgbm9ybWFsaXphdGlvbjsg bWF5IGFmZmVjdCBwZXJmb3JtYW5jZS4gQmFzaWMKKyAgICAgICAgICAgbm9ybWFsaXphdGlvbiBp cyBwZXJmb3JtZWQgZXZlbiB3aGVuIHNldCB0bworICAgICAgICAgICA8bGl0ZXJhbD5mYWxzZTwv bGl0ZXJhbD4uCisgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgIDxwYXJhPgorICAgICAgICAg ICBGdWxsIG5vcm1hbGl6YXRpb24gaXMgaW1wb3J0YW50IGluIHNvbWUgY2FzZXMsIHN1Y2ggYXMg d2hlbgorICAgICAgICAgICBtdWx0aXBsZSBhY2NlbnRzIGFyZSBhcHBsaWVkIHRvIGEgc2luZ2xl IGNoYXJhY3RlciAoZS5nLiBpbgorICAgICAgICAgICBWaWV0bmFtZXNlIG9yIEFyYWJpYykuIExv Y2FsZXMgZm9yIGxhbmd1YWdlcyB0aGF0IHJlcXVpcmUgZnVsbAorICAgICAgICAgICBub3JtYWxp emF0aW9uIHR5cGljYWxseSBlbmFibGUgaXQgYnkgZGVmYXVsdC4KKyAgICAgICAgICA8L3BhcmE+ CisgICAgICAgICA8L2VudHJ5PgorICAgICAgICA8L3Jvdz4KKyAgICAgICAgPHJvdz4KKyAgICAg ICAgIDxlbnRyeT48bGl0ZXJhbD5rYzwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICAgPGVudHJ5 PjxsaXRlcmFsPnRydWU8L2xpdGVyYWw+LCA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD48L2VudHJ5 PgorICAgICAgICAgPGVudHJ5PjxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPjwvZW50cnk+CisgICAg ICAgICA8ZW50cnk+CisgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgIFNlcGFyYXRlcyBjYXNl IGludG8gYSAibGV2ZWwgMi41IiB0aGF0IGZhbGxzIGJldHdlZW4gYWNjZW50cyBhbmQKKyAgICAg ICAgICAgb3RoZXIgbGV2ZWwgMyBmZWF0dXJlcy4KKyAgICAgICAgICA8L3BhcmE+CisgICAgICAg ICAgPHBhcmE+CisgICAgICAgICAgIElmIHNldCB0byA8bGl0ZXJhbD50cnVlPC9saXRlcmFsPiBh bmQgPGxpdGVyYWw+a3M8L2xpdGVyYWw+IGlzIHNldAorICAgICAgICAgICB0byA8bGl0ZXJhbD5s ZXZlbDE8L2xpdGVyYWw+LCB3aWxsIGlnbm9yZSBhY2NlbnRzIGJ1dCB0YWtlIGNhc2UKKyAgICAg ICAgICAgaW50byBhY2NvdW50LgorICAgICAgICAgIDwvcGFyYT4KKyAgICAgICAgIDwvZW50cnk+ CisgICAgICAgIDwvcm93PgorICAgICAgICA8cm93PgorICAgICAgICAgPGVudHJ5PjxsaXRlcmFs PmtmPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+CisgICAgICAgICAgPGxpdGVy YWw+dXBwZXI8L2xpdGVyYWw+LCA8bGl0ZXJhbD5sb3dlcjwvbGl0ZXJhbD4sCisgICAgICAgICAg PGxpdGVyYWw+ZmFsc2U8L2xpdGVyYWw+CisgICAgICAgICA8L2VudHJ5PgorICAgICAgICAgPGVu dHJ5PjxsaXRlcmFsPmZhbHNlPC9saXRlcmFsPjwvZW50cnk+CisgICAgICAgICA8ZW50cnk+Cisg ICAgICAgICAgSWYgc2V0IHRvIDxsaXRlcmFsPnVwcGVyPC9saXRlcmFsPiwgdXBwZXIgY2FzZSBz b3J0cyBiZWZvcmUgbG93ZXIKKyAgICAgICAgICBjYXNlLiBJZiBzZXQgdG8gPGxpdGVyYWw+bG93 ZXI8L2xpdGVyYWw+LCBsb3dlciBjYXNlIHNvcnRzIGJlZm9yZQorICAgICAgICAgIHVwcGVyIGNh c2UuIElmIHNldCB0byA8bGl0ZXJhbD5mYWxzZTwvbGl0ZXJhbD4sIGl0IGRlcGVuZHMgb24gdGhl CisgICAgICAgICAgbG9jYWxlLgorICAgICAgICAgPC9lbnRyeT4KKyAgICAgICAgPC9yb3c+Cisg ICAgICAgIDxyb3c+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+a248L2xpdGVyYWw+PC9lbnRy eT4KKyAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD50cnVlPC9saXRlcmFsPiwgPGxpdGVyYWw+ZmFs c2U8L2xpdGVyYWw+PC9lbnRyeT4KKyAgICAgICAgIDxlbnRyeT48bGl0ZXJhbD5mYWxzZTwvbGl0 ZXJhbD48L2VudHJ5PgorICAgICAgICAgPGVudHJ5PgorICAgICAgICAgIElmIHNldCB0byA8bGl0 ZXJhbD50cnVlPC9saXRlcmFsPiwgbnVtYmVycyB3aXRoaW4gYSBzdHJpbmcgYXJlCisgICAgICAg ICAgdHJlYXRlZCBhcyBhIHNpbmdsZSBudW1lcmljIHZhbHVlIHJhdGhlciB0aGFuIGEgc2VxdWVu Y2Ugb2YKKyAgICAgICAgICBkaWdpdHMuIEZvciBleGFtcGxlLCA8bGl0ZXJhbD4naWQtNDUnPC9s aXRlcmFsPiBzb3J0cyBiZWZvcmUKKyAgICAgICAgICA8bGl0ZXJhbD4naWQtMTIzJzwvbGl0ZXJh bD4uCisgICAgICAgICA8L2VudHJ5PgorICAgICAgICA8L3Jvdz4KKyAgICAgICAgPHJvdz4KKyAg ICAgICAgIDxlbnRyeT48bGl0ZXJhbD5rcjwvbGl0ZXJhbD48L2VudHJ5PgorICAgICAgICAgPGVu dHJ5PgorICAgICAgICAgIDxsaXRlcmFsPnNwYWNlPC9saXRlcmFsPiwgPGxpdGVyYWw+cHVuY3Q8 L2xpdGVyYWw+LAorICAgICAgICAgIDxsaXRlcmFsPnN5bWJvbDwvbGl0ZXJhbD4sIDxsaXRlcmFs PmN1cnJlbmN5PC9saXRlcmFsPiwKKyAgICAgICAgICA8bGl0ZXJhbD5kaWdpdDwvbGl0ZXJhbD4s IDxyZXBsYWNlYWJsZT5zY3JpcHQtaWQ8L3JlcGxhY2VhYmxlPgorICAgICAgICAgPC9lbnRyeT4K KyAgICAgICAgIDxlbnRyeT48L2VudHJ5PgorICAgICAgICAgPGVudHJ5PgorICAgICAgICAgIDxw YXJhPgorICAgICAgICAgICBTZXQgdG8gb25lIG9yIG1vcmUgb2YgdGhlIHZhbGlkIHZhbHVlcywg b3IgYW55IEJDUCA0NworICAgICAgICAgICA8cmVwbGFjZWFibGU+c2NyaXB0LWlkPC9yZXBsYWNl YWJsZT4sIGUuZy4gPGxpdGVyYWw+bGF0bjwvbGl0ZXJhbD4KKyAgICAgICAgICAgKCJMYXRpbiIp IG9yIDxsaXRlcmFsPmdyZWs8L2xpdGVyYWw+ICgiR3JlZWsiKS4gTXVsdGlwbGUgdmFsdWVzIGFy ZQorICAgICAgICAgICBzZXBhcmF0ZWQgYnkgIjxsaXRlcmFsPi08L2xpdGVyYWw+Ii4KKyAgICAg ICAgICA8L3BhcmE+CisgICAgICAgICAgPHBhcmE+CisgICAgICAgICAgIFJlZGVmaW5lcyB0aGUg b3JkZXJpbmcgb2YgY2xhc3NlcyBvZiBjaGFyYWN0ZXJzOyB0aG9zZSBjaGFyYWN0ZXJzCisgICAg ICAgICAgIGJlbG9uZ2luZyB0byBhIGNsYXNzIGVhcmxpZXIgaW4gdGhlIGxpc3Qgc29ydCBiZWZv cmUgY2hhcmFjdGVycworICAgICAgICAgICBiZWxvbmdpbmcgdG8gYSBjbGFzcyBsYXRlciBpbiB0 aGUgbGlzdC4gRm9yIGluc3RhbmNlLCB0aGUgdmFsdWUKKyAgICAgICAgICAgPGxpdGVyYWw+ZGln aXQtY3VycmVuY3ktc3BhY2U8L2xpdGVyYWw+IChhcyBwYXJ0IG9mIGEgbGFuZ3VhZ2UgdGFnCisg ICAgICAgICAgIGxpa2UgPGxpdGVyYWw+dW5kLXUta3ItZGlnaXQtY3VycmVuY3ktc3BhY2U8L2xp dGVyYWw+KSBzb3J0cworICAgICAgICAgICBwdW5jdHVhdGlvbiBiZWZvcmUgZGlnaXRzIGFuZCBz cGFjZXMuCisgICAgICAgICAgPC9wYXJhPgorICAgICAgICAgPC9lbnRyeT4KKyAgICAgICAgPC9y b3c+CisgICAgICAgIDxyb3c+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+a3Y8L2xpdGVyYWw+ PC9lbnRyeT4KKyAgICAgICAgIDxlbnRyeT4KKyAgICAgICAgICA8bGl0ZXJhbD5zcGFjZTwvbGl0 ZXJhbD4sIDxsaXRlcmFsPnB1bmN0PC9saXRlcmFsPiwKKyAgICAgICAgICA8bGl0ZXJhbD5zeW1i b2w8L2xpdGVyYWw+LCA8bGl0ZXJhbD5jdXJyZW5jeTwvbGl0ZXJhbD4KKyAgICAgICAgIDwvZW50 cnk+CisgICAgICAgICA8ZW50cnk+PGxpdGVyYWw+cHVuY3Q8L2xpdGVyYWw+PC9lbnRyeT4KKyAg ICAgICAgIDxlbnRyeT4KKyAgICAgICAgICBDbGFzc2VzIG9mIGNoYXJhY3RlcnMgaWdub3JlZCBk dXJpbmcgY29tcGFyaXNvbiBhdCBsZXZlbCAzLiBTZXR0aW5nCisgICAgICAgICAgdG8gYSBsYXRl ciB2YWx1ZSBpbmNsdWRlcyBlYXJsaWVyIHZhbHVlczsKKyAgICAgICAgICBlLmcuIDxsaXRlcmFs PnN5bWJvbDwvbGl0ZXJhbD4gYWxzbyBpbmNsdWRlcworICAgICAgICAgIDxsaXRlcmFsPnB1bmN0 PC9saXRlcmFsPiBhbmQgPGxpdGVyYWw+c3BhY2U8L2xpdGVyYWw+IGluIHRoZQorICAgICAgICAg IGNoYXJhY3RlcnMgdG8gYmUgaWdub3JlZC4gS2V5IDxsaXRlcmFsPmthPC9saXRlcmFsPiBtdXN0 IGJlIHNldCB0bworICAgICAgICAgIDxsaXRlcmFsPnNoaWZ0ZWQ8L2xpdGVyYWw+IGFuZCBrZXkg PGxpdGVyYWw+a3M8L2xpdGVyYWw+IG11c3QgYmUgc2V0CisgICAgICAgICAgdG8gPGxpdGVyYWw+ bGV2ZWwzPC9saXRlcmFsPiBvciBsb3dlciB0byB0YWtlIGVmZmVjdC4KKyAgICAgICAgIDwvZW50 cnk+CisgICAgICAgIDwvcm93PgorICAgICAgIDwvdGJvZHk+CisgICAgICA8L3Rncm91cD4KKyAg ICAgPC90YWJsZT4KKyAgICAgIERlZmF1bHRzIG1heSBkZXBlbmQgb24gbG9jYWxlLiBUaGUgYWJv dmUgdGFibGUgaXMgbm90IG1lYW50IHRvIGJlCisgICAgICBjb21wbGV0ZS4gU2VlIDx4cmVmIGxp bmtlbmQ9ImljdS1leHRlcm5hbC1yZWZlcmVuY2VzIi8+IGZvciBhZGRpdGluYWwKKyAgICAgIG9w dGlvbnMgYW5kIGRldGFpbHMuCisgICAgPC9wYXJhPgorICAgPC9zZWN0Mz4KKyAgIDxzZWN0MyBp ZD0iaWN1LWxvY2FsZS1leGFtcGxlcyI+CisgICAgPHRpdGxlPkV4YW1wbGVzPC90aXRsZT4KKyAg ICA8cGFyYT4KKyAgICAgPHZhcmlhYmxlbGlzdD4KKyAgICAgIDx2YXJsaXN0ZW50cnkgaWQ9ImNv bGxhdGlvbi1tYW5hZ2luZy1jcmVhdGUtaWN1LWRlLXUtY28tcGhvbmViay14LWljdSI+CisgICAg ICAgPHRlcm0+PGxpdGVyYWw+Q1JFQVRFIENPTExBVElPTiAiZGUtdS1jby1waG9uZWJrLXgtaWN1 IiAocHJvdmlkZXIgPSBpY3UsIGxvY2FsZSA9ICdkZS11LWNvLXBob25lYmsnKTs8L2xpdGVyYWw+ PC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+R2VybWFuIGNvbGxhdGlv biB3aXRoIHBob25lIGJvb2sgY29sbGF0aW9uIHR5cGU8L3BhcmE+CisgICAgICAgPC9saXN0aXRl bT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5IGlkPSJjb2xs YXRpb24tbWFuYWdpbmctY3JlYXRlLWljdS11bmQtdS1jby1lbW9qaS14LWljdSI+CisgICAgICAg PHRlcm0+PGxpdGVyYWw+Q1JFQVRFIENPTExBVElPTiAidW5kLXUtY28tZW1vamkteC1pY3UiIChw cm92aWRlciA9IGljdSwgbG9jYWxlID0gJ3VuZC11LWNvLWVtb2ppJyk7PC9saXRlcmFsPjwvdGVy bT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgorICAgICAgICAgUm9vdCBjb2xs YXRpb24gd2l0aCBFbW9qaSBjb2xsYXRpb24gdHlwZSwgcGVyIFVuaWNvZGUgVGVjaG5pY2FsIFN0 YW5kYXJkICM1MQorICAgICAgICA8L3BhcmE+CisgICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwv dmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlzdGVudHJ5IGlkPSJjb2xsYXRpb24tbWFuYWdp bmctY3JlYXRlLWljdS1lbi11LWtyLWdyZWstbGF0biI+CisgICAgICAgPHRlcm0+PGxpdGVyYWw+ Q1JFQVRFIENPTExBVElPTiBsYXRpbmxhc3QgKHByb3ZpZGVyID0gaWN1LCBsb2NhbGUgPSAnZW4t dS1rci1ncmVrLWxhdG4nKTs8L2xpdGVyYWw+PC90ZXJtPgorICAgICAgIDxsaXN0aXRlbT4KKyAg ICAgICAgPHBhcmE+CisgICAgICAgICBTb3J0IEdyZWVrIGxldHRlcnMgYmVmb3JlIExhdGluIG9u ZXMuICAoVGhlIGRlZmF1bHQgaXMgTGF0aW4gYmVmb3JlIEdyZWVrLikKKyAgICAgICAgPC9wYXJh PgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKworICAgICAgPHZh cmxpc3RlbnRyeSBpZD0iY29sbGF0aW9uLW1hbmFnaW5nLWNyZWF0ZS1pY3UtZW4tdS1rZi11cHBl ciI+CisgICAgICAgPHRlcm0+PGxpdGVyYWw+Q1JFQVRFIENPTExBVElPTiB1cHBlcmZpcnN0IChw cm92aWRlciA9IGljdSwgbG9jYWxlID0gJ2VuLXUta2YtdXBwZXInKTs8L2xpdGVyYWw+PC90ZXJt PgorICAgICAgIDxsaXN0aXRlbT4KKyAgICAgICAgPHBhcmE+CisgICAgICAgICBTb3J0IHVwcGVy LWNhc2UgbGV0dGVycyBiZWZvcmUgbG93ZXItY2FzZSBsZXR0ZXJzLiAgKFRoZSBkZWZhdWx0IGlz CisgICAgICAgICBsb3dlci1jYXNlIGxldHRlcnMgZmlyc3QuKQorICAgICAgICA8L3BhcmE+Cisg ICAgICAgPC9saXN0aXRlbT4KKyAgICAgIDwvdmFybGlzdGVudHJ5PgorCisgICAgICA8dmFybGlz dGVudHJ5IGlkPSJjb2xsYXRpb24tbWFuYWdpbmctY3JlYXRlLWljdS1lbi11LWtmLXVwcGVyLWty LWdyZWstbGF0biI+CisgICAgICAgPHRlcm0+PGxpdGVyYWw+Q1JFQVRFIENPTExBVElPTiBzcGVj aWFsIChwcm92aWRlciA9IGljdSwgbG9jYWxlID0gJ2VuLXUta2YtdXBwZXIta3ItZ3Jlay1sYXRu Jyk7PC9saXRlcmFsPjwvdGVybT4KKyAgICAgICA8bGlzdGl0ZW0+CisgICAgICAgIDxwYXJhPgor ICAgICAgICAgQ29tYmluZXMgYm90aCBvZiB0aGUgYWJvdmUgb3B0aW9ucy4KKyAgICAgICAgPC9w YXJhPgorICAgICAgIDwvbGlzdGl0ZW0+CisgICAgICA8L3Zhcmxpc3RlbnRyeT4KKyAgICAgPC92 YXJpYWJsZWxpc3Q+CisgICAgPC9wYXJhPgorICAgPC9zZWN0Mz4KKyAgIDxzZWN0MyBpZD0iaWN1 LWV4dGVybmFsLXJlZmVyZW5jZXMiPgorICAgIDx0aXRsZT5FeHRlcm5hbCBSZWZlcmVuY2VzIGZv ciBJQ1U8L3RpdGxlPgorICAgIDxwYXJhPgorICAgICBUaGlzIHNlY3Rpb24gKDx4cmVmIGxpbmtl bmQ9ImljdS1jdXN0b20tY29sbGF0aW9ucyIvPikgaXMgb25seSBhIGJyaWVmCisgICAgIG92ZXJ2 aWV3IG9mIElDVSBiZWhhdmlvciBhbmQgbGFuZ3VhZ2UgdGFncy4gUmVmZXIgdG8gdGhlIGZvbGxv d2luZworICAgICBkb2N1bWVudHMgZm9yIHRlY2huaWNhbCBkZXRhaWxzLCBhZGRpdGlvbmFsIG9w dGlvbnMsIGFuZCBuZXcgYmVoYXZpb3I6CisgICAgPC9wYXJhPgorICAgIDxpdGVtaXplZGxpc3Q+ CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxwYXJhPgorICAgICAgIDx1bGluaworICAgICAgICAg ICB1cmw9Imh0dHBzOi8vd3d3LnVuaWNvZGUub3JnL3JlcG9ydHMvdHIzNS90cjM1LWNvbGxhdGlv bi5odG1sIj5Vbmljb2RlCisgICAgICAgVGVjaG5pY2FsIFN0YW5kYXJkICMzNTwvdWxpbms+Cisg ICAgICA8L3BhcmE+CisgICAgIDwvbGlzdGl0ZW0+CisgICAgIDxsaXN0aXRlbT4KKyAgICAgIDxw YXJhPgorICAgICAgIDx1bGluayB1cmw9Imh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9iY3A0 NyI+QkNQIDQ3PC91bGluaz4KKyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICAg PGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgPHVsaW5rIHVybD0iaHR0cHM6Ly9naXRo dWIuY29tL3VuaWNvZGUtb3JnL2NsZHIvYmxvYi9tYXN0ZXIvY29tbW9uL2JjcDQ3L2NvbGxhdGlv bi54bWwiPkNMRFIKKyAgICAgICByZXBvc2l0b3J5PC91bGluaz4KKyAgICAgIDwvcGFyYT4KKyAg ICAgPC9saXN0aXRlbT4KKyAgICAgPGxpc3RpdGVtPgorICAgICAgPHBhcmE+CisgICAgICAgPHVs aW5rIHVybD0iaHR0cHM6Ly91bmljb2RlLW9yZy5naXRodWIuaW8vaWN1L3VzZXJndWlkZS9sb2Nh bGUvIj48L3VsaW5rPgorICAgICAgPC9wYXJhPgorICAgICA8L2xpc3RpdGVtPgorICAgICA8bGlz dGl0ZW0+CisgICAgICA8cGFyYT4KKyAgICAgICA8dWxpbmsgdXJsPSJodHRwczovL3VuaWNvZGUt b3JnLmdpdGh1Yi5pby9pY3UvdXNlcmd1aWRlL2NvbGxhdGlvbi9hcGkuaHRtbCI+PC91bGluaz4K KyAgICAgIDwvcGFyYT4KKyAgICAgPC9saXN0aXRlbT4KKyAgICA8L2l0ZW1pemVkbGlzdD4KKyAg IDwvc2VjdDM+CisgIDwvc2VjdDI+CiAgPC9zZWN0MT4KIAogIDxzZWN0MSBpZD0ibXVsdGlieXRl Ij4KLS0gCjIuMzQuMQoK --=-flFLEZJY7XlPJwr/sxsL--