From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-io1-xd36.google.com (mail-io1-xd36.google.com [IPv6:2607:f8b0:4864:20::d36]) by sourceware.org (Postfix) with ESMTPS id C6B6B39D00DC for ; Thu, 4 Feb 2021 15:47:58 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org C6B6B39D00DC Received: by mail-io1-xd36.google.com with SMTP id e133so3647471iof.8 for ; Thu, 04 Feb 2021 07:47:58 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2G2997bvyu9i4nrOPcx0BY4XeQKhvlgxUPnXiO4m39c=; b=hfST5aQswneW+Urjdp7lC1pkP3ANG40AJ6bvYOnp/+K7eoMH75ljwZDB7fXd6tQoSf 76T6BxH0wMHyFv/3Ljzew/fpR6LgYypJ2r6RaoRX0hxmibPpiF+Nj4hkC2mPnAxfv42d RAKHzcetyhkEhBo5s9AK9nPcuYQ9P8grxcvMIZkZUfYUOsAsaZaGSnG/mGp2dscSLG4m LBeBsNOn+OWH+V5105Qcz1UjLk5VOCyXQtv3mr1kd2yJnRznCw0WiBub0OyU0xCZllxu y16sXZgVOTHsdd3B5wXwXtnH1jL45zox6LfNPdiT0M+i+AxrSuDKg3Ikymh0FPkvduzT TDzQ== X-Gm-Message-State: AOAM5316ofWzVopb7VGK5mQbPmD7uL/wsvad1486Gu4FlKoivDFOXeC7 DRhlZhafkZlo+borK5wgFBs1at0DJYZc5y/ps9E= X-Google-Smtp-Source: ABdhPJwbYL5y10fEh3S8eQ0Tmg/MsmlC7UGVPMaXgw6KiVeMYRtGBGpv8qKXo24N7x1+c0g5WHbfZoExuxesaKoNdWw= X-Received: by 2002:a6b:5801:: with SMTP id m1mr7505505iob.140.1612453678101; Thu, 04 Feb 2021 07:47:58 -0800 (PST) MIME-Version: 1.0 References: <42a05535-8d94-037d-acdb-0f5949f6ea3f@gotplt.org> <87tuswekbd.fsf@igel.home> <1c406b7d-891d-193d-c370-cd00d3e9259f@gotplt.org> <802634ad-8244-74e7-b33b-38b2fe5531d9@gotplt.org> <9163662f-4f00-bb6f-6451-a8fd9951613d@gotplt.org> In-Reply-To: From: Girish Joshi Date: Thu, 4 Feb 2021 21:17:46 +0530 Message-ID: Subject: Re: [RFC] Updating patchwork patches on commit To: Siddhesh Poyarekar , Girish Joshi via Libc-alpha Cc: Andreas Schwab , Joseph Myers Content-Type: multipart/mixed; boundary="000000000000b3a46505ba84a079" X-Spam-Status: No, score=-3.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 04 Feb 2021 15:48:00 -0000 --000000000000b3a46505ba84a079 Content-Type: text/plain; charset="UTF-8" Hello Siddhesh, On Thu, Jan 7, 2021 at 1:56 AM Girish Joshi wrote: > > I've combined the two scripts to pull data from the patchwork instance > instead of stdin or a csv file. > Also to get the patch ids for the old patches that do not belong to any series. > To get these individual patches > python scripts/apply-patches.py -u > > I'll try to fix a few small things like taking page numbers for > pulling the data from the command line itself by this weekend. I've done this change in the attached script. > Once this is done, this script can be invoked after a regular interval > of time to check if the new patches can be applied. We can do this now. There are a couple of functions that need refactoring. But for now it does the job. Could you please review it? Girish Joshi --000000000000b3a46505ba84a079 Content-Type: text/x-python; charset="US-ASCII"; name="apply-patches.py" Content-Disposition: attachment; filename="apply-patches.py" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_kkr104v50 IyFweXRob24zCgppbXBvcnQgc3VicHJvY2VzcyBhcyBzcAppbXBvcnQgX3RocmVhZCBhcyB0aHJl YWQKaW1wb3J0IGFyZ3BhcnNlCmltcG9ydCBjc3YKaW1wb3J0IG9zCmltcG9ydCBzeXMKaW1wb3J0 IHRpbWUKCiMgaWYgdGhlc2Ugc3RyaW5ncyBhcmUgZm91bmQgaW4gb3V0cHV0IG9mIGdpdC9naXQt cHcsCiMgd2UgbmVlZCB0byB0YWtlIHNvbWUgYWN0aW9ucy4KcHJ1bmVfd2FyaW5pbmcgPSAid2Fy bmluZzogVGhlcmUgYXJlIHRvbyBtYW55IHVucmVhY2hhYmxlIGxvb3NlIG9iamVjdHM7IHJ1biAn Z2l0IHBydW5lJyB0byByZW1vdmUgdGhlbS4iCnJlc291cmNlX25vdF9mb3VuZF93YXJuaW5nID0g IlJlc291cmNlIG5vdCBmb3VuZCIKYWxyZWFkeV9hcHBsaWVkX3dhcm5pbmcgPSAiTm8gY2hhbmdl cyAtLSBQYXRjaCBhbHJlYWR5IGFwcGxpZWQuIgoKIyBUaGVzZSBsaXN0cyB3aWxsIGNvbnRhaW4g bWVyZ2VkIGFuZCB1bm1uZXJnZWQgc2VyaWVzIGRhdGEuCm1lcmdlZCA9IFtdCnVubWVyZ2VkID0g W10KdW5hdmFpbGFibGUgPSBbXQphbHJlYWR5X2FwcGxpZWQgPSBbXQoKIyBwYXJzZSB0aGUgY3N2 IGVudHJpZXMKZGVmIHJlYWRfcm93cyhjc3ZmaWxlKToKCiAgICAjIExpc3QgZm9yIHNlcmllcyBl bnRyaWVzCiAgICBzZXJpZXNfZGF0YSA9IFtdCiAgICBjc3ZyZWFkZXIgPSBjc3YucmVhZGVyKGNz dmZpbGUsIGRlbGltaXRlcj0iLCIsIHF1b3RlY2hhcj0nIicpCiAgICBmb3Igcm93IGluIGNzdnJl YWRlcjoKICAgICAgICBwcmludChyb3cpCiAgICAgICAgaWYgbm90IHJvdzoKICAgICAgICAgICAg cmV0dXJuCiAgICAgICAgaWYgcm93IGFuZCByb3dbMF0gIT0gIklEIjoKICAgICAgICAgICAgc2Vy aWVzX2RhdGEuYXBwZW5kKHJvdykKICAgIHJldHVybiBzZXJpZXNfZGF0YQoKCmRlZiBydW5fY21k KGNtZCwgZGVidWc9RmFsc2UpOgogICAgIiIiCiAgICBFeGVjdXRlIGNvbW1hbmQgYW5kIHJldHVy biB0aGUgZXhpdCBjb2RlIGFuZCBvdXRwdXQuCiAgICAiIiIKICAgIGV4aXRfY29kZSA9IDAKICAg IG91dHB1dCA9ICIiCiAgICB0cnk6CiAgICAgICAgb3V0cHV0ID0gc3AuY2hlY2tfb3V0cHV0KAog ICAgICAgICAgICBjbWQsIHN0ZGVycj1zcC5TVERPVVQsIHNoZWxsPVRydWUsIHVuaXZlcnNhbF9u ZXdsaW5lcz1UcnVlCiAgICAgICAgKQogICAgZXhjZXB0IHNwLkNhbGxlZFByb2Nlc3NFcnJvciBh cyBleGM6CiAgICAgICAgaWYgZGVidWc6CiAgICAgICAgICAgIHByaW50KCJTdGF0dXMgOiBGQUlM IiwgZXhjLnJldHVybmNvZGUsIGV4Yy5vdXRwdXQpCiAgICAgICAgZXhpdF9jb2RlLCBvdXRwdXQg PSBleGMucmV0dXJuY29kZSwgZXhjLm91dHB1dAogICAgZWxzZToKICAgICAgICBpZiBkZWJ1ZzoK ICAgICAgICAgICAgcHJpbnQoInt9XG4iLmZvcm1hdChvdXRwdXQpKQoKICAgIHJldHVybiBleGl0 X2NvZGUsIG91dHB1dAoKCmRlZiB3cml0ZV9maWxlKGZpbGVuYW1lLCBsaXN0Xyk6CiAgICAiIiIK ICAgIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byB3cml0ZSB0aGUgSURzIGZvciBwYXRjaGVzL3Nl cmllcyB0aGF0CiAgICBhcmUgbWVyZ2VkL3VubWVyZ2VkL3VuYXZhaWxhYmxlIGFmdGVyIHdlIGhh dmUgcHJvY2Vzc2VkIGV2ZXJ5dGhpbmcuCiAgICAiIiIKICAgIHdpdGggb3BlbihmaWxlbmFtZSwg InciKSBhcyBmOgogICAgICAgIGZvciBpIGluIGxpc3RfOgogICAgICAgICAgICBmLndyaXRlKGlb MF0gKyAiXG4iKQoKCmRlZiB3cml0ZV9qc29uKGZpbGVfbmFtZSwgZGF0YSk6CiAgICBpbXBvcnQg anNvbgoKICAgIHdpdGggb3BlbihmaWxlX25hbWUsICJ3IikgYXMgZjoKICAgICAgICBmLndyaXRl KGpzb24uZHVtcHMoZGF0YSkpCgoKZGVmIGFwcGx5XyhzZXJpZXMpOgogICAgIiIiaWYgZ2l0IHRo cm93cyBhIHdhcm5pbmcgc2F5aW5nCiAgICAid2FybmluZzogVGhlcmUgYXJlIHRvbyBtYW55IHVu cmVhY2hhYmxlIGxvb3NlIG9iamVjdHM7IHJ1biAnZ2l0IHBydW5lJyB0byByZW1vdmUgdGhlbS4i CiAgICBgZ2l0IHBydW5lYCB3aWxsIGJlIGV4ZWN1dGVkLiBvdGhlcndpc2Ugb3V0cHV0IHdpbGwg YmUgcHJpbnRlZCBhbmQgZXhpdCBjb2RlCiAgICB3aWxsIGJlIHJldHVybmVkLgogICAgIiIiCgog ICAgZm9yIGkgaW4gc2VyaWVzOgogICAgICAgIHRyeToKICAgICAgICAgICAgcHJpbnQoCiAgICAg ICAgICAgICAgICBmIntiY29sb3JzLk9LR1JFRU59dHJ5aW5nIHRvIGFwcGx5Ont0eXBlX317YmNv bG9ycy5PS0NZQU59IHtpWzBdfSB7YmNvbG9ycy5FTkRDfSIKICAgICAgICAgICAgKQogICAgICAg ICAgICBwcmludChmIntiY29sb3JzLk9LQkxVRX0ge2lbMV19LCB7YmNvbG9ycy5VTkRFUkxJTkV9 e2lbMl19e2Jjb2xvcnMuRU5EQ30iKQogICAgICAgICAgICBpZiBpWzBdID09ICJJRCI6CiAgICAg ICAgICAgICAgICBwYXNzCgogICAgICAgICAgICBleGl0X2NvZGUsIG91dHB1dCA9IHJ1bl9jbWQo ZiJnaXQtcHcge3R5cGVffSBhcHBseSB7aVswXX0iKQoKICAgICAgICAgICAgaWYgcHJ1bmVfd2Fy aW5pbmcgaW4gb3V0cHV0OgogICAgICAgICAgICAgICAgcHJpbnQoInJ1bm5pbmc6IGdpdCBwcnVu ZSIpCiAgICAgICAgICAgICAgICBydW5fY21kKCJnaXQgcHJ1bmUiKQoKICAgICAgICAgICAgaWYg ZXhpdF9jb2RlID09IDEgYW5kIHJlc291cmNlX25vdF9mb3VuZF93YXJuaW5nIGluIG91dHB1dDoK ICAgICAgICAgICAgICAgIHByaW50KGYie2Jjb2xvcnMuV0FSTklOR31wYXRjaCB1bmF2YWlsYWJs ZXtiY29sb3JzLkVOREN9IikKICAgICAgICAgICAgICAgIHVuYXZhaWxhYmxlLmFwcGVuZChpKQoK ICAgICAgICAgICAgaWYgZXhpdF9jb2RlOgogICAgICAgICAgICAgICAgIyBpZiBgZ2l0LXB3IHBh dGNoL3NlcmllcyBhcHBseSA8aWQ+YCBmYWlscwogICAgICAgICAgICAgICAgIyByZXNldHRpbmcg dG8gSEVBRAoKICAgICAgICAgICAgICAgIHByaW50KAogICAgICAgICAgICAgICAgICAgIGYie2Jj b2xvcnMuT0tDWUFOfWdpdCBleGl0IGNvZGU6IHtiY29sb3JzLkZBSUx9e2V4aXRfY29kZX17YmNv bG9ycy5FTkRDfSIKICAgICAgICAgICAgICAgICkKICAgICAgICAgICAgICAgIHVubWVyZ2VkLmFw cGVuZChpKQoKICAgICAgICAgICAgZWxzZToKICAgICAgICAgICAgICAgIGlmIG91dHB1dC5zdHJp cCgpLmVuZHN3aXRoKGFscmVhZHlfYXBwbGllZF93YXJuaW5nKToKICAgICAgICAgICAgICAgICAg ICBwcmludCgKICAgICAgICAgICAgICAgICAgICAgICAgZiJ7YmNvbG9ycy5XQVJOSU5HfU5vIGNo YW5nZXMgLS0gYWxyZWFkeSBhcHBsaWVkIHtiY29sb3JzLkVOREN9XG4iCiAgICAgICAgICAgICAg ICAgICAgKQogICAgICAgICAgICAgICAgICAgIGFscmVhZHlfYXBwbGllZC5hcHBlbmQoaSkKICAg ICAgICAgICAgICAgIGVsc2U6CiAgICAgICAgICAgICAgICAgICAgcHJpbnQoZiJ7YmNvbG9ycy5P S0NZQU59e3R5cGVffSBhcHBsaWVke2Jjb2xvcnMuRU5EQ31cbiIpCiAgICAgICAgICAgICAgICBt ZXJnZWQuYXBwZW5kKGkpCgogICAgICAgICAgICBwcmludChmIntiY29sb3JzLkZBSUx9cmVzZXR0 aW5nIHRvIEhFQUQ6IHtiY29sb3JzLkVOREN9IikKCiAgICAgICAgICAgIGlmIG9zLnBhdGguZXhp c3RzKCIuZ2l0L3JlYmFzZS1hcHBseSIpOgogICAgICAgICAgICAgICAgcnVuX2NtZCgiZ2l0IGFt IC0tYWJvcnQiKQogICAgICAgICAgICBydW5fY21kKCJnaXQgcmVzZXQgLS1oYXJkIG1hc3RlciIs IGRlYnVnPVRydWUpCgogICAgICAgIGV4Y2VwdCBLZXlib2FyZEludGVycnVwdCBhcyBrZToKICAg ICAgICAgICAgYnJlYWsKICAgICAgICBleGNlcHQgRXhjZXB0aW9uIGFzIGU6CiAgICAgICAgICAg IHByaW50KGUpCiAgICAgICAgICAgIGJyZWFrCgoKZGVmIGdldF9wYXRjaGVzKGZyb21fcGFnZT0x LCB0b19wYWdlPTEwMCk6CiAgICBjbWQgPSAiZ2l0LXB3IHBhdGNoIGxpc3QgLS1wYWdlIHswfSAt ZiBjc3YgLS1zdGF0ZSAnbmV3JyIKICAgIHBhdGNoZXMgPSBbXQogICAgZm9yIGkgaW4gcmFuZ2Uo ZnJvbV9wYWdlLCB0b19wYWdlKToKICAgICAgICBleGl0X2NvZGUsIG91dHB1dCA9IHJ1bl9jbWQo Y21kLmZvcm1hdChpKSwgZGVidWc9VHJ1ZSkKCiAgICAgICAgaWYgZXhpdF9jb2RlOgogICAgICAg ICAgICBwcmludChmImdpdC1wdyBleGl0ZWQgd2l0aCBleGl0IGNvZGUge2V4aXRfY29kZX0iKQog ICAgICAgICAgICAjIHBhdGNoZXMuZXh0ZW5kKG91dHB1dC5zdHJpcCgpLnNwbGl0KCJcbiIpKQog ICAgICAgICAgICBicmVhawoKICAgICAgICBwYXRjaGVzLmV4dGVuZChvdXRwdXQuc3RyaXAoKS5z cGxpdCgiXG4iKSkKICAgICAgICAjIHByaW50KHBhdGNoZXMpCiAgICByZXR1cm4gcGF0Y2hlcwoK CmRlZiBnZXRfc2VyaWVzKGZyb21fcGFnZT0xLCB0b19wYWdlPTEwMCk6CiAgICBjbWQgPSAiZ2l0 LXB3IHNlcmllcyBsaXN0IC0tcGFnZSB7MH0gLWYgY3N2IgogICAgc2VyaWVzID0gW10KICAgIGZv ciBpIGluIHJhbmdlKGZyb21fcGFnZSwgdG9fcGFnZSk6CiAgICAgICAgZXhpdF9jb2RlLCBvdXRw dXQgPSBydW5fY21kKGNtZC5mb3JtYXQoaSksIGRlYnVnPVRydWUpCgogICAgICAgIGlmIGV4aXRf Y29kZToKICAgICAgICAgICAgcHJpbnQoZiJnaXQtcHcgZXhpdGVkIHdpdGggZXhpdCBjb2RlIHtl eGl0X2NvZGV9IikKICAgICAgICAgICAgIyBzZXJpZXMuZXh0ZW5kKG91dHB1dC5zdHJpcCgpLnNw bGl0KCJcbiIpKQogICAgICAgICAgICBicmVhawoKICAgICAgICBzZXJpZXMuZXh0ZW5kKG91dHB1 dC5zdHJpcCgpLnNwbGl0KCJcbiIpKQogICAgcmV0dXJuIHNlcmllcwoKCmRlZiBnZXRfcGF0Y2hl c19mb3Jfc2VyaWVzKGxpc3RfLCBpbmRleCwgc2VyaWVzX2RpY3QsIHBhdGNoX2lkcyk6CiAgICBm b3IgaSBpbiBsaXN0XzoKICAgICAgICBwcmludChmInJ1bm5pbmc6IGdpdC1wdyBzZXJpZXMgc2hv dyB7aX0gLWYgY3N2IikKICAgICAgICByZXQsIG9wID0gcnVuX2NtZChmImdpdC1wdyBzZXJpZXMg c2hvdyB7aX0gLWYgY3N2IikKICAgICAgICBwcmludCgiKioqKiIsIGluZGV4LCAiKioqKiIpCiAg ICAgICAgaWYgcmV0OgogICAgICAgICAgICBwcmludChmImV4aXR0ZWQgd2l0aCB7cmV0fToge29w fSIpCiAgICAgICAgc2VyaWVzX2RhdGEgPSByZWFkX3Jvd3Mob3Auc3RyaXAoKS5zcGxpdCgiXG4i KSkKICAgICAgICBwcmludChzZXJpZXNfZGF0YVsxXSkKICAgICAgICBmb3IgaiBpbiBzZXJpZXNf ZGF0YVsxMTpdOgogICAgICAgICAgICBwYXRjaF9kYXRhID0galsxXS5zcGxpdCgpCiAgICAgICAg ICAgIHByaW50KHBhdGNoX2RhdGFbMF0sIHBhdGNoX2RhdGFbMV0pCiAgICAgICAgICAgIHNlcmll c19kaWN0W2ldLmFwcGVuZChwYXRjaF9kYXRhWzBdKQogICAgICAgICAgICBpZiBwYXRjaF9kYXRh WzBdIGluIHBhdGNoX2lkczoKICAgICAgICAgICAgICAgIHBhdGNoX2lkcy5yZW1vdmUocGF0Y2hf ZGF0YVswXSkKCgpkZWYgZ2V0X2luZGl2aWR1YWxfcGF0Y2hlcygpOgogICAgIiIiVGhpcyBmdW5j dGlvbiBpdGVyYXRlcyBvdmVyIGFsbCBvZiB0aGUgc2VyaWVzIGFuZCBhbGwgb2YgdGhlIHBhdGNo ZXMuCiAgICBBbGwgb2YgdGhlIHBhdGNoZXMgdGhhdCBkbyBub3QgYmVsb25nIHRvIGFueSBzZXJp ZXMgYXJlIGR1bXBlZCBpbnRvIGEgZmlsZS4KICAgICIiIgogICAgIyBUT0RPOiBUaGlzIGZ1bmN0 aW9uIG5lZWRzIGEgcmVmYWN0b3IuCgogICAgZmlsZV9sb2MgPSAiL3RtcC9wd2FuYWx5c2lzIgog ICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKGZpbGVfbG9jKToKICAgICAgICBvcy5ta2RpcihmaWxl X2xvYykKCiAgICBzZXJpZXMgPSBbaSBmb3IgaSBpbiByZWFkX3Jvd3MoZ2V0X3NlcmllcygpKV0K ICAgICMgcHJpbnQoc2VyaWVzKQogICAgc2VyaWVzX2RpY3QgPSB7aVswXTogW10gZm9yIGkgaW4g c2VyaWVzfQoKICAgIHBhdGNoZXMgPSByZWFkX3Jvd3MoZ2V0X3BhdGNoZXMoKSkKICAgIHBhdGNo X2lkcyA9IFtpWzBdIGZvciBpIGluIHBhdGNoZXNdCiAgICAjIHByaW50KHBhdGNoX2lkcykKICAg IHNlcmllc19pZHMgPSBbaSBmb3IgaSBpbiBzZXJpZXNfZGljdC5rZXlzKCldCgogICAgZ2V0X3Bh dGNoZXNfZm9yX3NlcmllcyhzZXJpZXNfaWRzLCAwLCBzZXJpZXNfZGljdCwgcGF0Y2hfaWRzKQog ICAgcHJpbnQoIkluZGl2aWR1YWwgcGF0Y2hlcyIsIGxlbihwYXRjaF9pZHMpKQogICAgcHJpbnQo InNlcmllc19kaWN0Iiwgc2VyaWVzX2RpY3QpCgogICAgd3JpdGVfanNvbihmaWxlX2xvYyArICIv ZGljdCIsIHNlcmllc19kaWN0KQogICAgd3JpdGVfanNvbihmaWxlX2xvYyArICIvcGF0Y2hfaWRz IiwgeyJwYXRjaGVzIjogcGF0Y2hfaWRzfSkKCgppZiBfX25hbWVfXyA9PSAiX19tYWluX18iOgoK ICAgIHBhcnNlciA9IGFyZ3BhcnNlLkFyZ3VtZW50UGFyc2VyKGRlc2NyaXB0aW9uPSJJbml0aWFs IENpIHNjcmlwdCBmb3IgcGF0Y2h3b3JrIikKICAgIHBhcnNlci5hZGRfYXJndW1lbnQoCiAgICAg ICAgIi1jIiwgIi0tY29sb3JzIiwgZGVmYXVsdD1GYWxzZSwgYWN0aW9uPSJzdG9yZV90cnVlIiwg aGVscD0iRW5hYmxlIGNvbG9ycyIKICAgICkKCiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAogICAg ICAgICItdCIsCiAgICAgICAgIi0tdHlwZSIsCiAgICAgICAgdHlwZT1zdHIsCiAgICAgICAgZGVm YXVsdD0ic2VyaWVzIiwKICAgICAgICBjaG9pY2VzPVsicGF0Y2giLCAic2VyaWVzIl0sCiAgICAg ICAgaGVscD0idHlwZTogcGF0Y2gvc2VyaWVzIiwKICAgICkKICAgIHBhcnNlci5hZGRfYXJndW1l bnQoCiAgICAgICAgIi1hIiwgIi0tYWN0aW9uIiwgdHlwZT1zdHIsIGRlZmF1bHQ9ImFwcGx5Iiwg aGVscD0iYWN0aW9uOiBsaXN0L2FwcGx5IgogICAgKQogICAgcGFyc2VyLmFkZF9hcmd1bWVudCgK ICAgICAgICAiLW8iLAogICAgICAgICItLW91dHB1dC1sb2NhdGlvbiIsCiAgICAgICAgdHlwZT1z dHIsCiAgICAgICAgZGVmYXVsdD0iL3RtcC9wdy1yZXN1bHRzIiwKICAgICAgICBoZWxwPSJsb2Nh dGlvbiBmb3IgdGhlIG91dHB1dCBmaWxlcyBjb250YWluaW5nIG1lcmdlZCwgdW1lcmdlZCBhbmQg dW5hdmFpbGFibGUgcGF0Y2hlcy9zZXJpZXMuIiwKICAgICkKICAgIHBhcnNlci5hZGRfYXJndW1l bnQoCiAgICAgICAgIi1pIiwKICAgICAgICAiLS1pbnB1dC1maWxlIiwKICAgICAgICB0eXBlPXN0 ciwKICAgICAgICBkZWZhdWx0PSIiLAogICAgICAgIGhlbHA9ImlucHV0IGZpbGU6IGNzdiBmaWxl IG9yICctJyBmb3IgdGhlIHN0YW5kYXJkIGlucHV0LiBJZiBubyBmaWxlIGlzIHNwZWNpZmllZFwK dGhpcyBkYXRhIHdpbGwgYmUgcHVsbGVkIGZyb20gcGF0Y2h3b3JrIGluc3RhbmNlLiIsCiAgICAp CiAgICBwYXJzZXIuYWRkX2FyZ3VtZW50KAogICAgICAgICItcCIsCiAgICAgICAgIi0tcGFnZS1y YW5nZSIsCiAgICAgICAgZGVmYXVsdD0iMS0xMDAiLAogICAgICAgIGhlbHA9InBhZ2UgcmFuZ2Ug Zm9yIHBhdGNod29yayBpbiB0aGUgZm9ybWF0ICdmcm9tX3BhZ2VObyctJ3RvX3BhZ2VObycgZm9y IGV4YW1wbGUgJzEtMTAwJyIsCiAgICApCgogICAgcGFyc2VyLmFkZF9hcmd1bWVudCgKICAgICAg ICAiLXUiLAogICAgICAgICItLWdldC1pbmRpdmlkdWFsLXBhdGNoZXMiLAogICAgICAgIGRlZmF1 bHQ9RmFsc2UsCiAgICAgICAgYWN0aW9uPSJzdG9yZV90cnVlIiwKICAgICAgICBoZWxwPSIiIkdl dCBpbmRpdmlkdWFsIHBhdGNoZXMuCkluIHRoaXMgY2FzZSB0aGUgc2VyaWVzIGRhdGEgYW5kIHRo ZSBwYXRjaGVzIGRhdGEgaXMgcHVsbGVkIGFuZCBjb21wYXJlZCB0bwpmaW5kIG91dCB0aGUgaW5k aXZpZHVhbCBwYXRjaGVzIHRoYXQgZG8gbm90IGJlbG9uZyB0byBhbnkgc2VyaWVzLiIiIiwKICAg ICkKICAgIGFyZ3MgPSBwYXJzZXIucGFyc2VfYXJncygpCiAgICBwcmludChhcmdzKQoKICAgIGNz dl9kYXRhID0gW10KICAgIGlmIGFyZ3MuaW5wdXRfZmlsZSA9PSAiLSI6CgogICAgICAgICMgR2V0 IHRoZSBjc3YgZGF0YSBmcm9tIHN0ZGluCiAgICAgICAgZm9yIGxpbmUgaW4gc3lzLnN0ZGluOgog ICAgICAgICAgICBpZiBub3QgJyJJRCInIGluIGxpbmU6CiAgICAgICAgICAgICAgICBwcmludChs aW5lKQogICAgICAgICAgICAgICAgY3N2X2RhdGEuYXBwZW5kKGxpbmUuc3RyaXAoKSkKCiAgICBl bGlmIG9zLnBhdGguZXhpc3RzKGFyZ3MuaW5wdXRfZmlsZSk6CiAgICAgICAgZGF0YSA9IG9wZW4o YXJncy5pbnB1dF9maWxlKS5yZWFkKCkuc3RyaXAoKS5zcGxpdCgiXG4iKQogICAgICAgIGZvciBs aW5lIGluIGRhdGE6CiAgICAgICAgICAgIGlmIG5vdCAnIklEIicgaW4gbGluZToKICAgICAgICAg ICAgICAgICMgcHJpbnQobGluZSkKICAgICAgICAgICAgICAgIGNzdl9kYXRhLmFwcGVuZChsaW5l LnN0cmlwKCkpCgogICAgIyBvcHRpb24gdGhhdCB3ZSB3aWxsIGJlIG9wZXJhdGluZyB1cG9uLCBz ZXJpZXMgb3IgdGhlIHBhdGNoCiAgICAjIHRoaXMgaXMgdGhlIGNvbW1hbmQgbGluZSBhcmd1bWVu dCB0byBnaXQtcHcKICAgICMgZm9yIGV4YW1wbGUgImdpdC1wdyBwYXRjaCBhcHBseSAxMjM0NSIg b3IgImdpdC1wdyBzZXJpZXMgYXBwbHkgIjEyMzU2IgogICAgdHlwZV8gPSBhcmdzLnR5cGUKCiAg ICBzZXJpZXNfZGF0YSA9IHJlYWRfcm93cyhjc3ZfZGF0YSkKICAgIG91dHB1dF9maWxlc19sb2Mg PSBhcmdzLm91dHB1dF9sb2NhdGlvbgogICAgaWYgbm90IG9zLnBhdGguZXhpc3RzKG91dHB1dF9m aWxlc19sb2MpOgogICAgICAgIG9zLm1rZGlyKG91dHB1dF9maWxlc19sb2MpCgogICAgaWYgYXJn cy5nZXRfaW5kaXZpZHVhbF9wYXRjaGVzOgogICAgICAgIHByaW50KCJnZXR0aW5nIGluZGl2aWR1 YWwgcGF0Y2hlcyIpCiAgICAgICAgZ2V0X2luZGl2aWR1YWxfcGF0Y2hlcygpCiAgICAgICAgc3lz LmV4aXQoMCkKCiAgICBjb2xvcnMgPSBhcmdzLmNvbG9ycwoKICAgIGNsYXNzIGJjb2xvcnM6CiAg ICAgICAgaWYgY29sb3JzOgogICAgICAgICAgICBIRUFERVIgPSAiXDAzM1s5NW0iCiAgICAgICAg ICAgIE9LQkxVRSA9ICJcMDMzWzk0bSIKICAgICAgICAgICAgT0tDWUFOID0gIlwwMzNbOTZtIgog ICAgICAgICAgICBPS0dSRUVOID0gIlwwMzNbOTJtIgogICAgICAgICAgICBXQVJOSU5HID0gIlww MzNbOTNtIgogICAgICAgICAgICBGQUlMID0gIlwwMzNbOTFtIgogICAgICAgICAgICBFTkRDID0g IlwwMzNbMG0iCiAgICAgICAgICAgIEJPTEQgPSAiXDAzM1sxbSIKICAgICAgICAgICAgVU5ERVJM SU5FID0gIlwwMzNbNG0iCiAgICAgICAgZWxzZToKICAgICAgICAgICAgSEVBREVSID0gIiIKICAg ICAgICAgICAgT0tCTFVFID0gIiIKICAgICAgICAgICAgT0tDWUFOID0gIiIKICAgICAgICAgICAg T0tHUkVFTiA9ICIiCiAgICAgICAgICAgIFdBUk5JTkcgPSAiIgogICAgICAgICAgICBGQUlMID0g IiIKICAgICAgICAgICAgRU5EQyA9ICIiCiAgICAgICAgICAgIEJPTEQgPSAiIgogICAgICAgICAg ICBVTkRFUkxJTkUgPSAiIgoKICAgIHByaW50KGxlbihzZXJpZXNfZGF0YSkpCiAgICBpZiBhcmdz LmFjdGlvbiA9PSAiYXBwbHkiOgogICAgICAgIGlmIGFyZ3MuaW5wdXRfZmlsZSA9PSAiIjoKICAg ICAgICAgICAgdHJ5OgogICAgICAgICAgICAgICAgZnJvbV9yYW5nZSwgdG9fcmFuZ2UgPSBbaW50 KGkpIGZvciBpIGluIGFyZ3MucGFnZV9yYW5nZS5zcGxpdCgiLSIpXQogICAgICAgICAgICBleGNl cHQgVmFsdWVFcnJvciBhcyB2ZToKICAgICAgICAgICAgICAgIHByaW50KCJpbnZhbGlkIHBhZ2Ug cmFuZ2UiKQogICAgICAgICAgICAgICAgc3lzLmV4aXQoMSkKICAgICAgICAgICAgc2VyaWVzX2Rh dGEgPSBbaSBmb3IgaSBpbiByZWFkX3Jvd3MoZ2V0X3Nlcmllcyhmcm9tX3JhbmdlLCB0b19yYW5n ZSArIDEpKV0KICAgICAgICBhcHBseV8oc2VyaWVzX2RhdGEpCgogICAgcHJpbnQoCiAgICAgICAg InRvdGFsIG1lcmdlZDogezB9LCB0b3RhbCB1bm1lcmdlZCB7MX0sIHRvdGFsIHVuYXZhaWxhYmxl ezJ9Ii5mb3JtYXQoCiAgICAgICAgICAgIGxlbihtZXJnZWQpLCBsZW4odW5tZXJnZWQpLCBsZW4o dW5hdmFpbGFibGUpCiAgICAgICAgKQogICAgKQogICAgd3JpdGVfZmlsZShmIntvdXRwdXRfZmls ZXNfbG9jfS9tZXJnZWQudHh0IiwgbWVyZ2VkKQogICAgd3JpdGVfZmlsZShmIntvdXRwdXRfZmls ZXNfbG9jfS91bm1lcmdlZC50eHQiLCB1bm1lcmdlZCkKICAgIHdyaXRlX2ZpbGUoZiJ7b3V0cHV0 X2ZpbGVzX2xvY30vdW5hdmFpbGFibGUudHh0IiwgdW5hdmFpbGFibGUpCiAgICB3cml0ZV9maWxl KGYie291dHB1dF9maWxlc19sb2N9L2FscmVhZHlfYXBwbGllZC50eHQiLCBhbHJlYWR5X2FwcGxp ZWQpCg== --000000000000b3a46505ba84a079--