From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5EA981C294 for ; Tue, 16 Jan 2024 15:41:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="dngYZd02" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-1d5f10052easo2248325ad.1 for ; Tue, 16 Jan 2024 07:41:26 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705419685; x=1706024485; darn=vger.kernel.org; h=reply-to:references:in-reply-to:subject:to:from:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=M2lflKv7Ja8zlNED6FSZNNpO+QthFWWdJBo1HR5LEPk=; b=dngYZd02rw4hEg4w9UoktSQVC5qO48UluCgl93NMdX9gID7I+V345Uc01u6/mMEp5R irMP3OmqDafAFfN/aetTcN+RSRRcWb81ov97RLfedqcZdGO1V/kNILaD+9OWXuVNsRiY /UsaGiKXshp/IpeaPlb6CHREqygMCsrd6bM3UmWWelSZQjzFiQCIqjsCjfNwHu2pmIQs 9vOmiPt9a7jBSu7+Hp/QsFRaFeynADsIcsQzjdViYSlg37ADpXmWEV2R88TtZp3Tv9U8 trSLhhP5TuceaWkIplhrF8WSJRJojsauAVcQiV7MMK2r6tdQ9+cqXv5/f7vTPqiSGuFE eYqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705419685; x=1706024485; h=reply-to:references:in-reply-to:subject:to:from:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=M2lflKv7Ja8zlNED6FSZNNpO+QthFWWdJBo1HR5LEPk=; b=CKHQ9ISl/SX/1ruiZvGI4Mu4cVgsadDf2cjzQggSuvv98ItcAxm+nMVI5U8pda86xM dNiNDfGyOYZWobWSUFS5ozXT5MfZ91uE2w0EjgNihkphODcNh/jPYPluR5/KvsiMAzsG JGUYEg3oJVoJBK6Koqt55/5J5vHuZk5Kx8qeKDalqOCNjYpaIfIcESpm2WLiOyXXYFKL aCQ5G7g9YDWWcCR1I9eT18Z6dXiXQ2NvSFsw4ObjQghbuvHRcZXoNkufGuRYEpwcwd5W iYOXUHbNi3+AobHUguuVQ6Tdvm2p9eLY5JDX+4+q9etsJPTuiBRA7bLSKeiI2j4T9iJA 2PaQ== X-Gm-Message-State: AOJu0YwNq4vqHqqmqvqtq1JUpY0OFP5GhPR577RHYhqYpjVD9nrbYW7w t7olEs+DQ2tUpO+U9KCuE7mYkIyK/CM= X-Google-Smtp-Source: AGHT+IEG01ABqkQ3CAqk+lTYCfPQusftC9E89ul+yJmofEVIlTVT39TFc+9JU1krg7v5V1m54HMZOw== X-Received: by 2002:a17:902:c94d:b0:1d4:bd16:d45e with SMTP id i13-20020a170902c94d00b001d4bd16d45emr5049310pla.39.1705419684922; Tue, 16 Jan 2024 07:41:24 -0800 (PST) Received: from [172.17.0.2] ([13.91.68.210]) by smtp.gmail.com with ESMTPSA id c19-20020a170902b69300b001d1d1ef8be6sm9456272pls.267.2024.01.16.07.41.24 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Jan 2024 07:41:24 -0800 (PST) Message-ID: <65a6a3a4.170a0220.86c5e.e719@mx.google.com> Date: Tue, 16 Jan 2024 07:41:24 -0800 (PST) Content-Type: multipart/mixed; boundary="===============9085691287287101268==" Precedence: bulk X-Mailing-List: linux-bluetooth@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 From: bluez.test.bot@gmail.com To: linux-bluetooth@vger.kernel.org, devnull+emil.l.velikov.gmail.com@kernel.org Subject: RE: Autotools papercuts, linker GC, symlink dbus-org.bluez.obex.service In-Reply-To: <20240116-autofoo-v1-1-626f6b54bd06@gmail.com> References: <20240116-autofoo-v1-1-626f6b54bd06@gmail.com> Reply-To: linux-bluetooth@vger.kernel.org --===============9085691287287101268== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 VGhpcyBpcyBhdXRvbWF0ZWQgZW1haWwgYW5kIHBsZWFzZSBkbyBub3QgcmVwbHkgdG8gdGhpcyBl bWFpbCEKCkRlYXIgc3VibWl0dGVyLAoKVGhhbmsgeW91IGZvciBzdWJtaXR0aW5nIHRoZSBwYXRj aGVzIHRvIHRoZSBsaW51eCBibHVldG9vdGggbWFpbGluZyBsaXN0LgpUaGlzIGlzIGEgQ0kgdGVz dCByZXN1bHRzIHdpdGggeW91ciBwYXRjaCBzZXJpZXM6ClBXIExpbms6aHR0cHM6Ly9wYXRjaHdv cmsua2VybmVsLm9yZy9wcm9qZWN0L2JsdWV0b290aC9saXN0Lz9zZXJpZXM9ODE3MjE4CgotLS1U ZXN0IHJlc3VsdC0tLQoKVGVzdCBTdW1tYXJ5OgpDaGVja1BhdGNoICAgICAgICAgICAgICAgICAg ICBQQVNTICAgICAgMi40OSBzZWNvbmRzCkdpdExpbnQgICAgICAgICAgICAgICAgICAgICAgIFBB U1MgICAgICAyLjAyIHNlY29uZHMKQnVpbGRFbGwgICAgICAgICAgICAgICAgICAgICAgUEFTUyAg ICAgIDIzLjk1IHNlY29uZHMKQmx1ZXpNYWtlICAgICAgICAgICAgICAgICAgICAgUEFTUyAgICAg IDcxOC4xMCBzZWNvbmRzCk1ha2VDaGVjayAgICAgICAgICAgICAgICAgICAgIFBBU1MgICAgICAx MS45NSBzZWNvbmRzCk1ha2VEaXN0Y2hlY2sgICAgICAgICAgICAgICAgIFBBU1MgICAgICAxNjIu NTMgc2Vjb25kcwpDaGVja1ZhbGdyaW5kICAgICAgICAgICAgICAgICBQQVNTICAgICAgMjI3LjA3 IHNlY29uZHMKQ2hlY2tTbWF0Y2ggICAgICAgICAgICAgICAgICAgUEFTUyAgICAgIDMzMS4zNCBz ZWNvbmRzCmJsdWV6bWFrZWV4dGVsbCAgICAgICAgICAgICAgIFBBU1MgICAgICAxMDguNjYgc2Vj b25kcwpJbmNyZW1lbnRhbEJ1aWxkICAgICAgICAgICAgICBGQUlMICAgICAgMjcyOS44NyBzZWNv bmRzClNjYW5CdWlsZCAgICAgICAgICAgICAgICAgICAgIEZBSUwgICAgICA5MzMuNDcgc2Vjb25k cwoKRGV0YWlscwojIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMKVGVzdDogSW5jcmVtZW50 YWxCdWlsZCAtIEZBSUwKRGVzYzogSW5jcmVtZW50YWwgYnVpbGQgd2l0aCB0aGUgcGF0Y2hlcyBp biB0aGUgc2VyaWVzCk91dHB1dDoKW0JsdWVaLDA0LzEwXSBidWlsZDogcmVtb3ZlIGR1bW15IHtj b25mLHN0YXRlfXtkaXIsX0RBVEF9Cgp0b29scy9tZ210LXRlc3Rlci5jOiBJbiBmdW5jdGlvbiDi gJhtYWlu4oCZOgp0b29scy9tZ210LXRlc3Rlci5jOjEyNzYzOjU6IG5vdGU6IHZhcmlhYmxlIHRy YWNraW5nIHNpemUgbGltaXQgZXhjZWVkZWQgd2l0aCDigJgtZnZhci10cmFja2luZy1hc3NpZ25t ZW50c+KAmSwgcmV0cnlpbmcgd2l0aG91dAoxMjc2MyB8IGludCBtYWluKGludCBhcmdjLCBjaGFy ICphcmd2W10pCiAgICAgIHwgICAgIF5+fn4KdW5pdC90ZXN0LWF2ZHRwLmM6IEluIGZ1bmN0aW9u IOKAmG1haW7igJk6CnVuaXQvdGVzdC1hdmR0cC5jOjc2Njo1OiBub3RlOiB2YXJpYWJsZSB0cmFj a2luZyBzaXplIGxpbWl0IGV4Y2VlZGVkIHdpdGgg4oCYLWZ2YXItdHJhY2tpbmctYXNzaWdubWVu dHPigJksIHJldHJ5aW5nIHdpdGhvdXQKICA3NjYgfCBpbnQgbWFpbihpbnQgYXJnYywgY2hhciAq YXJndltdKQogICAgICB8ICAgICBefn5+CnVuaXQvdGVzdC1hdnJjcC5jOiBJbiBmdW5jdGlvbiDi gJhtYWlu4oCZOgp1bml0L3Rlc3QtYXZyY3AuYzo5ODk6NTogbm90ZTogdmFyaWFibGUgdHJhY2tp bmcgc2l6ZSBsaW1pdCBleGNlZWRlZCB3aXRoIOKAmC1mdmFyLXRyYWNraW5nLWFzc2lnbm1lbnRz 4oCZLCByZXRyeWluZyB3aXRob3V0CiAgOTg5IHwgaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKmFy Z3ZbXSkKICAgICAgfCAgICAgXn5+fgovdXNyL2Jpbi9sZDogL3Vzci9saWIvZ2NjL3g4Nl82NC1s aW51eC1nbnUvOS8uLi8uLi8uLi94ODZfNjQtbGludXgtZ251L1NjcnQxLm86IGluIGZ1bmN0aW9u IGBfc3RhcnQnOgooLnRleHQrMHgyNCk6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gYG1haW4nCmNv bGxlY3QyOiBlcnJvcjogbGQgcmV0dXJuZWQgMSBleGl0IHN0YXR1cwptYWtlWzFdOiAqKiogW01h a2VmaWxlOjU4NjQ6IG1lc2gvYmx1ZXRvb3RoLW1lc2hkXSBFcnJvciAxCm1ha2VbMV06ICoqKiBX YWl0aW5nIGZvciB1bmZpbmlzaGVkIGpvYnMuLi4uCm1ha2U6ICoqKiBbTWFrZWZpbGU6NDY3NDog YWxsXSBFcnJvciAyCiMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIwpUZXN0OiBTY2FuQnVp bGQgLSBGQUlMCkRlc2M6IFJ1biBTY2FuIEJ1aWxkCk91dHB1dDoKCnNyYy9zaGFyZWQvZ2F0dC1j bGllbnQuYzo0NTE6MjE6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQK ICAgICAgICBnYXR0X2RiX3VucmVnaXN0ZXIob3AtPmNsaWVudC0+ZGIsIG9wLT5kYl9pZCk7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVu dC5jOjY5NjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBmYWxzZSwgYXR0X2Vjb2RlKTsKICAgICAgICBe fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0 dC1jbGllbnQuYzo5OTM6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVl ZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsK ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3Jj L3NoYXJlZC9nYXR0LWNsaWVudC5jOjEwOTk6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRl ciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShvcCwgc3VjY2Vzcywg YXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjEyOTE6Mjogd2FybmluZzogVXNlIG9m IG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9vcF9jb21wbGV0ZShv cCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjEzNTY6Mjogd2Fy bmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyeV9v cF9jb21wbGV0ZShvcCwgc3VjY2VzcywgYXR0X2Vjb2RlKTsKICAgICAgICBefn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5j OjE2MzE6Njogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg IGlmIChyZWFkX2RiX2hhc2gob3ApKSB7CiAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn4Kc3Jj L3NoYXJlZC9nYXR0LWNsaWVudC5jOjE2MzY6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRl ciBpdCBpcyBmcmVlZAogICAgICAgIGRpc2NvdmVyX2FsbChvcCk7CiAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MjE0MDo2OiB3YXJuaW5nOiBVc2Ugb2Yg bWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsK ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MjE0 ODo4OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzY292ZXJ5X29w X3JlZihvcCksCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjMy Mzc6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAgIGNv bXBsZXRlX3dyaXRlX2xvbmdfb3AocmVxLCBzdWNjZXNzLCAwLCBmYWxzZSk7CiAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6MzI1OToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgcmVxdWVzdF91bnJlZihyZXEpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fgoxMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvYmFwLmM6NDc2ODoyMzogd2Fybmlu ZzogQWNjZXNzIHRvIGZpZWxkICd0eXBlJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBu dWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdscGFjJykKICAgICAgICAgICAgICAg IGlmICghbWF0Y2gucnBhYyAmJiAobHBhYy0+dHlwZSAhPSBCVF9CQVBfQkNBU1RfU09VUkNFKSkK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgoxIHdhcm5pbmcg Z2VuZXJhdGVkLgpzcmMvc2hhcmVkL3NoZWxsLmM6MTIyODoxMzogd2FybmluZzogQWNjZXNzIHRv IGZpZWxkICdvcHRpb25zJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50 ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdvcHQnKQogICAgICAgICAgICAgICAgICAgICAgICBp ZiAoYyAhPSBvcHQtPm9wdGlvbnNbaW5kZXggLSBvZmZzZXRdLnZhbCkgewogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4Kc3Jj L3NoYXJlZC9nYXR0LWNsaWVudC5jOjQ1MToyMTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRl ciBpdCBpcyBmcmVlZAogICAgICAgIGdhdHRfZGJfdW5yZWdpc3RlcihvcC0+Y2xpZW50LT5kYiwg b3AtPmRiX2lkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgpzcmMvc2hh cmVkL2dhdHQtY2xpZW50LmM6Njk2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQg aXMgZnJlZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIGZhbHNlLCBhdHRfZWNv ZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K c3JjL3NoYXJlZC9nYXR0LWNsaWVudC5jOjk5MzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFm dGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNz LCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTA5OToyOiB3YXJuaW5nOiBVc2Ug b2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRl KG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTI5MToyOiB3 YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5 X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50 LmM6MTM1NjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAg ICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVk L2dhdHQtY2xpZW50LmM6MTYzMTo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlz IGZyZWVkCiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYzNjoyOiB3YXJuaW5nOiBVc2Ug b2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJfYWxsKG9wKTsKICAg ICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTQwOjY6IHdh cm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9k Yl9oYXNoKG9wKSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0 dC1jbGllbnQuYzoyMTQ4Ojg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJl ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBkaXNjb3Zlcnlfb3BfcmVmKG9wKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6MzIzNzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZy ZWVkCiAgICAgICAgY29tcGxldGVfd3JpdGVfbG9uZ19vcChyZXEsIHN1Y2Nlc3MsIDAsIGZhbHNl KTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzozMjU5OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkg YWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICByZXF1ZXN0X3VucmVmKHJlcSk7CiAgICAgICAgXn5+ fn5+fn5+fn5+fn5+fn5+CjEyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9iYXAuYzo0 NzY4OjIzOiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ3R5cGUnIHJlc3VsdHMgaW4gYSBkZXJl ZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ2xwYWMnKQog ICAgICAgICAgICAgICAgaWYgKCFtYXRjaC5ycGFjICYmIChscGFjLT50eXBlICE9IEJUX0JBUF9C Q0FTVF9TT1VSQ0UpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+ fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvc2hlbGwuYzoxMjI4OjEzOiB3YXJu aW5nOiBBY2Nlc3MgdG8gZmllbGQgJ29wdGlvbnMnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBv ZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ29wdCcpCiAgICAgICAgICAg ICAgICAgICAgICAgIGlmIChjICE9IG9wdC0+b3B0aW9uc1tpbmRleCAtIG9mZnNldF0udmFsKSB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fgoxIHdhcm5pbmcg Z2VuZXJhdGVkLgp0b29scy9oY2lhdHRhY2guYzo4MTY6Nzogd2FybmluZzogQWx0aG91Z2ggdGhl IHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24s IHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChu ID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDEwKSkgPCAwKSB7CiAgICAgICAgICAgICBeICAg fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo4NjQ6Nzogd2Fy bmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBpbiB0aGUgZW5j bG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20g J24nCiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDQpKSA8IDApIHsK ICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpYXR0 YWNoLmM6ODg2Ojg6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQgdG8gJ24nIGlz IHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMgbmV2ZXIgYWN0 dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgICAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZl bnQoZmQsIHJlc3AsIDEwKSkgPCAwKSB7CiAgICAgICAgICAgICAgICAgICAgIF4gICB+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWF0dGFjaC5jOjkwODo3OiB3YXJuaW5nOiBB bHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICduJyBpcyB1c2VkIGluIHRoZSBlbmNsb3Npbmcg ZXhwcmVzc2lvbiwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnbicKICAg ICAgICBpZiAoKG4gPSByZWFkX2hjaV9ldmVudChmZCwgcmVzcCwgNCkpIDwgMCkgewogICAgICAg ICAgICAgXiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9oY2lhdHRhY2guYzo5 Mjk6Nzogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVlIHN0b3JlZCB0byAnbicgaXMgdXNlZCBp biB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSBy ZWFkIGZyb20gJ24nCiAgICAgICAgaWYgKChuID0gcmVhZF9oY2lfZXZlbnQoZmQsIHJlc3AsIDQp KSA8IDApIHsKICAgICAgICAgICAgIF4gICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9v bHMvaGNpYXR0YWNoLmM6OTczOjc6IHdhcm5pbmc6IEFsdGhvdWdoIHRoZSB2YWx1ZSBzdG9yZWQg dG8gJ24nIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUgaXMg bmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICduJwogICAgICAgIGlmICgobiA9IHJlYWRfaGNpX2V2 ZW50KGZkLCByZXNwLCA2KSkgPCAwKSB7CiAgICAgICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CjYgd2FybmluZ3MgZ2VuZXJhdGVkLgpzcmMvb3VpLmM6NTA6Mjogd2Fybmlu ZzogVmFsdWUgc3RvcmVkIHRvICdod2RiJyBpcyBuZXZlciByZWFkCiAgICAgICAgaHdkYiA9IHVk ZXZfaHdkYl91bnJlZihod2RiKTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+ CnNyYy9vdWkuYzo1MzoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3VkZXYnIGlzIG5ldmVy IHJlYWQKICAgICAgICB1ZGV2ID0gdWRldl91bnJlZih1ZGV2KTsKICAgICAgICBeICAgICAgfn5+ fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvaGNpZHVtcC5jOjE4MDo5 OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnZHAnCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZkc1tpXS5mZCA9PSBzb2NrKQogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn4KdG9vbHMvaGNpZHVtcC5jOjI0ODox Nzogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBkaC0+dHNfc2VjICA9IGh0b2JsKGZybS50cy50dl9z ZWMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+ fn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjMyNjo5OiB3YXJuaW5nOiAxc3QgZnVuY3Rp b24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgaWYgKGJlMzJ0b2goZHAuZmxhZ3MpICYgMHgwMikgewogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fgovdXNyL2luY2x1 ZGUvZW5kaWFuLmg6NDY6MjI6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2JlMzJ0b2gnCiMg IGRlZmluZSBiZTMydG9oKHgpIF9fYnN3YXBfMzIgKHgpCiAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn5+CnRvb2xzL2hjaWR1bXAuYzozNDE6MjA6IHdhcm5pbmc6IDFzdCBmdW5jdGlv biBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBmcm0uZGF0YV9sZW4gPSBiZTMydG9oKGRwLmxlbik7CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+Ci91 c3IvaW5jbHVkZS9lbmRpYW4uaDo0NjoyMjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAnYmUz MnRvaCcKIyAgZGVmaW5lIGJlMzJ0b2goeCkgX19ic3dhcF8zMiAoeCkKICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjM0NjoxNDogd2FybmluZzogMXN0 IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIG9wY29kZSA9IGJlMzJ0b2goZHAuZmxhZ3MpICYgMHhm ZmZmOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+Ci91c3IvaW5jbHVkZS9lbmRpYW4uaDo0NjoyMjogbm90ZTogZXhwYW5kZWQgZnJvbSBt YWNybyAnYmUzMnRvaCcKIyAgZGVmaW5lIGJlMzJ0b2goeCkgX19ic3dhcF8zMiAoeCkKICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjM4NDoxNzogd2Fy bmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1bmRlZmluZWQKICAgICAgICAgICAg ICAgICAgICAgICAgZnJtLmRhdGFfbGVuID0gYnRvaHMoZGgubGVuKTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6Mzk0 OjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAg ICAgICAgICAgICAgZnJtLmxlbiA9IGZybS5kYXRhX2xlbjsKICAgICAgICAgICAgICAgICAgICAg ICAgXiB+fn5+fn5+fn5+fn4KdG9vbHMvaGNpZHVtcC5jOjM5ODo5OiB3YXJuaW5nOiAxc3QgZnVu Y3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAg ICAgICAgICAgICAgIHRzID0gYmU2NHRvaChwaC50cyk7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2VuZGlhbi5oOjUxOjIyOiBub3RlOiBl eHBhbmRlZCBmcm9tIG1hY3JvICdiZTY0dG9oJwojICBkZWZpbmUgYmU2NHRvaCh4KSBfX2Jzd2Fw XzY0ICh4KQogICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1w LmM6NDAzOjEzOiB3YXJuaW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmlu aXRpYWxpemVkIHZhbHVlCiAgICAgICAgICAgICAgICAgICAgICAgIGZybS5pbiA9IGJlMzJ0b2go ZHAuZmxhZ3MpICYgMHgwMTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn4KL3Vzci9pbmNsdWRlL2VuZGlhbi5oOjQ2OjIyOiBub3RlOiBleHBhbmRlZCBm cm9tIG1hY3JvICdiZTMydG9oJwojICBkZWZpbmUgYmUzMnRvaCh4KSBfX2Jzd2FwXzMyICh4KQog ICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fgp0b29scy9oY2lkdW1wLmM6NDA4OjEx OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAg ICAgICAgICAgICAgICAgICBmcm0uaW4gPSBkaC5pbjsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIF4gfn5+fn4KdG9vbHMvaGNpZHVtcC5jOjQzNzo3OiB3YXJuaW5nOiBOdWxsIHBvaW50 ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgIGZk ID0gb3BlbihmaWxlLCBvcGVuX2ZsYWdzLCAwNjQ0KTsKICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn4KMTEgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9yZmNvbW0uYzoy Mjg6Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdpJyBpcyBuZXZlciByZWFkCiAgICAgICAg ICAgICAgICBpID0gZXhlY3ZwKGNtZGFyZ3ZbMF0sIGNtZGFyZ3YpOwogICAgICAgICAgICAgICAg XiAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9yZmNvbW0uYzoyMjg6Nzogd2Fy bmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAxc3QgcGFyYW1ldGVyIGV4cGVjdGluZyAnbm9u bnVsbCcKICAgICAgICAgICAgICAgIGkgPSBleGVjdnAoY21kYXJndlswXSwgY21kYXJndik7CiAg ICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL3JmY29t bS5jOjM0ODo4OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICdmZCcgaXMg dXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRoZSB2YWx1ZSBpcyBuZXZlciBhY3R1 YWxseSByZWFkIGZyb20gJ2ZkJwogICAgICAgICAgICAgICAgaWYgKChmZCA9IG9wZW4oZGV2bmFt ZSwgT19SRE9OTFkgfCBPX05PQ1RUWSkpIDwgMCkgewogICAgICAgICAgICAgICAgICAgICBeICAg IH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6NDkxOjE0 OiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdlIG9yIHVuZGVmaW5lZAogICAgICAg IHJlcS5jaGFubmVsID0gcmFkZHIucmNfY2hhbm5lbDsKICAgICAgICAgICAgICAgICAgICBeIH5+ fn5+fn5+fn5+fn5+fn4KdG9vbHMvcmZjb21tLmM6NTA5Ojg6IHdhcm5pbmc6IEFsdGhvdWdoIHRo ZSB2YWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lv biwgdGhlIHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAnZmQnCiAgICAgICAgICAg ICAgICBpZiAoKGZkID0gb3BlbihkZXZuYW1lLCBPX1JET05MWSB8IE9fTk9DVFRZKSkgPCAwKSB7 CiAgICAgICAgICAgICAgICAgICAgIF4gICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgo1IHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NkcC14bWwuYzoxMjY6MTA6IHdhcm5pbmc6 IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICBi dWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+ CnNyYy9zZHAteG1sLmM6MzAwOjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdl IG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAx XTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14 bWwuYzozMzg6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZp bmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgozIHdhcm5pbmdzIGdlbmVyYXRl ZC4KdG9vbHMvY2lwdG9vbC5jOjM1MDo3OiB3YXJuaW5nOiA1dGggZnVuY3Rpb24gY2FsbCBhcmd1 bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgc2sgPSBkb19jb25uZWN0KGN0 bCwgZGV2X2lkLCAmc3JjLCAmZHN0LCBwc20sICgxIDw8IENNVFBfTE9PUEJBQ0spKTsKICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCnRvb2xzL3NkcHRvb2wuYzo5NDE6MjY6 IHdhcm5pbmc6IFJlc3VsdCBvZiAnbWFsbG9jJyBpcyBjb252ZXJ0ZWQgdG8gYSBwb2ludGVyIG9m IHR5cGUgJ3VpbnQzMl90Jywgd2hpY2ggaXMgaW5jb21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJh bmQgdHlwZSAnaW50JwogICAgICAgICAgICAgICAgICAgICAgICB1aW50MzJfdCAqdmFsdWVfaW50 ID0gbWFsbG9jKHNpemVvZihpbnQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgfn5+fn5+fn5+ fiAgICAgICAgICAgIF5+fn5+fiB+fn5+fn5+fn5+fgp0b29scy9zZHB0b29sLmM6OTgwOjQ6IHdh cm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFs dWUKICAgICAgICAgICAgICAgICAgICAgICAgZnJlZShhbGxvY0FycmF5W2ldKTsKICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9zZHB0b29sLmM6Mzc3Nzoy OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnc2kubmFt ZScKICAgICAgICByZXR1cm4gYWRkX3NlcnZpY2UoMCwgJnNpKTsKICAgICAgICBefn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgp0b29scy9zZHB0b29sLmM6NDExMjo0OiB3YXJuaW5nOiBQb3RlbnRp YWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnY29udGV4dC5zdmMnCiAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+ CjQgd2FybmluZ3MgZ2VuZXJhdGVkLgp0b29scy9hdnRlc3QuYzoyMjU6NTogd2FybmluZzogVmFs dWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoyMzU6NTogd2Fy bmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCA0KTsKICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzoy NDQ6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9h dnRlc3QuYzoyNTg6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJl YWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+CnRvb2xz L2F2dGVzdC5jOjI2NTo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIg cmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYs CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn4KdG9v bHMvYXZ0ZXN0LmM6MjcyOjU6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZl ciByZWFkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1 ZiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fgp0 b29scy9hdnRlc3QuYzoyNzk6NTogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5l dmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywg YnVmLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+ CnRvb2xzL2F2dGVzdC5jOjI5MTo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMg bmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNr LCBidWYsIDQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+ fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjI5NTo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8g J2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9 IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAg IH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjMwNDo1OiB3YXJuaW5nOiBWYWx1ZSBz dG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjMwODo1OiB3YXJuaW5n OiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjMxNzo1 OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVz dC5jOjMyNDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRv b2xzL2F2dGVzdC5jOjM0Njo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2 ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBi dWYsIDQpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+ fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM1MDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xl bicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdy aXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+ fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM1OTo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9y ZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGxlbiA9IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM2Mzo1OiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjM3Njo1OiB3 YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDQpOwogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5j OjM4MDo1OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xz L2F2dGVzdC5jOjM4Nzo0OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIg cmVhZAogICAgICAgICAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAyKTsKICAg ICAgICAgICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0 LmM6Mzk3OjQ6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAg ICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAg ICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo1NjI6 Mzogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAg ICAgICAgIGxlbiA9IHdyaXRlKHNrLCBidWYsIDIpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+ fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0ZXN0LmM6NTcwOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAnbGVuJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywg YnVmLCBpbnZhbGlkID8gMiA6IDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo1ODQ6Mzogd2FybmluZzogVmFsdWUg c3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRl KHNrLCBidWYsIDQgKyBzaXplb2YobWVkaWFfdHJhbnNwb3J0KSk7CiAgICAgICAgICAgICAgICBe ICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2 dGVzdC5jOjU5NzozOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVh ZAogICAgICAgICAgICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAg ICBeICAgICB+fn5+fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2MDc6Mzogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9 IHdyaXRlKHNrLCBidWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+ fn4KdG9vbHMvYXZ0ZXN0LmM6NjE5OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBp cyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAg ICAgICAgICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjYzNDoz OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAg ICAgICAgbGVuID0gd3JpdGUoc2ssIGJ1ZiwgMyk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+ fn5+fn5+fn5+fn5+fgp0b29scy9hdnRlc3QuYzo2NDY6Mzogd2FybmluZzogVmFsdWUgc3RvcmVk IHRvICdsZW4nIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgIGxlbiA9IHdyaXRlKHNrLCBi dWYsIDMpOwogICAgICAgICAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn4KdG9vbHMvYXZ0 ZXN0LmM6NjU1OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnbGVuJyBpcyBuZXZlciByZWFk CiAgICAgICAgICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCAzKTsKICAgICAgICAgICAgICAg IF4gICAgIH5+fn5+fn5+fn5+fn5+fn5+CnRvb2xzL2F2dGVzdC5jOjY2MjozOiB3YXJuaW5nOiBW YWx1ZSBzdG9yZWQgdG8gJ2xlbicgaXMgbmV2ZXIgcmVhZAogICAgICAgICAgICAgICAgbGVuID0g d3JpdGUoc2ssIGJ1ZiwgMik7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+fn5+fn5+ fgp0b29scy9hdnRlc3QuYzo2OTg6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4nIGlz IG5ldmVyIHJlYWQKICAgICAgICBsZW4gPSB3cml0ZShzaywgYnVmLCBBVkNUUF9IRUFERVJfTEVO R1RIICsgc2l6ZW9mKHBsYXlfcHJlc3NlZCkpOwogICAgICAgIF4gICAgIH5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMzIgd2FybmluZ3Mg Z2VuZXJhdGVkLgp0b29scy9idHByb3h5LmM6ODM2OjE1OiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIg cGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgICAgICAg ICAgICAgICAgICB0Y3BfcG9ydCA9IGF0b2kob3B0YXJnKTsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn4KdG9vbHMvYnRwcm94eS5jOjgzOTo4OiB3YXJuaW5n OiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxs JwogICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3RybGVuKG9wdGFyZykgPiAzICYmICFzdHJu Y21wKG9wdGFyZywgImhjaSIsIDMpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCnRvb2xzL2NyZWF0ZS1pbWFnZS5jOjc2OjM6 IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAg ICAgIGZkID0gLTE7CiAgICAgICAgICAgICAgICBeICAgIH5+CnRvb2xzL2NyZWF0ZS1pbWFnZS5j Ojg0OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIG5ldmVyIHJlYWQKICAgICAg ICAgICAgICAgIGZkID0gLTE7CiAgICAgICAgICAgICAgICBeICAgIH5+CnRvb2xzL2NyZWF0ZS1p bWFnZS5jOjkyOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnZmQnIGlzIG5ldmVyIHJlYWQK ICAgICAgICAgICAgICAgIGZkID0gLTE7CiAgICAgICAgICAgICAgICBeICAgIH5+CnRvb2xzL2Ny ZWF0ZS1pbWFnZS5jOjEwNToyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2ZkJyBpcyBuZXZl ciByZWFkCiAgICAgICAgZmQgPSAtMTsKICAgICAgICBeICAgIH5+CjQgd2FybmluZ3MgZ2VuZXJh dGVkLgp0b29scy9idGdhdHQtY2xpZW50LmM6MTU5NzoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQg dG8gJ2FyZ3YnIGlzIG5ldmVyIHJlYWQKICAgICAgICBhcmd2ICs9IG9wdGluZDsKICAgICAgICBe ICAgICAgIH5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9idGdhdHQtc2VydmVyLmM6 MTIxMjoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2FyZ3YnIGlzIG5ldmVyIHJlYWQKICAg ICAgICBhcmd2IC09IG9wdGluZDsKICAgICAgICBeICAgICAgIH5+fn5+fgoxIHdhcm5pbmcgZ2Vu ZXJhdGVkLgp0b29scy9jaGVjay1zZWxmdGVzdC5jOjQyOjM6IHdhcm5pbmc6IFZhbHVlIHN0b3Jl ZCB0byAncHRyJyBpcyBuZXZlciByZWFkCiAgICAgICAgICAgICAgICBwdHIgPSBmZ2V0cyhyZXN1 bHQsIHNpemVvZihyZXN1bHQpLCBmcCk7CiAgICAgICAgICAgICAgICBeICAgICB+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4KdG9vbHMvZ2F0dC1z ZXJ2aWNlLmM6Mjk0OjI6IHdhcm5pbmc6IDJuZCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFu IHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICBjaHJfd3JpdGUoY2hyLCB2YWx1ZSwgbGVuKTsK ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0 b29scy9vYmV4LXNlcnZlci10b29sLmM6MTMzOjEzOiB3YXJuaW5nOiBOdWxsIHBvaW50ZXIgcGFz c2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgIGRhdGEtPmZk ID0gb3BlbihuYW1lLCBPX1dST05MWSB8IE9fQ1JFQVQgfCBPX05PQ1RUWSwgMDYwMCk7CiAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgp0b29scy9vYmV4LXNlcnZlci10b29sLmM6MTkyOjEzOiB3YXJuaW5nOiBOdWxsIHBvaW50 ZXIgcGFzc2VkIHRvIDFzdCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgIGRh dGEtPmZkID0gb3BlbihuYW1lLCBPX1JET05MWSB8IE9fTk9DVFRZLCAwKTsKICAgICAgICAgICAg ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KMiB3YXJuaW5ncyBnZW5l cmF0ZWQuCnRvb2xzL3Rlc3QtcnVubmVyLmM6OTQ1OjI6IHdhcm5pbmc6IDJuZCBmdW5jdGlvbiBj YWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICBwcmludGYoIlJ1 bm5pbmcgY29tbWFuZCAlc1xuIiwgY21kbmFtZSA/IGNtZG5hbWUgOiBhcmd2WzBdKTsKICAgICAg ICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9idHBjbGllbnRjdGwuYzo0MDI6Mzogd2Fy bmluZzogVmFsdWUgc3RvcmVkIHRvICdiaXQnIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAg IGJpdCA9IDA7CiAgICAgICAgICAgICAgICBeICAgICB+CnRvb2xzL2J0cGNsaWVudGN0bC5jOjE2 NTU6Mjogd2FybmluZzogTnVsbCBwb2ludGVyIHBhc3NlZCB0byAybmQgcGFyYW1ldGVyIGV4cGVj dGluZyAnbm9ubnVsbCcKICAgICAgICBtZW1jcHkoY3AtPmRhdGEsIGFkX2RhdGEsIGFkX2xlbik7 CiAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2Vu ZXJhdGVkLgpzcmMvc2RwZC1yZXF1ZXN0LmM6MjExOjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21h bGxvYycgaXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMg aW5jb21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAndWludDE2X3QnCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQxNl90KSk7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+ fn5+fn5+fgpzcmMvc2RwZC1yZXF1ZXN0LmM6MjM5OjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21h bGxvYycgaXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMg aW5jb21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAndWludDMyX3QnCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQzMl90KSk7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+ fn5+fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4KYW5kcm9pZC9hdnJjcC1saWIuYzoxOTY4OjM6 IHdhcm5pbmc6IDFzdCBmdW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQg dmFsdWUKICAgICAgICAgICAgICAgIGdfZnJlZSh0ZXh0W2ldKTsKICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpwcm9maWxlcy9oZWFsdGgvaGRwLmM6 NjQ0OjM6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAg ICAgICAgIGhkcF90bXBfZGNfZGF0YV91bnJlZihkY19kYXRhKTsKICAgICAgICAgICAgICAgIF5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpwcm9maWxlcy9oZWFsdGgvaGRwLmM6ODAwOjE5 OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAg ICBwYXRoID0gZ19zdHJkdXAoY2hhbi0+cGF0aCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgXn5+fn5+fn5+fgpwcm9maWxlcy9oZWFsdGgvaGRwLmM6MTc3OTo2OiB3YXJuaW5nOiBV c2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBoZHBfdG1wX2RjX2RhdGFfcmVmKGhkcF9jb25uKSwKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CnByb2ZpbGVzL2hlYWx0aC9oZHAuYzoxODM2OjMwOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFm dGVyIGl0IGlzIGZyZWVkCiAgICAgICAgcmVwbHkgPSBnX2RidXNfY3JlYXRlX2Vycm9yKGRhdGEt Pm1zZywgRVJST1JfSU5URVJGQUNFICIuSGVhbHRoRXJyb3IiLAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBefn5+fn5+fn4KNCB3YXJuaW5ncyBnZW5lcmF0ZWQuCnByb2ZpbGVz L2hlYWx0aC9oZHBfdXRpbC5jOjEwNTM6Mjogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBp dCBpcyBmcmVlZAogICAgICAgIGNvbm5fZGF0YS0+ZnVuYyhjb25uX2RhdGEtPmRhdGEsIGdlcnIp OwogICAgICAgIF5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgphdHRyaWIvZ2F0 dC5jOjk3MDoyOiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBi eSAnbG9uZ193cml0ZScKICAgICAgICByZXR1cm4gcHJlcGFyZV93cml0ZShsb25nX3dyaXRlKTsK ICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJh dGVkLgpzcmMvc2RwZC1yZXF1ZXN0LmM6MjExOjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxv YycgaXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5j b21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAndWludDE2X3QnCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQxNl90KSk7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+ fn5+fgpzcmMvc2RwZC1yZXF1ZXN0LmM6MjM5OjEzOiB3YXJuaW5nOiBSZXN1bHQgb2YgJ21hbGxv YycgaXMgY29udmVydGVkIHRvIGEgcG9pbnRlciBvZiB0eXBlICdjaGFyJywgd2hpY2ggaXMgaW5j b21wYXRpYmxlIHdpdGggc2l6ZW9mIG9wZXJhbmQgdHlwZSAndWludDMyX3QnCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgcEVsZW0gPSBtYWxsb2Moc2l6ZW9mKHVpbnQzMl90KSk7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn4gfn5+fn5+fn5+fn5+ fn5+fgoyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NkcC14bWwuYzoxMjY6MTA6IHdhcm5pbmc6 IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgICAgICAgICBi dWZbMV0gPSBkYXRhW2kgKyAxXTsKICAgICAgICAgICAgICAgICAgICAgICBeIH5+fn5+fn5+fn5+ CnNyYy9zZHAteG1sLmM6MzAwOjExOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJiYWdl IG9yIHVuZGVmaW5lZAogICAgICAgICAgICAgICAgICAgICAgICBidWZbMV0gPSBkYXRhW2kgKyAx XTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF4gfn5+fn5+fn5+fn4Kc3JjL3NkcC14 bWwuYzozMzg6MTE6IHdhcm5pbmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZp bmVkCiAgICAgICAgICAgICAgICAgICAgICAgIGJ1ZlsxXSA9IGRhdGFbaSArIDFdOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgXiB+fn5+fn5+fn5+fgozIHdhcm5pbmdzIGdlbmVyYXRl ZC4Kc3JjL3NkcC1jbGllbnQuYzozNTM6MTQ6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnY2In IHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlcgogICAgICAgICgqY3R4 dCktPmNiID0gY2I7CiAgICAgICAgfn5+fn5+fn5+fn5+Xn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVk LgpzcmMvZ2F0dC1kYXRhYmFzZS5jOjExNTQ6MTA6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAn Yml0cycgZHVyaW5nIGl0cyBpbml0aWFsaXphdGlvbiBpcyBuZXZlciByZWFkCiAgICAgICAgdWlu dDhfdCBiaXRzW10gPSB7IEJUX0dBVFRfQ0hSQ19DTElfRkVBVF9ST0JVU1RfQ0FDSElORywKICAg ICAgICAgICAgICAgIF5+fn4gICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpnb2JleC9nb2JleC1oZWFkZXIuYzo2NzoyOiB3YXJu aW5nOiBOdWxsIHBvaW50ZXIgcGFzc2VkIHRvIDJuZCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25u dWxsJwogICAgICAgIG1lbWNweSh0bywgZnJvbSwgY291bnQpOwogICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmdvYmV4L2dvYmV4LXRyYW5zZmVyLmM6 NDIzOjc6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBp ZiAoIWdfc2xpc3RfZmluZCh0cmFuc2ZlcnMsIHRyYW5zZmVyKSkKICAgICAgICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgpsaWIvaGNp LmM6OTc6NDogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdwdHInIGlzIG5ldmVyIHJlYWQKICAg ICAgICAgICAgICAgICAgICAgICAgcHRyICs9IHNwcmludGYocHRyLCAiJXMiLCBtLT5zdHIpOwog ICAgICAgICAgICAgICAgICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K MSB3YXJuaW5nIGdlbmVyYXRlZC4KZ2RidXMvd2F0Y2guYzoyMDQ6Mzogd2FybmluZzogQXR0ZW1w dCB0byBmcmVlIHJlbGVhc2VkIG1lbW9yeQogICAgICAgICAgICAgICAgZ19mcmVlKGwtPmRhdGEp OwogICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmxp Yi9zZHAuYzo1MDc6MTY6IHdhcm5pbmc6IERlcmVmZXJlbmNlIG9mIHVuZGVmaW5lZCBwb2ludGVy IHZhbHVlCiAgICAgICAgICAgICAgICBpbnQ4X3QgZHRkID0gKih1aW50OF90ICopIGR0ZHNbaV07 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn4KbGliL3Nk cC5jOjUzNToxNzogd2FybmluZzogRGVyZWZlcmVuY2Ugb2YgdW5kZWZpbmVkIHBvaW50ZXIgdmFs dWUKICAgICAgICAgICAgICAgIHVpbnQ4X3QgZHRkID0gKih1aW50OF90ICopIGR0ZHNbaV07CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+CmxpYi9zZHAu Yzo1ODA6MTI6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnYXR0cklkJyByZXN1bHRzIGluIGEg ZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdkJykK ICAgICAgICBkLT5hdHRySWQgPSBhdHRyOwogICAgICAgIH4gICAgICAgICBeCmxpYi9zZHAuYzox ODcwOjI2OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAn YXAnCiAgICAgICAgZm9yICg7IHBkbGlzdDsgcGRsaXN0ID0gcGRsaXN0LT5uZXh0KSB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+CmxpYi9zZHAuYzoxODg0OjY6IHdhcm5p bmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdwZHMnCiAgICAgICAg ICAgICAgICBhcCA9IHNkcF9saXN0X2FwcGVuZChhcCwgcGRzKTsKICAgICAgICAgICAgICAgIH5+ fl5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmxpYi9zZHAuYzoxOTI5OjEwOiB3YXJuaW5nOiBQ b3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAndScKICAgICAgICAgICAgICAg ICAgICAgICAgKnNlcXAgPSBzZHBfbGlzdF9hcHBlbmQoKnNlcXAsIHUpOwogICAgICAgICAgICAg ICAgICAgICAgICB+fn5+fn5efn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KbGliL3NkcC5jOjIw MzQ6NDogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVtb3J5IHBvaW50ZWQgdG8gYnkgJ2xh bmcnCiAgICAgICAgICAgICAgICAgICAgICAgIHNkcF9saXN0X2ZyZWUoKmxhbmdTZXEsIGZyZWUp OwogICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+CmxpYi9zZHAuYzoyMTIzOjk6 IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdwcm9mRGVz YycKICAgICAgICByZXR1cm4gMDsKICAgICAgICAgICAgICAgXgpsaWIvc2RwLmM6MzI1NTo4OiB3 YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAncFN2Y1JlYycK ICAgICAgICAgICAgICAgIHBTZXEgPSBzZHBfbGlzdF9hcHBlbmQocFNlcSwgcFN2Y1JlYyk7CiAg ICAgICAgICAgICAgICB+fn5+fl5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmxpYi9z ZHAuYzozMjU2Ojk6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRv IGJ5ICdwU2VxJwogICAgICAgICAgICAgICAgcGRhdGEgKz0gc2l6ZW9mKHVpbnQzMl90KTsKICAg ICAgICAgICAgICAgIH5+fn5+fl5+fn5+fn5+fn5+fn5+fn5+fn4KbGliL3NkcC5jOjQ1OTI6MTM6 IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdyZWNfbGlz dCcKICAgICAgICAgICAgICAgICAgICAgICAgfSB3aGlsZSAoc2Nhbm5lZCA8IGF0dHJfbGlzdF9s ZW4gJiYgcGRhdGFfbGVuID4gMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+ fn5+fn4KbGliL3NkcC5jOjQ4ODg6NDA6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9y eSBwb2ludGVkIHRvIGJ5ICd0c2VxJwogICAgICAgIGZvciAoZCA9IHNkcGRhdGEtPnZhbC5kYXRh c2VxOyBkOyBkID0gZC0+bmV4dCkgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgXgpsaWIvc2RwLmM6NDkyNDo4OiB3YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBv ZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnc3Vic2VxJwogICAgICAgICAgICAgICAgdHNlcSA9IHNk cF9saXN0X2FwcGVuZCh0c2VxLCBzdWJzZXEpOwogICAgICAgICAgICAgICAgfn5+fn5efn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEzIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJl ZC9nYXR0LWNsaWVudC5jOjQ1MToyMTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBp cyBmcmVlZAogICAgICAgIGdhdHRfZGJfdW5yZWdpc3RlcihvcC0+Y2xpZW50LT5kYiwgb3AtPmRi X2lkKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dh dHQtY2xpZW50LmM6Njk2OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJl ZWQKICAgICAgICBkaXNjb3Zlcnlfb3BfY29tcGxldGUob3AsIGZhbHNlLCBhdHRfZWNvZGUpOwog ICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kc3JjL3No YXJlZC9nYXR0LWNsaWVudC5jOjk5MzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0 IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRf ZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTA5OToyOiB3YXJuaW5nOiBVc2Ugb2YgbWVt b3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2NvbXBsZXRlKG9wLCBz dWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTI5MToyOiB3YXJuaW5n OiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJ5X29wX2Nv bXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTM1 NjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlz Y292ZXJ5X29wX2NvbXBsZXRlKG9wLCBzdWNjZXNzLCBhdHRfZWNvZGUpOwogICAgICAgIF5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQt Y2xpZW50LmM6MTYzMTo2OiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVk CiAgICAgICAgaWYgKHJlYWRfZGJfaGFzaChvcCkpIHsKICAgICAgICAgICAgXn5+fn5+fn5+fn5+ fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xpZW50LmM6MTYzNjoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVt b3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAgICAgICAgZGlzY292ZXJfYWxsKG9wKTsKICAgICAgICBe fn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGllbnQuYzoyMTQwOjY6IHdhcm5pbmc6 IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAocmVhZF9kYl9oYXNo KG9wKSkgewogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+CnNyYy9zaGFyZWQvZ2F0dC1jbGll bnQuYzoyMTQ4Ojg6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNj b3Zlcnlfb3BfcmVmKG9wKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fgpzcmMvc2hhcmVkL2dhdHQtY2xp ZW50LmM6MzIzNzoyOiB3YXJuaW5nOiBVc2Ugb2YgbWVtb3J5IGFmdGVyIGl0IGlzIGZyZWVkCiAg ICAgICAgY29tcGxldGVfd3JpdGVfbG9uZ19vcChyZXEsIHN1Y2Nlc3MsIDAsIGZhbHNlKTsKICAg ICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CnNyYy9z aGFyZWQvZ2F0dC1jbGllbnQuYzozMjU5OjI6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIg aXQgaXMgZnJlZWQKICAgICAgICByZXF1ZXN0X3VucmVmKHJlcSk7CiAgICAgICAgXn5+fn5+fn5+ fn5+fn5+fn5+CjEyIHdhcm5pbmdzIGdlbmVyYXRlZC4Kc3JjL3NoYXJlZC9iYXAuYzo0NzY4OjIz OiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ3R5cGUnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5j ZSBvZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ2xwYWMnKQogICAgICAg ICAgICAgICAgaWYgKCFtYXRjaC5ycGFjICYmIChscGFjLT50eXBlICE9IEJUX0JBUF9CQ0FTVF9T T1VSQ0UpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+CjEg d2FybmluZyBnZW5lcmF0ZWQuCnNyYy9zaGFyZWQvc2hlbGwuYzoxMjI4OjEzOiB3YXJuaW5nOiBB Y2Nlc3MgdG8gZmllbGQgJ29wdGlvbnMnIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51 bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ29wdCcpCiAgICAgICAgICAgICAgICAg ICAgICAgIGlmIChjICE9IG9wdC0+b3B0aW9uc1tpbmRleCAtIG9mZnNldF0udmFsKSB7CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJh dGVkLgptb25pdG9yL2wyY2FwLmM6MTYzODo0OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2Rh dGEnIGlzIG5ldmVyIHJlYWQKICAgICAgICAgICAgICAgICAgICAgICAgZGF0YSArPSBsZW47CiAg ICAgICAgICAgICAgICAgICAgICAgIF4gICAgICAgfn5+Cm1vbml0b3IvbDJjYXAuYzoxNjM5OjQ6 IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAnc2l6ZScgaXMgbmV2ZXIgcmVhZAogICAgICAgICAg ICAgICAgICAgICAgICBzaXplIC09IGxlbjsKICAgICAgICAgICAgICAgICAgICAgICAgXiAgICAg ICB+fn4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQuCm1vbml0b3IvaHdkYi5jOjU5OjI6IHdhcm5pbmc6 IFZhbHVlIHN0b3JlZCB0byAnaHdkYicgaXMgbmV2ZXIgcmVhZAogICAgICAgIGh3ZGIgPSB1ZGV2 X2h3ZGJfdW5yZWYoaHdkYik7CiAgICAgICAgXiAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fgpt b25pdG9yL2h3ZGIuYzo2NDoyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3VkZXYnIGlzIG5l dmVyIHJlYWQKICAgICAgICB1ZGV2ID0gdWRldl91bnJlZih1ZGV2KTsKICAgICAgICBeICAgICAg fn5+fn5+fn5+fn5+fn5+fgptb25pdG9yL2h3ZGIuYzoxMDY6Mjogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdod2RiJyBpcyBuZXZlciByZWFkCiAgICAgICAgaHdkYiA9IHVkZXZfaHdkYl91bnJl Zihod2RiKTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+Cm1vbml0b3IvaHdk Yi5jOjExMToyOiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3VkZXYnIGlzIG5ldmVyIHJlYWQK ICAgICAgICB1ZGV2ID0gdWRldl91bnJlZih1ZGV2KTsKICAgICAgICBeICAgICAgfn5+fn5+fn5+ fn5+fn5+fgo0IHdhcm5pbmdzIGdlbmVyYXRlZC4KdG9vbHMvYmx1ZW1vb24uYzoxMTAxOjg6IHdh cm5pbmc6IE51bGwgcG9pbnRlciBwYXNzZWQgdG8gMXN0IHBhcmFtZXRlciBleHBlY3RpbmcgJ25v bm51bGwnCiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdHJsZW4ob3B0YXJnKSA+IDMgJiYg IXN0cm5jbXAob3B0YXJnLCAiaGNpIiwgMykpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBe fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9tZXNoY3RsLmM6MzI2OjE5 OiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ21lc2hfZGV2aWNlcycgcmVzdWx0cyBpbiBhIGRl cmVmZXJlbmNlIG9mIGEgbnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnZGVmYXVs dF9jdHJsJykKICAgICAgICBnX2xpc3RfZnJlZV9mdWxsKGRlZmF1bHRfY3RybC0+bWVzaF9kZXZp Y2VzLCBnX2ZyZWUpOwogICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn4KdG9vbHMvbWVzaGN0bC5jOjc2MjoyOiB3YXJuaW5nOiAybmQgZnVuY3Rpb24gY2Fs bCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgYnRfc2hlbGxfcHJp bnRmKCJBdHRlbXB0aW5nIHRvIGRpc2Nvbm5lY3QgZnJvbSAlc1xuIiwgYWRkcik7CiAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn4KdG9vbHMvbWVzaGN0bC5jOjE5NTc6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdsZW4n IGlzIG5ldmVyIHJlYWQKICAgICAgICBsZW4gPSBsZW4gKyBleHRyYSArIHN0cmxlbigibG9jYWxf bm9kZS5qc29uIik7CiAgICAgICAgXiAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgpJbiBmaWxlIGluY2x1ZGVkIGZyb20gdG9v bHMvbWVzaC1nYXR0L2NyeXB0by5jOjMyOgouL3NyYy9zaGFyZWQvdXRpbC5oOjIyODo5OiB3YXJu aW5nOiAxc3QgZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBpcyBhbiB1bmluaXRpYWxpemVkIHZhbHVl CiAgICAgICAgcmV0dXJuIGJlMzJfdG9fY3B1KGdldF91bmFsaWduZWQoKGNvbnN0IHVpbnQzMl90 ICopIHB0cikpOwogICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fgouL3NyYy9zaGFyZWQvdXRpbC5oOjMzOjI2OiBub3RlOiBleHBh bmRlZCBmcm9tIG1hY3JvICdiZTMyX3RvX2NwdScKI2RlZmluZSBiZTMyX3RvX2NwdSh2YWwpIGJz d2FwXzMyKHZhbCkKICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn4KL3Vzci9p bmNsdWRlL2J5dGVzd2FwLmg6MzQ6MjE6IG5vdGU6IGV4cGFuZGVkIGZyb20gbWFjcm8gJ2Jzd2Fw XzMyJwojZGVmaW5lIGJzd2FwXzMyKHgpIF9fYnN3YXBfMzIgKHgpCiAgICAgICAgICAgICAgICAg ICAgXn5+fn5+fn5+fn5+fn4KSW4gZmlsZSBpbmNsdWRlZCBmcm9tIHRvb2xzL21lc2gtZ2F0dC9j cnlwdG8uYzozMjoKLi9zcmMvc2hhcmVkL3V0aWwuaDoyMzg6OTogd2FybmluZzogMXN0IGZ1bmN0 aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIHJldHVy biBiZTY0X3RvX2NwdShnZXRfdW5hbGlnbmVkKChjb25zdCB1aW50NjRfdCAqKSBwdHIpKTsKICAg ICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn4KLi9zcmMvc2hhcmVkL3V0aWwuaDozNDoyNjogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNy byAnYmU2NF90b19jcHUnCiNkZWZpbmUgYmU2NF90b19jcHUodmFsKSBic3dhcF82NCh2YWwpCiAg ICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+Ci91c3IvaW5jbHVkZS9ieXRlc3dh cC5oOjM3OjIxOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICdic3dhcF82NCcKI2RlZmluZSBi c3dhcF82NCh4KSBfX2Jzd2FwXzY0ICh4KQogICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgplbGwvdXRpbC5jOjc4MTo4OiB3YXJuaW5nOiBUaGUg bGVmdCBvcGVyYW5kIG9mICc+JyBpcyBhIGdhcmJhZ2UgdmFsdWUKICAgICAgICBpZiAoeCA+IFVJ TlQ4X01BWCkKICAgICAgICAgICAgfiBeCmVsbC91dGlsLmM6Nzk5Ojg6IHdhcm5pbmc6IFRoZSBs ZWZ0IG9wZXJhbmQgb2YgJz4nIGlzIGEgZ2FyYmFnZSB2YWx1ZQogICAgICAgIGlmICh4ID4gVUlO VDE2X01BWCkKICAgICAgICAgICAgfiBeCjIgd2FybmluZ3MgZ2VuZXJhdGVkLgplbGwvcXVldWUu Yzo1MTQ6NDogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdlbnRyeScgaXMgbmV2ZXIgcmVhZAog ICAgICAgICAgICAgICAgICAgICAgICBlbnRyeSA9IGVudHJ5LT5uZXh0OwogICAgICAgICAgICAg ICAgICAgICAgICBeICAgICAgIH5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmVsbC9w ZW0uYzoxMzE6ODogd2FybmluZzogRGVyZWZlcmVuY2Ugb2YgbnVsbCBwb2ludGVyIChsb2FkZWQg ZnJvbSB2YXJpYWJsZSAnZW9sJykKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCplb2wgPT0g J1xyJyB8fCAqZW9sID09ICdcbicpCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+CmVs bC9wZW0uYzoxNjY6MTg6IHdhcm5pbmc6IERlcmVmZXJlbmNlIG9mIG51bGwgcG9pbnRlciAobG9h ZGVkIGZyb20gdmFyaWFibGUgJ2VvbCcpCiAgICAgICAgICAgICAgICBpZiAoYnVmX2xlbiAmJiAq ZW9sID09ICdccicgJiYgKmJ1Zl9wdHIgPT0gJ1xuJykgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgXn5+fgplbGwvcGVtLmM6MTY2OjM0OiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiBu dWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdidWZfcHRyJykKICAgICAgICAgICAg ICAgIGlmIChidWZfbGVuICYmICplb2wgPT0gJ1xyJyAmJiAqYnVmX3B0ciA9PSAnXG4nKSB7CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn4KZWxs L3BlbS5jOjMwNDoxMTogd2FybmluZzogMXN0IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4g dW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAgIHJlc3VsdCA9IHBlbV9sb2FkX2J1ZmZlcihmaWxl LmRhdGEsIGZpbGUuc3Quc3Rfc2l6ZSwKICAgICAgICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmVsbC9wZW0uYzo0Njk6OTogd2FybmluZzogMXN0 IGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXplZCB2YWx1ZQogICAgICAg IGxpc3QgPSBsX3BlbV9sb2FkX2NlcnRpZmljYXRlX2xpc3RfZnJvbV9kYXRhKGZpbGUuZGF0YSwK ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+CjUgd2FybmluZ3MgZ2VuZXJhdGVkLgplbGwvY2VydC5jOjY0NDo0MTogd2FybmluZzog QWNjZXNzIHRvIGZpZWxkICdhc24xX2xlbicgcmVzdWx0cyBpbiBhIGRlcmVmZXJlbmNlIG9mIGEg bnVsbCBwb2ludGVyIChsb2FkZWQgZnJvbSB2YXJpYWJsZSAnY2VydCcpCiAgICAgICAga2V5ID0g bF9rZXlfbmV3KExfS0VZX1JTQSwgY2VydC0+YXNuMSwgY2VydC0+YXNuMV9sZW4pOwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CmVs bC9jZXJ0LmM6MTY3Nzo4OiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUgc3RvcmVkIHRvICdl bGVtX2RhdGEnIGlzIHVzZWQgaW4gdGhlIGVuY2xvc2luZyBleHByZXNzaW9uLCB0aGUgdmFsdWUg aXMgbmV2ZXIgYWN0dWFsbHkgcmVhZCBmcm9tICdlbGVtX2RhdGEnCiAgICAgICAgaWYgKCEoZWxl bV9kYXRhID0gYXNuMV9kZXJfZmluZF9lbGVtKHNlcSwgc2VxX2xlbiwKICAgICAgICAgICAgICBe ICAgICAgICAgICB+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoyIHdhcm5pbmdzIGdl bmVyYXRlZC4KZWxsL2RidXMuYzoxNjkyOjEwOiB3YXJuaW5nOiBBbHRob3VnaCB0aGUgdmFsdWUg c3RvcmVkIHRvICd0eXBlJyBpcyB1c2VkIGluIHRoZSBlbmNsb3NpbmcgZXhwcmVzc2lvbiwgdGhl IHZhbHVlIGlzIG5ldmVyIGFjdHVhbGx5IHJlYWQgZnJvbSAndHlwZScKICAgICAgICB3aGlsZSAo KHR5cGUgPSB2YV9hcmcoYXJncywgZW51bSBsX2RidXNfbWF0Y2hfdHlwZSkpICE9CiAgICAgICAg ICAgICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2Fy bmluZyBnZW5lcmF0ZWQuCmVsbC9ndmFyaWFudC11dGlsLmM6MTQzOjE4OiB3YXJuaW5nOiBUaGUg bGVmdCBvcGVyYW5kIG9mICc+JyBpcyBhIGdhcmJhZ2UgdmFsdWUKICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKGFsaWdubWVudCA+IG1heF9hbGlnbm1lbnQpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICB+fn5+fn5+fn4gXgplbGwvZ3ZhcmlhbnQtdXRpbC5jOjQ1Njo1OiB3YXJuaW5nOiBE ZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50ZXIKICAgICAgICAgICAgICAgICAgICAgICAgIWNoaWxk cmVuWzBdLmZpeGVkX3NpemUpIHsKICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+ fn5+fn5+fn5+fn4KZWxsL2d2YXJpYW50LXV0aWwuYzo4NDY6Mjogd2FybmluZzogVmFsdWUgc3Rv cmVkIHRvICdpJyBpcyBuZXZlciByZWFkCiAgICAgICAgaSA9IGNvbnRhaW5lci0+b2Zmc2V0X2lu ZGV4IC0gMTsKICAgICAgICBeICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjMgd2Fybmlu Z3MgZ2VuZXJhdGVkLgplbGwvZWNjLWV4dGVybmFsLmM6Njg6MjQ6IHdhcm5pbmc6IFRoZSBsZWZ0 IG9wZXJhbmQgb2YgJyYnIGlzIGEgZ2FyYmFnZSB2YWx1ZQogICAgICAgIHJldHVybiAodmxpW2Jp dCAvIDY0XSAmICgodWludDY0X3QpIDEgPDwgKGJpdCAlIDY0KSkpOwogICAgICAgICAgICAgICAg fn5+fn5+fn5+fn5+fiBeCmVsbC9lY2MtZXh0ZXJuYWwuYzoxNjA6MTg6IHdhcm5pbmc6IFRoZSBy aWdodCBvcGVyYW5kIG9mICctJyBpcyBhIGdhcmJhZ2UgdmFsdWUKICAgICAgICAgICAgICAgIGRp ZmYgPSBsZWZ0W2ldIC0gcmlnaHRbaV0gLSBib3Jyb3c7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBeIH5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpJbiBmaWxlIGluY2x1ZGVk IGZyb20gdG9vbHMvcGFyc2VyL2FtcC5jOjE1Ogp0b29scy9wYXJzZXIvcGFyc2VyLmg6MTIxOjE2 OiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50ZXIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aW1lX3QgdCA9IGYtPnRzLnR2X3NlYzsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fgp0b29scy9wYXJzZXIvcGFyc2Vy Lmg6MTI3OjI3OiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50ZXIKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiU4bHUuJTA2bHUgIiwgZi0+dHMudHZfc2Vj LCBmLT50cy50dl91c2VjKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+CnRvb2xzL3BhcnNlci9wYXJzZXIuaDoxMjk6MTg6 IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnaW4nIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBv ZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ2YnKQogICAgICAgICAgICAg ICAgcHJpbnRmKCIlYyAiLCAoZi0+aW4gPyAnPicgOiAnPCcpKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgpJbiBmaWxlIGluY2x1ZGVk IGZyb20gdG9vbHMvcGFyc2VyL3NkcC5jOjI0Ogp0b29scy9wYXJzZXIvcGFyc2VyLmg6MTIxOjE2 OiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50ZXIKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB0aW1lX3QgdCA9IGYtPnRzLnR2X3NlYzsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIF5+fn5+fn5+fn5+fgp0b29scy9wYXJzZXIvcGFyc2Vy Lmg6MTI3OjI3OiB3YXJuaW5nOiBEZXJlZmVyZW5jZSBvZiBudWxsIHBvaW50ZXIKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBwcmludGYoIiU4bHUuJTA2bHUgIiwgZi0+dHMudHZfc2Vj LCBmLT50cy50dl91c2VjKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+CnRvb2xzL3BhcnNlci9wYXJzZXIuaDoxMjk6MTg6 IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnaW4nIHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBv ZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20gdmFyaWFibGUgJ2YnKQogICAgICAgICAgICAg ICAgcHJpbnRmKCIlYyAiLCAoZi0+aW4gPyAnPicgOiAnPCcpKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF5+fn5+CjMgd2FybmluZ3MgZ2VuZXJhdGVkLgpJbiBmaWxlIGluY2x1ZGVk IGZyb20gdG9vbHMvcGFyc2VyL3BwcC5jOjIyOgp0b29scy9wYXJzZXIvcGFyc2VyLmg6MTU2OjI6 IHdhcm5pbmc6IFVuZGVmaW5lZCBvciBnYXJiYWdlIHZhbHVlIHJldHVybmVkIHRvIGNhbGxlcgog ICAgICAgIHJldHVybiAqdThfcHRyOwogICAgICAgIF5+fn5+fn5+fn5+fn5+CnRvb2xzL3BhcnNl ci9wcHAuYzoxMDg6MzA6IHdhcm5pbmc6IFRoZSBsZWZ0IG9wZXJhbmQgb2YgJyYnIGlzIGEgZ2Fy YmFnZSB2YWx1ZQogICAgICAgIGlmICgqKCh1aW50OF90ICopIGZybS0+cHRyKSAmIDB4ODApCiAg ICAgICAgICAgIH5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+IF4KMiB3YXJuaW5ncyBnZW5lcmF0ZWQu CmVtdWxhdG9yL3NlcmlhbC5jOjE1MDoyOiB3YXJuaW5nOiBBc3NpZ25lZCB2YWx1ZSBpcyBnYXJi YWdlIG9yIHVuZGVmaW5lZAogICAgICAgIGVudW0gYnRkZXZfdHlwZSB1bmluaXRpYWxpemVkX3Zh cih0eXBlKTsKICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K ZW11bGF0b3Ivc2VyaWFsLmM6MTUwOjM2OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ3R5cGUn IGR1cmluZyBpdHMgaW5pdGlhbGl6YXRpb24gaXMgbmV2ZXIgcmVhZAogICAgICAgIGVudW0gYnRk ZXZfdHlwZSB1bmluaXRpYWxpemVkX3Zhcih0eXBlKTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fgplbXVsYXRvci9zZXJpYWwuYzozNTozMDogbm90ZTogZXhw YW5kZWQgZnJvbSBtYWNybyAndW5pbml0aWFsaXplZF92YXInCiNkZWZpbmUgdW5pbml0aWFsaXpl ZF92YXIoeCkgeCA9IHgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBeICAgfgplbXVsYXRv ci9zZXJpYWwuYzoyMTM6Mjogd2FybmluZzogQXNzaWduZWQgdmFsdWUgaXMgZ2FyYmFnZSBvciB1 bmRlZmluZWQKICAgICAgICBlbnVtIGJ0ZGV2X3R5cGUgdW5pbml0aWFsaXplZF92YXIoZGV2X3R5 cGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4K ZW11bGF0b3Ivc2VyaWFsLmM6MjEzOjM2OiB3YXJuaW5nOiBWYWx1ZSBzdG9yZWQgdG8gJ2Rldl90 eXBlJyBkdXJpbmcgaXRzIGluaXRpYWxpemF0aW9uIGlzIG5ldmVyIHJlYWQKICAgICAgICBlbnVt IGJ0ZGV2X3R5cGUgdW5pbml0aWFsaXplZF92YXIoZGV2X3R5cGUpOwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+fn5+fgplbXVsYXRvci9zZXJpYWwuYzozNToz MDogbm90ZTogZXhwYW5kZWQgZnJvbSBtYWNybyAndW5pbml0aWFsaXplZF92YXInCiNkZWZpbmUg dW5pbml0aWFsaXplZF92YXIoeCkgeCA9IHgKICAgICAgICAgICAgICAgICAgICAgICAgICAgICBe ICAgfgo0IHdhcm5pbmdzIGdlbmVyYXRlZC4KZW11bGF0b3Ivc2VydmVyLmM6MjAwOjI6IHdhcm5p bmc6IEFzc2lnbmVkIHZhbHVlIGlzIGdhcmJhZ2Ugb3IgdW5kZWZpbmVkCiAgICAgICAgZW51bSBi dGRldl90eXBlIHVuaW5pdGlhbGl6ZWRfdmFyKHR5cGUpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgplbXVsYXRvci9zZXJ2ZXIuYzoyMDA6MzY6IHdhcm5p bmc6IFZhbHVlIHN0b3JlZCB0byAndHlwZScgZHVyaW5nIGl0cyBpbml0aWFsaXphdGlvbiBpcyBu ZXZlciByZWFkCiAgICAgICAgZW51bSBidGRldl90eXBlIHVuaW5pdGlhbGl6ZWRfdmFyKHR5cGUp OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBefn5+CmVtdWxhdG9y L3NlcnZlci5jOjM2OjMwOiBub3RlOiBleHBhbmRlZCBmcm9tIG1hY3JvICd1bmluaXRpYWxpemVk X3ZhcicKI2RlZmluZSB1bmluaXRpYWxpemVkX3Zhcih4KSB4ID0geAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgIF4gICB+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgplbXVsYXRvci9iMWVlLmM6 MjU4OjM6IHdhcm5pbmc6IFBvdGVudGlhbCBsZWFrIG9mIG1lbW9yeSBwb2ludGVkIHRvIGJ5ICdz ZXJ2ZXJfcG9ydCcKICAgICAgICAgICAgICAgIGludCBvcHQ7CiAgICAgICAgICAgICAgICBefn5+ fn5+CmVtdWxhdG9yL2IxZWUuYzoyNTg6Mzogd2FybmluZzogUG90ZW50aWFsIGxlYWsgb2YgbWVt b3J5IHBvaW50ZWQgdG8gYnkgJ3NuaWZmZXJfcG9ydCcKICAgICAgICAgICAgICAgIGludCBvcHQ7 CiAgICAgICAgICAgICAgICBefn5+fn5+CmVtdWxhdG9yL2IxZWUuYzoyODk6Mjogd2FybmluZzog VmFsdWUgc3RvcmVkIHRvICdhcmdjJyBpcyBuZXZlciByZWFkCiAgICAgICAgYXJnYyA9IGFyZ2Mg LSBvcHRpbmQ7CiAgICAgICAgXiAgICAgIH5+fn5+fn5+fn5+fn4KMyB3YXJuaW5ncyBnZW5lcmF0 ZWQuCmVtdWxhdG9yL2J0ZGV2LmM6MTA4MzoxMDogd2FybmluZzogQWx0aG91Z2ggdGhlIHZhbHVl IHN0b3JlZCB0byAnY29ubicgaXMgdXNlZCBpbiB0aGUgZW5jbG9zaW5nIGV4cHJlc3Npb24sIHRo ZSB2YWx1ZSBpcyBuZXZlciBhY3R1YWxseSByZWFkIGZyb20gJ2Nvbm4nCiAgICAgICAgd2hpbGUg KChjb25uID0gcXVldWVfZmluZChkZXYtPmNvbm5zLCBtYXRjaF9oYW5kbGUsCiAgICAgICAgICAg ICAgICBeICAgICAgfn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CmVtdWxhdG9y L2J0ZGV2LmM6MTMzNDoyNDogd2FybmluZzogQWNjZXNzIHRvIGZpZWxkICdsaW5rJyByZXN1bHRz IGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxl ICdjb25uJykKICAgICAgICBwZW5kaW5nX2Nvbm5fZGVsKGRldiwgY29ubi0+bGluay0+ZGV2KTsK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fgplbXVsYXRvci9idGRldi5j OjE0NTY6MTM6IHdhcm5pbmc6IEFjY2VzcyB0byBmaWVsZCAnZGV2JyByZXN1bHRzIGluIGEgZGVy ZWZlcmVuY2Ugb2YgYSBudWxsIHBvaW50ZXIgKGxvYWRlZCBmcm9tIHZhcmlhYmxlICdjb25uJykK ICAgICAgICBzZW5kX2V2ZW50KGNvbm4tPmRldiwgQlRfSENJX0VWVF9BVVRIX0NPTVBMRVRFLCAm ZXYsIHNpemVvZihldikpOwogICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+CjMgd2FybmluZ3Mg Z2VuZXJhdGVkLgpnb2JleC9nb2JleC1oZWFkZXIuYzo2NzoyOiB3YXJuaW5nOiBOdWxsIHBvaW50 ZXIgcGFzc2VkIHRvIDJuZCBwYXJhbWV0ZXIgZXhwZWN0aW5nICdub25udWxsJwogICAgICAgIG1l bWNweSh0bywgZnJvbSwgY291bnQpOwogICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEg d2FybmluZyBnZW5lcmF0ZWQuCmdvYmV4L2dvYmV4LXRyYW5zZmVyLmM6NDIzOjc6IHdhcm5pbmc6 IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICBpZiAoIWdfc2xpc3RfZmlu ZCh0cmFuc2ZlcnMsIHRyYW5zZmVyKSkKICAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgphdHRyaWIvZ2F0dC5jOjk3MDoyOiB3 YXJuaW5nOiBQb3RlbnRpYWwgbGVhayBvZiBtZW1vcnkgcG9pbnRlZCB0byBieSAnbG9uZ193cml0 ZScKICAgICAgICByZXR1cm4gcHJlcGFyZV93cml0ZShsb25nX3dyaXRlKTsKICAgICAgICBefn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fgoxIHdhcm5pbmcgZ2VuZXJhdGVkLgp0b29scy9i dHBjbGllbnQuYzoyNDk0OjM6IHdhcm5pbmc6IFZhbHVlIHN0b3JlZCB0byAncmVwbHknIGlzIG5l dmVyIHJlYWQKICAgICAgICAgICAgICAgIHJlcGx5ID0gbF9kYnVzX21lc3NhZ2VfbmV3X2Vycm9y KGFnLnBlbmRpbmdfcmVxLAogICAgICAgICAgICAgICAgXiAgICAgICB+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCmFuZHJvaWQvYXZk dHAuYzo3NTY6MjU6IHdhcm5pbmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAg ICAgICAgICAgICAgIHNlc3Npb24tPnByaW9fcXVldWUgPSBnX3NsaXN0X3JlbW92ZShzZXNzaW9u LT5wcmlvX3F1ZXVlLCByZXEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IF5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4KYW5kcm9pZC9hdmR0cC5j Ojc2MzoyNDogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRlciBpdCBpcyBmcmVlZAogICAgICAg ICAgICAgICAgc2Vzc2lvbi0+cmVxX3F1ZXVlID0gZ19zbGlzdF9yZW1vdmUoc2Vzc2lvbi0+cmVx X3F1ZXVlLCByZXEpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpw cm9maWxlcy9hdWRpby9hdmR0cC5jOjg5NToyNTogd2FybmluZzogVXNlIG9mIG1lbW9yeSBhZnRl ciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgc2Vzc2lvbi0+cHJpb19xdWV1ZSA9IGdfc2xp c3RfcmVtb3ZlKHNlc3Npb24tPnByaW9fcXVldWUsIHJlcSk7CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fgpwcm9maWxlcy9hdWRpby9hdmR0cC5jOjkwMjoyNDogd2FybmluZzogVXNlIG9mIG1lbW9yeSBh ZnRlciBpdCBpcyBmcmVlZAogICAgICAgICAgICAgICAgc2Vzc2lvbi0+cmVxX3F1ZXVlID0gZ19z bGlzdF9yZW1vdmUoc2Vzc2lvbi0+cmVxX3F1ZXVlLCByZXEpOwogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ CjIgd2FybmluZ3MgZ2VuZXJhdGVkLgpwcm9maWxlcy9hdWRpby9hMmRwLmM6MzUyOjg6IHdhcm5p bmc6IFVzZSBvZiBtZW1vcnkgYWZ0ZXIgaXQgaXMgZnJlZWQKICAgICAgICAgICAgICAgIGlmICgh Y2ItPnJlc3VtZV9jYikKICAgICAgICAgICAgICAgICAgICAgXn5+fn5+fn5+fn5+fgoxIHdhcm5p bmcgZ2VuZXJhdGVkLgpvYmV4ZC9wbHVnaW5zL3ZjYXJkLmM6NzAxOjY6IHdhcm5pbmc6IDJuZCBm dW5jdGlvbiBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICBp ZiAoc2VsZWN0X3FwX2VuY29kaW5nKGZvcm1hdCwgYWRkcmVzc19maWVsZHNbMF0sIGFkZHJlc3Nf ZmllbGRzWzFdLAogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+Cm9iZXhkL3BsdWdpbnMvdmNhcmQuYzo3MDE6 Njogd2FybmluZzogM3JkIGZ1bmN0aW9uIGNhbGwgYXJndW1lbnQgaXMgYW4gdW5pbml0aWFsaXpl ZCB2YWx1ZQogICAgICAgIGlmIChzZWxlY3RfcXBfZW5jb2RpbmcoZm9ybWF0LCBhZGRyZXNzX2Zp ZWxkc1swXSwgYWRkcmVzc19maWVsZHNbMV0sCiAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn4Kb2JleGQvcGx1 Z2lucy92Y2FyZC5jOjcwMTo2OiB3YXJuaW5nOiA0dGggZnVuY3Rpb24gY2FsbCBhcmd1bWVudCBp cyBhbiB1bmluaXRpYWxpemVkIHZhbHVlCiAgICAgICAgaWYgKHNlbGVjdF9xcF9lbmNvZGluZyhm b3JtYXQsIGFkZHJlc3NfZmllbGRzWzBdLCBhZGRyZXNzX2ZpZWxkc1sxXSwKICAgICAgICAgICAg Xn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fgpvYmV4ZC9wbHVnaW5zL3ZjYXJkLmM6NzAxOjY6IHdhcm5pbmc6IDV0aCBmdW5jdGlv biBjYWxsIGFyZ3VtZW50IGlzIGFuIHVuaW5pdGlhbGl6ZWQgdmFsdWUKICAgICAgICBpZiAoc2Vs ZWN0X3FwX2VuY29kaW5nKGZvcm1hdCwgYWRkcmVzc19maWVsZHNbMF0sIGFkZHJlc3NfZmllbGRz WzFdLAogICAgICAgICAgICBefn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+ fn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjQgd2FybmluZ3MgZ2VuZXJhdGVkLgpwcm9maWxlcy9h dWRpby9hdnJjcC5jOjE5MjQ6Mjogd2FybmluZzogVmFsdWUgc3RvcmVkIHRvICdvcGVyYW5kcycg aXMgbmV2ZXIgcmVhZAogICAgICAgIG9wZXJhbmRzICs9IHNpemVvZigqcGR1KTsKICAgICAgICBe ICAgICAgICAgICB+fn5+fn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4Kb2JleGQvcGx1Z2lu cy9tZXNzYWdlcy1kdW1teS5jOjE2Mzo5OiB3YXJuaW5nOiBBY2Nlc3MgdG8gZmllbGQgJ25leHQn IHJlc3VsdHMgaW4gYSBkZXJlZmVyZW5jZSBvZiBhIG51bGwgcG9pbnRlciAobG9hZGVkIGZyb20g dmFyaWFibGUgJ2N1cicpCiAgICAgICAgICAgICAgICBjdXIgPSBjdXItPm5leHQ7CiAgICAgICAg ICAgICAgICAgICAgICBefn5+fn5+fn4KMSB3YXJuaW5nIGdlbmVyYXRlZC4Kb2JleGQvc3JjL21h aW4uYzoyNzg6Njogd2FybmluZzogQXJyYXkgYWNjZXNzIChmcm9tIHZhcmlhYmxlICdvcHRpb25f cm9vdCcpIHJlc3VsdHMgaW4gYSBudWxsIHBvaW50ZXIgZGVyZWZlcmVuY2UKICAgICAgICBpZiAo b3B0aW9uX3Jvb3RbMF0gIT0gJy8nKSB7CiAgICAgICAgICAgIF5+fn5+fn5+fn5+fn5+CjEgd2Fy bmluZyBnZW5lcmF0ZWQuCm9iZXhkL3NyYy9vYmV4LmM6MTIyOjM6IHdhcm5pbmc6IEFjY2VzcyB0 byBmaWVsZCAnc2V0X2lvX3dhdGNoJyByZXN1bHRzIGluIGEgZGVyZWZlcmVuY2Ugb2YgYSBudWxs IHBvaW50ZXIgKGxvYWRlZCBmcm9tIGZpZWxkICdkcml2ZXInKQogICAgICAgICAgICAgICAgb3Mt PmRyaXZlci0+c2V0X2lvX3dhdGNoKG9zLT5vYmplY3QsIE5VTEwsIE5VTEwpOwogICAgICAgICAg ICAgICAgXn5+fn5+fn5+fn5+fn5+fn5+fn5+fn5+CjEgd2FybmluZyBnZW5lcmF0ZWQuCi91c3Iv YmluL2xkOiAvdXNyL2xpYi9nY2MveDg2XzY0LWxpbnV4LWdudS85Ly4uLy4uLy4uL3g4Nl82NC1s aW51eC1nbnUvU2NydDEubzogaW4gZnVuY3Rpb24gYF9zdGFydCc6CigudGV4dCsweDI0KTogdW5k ZWZpbmVkIHJlZmVyZW5jZSB0byBgbWFpbicKY29sbGVjdDI6IGVycm9yOiBsZCByZXR1cm5lZCAx IGV4aXQgc3RhdHVzCm1ha2VbMV06ICoqKiBbTWFrZWZpbGU6NTg2NDogbWVzaC9ibHVldG9vdGgt bWVzaGRdIEVycm9yIDEKbWFrZVsxXTogKioqIFdhaXRpbmcgZm9yIHVuZmluaXNoZWQgam9icy4u Li4KbWFrZTogKioqIFtNYWtlZmlsZTo0Njc0OiBhbGxdIEVycm9yIDIKCgotLS0KUmVnYXJkcywK TGludXggQmx1ZXRvb3RoCgo= --===============9085691287287101268==--