From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 553F236F8E6 for ; Thu, 11 Jun 2026 08:39:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=170.10.133.124 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781167190; cv=none; b=oO3S8LjHnJiGojLucXX2iMg05efIg74uPDPaq02DY1Q1A6V45Oonpc/1BrzZrlnDq6Bq9X0AOGCCYmyuDr9QxAjZCXX6ExudHbEn3wjOWwX+jCCavq57QllPpXyzzdYe7UMuUVikUFQuWK8yCvLekZFRDxH0Nfb5lDUOU9aHW+w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1781167190; c=relaxed/simple; bh=+DOdffqgz7jOIJPeS1KofKXXtb7Ik0l7QNU4WyVsj30=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=P6nCSRD1fi8rAlakeOroJgOsTtts5dKVvkahmcpQSK4aEUyKchC4grCRjogbouXXLQWYUhH4LIfZCDvnMOpqEseAL3uuvpmwYGaYts+ApnYtKd1Z2cUHPQyxKBlA0EL2ylsGUA7Diq+5oyNcd8pWUVbwgFtWjFNNEj2ReU/81K4= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com; spf=pass smtp.mailfrom=redhat.com; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b=BbIEm/m+; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b=SZPopPHg; arc=none smtp.client-ip=170.10.133.124 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=redhat.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=redhat.com header.i=@redhat.com header.b="BbIEm/m+"; dkim=pass (2048-bit key) header.d=redhat.com header.i=@redhat.com header.b="SZPopPHg" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1781167188; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=+DOdffqgz7jOIJPeS1KofKXXtb7Ik0l7QNU4WyVsj30=; b=BbIEm/m+yy/6+EpaSTCcwzmjOW551KiAJW7zgFFgTYc4/s13ujhE6OPCvN/bPalQmOk0VD eNzVXsDY4ruG1fhIGXcOXdhCEGGlQscjlBSW1ABUsoCLwAd4ntdoSu4nsC3rsEG/750RAt qpNb5wnen6OR2jisijkFyjWIFhVBylo= Received: from mail-wr1-f72.google.com (mail-wr1-f72.google.com [209.85.221.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-422-o26cy_g6M6-ef4Ngo3gWtw-1; Thu, 11 Jun 2026 04:39:46 -0400 X-MC-Unique: o26cy_g6M6-ef4Ngo3gWtw-1 X-Mimecast-MFC-AGG-ID: o26cy_g6M6-ef4Ngo3gWtw_1781167185 Received: by mail-wr1-f72.google.com with SMTP id ffacd0b85a97d-45ef2bd566bso4342860f8f.0 for ; Thu, 11 Jun 2026 01:39:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=google; t=1781167185; x=1781771985; darn=vger.kernel.org; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:from:to:cc:subject :date:message-id:reply-to; bh=+DOdffqgz7jOIJPeS1KofKXXtb7Ik0l7QNU4WyVsj30=; b=SZPopPHg7kXBNgtkce6qCU4yY3yYlAdFBkbWPBeR/g8EsYvNe1KfU/MQkPg47BNNI6 COBq5dv7lxV1tmCQVnpOjuhAYMr498/fygF6NoHLwAQfPsO2Qj5AJSOtUdie0BrKOEAn jtpEmcw6AhZeywIL5lvlwhk0WJOdc2HJGha/9jgpqzaeiKO3jeoWJQMccAi1QHhAW8B8 7Sdhwwe1//6BHo2KHxORv8a1ZWVgM6SiwX8ovDbKi6Z49fnglEmS/4XYZXGZl5x6bM1M pDlOMtFOEOHnvHMPqpoJQlrvLYJwkCIjGWQNm72aWRSpwMu327ts6heVII6M2H70Hc8d lTtg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1781167185; x=1781771985; h=mime-version:user-agent:content-transfer-encoding:references :in-reply-to:date:cc:to:from:subject:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=+DOdffqgz7jOIJPeS1KofKXXtb7Ik0l7QNU4WyVsj30=; b=JSDrDaT5r6+WG7tBQKuXl4tyCZRPuszvoiZpGXnzFE1Cx+YImimiQ7hyAP5IvBjKk4 fmeFFKu5gkFt/RHF+tpHBpaNVJPNV8S61GI3P7wZq+FDgg4cjbsHMZb0hJ7HZoEpLDJN 5DndQbm5ZmejtVvpkfb1ibusq2+fqxIW5eIPXcPFwpxarcOFmY173jSyDoVOHWPtZILZ kzWWst0eAP+Dh7ehN3zCpIhVnoaZdo4FHkc8RQLD/9mhd8Hkl22YjPbFvUpC8dIyR2IL uQWutDihEgYHKe6w0eOqoYFv3V63eouFwZsB49OP3A78iStlwzurFzGMQkF/M7sAxKPP xZZQ== X-Forwarded-Encrypted: i=1; AFNElJ9JX4H5GzXpU8XF2qp6MOudjoceWj8IEwnPaFm8IDiOVGHkuxPn1NmThB8VGNdZrva91wWhkCzg+vf96/c=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+g1Ixu6+vsFpzvtdATULexalmutMRxrsTGOfLGzhawnANrY2T ljAWQnybLL41ANWmjLblGXd3TkbfrHL4p2AR/AXwv3dH04OI7XUKlhbE6R8eq2NfnuEWAOZWYvN lhpWAZUrpB18TG6IGRHGUQlIaBUzE/9QAMQIddoygEIGQrfPsv5zjwS0R96kGtmrX9w== X-Gm-Gg: Acq92OFCXpSrldVBKU0W8m/KeXhOIOH5o9ggWnVbuvqA9rJ24hLF71LfC7cRI1l8lt1 Mmrq5R7owv7mWoh7F7M2rcloNq+nXulqy8gdJtbmdhJD21NTpjN1LIvM1T8VeTkot6YTroDEG7J xl3p48B7vsvQwrfsEbZ9DyUnFPhMZ+nLSCHOzIKx9PF6v2LteNhv1avqguaPXKGJspiEkmYaJvs G93xKpzjfEWxyoWDduNPEbfDRMLbAdwcGJftGu3inY2XQ7Gspgz/pILBIptn4zkP9bnGzORXnKO sFpE4K9heUvM/zP/mv8BApPOS/O4PsAfJ32OeL67pUlIm42ct+P+MR7QytfHDW5bA6TFkhJqJa4 NjdlgA6b4bIN9+CywtNkeJwQXgNH3y9LVsxEH X-Received: by 2002:a05:600c:b96:b0:490:b724:dbd6 with SMTP id 5b1f17b1804b1-490e55b71a8mr18684555e9.6.1781167184843; Thu, 11 Jun 2026 01:39:44 -0700 (PDT) X-Received: by 2002:a05:600c:b96:b0:490:b724:dbd6 with SMTP id 5b1f17b1804b1-490e55b71a8mr18684145e9.6.1781167184469; Thu, 11 Jun 2026 01:39:44 -0700 (PDT) Received: from [192.168.1.167] ([185.168.96.228]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-4601f2ec711sm76510109f8f.12.2026.06.11.01.39.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Jun 2026 01:39:44 -0700 (PDT) Message-ID: <1ba770537330483e9345f0f88c6a2e03aa34423a.camel@redhat.com> Subject: Re: [PATCH v3 08/13] verification/rvgen: Simplify the generation for clock variables From: Gabriele Monaco To: Nam Cao Cc: Steven Rostedt , Wander Lairson Costa , linux-trace-kernel@vger.kernel.org, linux-kernel@vger.kernel.org Date: Thu, 11 Jun 2026 10:39:42 +0200 In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 User-Agent: Evolution 3.60.2 (3.60.2-1.fc44) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 T24gTW9uLCAyMDI2LTA2LTA4IGF0IDEwOjU3ICswMjAwLCBOYW0gQ2FvIHdyb3RlOgo+IEh5YnJp ZCBhdXRvbWF0YSBtb25pdG9ycydzIGNsb2NrIHZhcmlhYmxlcyBoYXZlIGJlZW4gY2hhbmdlZCB0 byBoYXZlCj4gb25seSBhIHNpbmdsZSByZXByZXNlbnRhdGlvbi4gTm93IHRoZXJlIGlzIG5vIG5l ZWQgdG8gZ2VuZXJhdGUgY29kZQo+IHRvIGNvbnZlcnQgYmV0d2VlbiB0aGUgdHdvIHJlcHJlc2Vu dGF0aW9ucy4KPiAKPiBEZWxldGUgX19maWxsX2NvbnZlcnRfaW52X2d1YXJkX2Z1bmMoKSBhbmQg aXRzIGFzc29jaWF0ZXMuIFVwZGF0ZQo+IF9fc3RhcnRfdG9faW52YXJpYW50X2NoZWNrKCkgdG8g aG93IGludmFyaWFudHMgbm93IHdvcmsuCj4gCj4gU2lnbmVkLW9mZi1ieTogTmFtIENhbyA8bmFt Y2FvQGxpbnV0cm9uaXguZGU+CgpSZXZpZXdlZC1ieTogR2FicmllbGUgTW9uYWNvIDxnbW9uYWNv QHJlZGhhdC5jb20+Cgo+IC0tLQo+IMKgdG9vbHMvdmVyaWZpY2F0aW9uL3J2Z2VuL3J2Z2VuL2Rv dDJrLnB5IHwgOTYgKy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KPiAtLQo+IMKgMSBmaWxlIGNoYW5n ZWQsIDMgaW5zZXJ0aW9ucygrKSwgOTMgZGVsZXRpb25zKC0pCj4gCj4gZGlmZiAtLWdpdCBhL3Rv b2xzL3ZlcmlmaWNhdGlvbi9ydmdlbi9ydmdlbi9kb3Qyay5weQo+IGIvdG9vbHMvdmVyaWZpY2F0 aW9uL3J2Z2VuL3J2Z2VuL2RvdDJrLnB5Cj4gaW5kZXggZTkxNzE3ZmRlMzBkLi42ZDM0NmE3MThh MzkgMTAwNjQ0Cj4gLS0tIGEvdG9vbHMvdmVyaWZpY2F0aW9uL3J2Z2VuL3J2Z2VuL2RvdDJrLnB5 Cj4gKysrIGIvdG9vbHMvdmVyaWZpY2F0aW9uL3J2Z2VuL3J2Z2VuL2RvdDJrLnB5Cj4gQEAgLTI0 Niw3ICsyNDYsOSBAQCBjbGFzcyBoYTJrKGRvdDJrKToKPiDCoMKgwqDCoMKgwqDCoMKgIGlmIGlu di51bml0ID09ICJqIjoKPiDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY2xvY2tfdHlwZSA9ICJq aWZmeSIKPiDCoAo+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gZiJyZXR1cm4gaGFfY2hlY2tfaW52 YXJpYW50X3tjbG9ja190eXBlfShoYV9tb24sCj4ge2ludi5lbnZ9X3tzZWxmLm5hbWV9LCB0aW1l X25zKSIKPiArwqDCoMKgwqDCoMKgwqAgdmFsdWUgPSBzZWxmLl9fYWRqdXN0X3ZhbHVlKGludi52 YWwsIGludi51bml0KQo+ICsKPiArwqDCoMKgwqDCoMKgwqAgcmV0dXJuIGYicmV0dXJuIGhhX2No ZWNrX2ludmFyaWFudF97Y2xvY2tfdHlwZX0oaGFfbW9uLAo+IHtpbnYuZW52fV97c2VsZi5uYW1l fSwgdGltZV9ucywge3ZhbHVlfSkiCj4gwqAKPiDCoMKgwqDCoCBkZWYgX19zdGFydF90b19jb252 KHNlbGYsIGNvbnN0cjogc3RyKSAtPiBzdHI6Cj4gwqDCoMKgwqDCoMKgwqDCoCAiIiIKPiBAQCAt MzgzLDQwICszODUsNiBAQCBmIiIic3RhdGljIGlubGluZSBib29sCj4gaGFfdmVyaWZ5X2ludmFy aWFudHMoc3RydWN0IGhhX21vbml0b3IgKmhhX21vbiwKPiDCoMKgwqDCoMKgwqDCoMKgIGJ1ZmYu YXBwZW5kKCJcdHJldHVybiB0cnVlO1xufVxuIikKPiDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBi dWZmCj4gwqAKPiAtwqDCoMKgIGRlZiBfX2ZpbGxfY29udmVydF9pbnZfZ3VhcmRfZnVuYyhzZWxm KSAtPiBsaXN0W3N0cl06Cj4gLcKgwqDCoMKgwqDCoMKgIGJ1ZmYgPSBbXQo+IC3CoMKgwqDCoMKg wqDCoCBpZiBub3Qgc2VsZi5pbnZhcmlhbnRzOgo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIHJl dHVybiBbXQo+IC0KPiAtwqDCoMKgwqDCoMKgwqAgY29uZmxpY3RfZ3VhcmRzLCBjb25mbGljdF9p bnZzID0gc2VsZi5fX2ZpbmRfaW52X2NvbmZsaWN0cygpCj4gLcKgwqDCoMKgwqDCoMKgIGlmIG5v dCBjb25mbGljdF9ndWFyZHMgYW5kIG5vdCBjb25mbGljdF9pbnZzOgo+IC3CoMKgwqDCoMKgwqDC oMKgwqDCoMKgIHJldHVybiBbXQo+IC0KPiAtwqDCoMKgwqDCoMKgwqAgYnVmZi5hcHBlbmQoCj4g LWYiIiJzdGF0aWMgaW5saW5lIHZvaWQgaGFfY29udmVydF9pbnZfZ3VhcmQoc3RydWN0IGhhX21v bml0b3IKPiAqaGFfbW9uLAo+IC1cdFx0XHRcdFx0ZW51bSB7c2VsZi5lbnVtX3N0YXRlc19kZWZ9 IGN1cnJfc3RhdGUsIGVudW0KPiB7c2VsZi5lbnVtX2V2ZW50c19kZWZ9IGV2ZW50LAo+IC1cdFx0 XHRcdFx0ZW51bSB7c2VsZi5lbnVtX3N0YXRlc19kZWZ9IG5leHRfc3RhdGUsIHU2NCB0aW1lX25z KQo+IC17eyIiIikKPiAtwqDCoMKgwqDCoMKgwqAgYnVmZi5hcHBlbmQoIlx0aWYgKGN1cnJfc3Rh dGUgPT0gbmV4dF9zdGF0ZSlcblx0XHRyZXR1cm47IikKPiAtCj4gLcKgwqDCoMKgwqDCoMKgIF9l bHNlID0gIiIKPiAtwqDCoMKgwqDCoMKgwqAgZm9yIHN0YXRlLCBjb25zdHIgaW4gc29ydGVkKHNl bGYuaW52YXJpYW50cy5pdGVtcygpKToKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjIGEgc3Rh dGUgd2l0aCBpbnZhcmlhbnQgY2FuIHJlYWNoIHVzIHdpdGhvdXQgcmVzZXQKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCAjIG11bHRpcGxlIGNvbmZsaWN0cyBtdXN0IGhhdmUgdGhlIHNhbWUgaW52 YXJpYW50LAo+IG90aGVyd2lzZSB3ZSBjYW5ub3QKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAj IGtub3cgaG93IHRvIHJlc2V0IHRoZSB2YWx1ZQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNv bmZfaSA9IFtzdGFydCBmb3Igc3RhcnQsIGVuZCBpbiBjb25mbGljdF9pbnZzIGlmIGVuZAo+ID09 IHN0YXRlXQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgICMgd2UgY2FuIHJlYWNoIGEgZ3VhcmQg d2l0aG91dCByZXNldAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbmZfZyA9IFtlIGZvciBz LCBlIGluIGNvbmZsaWN0X2d1YXJkcyBpZiBzID09IHN0YXRlXQo+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgIGlmIG5vdCBjb25mX2kgYW5kIG5vdCBjb25mX2c6Cj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBjb250aW51ZQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1ZmYuYXBw ZW5kKGYiXHR7X2Vsc2V9aWYgKGN1cnJfc3RhdGUgPT0KPiB7c2VsZi5zdGF0ZXNbc3RhdGVdfXtz ZWxmLmVudW1fc3VmZml4fSkiKQo+IC0KPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZmLmFw cGVuZChmIlx0XHR7c2VsZi5fX3N0YXJ0X3RvX2NvbnYoY29uc3RyKX07IikKPiAtwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBfZWxzZSA9ICJlbHNlICIKPiAtCj4gLcKgwqDCoMKgwqDCoMKgIGJ1ZmYu YXBwZW5kKCJ9XG4iKQo+IC3CoMKgwqDCoMKgwqDCoCByZXR1cm4gYnVmZgo+IC0KPiDCoMKgwqDC oCBkZWYgX19maWxsX3ZlcmlmeV9ndWFyZHNfZnVuYyhzZWxmKSAtPiBsaXN0W3N0cl06Cj4gwqDC oMKgwqDCoMKgwqDCoCBidWZmID0gW10KPiDCoAo+IEBAIC00NTYsNTQgKzQyNCw2IEBAIGYiIiJz dGF0aWMgaW5saW5lIGJvb2wgaGFfdmVyaWZ5X2d1YXJkcyhzdHJ1Y3QKPiBoYV9tb25pdG9yICpo YV9tb24sCj4gwqDCoMKgwqDCoMKgwqDCoCBidWZmLmFwcGVuZCgiXHRyZXR1cm4gcmVzO1xufVxu IikKPiDCoMKgwqDCoMKgwqDCoMKgIHJldHVybiBidWZmCj4gwqAKPiAtwqDCoMKgIGRlZiBfX2Zp bmRfaW52X2NvbmZsaWN0cyhzZWxmKSAtPiB0dXBsZVtzZXRbdHVwbGVbaW50LAo+IF9FdmVudENv bnN0cmFpbnRLZXldXSwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgc2V0W3R1cGxl W2ludCwKPiBfU3RhdGVDb25zdHJhaW50S2V5XV1dOgo+IC3CoMKgwqDCoMKgwqDCoCAiIiIKPiAt wqDCoMKgwqDCoMKgwqAgUnVuIGEgYnJlYWR0aCBmaXJzdCBzZWFyY2ggZnJvbSBhbGwgc3RhdGVz IHdpdGggYW4KPiBpbnZhcmlhbnQuCj4gLcKgwqDCoMKgwqDCoMKgIEZpbmQgYW55IGNvbmZsaWN0 aW5nIGNvbnN0cmFpbnRzIHJlYWNoYWJsZSBmcm9tIHRoZXJlLCB0aGlzCj4gY2FuIGJlCj4gLcKg wqDCoMKgwqDCoMKgIGFub3RoZXIgc3RhdGUgd2l0aCBhbiBpbnZhcmlhbnQgb3IgYW4gZWRnZSB3 aXRoIGEgbm9uLXJlc2V0Cj4gZ3VhcmQuCj4gLcKgwqDCoMKgwqDCoMKgIFN0b3Agd2hlbiB3ZSBm aW5kIGEgcmVzZXQuCj4gLQo+IC3CoMKgwqDCoMKgwqDCoCBSZXR1cm4gdGhlIHNldCBvZiBjb25m bGljdGluZyBndWFyZHMgYW5kIGludmFyaWFudHMgYXMKPiB0dXBsZXMgb2YKPiAtwqDCoMKgwqDC oMKgwqAgY29uZmxpY3Rpbmcgc3RhdGUgYW5kIGNvbnN0cmFpbnQga2V5Lgo+IC3CoMKgwqDCoMKg wqDCoCAiIiIKPiAtwqDCoMKgwqDCoMKgwqAgY29uZmxpY3RfZ3VhcmRzOiBzZXRbdHVwbGVbaW50 LCBfRXZlbnRDb25zdHJhaW50S2V5XV0gPQo+IHNldCgpCj4gLcKgwqDCoMKgwqDCoMKgIGNvbmZs aWN0X2ludnM6IHNldFt0dXBsZVtpbnQsIF9TdGF0ZUNvbnN0cmFpbnRLZXldXSA9IHNldCgpCj4g LcKgwqDCoMKgwqDCoMKgIGZvciBzdGFydF9pZHggaW4gc2VsZi5pbnZhcmlhbnRzOgo+IC3CoMKg wqDCoMKgwqDCoMKgwqDCoMKgIHF1ZXVlID0gZGVxdWUoWyhzdGFydF9pZHgsIDApXSnCoCAjIChz dGF0ZV9pZHgsIGRpc3RhbmNlKQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGVudiA9Cj4gc2Vs Zi5fX2dldF9jb25zdHJhaW50X2VudihzZWxmLmludmFyaWFudHNbc3RhcnRfaWR4XSkKPiAtCj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgd2hpbGUgcXVldWU6Cj4gLcKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoCBjdXJyX2lkeCwgZGlzdGFuY2UgPSBxdWV1ZS5wb3BsZWZ0KCkKPiAtCj4g LcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCAjIENoZWNrIHN0YXRlIGNvbmRpdGlvbgo+ IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgY3Vycl9pZHggIT0gc3RhcnRfaWR4 IGFuZCBjdXJyX2lkeCBpbgo+IHNlbGYuaW52YXJpYW50czoKPiAtwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqAgY29uZmxpY3RfaW52cy5hZGQoKHN0YXJ0X2lkeCwKPiBfU3Rh dGVDb25zdHJhaW50S2V5KGN1cnJfaWR4KSkpCj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgIGNvbnRpbnVlCj4gLQo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgIyBDaGVjayBpZiB3ZSBzaG91bGQgc3RvcAo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgaWYgZGlzdGFuY2UgPiBsZW4oc2VsZi5zdGF0ZXMpOgo+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBicmVhawo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgaWYgY3Vycl9pZHggIT0gc3RhcnRfaWR4IGFuZCBkaXN0YW5jZSA+IDE6Cj4gLcKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlCj4gLQo+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgZm9yIGV2ZW50X2lkeCwgbmV4dF9zdGF0ZV9uYW1lIGlu Cj4gZW51bWVyYXRlKHNlbGYuZnVuY3Rpb25bY3Vycl9pZHhdKToKPiAtwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgaWYgbmV4dF9zdGF0ZV9uYW1lID09IHNlbGYuaW52YWxp ZF9zdGF0ZV9zdHI6Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqAgY29udGludWUKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAg Y3Vycl9ndWFyZCA9IHNlbGYuZ3VhcmRzLmdldCgoY3Vycl9pZHgsCj4gZXZlbnRfaWR4KSwgIiIp Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmICJyZXNldCIgaW4g Y3Vycl9ndWFyZCBhbmQgZW52IGluIGN1cnJfZ3VhcmQ6Cj4gLcKgwqDCoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqAgY29udGludWUKPiAtCj4gLcKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGlmIGVudiBpbiBjdXJyX2d1YXJkOgo+IC3CoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbmZsaWN0X2d1YXJkcy5h ZGQoKHN0YXJ0X2lkeCwKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDC oMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoAo+IF9FdmVu dENvbnN0cmFpbnRLZXkoY3Vycl9pZHgsIGV2ZW50X2lkeCkpKQo+IC3CoMKgwqDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGNvbnRpbnVlCj4gLQo+IC3CoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBuZXh0X2lkeCA9IHNlbGYuc3RhdGVzLmluZGV4 KG5leHRfc3RhdGVfbmFtZSkKPiAtwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKg wqAgcXVldWUuYXBwZW5kKChuZXh0X2lkeCwgZGlzdGFuY2UgKyAxKSkKPiAtCj4gLcKgwqDCoMKg wqDCoMKgIHJldHVybiBjb25mbGljdF9ndWFyZHMsIGNvbmZsaWN0X2ludnMKPiAtCj4gwqDCoMKg wqAgZGVmIF9fZmlsbF9zZXR1cF9pbnZhcmlhbnRzX2Z1bmMoc2VsZikgLT4gbGlzdFtzdHJdOgo+ IMKgwqDCoMKgwqDCoMKgwqAgaWYgbm90IHNlbGYuaGFzX2ludmFyaWFudDoKPiDCoMKgwqDCoMKg wqDCoMKgwqDCoMKgwqAgcmV0dXJuIFtdCj4gQEAgLTU1NCwxNiArNDc0LDkgQEAgZiIiInN0YXRp YyBpbmxpbmUgdm9pZAo+IGhhX3NldHVwX2ludmFyaWFudHMoc3RydWN0IGhhX21vbml0b3IgKmhh X21vbiwKPiDCoCAqIHRoZSBuZXh0IHN0YXRlIGhhcyBhIGNvbnN0cmFpbnQsIGNhbmNlbCBpdCBp biBhbnkgb3RoZXIgY2FzZSBhbmQKPiB0byBjaGVjawo+IMKgICogdGhhdCBpdCBkaWRuJ3QgZXhw aXJlIGJlZm9yZSB0aGUgY2FsbGJhY2sgcnVuLiBUcmFuc2l0aW9ucyB0byB0aGUKPiBzYW1lIHN0 YXRlCj4gwqAgKiB3aXRob3V0IGEgcmVzZXQgbmV2ZXIgYWZmZWN0IHRpbWVycy4KPiAtICogRHVl IHRvIHRoZSBkaWZmZXJlbnQgcmVwcmVzZW50YXRpb25zIGJldHdlZW4gaW52YXJpYW50cyBhbmQK PiBndWFyZHMsIHRoZXJlIGlzCj4gLSAqIGEgZnVuY3Rpb24gdG8gY29udmVydCBpdCBpbiBjYXNl IGludmFyaWFudHMgb3IgZ3VhcmRzIGFyZQo+IHJlYWNoYWJsZSBmcm9tCj4gLSAqIGFub3RoZXIg aW52YXJpYW50IHdpdGhvdXQgcmVzZXQuIFRob3NlIGFyZSBub3QgcHJlc2VudCBpZiBub3QKPiBy ZXF1aXJlZCBpbgo+IC0gKiB0aGUgbW9kZWwuIFRoaXMgaXMgYWxsIGF1dG9tYXRpYyBidXQgaXMg d29ydGggY2hlY2tpbmcgYmVjYXVzZSBpdAo+IG1heSBzaG93Cj4gLSAqIGVycm9ycyBpbiB0aGUg bW9kZWwgKGUuZy4gbWlzc2luZyByZXNldHMpLgo+IMKgICovIiIiKQo+IMKgCj4gwqDCoMKgwqDC oMKgwqDCoCBidWZmICs9IHNlbGYuX19maWxsX3ZlcmlmeV9pbnZhcmlhbnRzX2Z1bmMoKQo+IC3C oMKgwqDCoMKgwqDCoCBpbnZfY29uZmxpY3RzID0gc2VsZi5fX2ZpbGxfY29udmVydF9pbnZfZ3Vh cmRfZnVuYygpCj4gLcKgwqDCoMKgwqDCoMKgIGJ1ZmYgKz0gaW52X2NvbmZsaWN0cwo+IMKgwqDC oMKgwqDCoMKgwqAgYnVmZiArPSBzZWxmLl9fZmlsbF92ZXJpZnlfZ3VhcmRzX2Z1bmMoKQo+IMKg wqDCoMKgwqDCoMKgwqAgYnVmZiArPSBzZWxmLl9fZmlsbF9zZXR1cF9pbnZhcmlhbnRzX2Z1bmMo KQo+IMKgCj4gQEAgLTU3Niw5ICs0ODksNiBAQCBmIiIic3RhdGljIGJvb2wgaGFfdmVyaWZ5X2Nv bnN0cmFpbnQoc3RydWN0Cj4gaGFfbW9uaXRvciAqaGFfbW9uLAo+IMKgwqDCoMKgwqDCoMKgwqAg aWYgc2VsZi5pbnZhcmlhbnRzOgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZmLmFwcGVu ZCgiXHRpZiAoIWhhX3ZlcmlmeV9pbnZhcmlhbnRzKGhhX21vbiwKPiBjdXJyX3N0YXRlLCAiCj4g wqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJldmVudCwg bmV4dF9zdGF0ZSwgdGltZV9ucykpXG5cdFx0cmV0dXJuCj4gZmFsc2U7XG4iKQo+IC3CoMKgwqDC oMKgwqDCoCBpZiBpbnZfY29uZmxpY3RzOgo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgIGJ1ZmYu YXBwZW5kKCJcdGhhX2NvbnZlcnRfaW52X2d1YXJkKGhhX21vbiwgY3Vycl9zdGF0ZSwKPiBldmVu dCwgIgo+IC3CoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoMKgICJu ZXh0X3N0YXRlLCB0aW1lX25zKTtcbiIpCj4gwqAKPiDCoMKgwqDCoMKgwqDCoMKgIGlmIHNlbGYu Z3VhcmRzOgo+IMKgwqDCoMKgwqDCoMKgwqDCoMKgwqDCoCBidWZmLmFwcGVuZCgiXHRpZiAoIWhh X3ZlcmlmeV9ndWFyZHMoaGFfbW9uLCBjdXJyX3N0YXRlLAo+IGV2ZW50LCAiCg==