From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr0-x233.google.com (mail-wr0-x233.google.com [IPv6:2a00:1450:400c:c0c::233]) by gabe.freedesktop.org (Postfix) with ESMTPS id 726836E6A4 for ; Tue, 6 Mar 2018 12:43:30 +0000 (UTC) Received: by mail-wr0-x233.google.com with SMTP id z12so20797569wrg.4 for ; Tue, 06 Mar 2018 04:43:30 -0800 (PST) From: Tvrtko Ursulin Date: Tue, 6 Mar 2018 12:43:08 +0000 Message-Id: <20180306124315.30208-5-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20180306124315.30208-1-tvrtko.ursulin@linux.intel.com> References: <20180306124315.30208-1-tvrtko.ursulin@linux.intel.com> Subject: [igt-dev] [PATCH i-g-t 04/11] scripts/trace.pl: Calculate stats only after all munging List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Errors-To: igt-dev-bounces@lists.freedesktop.org Sender: "igt-dev" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org, Tvrtko Ursulin List-ID: RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KClRoZXJlIGFy ZSB2YXJpb3VzIHN0YXRpc3RpY3MgYmVpbmcgY2FsY3VsYXRlZCBtdWx0aXBsZSB0aW1lcyBpbgpt dWx0aXBsZSBwbGFjZXMgd2hpbGUgdGhlIGxvZyBmaWxlIGlzIGJlaW5nIHJlYWQgaW4uIFNvbWUg b2YgdGhlc2UgYXJlCnRoZW4gcmUtY2FsY3VsYXRlZCB3aGVuIHRoZSBkYXRhYmFzZSBpcyBtdW5n ZWQgdG8gY29ycmVjdCB2YXJpb3VzCmlzc3VlcyB3aXRoIHRoZSBsb2dzLiBUaGlzIHBhdGNoIGNv bnNvbGlkYXRlcyB0aGUgY2FsY3VsYXRpb25zIGludG8gYQpzZXBhcmF0ZSBwYXNzIGFmdGVyIGFs bCB0aGUgcmVhZGluZyBhbmQgbXVuZ2luZyBoYXMgYmVlbiBkb25lLgoKTm90ZSB0aGF0IHRoaXMg YWN0dWFsbHkgcHJvZHVjZXMgYSBkaWZmZXJlbnQgZmluYWwgb3V0cHV0IGFzIHRoZQonZXhlY3V0 ZS1kZWxheScgdmFsdWVzIHdlcmUgbm90IHByZXZpb3VzbHkgYmVpbmcgcmUtY2FsY3VsYXRlZCBh ZnRlcgphbGwgdGhlIGZpeHVwcy4gVGh1cyB3ZXJlIGJhc2VkIG9uIGFuIGluY29ycmVjdCBjYWxj dWxhdGlvbi4KCnYyOiBSZWR1Y2Ugc2NvcGUgb2Ygc29tZSBsb2NhbCB2YXJpYWJsZXMgW1R2cnRr b10KClNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBpbnRlbC5j b20+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpSZXZpZXdl ZC1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0tCiBzY3Jp cHRzL3RyYWNlLnBsIHwgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMjYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc2NyaXB0cy90cmFjZS5wbCBiL3NjcmlwdHMvdHJhY2Uu cGwKaW5kZXggZDU3MWE4NzBmY2EyLi5kODgwYTczM2JmZjggMTAwNzU1Ci0tLSBhL3NjcmlwdHMv dHJhY2UucGwKKysrIGIvc2NyaXB0cy90cmFjZS5wbApAQCAtNDM3LDggKzQzNyw3IEBAIHdoaWxl ICg8PikgewogCQkkcmVxeydnbG9iYWwnfSA9ICR0cHsnZ2xvYmFsJ307CiAJCSRyZXF7J3BvcnQn fSA9ICR0cHsncG9ydCd9OwogCQkkcmVxeydxdWV1ZSd9ID0gJHF1ZXVleyRrZXl9OwotCQkkcmVx eydzdWJtaXQtZGVsYXknfSA9ICRzdWJtaXR7JGtleX0gLSAkcXVldWV7JGtleX07Ci0JCSRyZXF7 J2V4ZWN1dGUtZGVsYXknfSA9ICRyZXF7J3N0YXJ0J30gLSAkc3VibWl0eyRrZXl9OworCQkkcmVx eydzdWJtaXQnfSA9ICRzdWJtaXR7JGtleX07CiAJCSRyaW5nc3skcmluZ30gPSAkZ2lkKysgdW5s ZXNzIGV4aXN0cyAkcmluZ3N7JHJpbmd9OwogCQkkcmluZ21hcHskcmluZ3N7JHJpbmd9fSA9ICRy aW5nOwogCQkkZGJ7JGtleX0gPSBcJXJlcTsKQEAgLTQ1OCw4ICs0NTcsNiBAQCB3aGlsZSAoPD4p IHsKIAkJCSRkYnska2V5fS0+eydub3RpZnknfSA9ICRkYnska2V5fS0+eydlbmQnfTsKIAkJCSRk Ynska2V5fS0+eyduby1ub3RpZnknfSA9IDE7CiAJCX0KLQkJJGRieyRrZXl9LT57J2R1cmF0aW9u J30gPSAkZGJ7JGtleX0tPnsnbm90aWZ5J30gLSAkZGJ7JGtleX0tPnsnc3RhcnQnfTsKLQkJJGRi eyRrZXl9LT57J2NvbnRleHQtY29tcGxldGUtZGVsYXknfSA9ICRkYnska2V5fS0+eydlbmQnfSAt ICRkYnska2V5fS0+eydub3RpZnknfTsKIAl9IGVsc2lmICgkdHBfbmFtZSBlcSAnaTkxNTppbnRl bF9lbmdpbmVfbm90aWZ5OicpIHsKIAkJJG5vdGlmeXtnbG9iYWxfa2V5KCRyaW5nLCAkc2Vxbm8p fSA9ICR0aW1lOwogCX0gZWxzaWYgKCR0cF9uYW1lIGVxICdpOTE1OmludGVsX2dwdV9mcmVxX2No YW5nZTonKSB7CkBAIC00OTMsMTYgKzQ5MCwxMSBAQCBmb3JlYWNoIG15ICRrZXkgKGtleXMgJWRi KSB7CiAJCQkkZGJ7JGtleX0tPnsnbm90aWZ5J30gPSAkZGJ7JGtleX0tPnsnZW5kJ307CiAJCQkk ZGJ7JGtleX0tPnsnaW5jb21wbGV0ZSd9ID0gMTsKIAkJfQotCi0JCSRkYnska2V5fS0+eydkdXJh dGlvbid9ID0gJGRieyRrZXl9LT57J25vdGlmeSd9IC0gJGRieyRrZXl9LT57J3N0YXJ0J307Ci0J CSRkYnska2V5fS0+eydjb250ZXh0LWNvbXBsZXRlLWRlbGF5J30gPSAkZGJ7JGtleX0tPnsnZW5k J30gLSAkZGJ7JGtleX0tPnsnbm90aWZ5J307CiAJfSBlbHNlIHsKIAkJIyBOb3RpZnkgYXJyaXZl ZCBhZnRlciBjb250ZXh0IGNvbXBsZXRlLgogCQlpZiAoZXhpc3RzICRkYnska2V5fS0+eyduby1u b3RpZnknfSBhbmQgZXhpc3RzICRub3RpZnl7JGdrZXl9KSB7CiAJCQlkZWxldGUgJGRieyRrZXl9 LT57J25vLW5vdGlmeSd9OwogCQkJJGRieyRrZXl9LT57J25vdGlmeSd9ID0gJG5vdGlmeXskZ2tl eX07Ci0JCQkkZGJ7JGtleX0tPnsnZHVyYXRpb24nfSA9ICRkYnska2V5fS0+eydub3RpZnknfSAt ICRkYnska2V5fS0+eydzdGFydCd9OwotCQkJJGRieyRrZXl9LT57J2NvbnRleHQtY29tcGxldGUt ZGVsYXknfSA9ICRkYnska2V5fS0+eydlbmQnfSAtICRkYnska2V5fS0+eydub3RpZnknfTsKIAkJ fQogCX0KIH0KQEAgLTUyOCw4ICs1MjAsNiBAQCBmb3JlYWNoIG15ICRrZXkgKGtleXMgJWRiKSB7 CiAJaWYgKGV4aXN0cyAkZGJ7JG5leHRfa2V5fSkgewogCQkkZGJ7JGtleX0tPnsnbm90aWZ5J30g PSAkZGJ7JG5leHRfa2V5fS0+eydlbmQnfTsKIAkJJGRieyRrZXl9LT57J2VuZCd9ID0gJGRieyRr ZXl9LT57J25vdGlmeSd9OwotCQkkZGJ7JGtleX0tPnsnZHVyYXRpb24nfSA9ICRkYnska2V5fS0+ eydub3RpZnknfSAtICRkYnska2V5fS0+eydzdGFydCd9OwotCQkkZGJ7JGtleX0tPnsnY29udGV4 dC1jb21wbGV0ZS1kZWxheSd9ID0gJGRieyRrZXl9LT57J2VuZCd9IC0gJGRieyRrZXl9LT57J25v dGlmeSd9OwogCX0KIH0KIApAQCAtNTczLDE3ICs1NjMsMTEgQEAgZm9yZWFjaCBteSAka2V5IChA c29ydGVkX2tleXMpIHsKIAkkZmlyc3RfdHMgPSAkZGJ7JGtleX0tPnsncXVldWUnfSBpZiBub3Qg ZGVmaW5lZCAkZmlyc3RfdHMgb3IgJGRieyRrZXl9LT57J3F1ZXVlJ30gPCAkZmlyc3RfdHM7CiAJ JGxhc3RfdHMgPSAkZW5kIGlmICRlbmQgPiAkbGFzdF90czsKIAotCSRydW5uaW5neyRyaW5nfSAr PSAkZW5kIC0gJGRieyRrZXl9LT57J3N0YXJ0J30gdW5sZXNzIGV4aXN0cyAkZGJ7JGtleX0tPnsn bm8tZW5kJ307Ci0JJHJ1bm5hYmxleyRyaW5nfSArPSAkZGJ7JGtleX0tPnsnZXhlY3V0ZS1kZWxh eSd9OwotCSRxdWV1ZWR7JHJpbmd9ICs9ICRkYnska2V5fS0+eydzdGFydCd9IC0gJGRieyRrZXl9 LT57J2V4ZWN1dGUtZGVsYXknfSAtICRkYnska2V5fS0+eydxdWV1ZSd9OwotCi0JJGJhdGNoX2Nv dW50eyRyaW5nfSsrOwotCiAJIyBjb3JyZWN0IGR1cmF0aW9uIG9mIG1lcmdlZCBiYXRjaGVzCiAJ aWYgKCRjb3JyZWN0X2R1cmF0aW9ucyBhbmQgZXhpc3RzICRkYnska2V5fS0+eyduby1lbmQnfSkg ewotCQlteSAkc3RhcnQgPSAkZGJ7JGtleX0tPnsnc3RhcnQnfTsKIAkJbXkgJGN0eCA9ICRkYnsk a2V5fS0+eydjdHgnfTsKIAkJbXkgJHNlcW5vID0gJGRieyRrZXl9LT57J3NlcW5vJ307CisJCW15 ICRzdGFydCA9ICRkYnska2V5fS0+eydzdGFydCd9OwogCQlteSAkbmV4dF9rZXk7CiAJCW15ICRp ID0gMTsKIApAQCAtNTk0LDI1ICs1NzgsNDMgQEAgZm9yZWFjaCBteSAka2V5IChAc29ydGVkX2tl eXMpIHsKIAogCQkjIDIwdXMgdG9sZXJhbmNlCiAJCWlmIChleGlzdHMgJGRieyRuZXh0X2tleX0g YW5kICRkYnskbmV4dF9rZXl9LT57J3N0YXJ0J30gPCAkc3RhcnQgKyAyMCkgeworCQkJbXkgJG5v dGlmeSA9ICRkYnska2V5fS0+eydub3RpZnknfTsKIAkJCSRyZV9zb3J0ID0gMTsKLQkJCSRkYnsk bmV4dF9rZXl9LT57J3N0YXJ0J30gPSAkc3RhcnQgKyAkZGJ7JGtleX0tPnsnZHVyYXRpb24nfTsK KwkJCSRkYnskbmV4dF9rZXl9LT57J3N0YXJ0J30gPSAkbm90aWZ5OwogCQkJJGRieyRuZXh0X2tl eX0tPnsnc3RhcnQnfSA9ICRkYnskbmV4dF9rZXl9LT57J2VuZCd9IGlmICRkYnskbmV4dF9rZXl9 LT57J3N0YXJ0J30gPiAkZGJ7JG5leHRfa2V5fS0+eydlbmQnfTsKLQkJCSRkYnskbmV4dF9rZXl9 LT57J2R1cmF0aW9uJ30gPSAkZGJ7JG5leHRfa2V5fS0+eydub3RpZnknfSAtICRkYnskbmV4dF9r ZXl9LT57J3N0YXJ0J307Ci0JCQkkZW5kID0gJGRieyRrZXl9LT57J25vdGlmeSd9OwogCQkJZGll IGlmICRkYnskbmV4dF9rZXl9LT57J3N0YXJ0J30gPiAkZGJ7JG5leHRfa2V5fS0+eydlbmQnfTsK IAkJfQotCQlkaWUgaWYgJGRieyRrZXl9LT57J3N0YXJ0J30gPiAkZGJ7JGtleX0tPnsnZW5kJ307 CisJCWRpZSBpZiAkc3RhcnQgPiAkZW5kOwogCX0KK30KKworQHNvcnRlZF9rZXlzID0gc29ydCBz b3J0U3RhcnQga2V5cyAlZGIgaWYgJHJlX3NvcnQ7CisKK2ZvcmVhY2ggbXkgJGtleSAoQHNvcnRl ZF9rZXlzKSB7CisJbXkgJHJpbmcgPSAkZGJ7JGtleX0tPnsncmluZyd9OworCW15ICRlbmQgPSAk ZGJ7JGtleX0tPnsnZW5kJ307CisJbXkgJHN0YXJ0ID0gJGRieyRrZXl9LT57J3N0YXJ0J307CisJ bXkgJG5vdGlmeSA9ICRkYnska2V5fS0+eydub3RpZnknfTsKKworCSRkYnska2V5fS0+eydjb250 ZXh0LWNvbXBsZXRlLWRlbGF5J30gPSAkZW5kIC0gJG5vdGlmeTsKKwkkZGJ7JGtleX0tPnsnZXhl Y3V0ZS1kZWxheSd9ID0gJHN0YXJ0IC0gJGRieyRrZXl9LT57J3N1Ym1pdCd9OworCSRkYnska2V5 fS0+eydzdWJtaXQtZGVsYXknfSA9ICRkYnska2V5fS0+eydzdWJtaXQnfSAtICRkYnska2V5fS0+ eydxdWV1ZSd9OworCSRkYnska2V5fS0+eydkdXJhdGlvbid9ID0gJG5vdGlmeSAtICRzdGFydDsK KworCSRydW5uaW5neyRyaW5nfSArPSAkZW5kIC0gJHN0YXJ0IHVubGVzcyBleGlzdHMgJGRieyRr ZXl9LT57J25vLWVuZCd9OworCSRydW5uYWJsZXskcmluZ30gKz0gJGRieyRrZXl9LT57J2V4ZWN1 dGUtZGVsYXknfTsKKwkkcXVldWVkeyRyaW5nfSArPSAkc3RhcnQgLSAkZGJ7JGtleX0tPnsnZXhl Y3V0ZS1kZWxheSd9IC0gJGRieyRrZXl9LT57J3F1ZXVlJ307CisKKwkkYmF0Y2hfY291bnR7JHJp bmd9Kys7CisKIAkkYmF0Y2hfYXZneyRyaW5nfSArPSAkZGJ7JGtleX0tPnsnZHVyYXRpb24nfTsK LQkkYmF0Y2hfdG90YWxfYXZneyRyaW5nfSArPSAkZW5kIC0gJGRieyRrZXl9LT57J3N0YXJ0J307 CisJJGJhdGNoX3RvdGFsX2F2Z3skcmluZ30gKz0gJGVuZCAtICRzdGFydDsKIAogCSRzdWJtaXRf YXZneyRyaW5nfSArPSAkZGJ7JGtleX0tPnsnc3VibWl0LWRlbGF5J307CiAJJGV4ZWN1dGVfYXZn eyRyaW5nfSArPSAkZGJ7JGtleX0tPnsnZXhlY3V0ZS1kZWxheSd9OwotCSRjdHhzYXZlX2F2Z3sk cmluZ30gKz0gJGRieyRrZXl9LT57J2VuZCd9IC0gJGRieyRrZXl9LT57J25vdGlmeSd9OworCSRj dHhzYXZlX2F2Z3skcmluZ30gKz0gJGVuZCAtICRub3RpZnk7CiB9CiAKLUBzb3J0ZWRfa2V5cyA9 IHNvcnQgc29ydFN0YXJ0IGtleXMgJWRiIGlmICRyZV9zb3J0OwotCiBmb3JlYWNoIG15ICRyaW5n IChzb3J0IGtleXMgJWJhdGNoX2F2ZykgewogCSRiYXRjaF9hdmd7JHJpbmd9IC89ICRiYXRjaF9j b3VudHskcmluZ307CiAJJGJhdGNoX3RvdGFsX2F2Z3skcmluZ30gLz0gJGJhdGNoX2NvdW50eyRy aW5nfTsKLS0gCjIuMTQuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KaWd0LWRldiBtYWlsaW5nIGxpc3QKaWd0LWRldkBsaXN0cy5mcmVlZGVza3RvcC5v cmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9pZ3QtZGV2 Cg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t 04/11] scripts/trace.pl: Calculate stats only after all munging Date: Tue, 6 Mar 2018 12:43:08 +0000 Message-ID: <20180306124315.30208-5-tvrtko.ursulin@linux.intel.com> References: <20180306124315.30208-1-tvrtko.ursulin@linux.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Received: from mail-wr0-x231.google.com (mail-wr0-x231.google.com [IPv6:2a00:1450:400c:c0c::231]) by gabe.freedesktop.org (Postfix) with ESMTPS id 37C296E6B1 for ; Tue, 6 Mar 2018 12:43:30 +0000 (UTC) Received: by mail-wr0-x231.google.com with SMTP id m12so20757351wrm.13 for ; Tue, 06 Mar 2018 04:43:30 -0800 (PST) In-Reply-To: <20180306124315.30208-1-tvrtko.ursulin@linux.intel.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: intel-gfx-bounces@lists.freedesktop.org Sender: "Intel-gfx" To: igt-dev@lists.freedesktop.org Cc: Intel-gfx@lists.freedesktop.org List-Id: intel-gfx@lists.freedesktop.org RnJvbTogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KClRoZXJlIGFy ZSB2YXJpb3VzIHN0YXRpc3RpY3MgYmVpbmcgY2FsY3VsYXRlZCBtdWx0aXBsZSB0aW1lcyBpbgpt dWx0aXBsZSBwbGFjZXMgd2hpbGUgdGhlIGxvZyBmaWxlIGlzIGJlaW5nIHJlYWQgaW4uIFNvbWUg b2YgdGhlc2UgYXJlCnRoZW4gcmUtY2FsY3VsYXRlZCB3aGVuIHRoZSBkYXRhYmFzZSBpcyBtdW5n ZWQgdG8gY29ycmVjdCB2YXJpb3VzCmlzc3VlcyB3aXRoIHRoZSBsb2dzLiBUaGlzIHBhdGNoIGNv bnNvbGlkYXRlcyB0aGUgY2FsY3VsYXRpb25zIGludG8gYQpzZXBhcmF0ZSBwYXNzIGFmdGVyIGFs bCB0aGUgcmVhZGluZyBhbmQgbXVuZ2luZyBoYXMgYmVlbiBkb25lLgoKTm90ZSB0aGF0IHRoaXMg YWN0dWFsbHkgcHJvZHVjZXMgYSBkaWZmZXJlbnQgZmluYWwgb3V0cHV0IGFzIHRoZQonZXhlY3V0 ZS1kZWxheScgdmFsdWVzIHdlcmUgbm90IHByZXZpb3VzbHkgYmVpbmcgcmUtY2FsY3VsYXRlZCBh ZnRlcgphbGwgdGhlIGZpeHVwcy4gVGh1cyB3ZXJlIGJhc2VkIG9uIGFuIGluY29ycmVjdCBjYWxj dWxhdGlvbi4KCnYyOiBSZWR1Y2Ugc2NvcGUgb2Ygc29tZSBsb2NhbCB2YXJpYWJsZXMgW1R2cnRr b10KClNpZ25lZC1vZmYtYnk6IEpvaG4gSGFycmlzb24gPEpvaG4uQy5IYXJyaXNvbkBpbnRlbC5j b20+CkNjOiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpSZXZpZXdl ZC1ieTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KLS0tCiBzY3Jp cHRzL3RyYWNlLnBsIHwgNTQgKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tCiAxIGZpbGUgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMjYgZGVs ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvc2NyaXB0cy90cmFjZS5wbCBiL3NjcmlwdHMvdHJhY2Uu cGwKaW5kZXggZDU3MWE4NzBmY2EyLi5kODgwYTczM2JmZjggMTAwNzU1Ci0tLSBhL3NjcmlwdHMv dHJhY2UucGwKKysrIGIvc2NyaXB0cy90cmFjZS5wbApAQCAtNDM3LDggKzQzNyw3IEBAIHdoaWxl ICg8PikgewogCQkkcmVxeydnbG9iYWwnfSA9ICR0cHsnZ2xvYmFsJ307CiAJCSRyZXF7J3BvcnQn fSA9ICR0cHsncG9ydCd9OwogCQkkcmVxeydxdWV1ZSd9ID0gJHF1ZXVleyRrZXl9OwotCQkkcmVx eydzdWJtaXQtZGVsYXknfSA9ICRzdWJtaXR7JGtleX0gLSAkcXVldWV7JGtleX07Ci0JCSRyZXF7 J2V4ZWN1dGUtZGVsYXknfSA9ICRyZXF7J3N0YXJ0J30gLSAkc3VibWl0eyRrZXl9OworCQkkcmVx eydzdWJtaXQnfSA9ICRzdWJtaXR7JGtleX07CiAJCSRyaW5nc3skcmluZ30gPSAkZ2lkKysgdW5s ZXNzIGV4aXN0cyAkcmluZ3N7JHJpbmd9OwogCQkkcmluZ21hcHskcmluZ3N7JHJpbmd9fSA9ICRy aW5nOwogCQkkZGJ7JGtleX0gPSBcJXJlcTsKQEAgLTQ1OCw4ICs0NTcsNiBAQCB3aGlsZSAoPD4p IHsKIAkJCSRkYnska2V5fS0+eydub3RpZnknfSA9ICRkYnska2V5fS0+eydlbmQnfTsKIAkJCSRk Ynska2V5fS0+eyduby1ub3RpZnknfSA9IDE7CiAJCX0KLQkJJGRieyRrZXl9LT57J2R1cmF0aW9u J30gPSAkZGJ7JGtleX0tPnsnbm90aWZ5J30gLSAkZGJ7JGtleX0tPnsnc3RhcnQnfTsKLQkJJGRi eyRrZXl9LT57J2NvbnRleHQtY29tcGxldGUtZGVsYXknfSA9ICRkYnska2V5fS0+eydlbmQnfSAt ICRkYnska2V5fS0+eydub3RpZnknfTsKIAl9IGVsc2lmICgkdHBfbmFtZSBlcSAnaTkxNTppbnRl bF9lbmdpbmVfbm90aWZ5OicpIHsKIAkJJG5vdGlmeXtnbG9iYWxfa2V5KCRyaW5nLCAkc2Vxbm8p fSA9ICR0aW1lOwogCX0gZWxzaWYgKCR0cF9uYW1lIGVxICdpOTE1OmludGVsX2dwdV9mcmVxX2No YW5nZTonKSB7CkBAIC00OTMsMTYgKzQ5MCwxMSBAQCBmb3JlYWNoIG15ICRrZXkgKGtleXMgJWRi KSB7CiAJCQkkZGJ7JGtleX0tPnsnbm90aWZ5J30gPSAkZGJ7JGtleX0tPnsnZW5kJ307CiAJCQkk ZGJ7JGtleX0tPnsnaW5jb21wbGV0ZSd9ID0gMTsKIAkJfQotCi0JCSRkYnska2V5fS0+eydkdXJh dGlvbid9ID0gJGRieyRrZXl9LT57J25vdGlmeSd9IC0gJGRieyRrZXl9LT57J3N0YXJ0J307Ci0J CSRkYnska2V5fS0+eydjb250ZXh0LWNvbXBsZXRlLWRlbGF5J30gPSAkZGJ7JGtleX0tPnsnZW5k J30gLSAkZGJ7JGtleX0tPnsnbm90aWZ5J307CiAJfSBlbHNlIHsKIAkJIyBOb3RpZnkgYXJyaXZl ZCBhZnRlciBjb250ZXh0IGNvbXBsZXRlLgogCQlpZiAoZXhpc3RzICRkYnska2V5fS0+eyduby1u b3RpZnknfSBhbmQgZXhpc3RzICRub3RpZnl7JGdrZXl9KSB7CiAJCQlkZWxldGUgJGRieyRrZXl9 LT57J25vLW5vdGlmeSd9OwogCQkJJGRieyRrZXl9LT57J25vdGlmeSd9ID0gJG5vdGlmeXskZ2tl eX07Ci0JCQkkZGJ7JGtleX0tPnsnZHVyYXRpb24nfSA9ICRkYnska2V5fS0+eydub3RpZnknfSAt ICRkYnska2V5fS0+eydzdGFydCd9OwotCQkJJGRieyRrZXl9LT57J2NvbnRleHQtY29tcGxldGUt ZGVsYXknfSA9ICRkYnska2V5fS0+eydlbmQnfSAtICRkYnska2V5fS0+eydub3RpZnknfTsKIAkJ fQogCX0KIH0KQEAgLTUyOCw4ICs1MjAsNiBAQCBmb3JlYWNoIG15ICRrZXkgKGtleXMgJWRiKSB7 CiAJaWYgKGV4aXN0cyAkZGJ7JG5leHRfa2V5fSkgewogCQkkZGJ7JGtleX0tPnsnbm90aWZ5J30g PSAkZGJ7JG5leHRfa2V5fS0+eydlbmQnfTsKIAkJJGRieyRrZXl9LT57J2VuZCd9ID0gJGRieyRr ZXl9LT57J25vdGlmeSd9OwotCQkkZGJ7JGtleX0tPnsnZHVyYXRpb24nfSA9ICRkYnska2V5fS0+ eydub3RpZnknfSAtICRkYnska2V5fS0+eydzdGFydCd9OwotCQkkZGJ7JGtleX0tPnsnY29udGV4 dC1jb21wbGV0ZS1kZWxheSd9ID0gJGRieyRrZXl9LT57J2VuZCd9IC0gJGRieyRrZXl9LT57J25v dGlmeSd9OwogCX0KIH0KIApAQCAtNTczLDE3ICs1NjMsMTEgQEAgZm9yZWFjaCBteSAka2V5IChA c29ydGVkX2tleXMpIHsKIAkkZmlyc3RfdHMgPSAkZGJ7JGtleX0tPnsncXVldWUnfSBpZiBub3Qg ZGVmaW5lZCAkZmlyc3RfdHMgb3IgJGRieyRrZXl9LT57J3F1ZXVlJ30gPCAkZmlyc3RfdHM7CiAJ JGxhc3RfdHMgPSAkZW5kIGlmICRlbmQgPiAkbGFzdF90czsKIAotCSRydW5uaW5neyRyaW5nfSAr PSAkZW5kIC0gJGRieyRrZXl9LT57J3N0YXJ0J30gdW5sZXNzIGV4aXN0cyAkZGJ7JGtleX0tPnsn bm8tZW5kJ307Ci0JJHJ1bm5hYmxleyRyaW5nfSArPSAkZGJ7JGtleX0tPnsnZXhlY3V0ZS1kZWxh eSd9OwotCSRxdWV1ZWR7JHJpbmd9ICs9ICRkYnska2V5fS0+eydzdGFydCd9IC0gJGRieyRrZXl9 LT57J2V4ZWN1dGUtZGVsYXknfSAtICRkYnska2V5fS0+eydxdWV1ZSd9OwotCi0JJGJhdGNoX2Nv dW50eyRyaW5nfSsrOwotCiAJIyBjb3JyZWN0IGR1cmF0aW9uIG9mIG1lcmdlZCBiYXRjaGVzCiAJ aWYgKCRjb3JyZWN0X2R1cmF0aW9ucyBhbmQgZXhpc3RzICRkYnska2V5fS0+eyduby1lbmQnfSkg ewotCQlteSAkc3RhcnQgPSAkZGJ7JGtleX0tPnsnc3RhcnQnfTsKIAkJbXkgJGN0eCA9ICRkYnsk a2V5fS0+eydjdHgnfTsKIAkJbXkgJHNlcW5vID0gJGRieyRrZXl9LT57J3NlcW5vJ307CisJCW15 ICRzdGFydCA9ICRkYnska2V5fS0+eydzdGFydCd9OwogCQlteSAkbmV4dF9rZXk7CiAJCW15ICRp ID0gMTsKIApAQCAtNTk0LDI1ICs1NzgsNDMgQEAgZm9yZWFjaCBteSAka2V5IChAc29ydGVkX2tl eXMpIHsKIAogCQkjIDIwdXMgdG9sZXJhbmNlCiAJCWlmIChleGlzdHMgJGRieyRuZXh0X2tleX0g YW5kICRkYnskbmV4dF9rZXl9LT57J3N0YXJ0J30gPCAkc3RhcnQgKyAyMCkgeworCQkJbXkgJG5v dGlmeSA9ICRkYnska2V5fS0+eydub3RpZnknfTsKIAkJCSRyZV9zb3J0ID0gMTsKLQkJCSRkYnsk bmV4dF9rZXl9LT57J3N0YXJ0J30gPSAkc3RhcnQgKyAkZGJ7JGtleX0tPnsnZHVyYXRpb24nfTsK KwkJCSRkYnskbmV4dF9rZXl9LT57J3N0YXJ0J30gPSAkbm90aWZ5OwogCQkJJGRieyRuZXh0X2tl eX0tPnsnc3RhcnQnfSA9ICRkYnskbmV4dF9rZXl9LT57J2VuZCd9IGlmICRkYnskbmV4dF9rZXl9 LT57J3N0YXJ0J30gPiAkZGJ7JG5leHRfa2V5fS0+eydlbmQnfTsKLQkJCSRkYnskbmV4dF9rZXl9 LT57J2R1cmF0aW9uJ30gPSAkZGJ7JG5leHRfa2V5fS0+eydub3RpZnknfSAtICRkYnskbmV4dF9r ZXl9LT57J3N0YXJ0J307Ci0JCQkkZW5kID0gJGRieyRrZXl9LT57J25vdGlmeSd9OwogCQkJZGll IGlmICRkYnskbmV4dF9rZXl9LT57J3N0YXJ0J30gPiAkZGJ7JG5leHRfa2V5fS0+eydlbmQnfTsK IAkJfQotCQlkaWUgaWYgJGRieyRrZXl9LT57J3N0YXJ0J30gPiAkZGJ7JGtleX0tPnsnZW5kJ307 CisJCWRpZSBpZiAkc3RhcnQgPiAkZW5kOwogCX0KK30KKworQHNvcnRlZF9rZXlzID0gc29ydCBz b3J0U3RhcnQga2V5cyAlZGIgaWYgJHJlX3NvcnQ7CisKK2ZvcmVhY2ggbXkgJGtleSAoQHNvcnRl ZF9rZXlzKSB7CisJbXkgJHJpbmcgPSAkZGJ7JGtleX0tPnsncmluZyd9OworCW15ICRlbmQgPSAk ZGJ7JGtleX0tPnsnZW5kJ307CisJbXkgJHN0YXJ0ID0gJGRieyRrZXl9LT57J3N0YXJ0J307CisJ bXkgJG5vdGlmeSA9ICRkYnska2V5fS0+eydub3RpZnknfTsKKworCSRkYnska2V5fS0+eydjb250 ZXh0LWNvbXBsZXRlLWRlbGF5J30gPSAkZW5kIC0gJG5vdGlmeTsKKwkkZGJ7JGtleX0tPnsnZXhl Y3V0ZS1kZWxheSd9ID0gJHN0YXJ0IC0gJGRieyRrZXl9LT57J3N1Ym1pdCd9OworCSRkYnska2V5 fS0+eydzdWJtaXQtZGVsYXknfSA9ICRkYnska2V5fS0+eydzdWJtaXQnfSAtICRkYnska2V5fS0+ eydxdWV1ZSd9OworCSRkYnska2V5fS0+eydkdXJhdGlvbid9ID0gJG5vdGlmeSAtICRzdGFydDsK KworCSRydW5uaW5neyRyaW5nfSArPSAkZW5kIC0gJHN0YXJ0IHVubGVzcyBleGlzdHMgJGRieyRr ZXl9LT57J25vLWVuZCd9OworCSRydW5uYWJsZXskcmluZ30gKz0gJGRieyRrZXl9LT57J2V4ZWN1 dGUtZGVsYXknfTsKKwkkcXVldWVkeyRyaW5nfSArPSAkc3RhcnQgLSAkZGJ7JGtleX0tPnsnZXhl Y3V0ZS1kZWxheSd9IC0gJGRieyRrZXl9LT57J3F1ZXVlJ307CisKKwkkYmF0Y2hfY291bnR7JHJp bmd9Kys7CisKIAkkYmF0Y2hfYXZneyRyaW5nfSArPSAkZGJ7JGtleX0tPnsnZHVyYXRpb24nfTsK LQkkYmF0Y2hfdG90YWxfYXZneyRyaW5nfSArPSAkZW5kIC0gJGRieyRrZXl9LT57J3N0YXJ0J307 CisJJGJhdGNoX3RvdGFsX2F2Z3skcmluZ30gKz0gJGVuZCAtICRzdGFydDsKIAogCSRzdWJtaXRf YXZneyRyaW5nfSArPSAkZGJ7JGtleX0tPnsnc3VibWl0LWRlbGF5J307CiAJJGV4ZWN1dGVfYXZn eyRyaW5nfSArPSAkZGJ7JGtleX0tPnsnZXhlY3V0ZS1kZWxheSd9OwotCSRjdHhzYXZlX2F2Z3sk cmluZ30gKz0gJGRieyRrZXl9LT57J2VuZCd9IC0gJGRieyRrZXl9LT57J25vdGlmeSd9OworCSRj dHhzYXZlX2F2Z3skcmluZ30gKz0gJGVuZCAtICRub3RpZnk7CiB9CiAKLUBzb3J0ZWRfa2V5cyA9 IHNvcnQgc29ydFN0YXJ0IGtleXMgJWRiIGlmICRyZV9zb3J0OwotCiBmb3JlYWNoIG15ICRyaW5n IChzb3J0IGtleXMgJWJhdGNoX2F2ZykgewogCSRiYXRjaF9hdmd7JHJpbmd9IC89ICRiYXRjaF9j b3VudHskcmluZ307CiAJJGJhdGNoX3RvdGFsX2F2Z3skcmluZ30gLz0gJGJhdGNoX2NvdW50eyRy aW5nfTsKLS0gCjIuMTQuMQoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX18KSW50ZWwtZ2Z4IG1haWxpbmcgbGlzdApJbnRlbC1nZnhAbGlzdHMuZnJlZWRlc2t0 b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4vbGlzdGluZm8vaW50 ZWwtZ2Z4Cg==