From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by gabe.freedesktop.org (Postfix) with ESMTPS id 1E4176EF61 for ; Thu, 12 Jul 2018 11:00:08 +0000 (UTC) Received: by mail-wr1-x444.google.com with SMTP id a3-v6so12024220wrt.2 for ; Thu, 12 Jul 2018 04:00:08 -0700 (PDT) From: Tvrtko Ursulin Date: Thu, 12 Jul 2018 11:59:52 +0100 Message-Id: <20180712105958.12953-4-tvrtko.ursulin@linux.intel.com> In-Reply-To: <20180712105958.12953-1-tvrtko.ursulin@linux.intel.com> References: <20180712105958.12953-1-tvrtko.ursulin@linux.intel.com> Subject: [igt-dev] [PATCH i-g-t 3/9] trace.pl: Improve readability of graphical timeline representation 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: RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldlIGFkZCBz dHJpcGVzIGZvciBkaWZmZXJlbnQgc3RhZ2VzIG9mIHJlcXVlc3QgZXhlY3V0aW9uIHNvIGl0IGlz IGVhc2llcgp0byBmb2xsb3cgb25lIGNvbnRleHQgaW4gdGhlIG11bHRpLWNvbG91ciBtb2RlLgoK VmVydGljYWwgc3RyaXBlIHBhdHRlcm4gaW5kaWNhdGVzIHBpcGVsaW5lICJibG9ja2FnZXMiIC0g cmVxdWVzdHMgd2FpdGluZwpmb3IgZGVwZW5kZW5jaWVzIGJlZm9yZSB0aGV5IGFyZSBydW5uYWJs ZS4KCkRpYWdvbmFsIHN0cmlwZXMgaW5kaWNhdGUgcnVubmFibGUgcmVxdWVzdHMgd2FpdGluZyBm b3IgR1BVIHRpbWUuCgpIb3Jpem9udGFsIHN0cmlwcyBhcmUgcmVxdWVzdHMgZXhlY3V0aW5nIG9u IHRoZSBHUFUuCgpBbHNvIHVzZSB0aGlzIG5ldyBtdWx0aS1jb2xvdXJlZCBtb2RlIGZyb20gbWVk aWEtYmVuY2gucGwuCgp2MjoKIEpvaG4gSGFycmlzb246CiAqIE1lbnRpb24gbWVkaWEtYmVuY2gu cGwgaW4gdGhlIGNvbW1pdC4KICogRml4IEhUTUwgZm9yIHNpbmdsZSBjb2xvdXIgbW9kZS4KCnYz OgogKiBSZWJhc2UuCiAqIEFwcGx5IHN0cmlwZXMgdG8gbGVnYWN5IGNvbG91cmluZyBhcyB3ZWxs LgoKdjQ6CiBKb2huIEhhcnJpc29uOgogKiBVc2UgcGVyIGNvbnRleHQgY29sb3VycyBmb3IgY3R4 c2F2ZSBhbmQgaW5jb21wbGV0ZSBib3hlcy4KICogQ2xlYXJlciB0aW1lbGluZSBsZWdlbmQuCgpT aWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpD YzogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KLS0tCiBzY3JpcHRz L21lZGlhLWJlbmNoLnBsIHwgICAyICstCiBzY3JpcHRzL3RyYWNlLnBsICAgICAgIHwgMTEyICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQs IDkwIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NjcmlwdHMv bWVkaWEtYmVuY2gucGwgYi9zY3JpcHRzL21lZGlhLWJlbmNoLnBsCmluZGV4IGM1NjI4YzdmMjgz Ni4uMzc1ODQ0ZDljZGY2IDEwMDc1NQotLS0gYS9zY3JpcHRzL21lZGlhLWJlbmNoLnBsCisrKyBi L3NjcmlwdHMvbWVkaWEtYmVuY2gucGwKQEAgLTIwNyw3ICsyMDcsNyBAQCBzdWIgdHJhY2Vfd29y a2xvYWQKIAlzaG93X2NtZCgkY21kKTsKIAlzeXN0ZW0oJGNtZCk7CiAKLQkkY21kID0gInBlcmYg c2NyaXB0IHwgJHRyYWNlcGwgLS1odG1sIC14IGN0eHNhdmUgLXMgIjsKKwkkY21kID0gInBlcmYg c2NyaXB0IHwgJHRyYWNlcGwgLS1odG1sIC14IGN0eHNhdmUgLXMgLWMgIjsKIAkkY21kIC49IGpv aW4gJyAnLCBtYXAoIi1pICRfIiwgQHNraXBfZW5naW5lKTsKIAkkY21kIC49ICIgPiAke2ZpbGV9 Lmh0bWwiOwogCXNob3dfY21kKCRjbWQpOwpkaWZmIC0tZ2l0IGEvc2NyaXB0cy90cmFjZS5wbCBi L3NjcmlwdHMvdHJhY2UucGwKaW5kZXggNzI2YzkwZDQ0NTQ3Li41NmE0ZDRmZDhiYjIgMTAwNzU1 Ci0tLSBhL3NjcmlwdHMvdHJhY2UucGwKKysrIGIvc2NyaXB0cy90cmFjZS5wbApAQCAtNzM3LDkg KzczNywxNCBAQCBmb3JlYWNoIG15ICRrZXkgKGtleXMgJXJlcXdhaXQpIHsKIHNheSBzcHJpbnRm KCdHUFU6ICUuMmYlJSBpZGxlLCAlLjJmJSUgYnVzeScsCiAJICAgICAkZmxhdF9idXN5eydncHUt aWRsZSd9LCAkZmxhdF9idXN5eydncHUtYnVzeSd9KSB1bmxlc3MgJGh0bWw7CiAKLW15ICRxdWV1 ZWRfY29sb3VyID0gJGNvbG91cl9jb250ZXh0cyA/ICdtdWx0aS1jb2xvdXIgbGlnaHQnIDogJ2Js dWUnOwotbXkgJHJ1bm5hYmxlX2NvbG91ciA9ICRjb2xvdXJfY29udGV4dHMgPyAnbXVsdGktY29s b3VyIGRhcmsnIDogJ2dyZXknOwotbXkgJGV4ZWN1dGVfY29sb3VyID0gJGNvbG91cl9jb250ZXh0 cyA/ICdtdWx0aS1jb2xvdXInIDogJ3BpbmsnOworbXkgJHRpbWVsaW5lX3RleHQgPSAkY29sb3Vy X2NvbnRleHRzID8KKwkJICAgICdQZXIgY29udGV4dCBjb2xvdXJlZCBzaGFkaW5nIGxpa2U6JyA6 ICdCb3ggc2hhZGluZyBsaWtlOic7CisKK215ICRxdWV1ZWRfc3R5bGUgPSBib3hfc3R5bGUoJG1p bl9jdHgsICdxdWV1ZScpOworbXkgJHJlYWR5X3N0eWxlID0gYm94X3N0eWxlKCRtaW5fY3R4LCAn cmVhZHknKTsKK215ICRleGVjdXRlX3N0eWxlID0gYm94X3N0eWxlKCRtaW5fY3R4LCAnZXhlY3V0 ZScpOworbXkgJGN0eHNhdmVfc3R5bGUgPSBib3hfc3R5bGUoJG1pbl9jdHgsICdjdHhzYXZlJyk7 CitteSAkaW5jb21wbGV0ZV9zdHlsZSA9IGJveF9zdHlsZSgkbWluX2N0eCwgJ2luY29tcGxldGUn KTsKIAogcHJpbnQgPDxFTkRIVE1MIGlmICRodG1sOwogPCFET0NUWVBFIEhUTUw+CkBAIC03NTgs OSArNzYzLDI4IEBAIHByaW50IDw8RU5ESFRNTCBpZiAkaHRtbDsKIDwvaGVhZD4KIDxib2R5Pgog PHA+Ci0kZXhlY3V0ZV9jb2xvdXIgPSByZXF1ZXN0cyBleGVjdXRpbmcgb24gdGhlIEdQVTxicj4K LSRydW5uYWJsZV9jb2xvdXIgPSBydW5uYWJsZSByZXF1ZXN0cyB3YWl0aW5nIGZvciBhIHNsb3Qg b24gR1BVPGJyPgotJHF1ZXVlZF9jb2xvdXIgPSByZXF1ZXN0cyB3YWl0aW5nIG9uIGZlbmNlcyBh bmQgZGVwZW5kZW5jaWVzIGJlZm9yZSB0aGV5IGFyZSBydW5uYWJsZTxicj4KKzxiPlRpbWVsaW5l IHJlcXVlc3Qgdmlldzo8L2I+Cis8dGFibGU+Cis8dHI+PHRkIGNvbHNwYW49JzQnPiR0aW1lbGlu ZV90ZXh0PC90ZD48L3RyPgorPHRyPgorPHRkIGFsaWduPSdjZW50ZXInPjxkaXYgc3R5bGU9JyRx dWV1ZWRfc3R5bGUnPlFVRVVFRDwvZGl2PjwvdGQ+Cis8dGQgYWxpZ249J2NlbnRlcic+PGRpdiBz dHlsZT0nJHJlYWR5X3N0eWxlJz5SRUFEWTwvZGl2PjwvdGQ+Cis8dGQgYWxpZ249J2NlbnRlcic+ PGRpdiBzdHlsZT0nJGV4ZWN1dGVfc3R5bGUnPkVYRUNVVEU8L2Rpdj48L3RkPgorPHRkIGFsaWdu PSdjZW50ZXInPjxkaXYgc3R5bGU9JyRjdHhzYXZlX3N0eWxlJz5DVFhTQVZFPC9kaXY+PC90ZD4K KzwvdHI+PHRyPgorPHRkPjwvdGQ+Cis8dGQ+PC90ZD4KKzx0ZCBhbGlnbj0nY2VudGVyJz48ZGl2 IHN0eWxlPSckaW5jb21wbGV0ZV9zdHlsZSc+KElOQ09NUExFVEUpPC9kaXY+PC90ZD4KKzx0ZD48 L3RkPgorPC90ci8+PC90YWJsZT4KKzwvcD4KKzxwPgorPHNtYWxsPgorUVVFVUVEID0gcmVxdWVz dHMgZXhlY3V0aW5nIG9uIHRoZSBHUFU8YnI+CitSRUFEWSA9IHJ1bm5hYmxlIHJlcXVlc3RzIHdh aXRpbmcgZm9yIGEgc2xvdCBvbiBHUFU8YnI+CitFWEVDVVRFID0gcmVxdWVzdHMgd2FpdGluZyBv biBmZW5jZXMgYW5kIGRlcGVuZGVuY2llcyBiZWZvcmUgdGhleSBhcmUgcnVubmFibGU8YnI+CitD VFhTQVZFID0gR1BVIHNhdmluZyB0aGUgY29udGV4dCBpbWFnZTxicj4KKzwvc21hbGw+CiA8L3A+ CiA8cD4KIEJveGVzIGFyZSBpbiBmb3JtYXQgJ2N0eC1pZC9zZXFubycuCkBAIC04ODAsMTcgKzkw NCwzMSBAQCBzdWIgc29ydFF1ZXVlIHsKIAogc3ViIGN0eF9jb2xvdXIKIHsKLQlteSAoJGN0eCwg JHN0YWdlKSA9IChAXyk7CisJbXkgKCRjdHgsICRzdGFnZSwgJGxmYWMpID0gKEBfKTsKIAlteSAo JHMsICRsKTsKIAlteSAkdmFsOwogCiAJdW5sZXNzICgkY29sb3VyX2NvbnRleHRzKSB7CiAJCWlm ICgkc3RhZ2UgZXEgJ3F1ZXVlJykgewotCQkJcmV0dXJuICdsaWdodGJsdWU7JzsKKwkJCSR2YWwg PSAyMTA7CisJCQkkcyA9IDY1OworCQkJJGwgPSA1MjsKIAkJfSBlbHNpZiAoJHN0YWdlIGVxICdy ZWFkeScpIHsKLQkJCXJldHVybiAnbGlnaHRncmV5Oyc7CisJCQkkdmFsID0gMDsKKwkJCSRzID0g MDsKKwkJCSRsID0gNDc7CiAJCX0gZWxzaWYgKCRzdGFnZSBlcSAnZXhlY3V0ZScpIHsKLQkJCXJl dHVybiAncGluazsnOworCQkJJHZhbCA9IDM0NjsKKwkJCSRzID0gNjg7CisJCQkkbCA9IDY1Owor CQl9IGVsc2lmICgkc3RhZ2UgZXEgJ2N0eHNhdmUnKSB7CisJCQkkdmFsID0gMjY7CisJCQkkcyA9 IDkwOworCQkJJGwgPSA1MjsKKwkJfSBlbHNpZiAoJHN0YWdlIGVxICdpbmNvbXBsZXRlJykgewor CQkJJHZhbCA9IDA7CisJCQkkcyA9IDg1OworCQkJJGwgPSA1MDsKIAkJfQogCX0gZWxzZSB7CiAJ CWlmICgkc3RhZ2UgZXEgJ3F1ZXVlJykgewpAQCAtOTAyLDEyICs5NDAsNDUgQEAgc3ViIGN0eF9j b2xvdXIKIAkJfSBlbHNpZiAoJHN0YWdlIGVxICdleGVjdXRlJykgewogCQkJJHMgPSA4MDsKIAkJ CSRsID0gNjU7CisJCX0gZWxzaWYgKCRzdGFnZSBlcSAnY3R4c2F2ZScpIHsKKwkJCSRzID0gNzU7 CisJCQkkbCA9IDcwOworCQl9IGVsc2lmICgkc3RhZ2UgZXEgJ2luY29tcGxldGUnKSB7CisJCQkk cyA9IDgwOworCQkJJGwgPSAyNTsKIAkJfQorCisJCSR2YWwgPSBpbnQoMzYwIC8gKCRtYXhfY3R4 IC0gJG1pbl9jdHggKyAxKSkgKiAoJGN0eCAtICRtaW5fY3R4KTsKIAl9CiAKLQkkdmFsID0gaW50 KDM2MCAvICgkbWF4X2N0eCAtICRtaW5fY3R4ICsgMSkpICogKCRjdHggLSAkbWluX2N0eCk7CisJ JGwgPSBpbnQoJGwgKiAkbGZhYyk7CiAKLQlyZXR1cm4gImhzbCgkdmFsLCAkcyUsICRsJSk7IjsK KwlyZXR1cm4gImhzbCgkdmFsLCAkcyUsICRsJSkiOworfQorCitzdWIgYm94X3N0eWxlCit7CisJ bXkgKCRjdHgsICRzdGFnZSkgPSBAXzsKKwlteSAkZGVnOworCisJaWYgKCRzdGFnZSBlcSAncXVl dWUnKSB7CisJCSRkZWcgPSA5MDsKKwl9IGVsc2lmICgkc3RhZ2UgZXEgJ3JlYWR5JykgeworCQkk ZGVnID0gNDU7CisJfSBlbHNpZiAoJHN0YWdlIGVxICdleGVjdXRlJykgeworCQkkZGVnID0gMDsK Kwl9IGVsc2lmICgkc3RhZ2UgZXEgJ2N0eHNhdmUnKSB7CisJCSRkZWcgPSAxMDU7CisJfSBlbHNp ZiAoJHN0YWdlIGVxICdpbmNvbXBsZXRlJykgeworCQkkZGVnID0gMDsKKwl9CisKKwlyZXR1cm4g J2NvbG9yOiBibGFjazsgYmFja2dyb3VuZDogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgnIC4K KwkJJGRlZyAuICdkZWcsICcgLgorCQljdHhfY29sb3VyKCRjdHgsICRzdGFnZSwgMS4wKSAuICcs ICcgLgorCQljdHhfY29sb3VyKCRjdHgsICRzdGFnZSwgMS4wKSAuICcgMTBweCwgJyAuCisJCWN0 eF9jb2xvdXIoJGN0eCwgJHN0YWdlLCAwLjkwKSAuICcgMTBweCwgJyAuCisJCWN0eF9jb2xvdXIo JGN0eCwgJHN0YWdlLCAwLjkwKSAuICcgMjBweCk7JzsKIH0KIAogbXkgJGkgPSAwOwpAQCAtOTI1 LDggKzk5Niw3IEBAIGZvcmVhY2ggbXkgJGtleSAoc29ydCBzb3J0UXVldWUga2V5cyAlZGIpIHsK IAkjIHN1Ym1pdCB0byBleGVjdXRlCiAJdW5sZXNzIChleGlzdHMgJHNraXBfYm94eydxdWV1ZSd9 KSB7CiAJCSRza2V5ID0gMiAqICRtYXhfc2Vxbm8gKiAkY3R4ICsgMiAqICRzZXFubzsKLQkJJHN0 eWxlID0gJ2NvbG9yOiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogJyAuCi0JCQkgY3R4X2NvbG91 cigkY3R4LCAncXVldWUnKTsKKwkJJHN0eWxlID0gYm94X3N0eWxlKCRjdHgsICdxdWV1ZScpOwog CQkkY29udGVudCA9ICIkbmFtZTxicj4kZGJ7JGtleX0tPnsnc3VibWl0LWRlbGF5J311cyA8c21h bGw+KCRkYnska2V5fS0+eydleGVjdXRlLWRlbGF5J311cyk8L3NtYWxsPiI7CiAJCSRzdGFydGVu ZCA9ICdzdGFydDogXCcnIC4gdHMoJHF1ZXVlKSAuICdcJywgZW5kOiBcJycgLiB0cygkc3VibWl0 KSAuICdcJyc7CiAJCXByaW50ICJcdHtpZDogJGksIGtleTogJHNrZXksICR0eXBlIGdyb3VwOiAk Z3JvdXAsIHN1Ymdyb3VwOiAkc3ViZ3JvdXAsIHN1Ymdyb3VwT3JkZXI6ICRzdWJncm91cCwgY29u dGVudDogJyRjb250ZW50JywgJHN0YXJ0ZW5kLCBzdHlsZTogXCckc3R5bGVcJ30sXG4iOwpAQCAt OTM2LDggKzEwMDYsNyBAQCBmb3JlYWNoIG15ICRrZXkgKHNvcnQgc29ydFF1ZXVlIGtleXMgJWRi KSB7CiAJIyBleGVjdXRlIHRvIHN0YXJ0CiAJdW5sZXNzIChleGlzdHMgJHNraXBfYm94eydyZWFk eSd9KSB7CiAJCSRza2V5ID0gMiAqICRtYXhfc2Vxbm8gKiAkY3R4ICsgMiAqICRzZXFubyArIDE7 Ci0JCSRzdHlsZSA9ICdjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICcgLgotCQkJIGN0 eF9jb2xvdXIoJGN0eCwgJ3JlYWR5Jyk7CisJCSRzdHlsZSA9IGJveF9zdHlsZSgkY3R4LCAncmVh ZHknKTsKIAkJJGNvbnRlbnQgPSAiPHNtYWxsPiRuYW1lPGJyPiRkYnska2V5fS0+eydleGVjdXRl LWRlbGF5J311czwvc21hbGw+IjsKIAkJJHN0YXJ0ZW5kID0gJ3N0YXJ0OiBcJycgLiB0cygkc3Vi bWl0KSAuICdcJywgZW5kOiBcJycgLiB0cygkc3RhcnQpIC4gJ1wnJzsKIAkJcHJpbnQgIlx0e2lk OiAkaSwga2V5OiAkc2tleSwgJHR5cGUgZ3JvdXA6ICRncm91cCwgc3ViZ3JvdXA6ICRzdWJncm91 cCwgc3ViZ3JvdXBPcmRlcjogJHN1Ymdyb3VwLCBjb250ZW50OiAnJGNvbnRlbnQnLCAkc3RhcnRl bmQsIHN0eWxlOiBcJyRzdHlsZVwnfSxcbiI7CkBAIC05NDcsMTIgKzEwMTYsOSBAQCBmb3JlYWNo IG15ICRrZXkgKHNvcnQgc29ydFF1ZXVlIGtleXMgJWRiKSB7CiAJIyBzdGFydCB0byB1c2VyIGlu dGVycnVwdAogCXVubGVzcyAoZXhpc3RzICRza2lwX2JveHsnZXhlY3V0ZSd9KSB7CiAJCSRza2V5 ID0gLTIgKiAkbWF4X3NlcW5vICogJGN0eCAtIDIgKiAkc2Vxbm8gLSAxOwotCQlpZiAoZXhpc3Rz ICRkYnska2V5fS0+eydpbmNvbXBsZXRlJ30pIHsKLQkJCSRzdHlsZSA9ICdjb2xvcjogd2hpdGU7 IGJhY2tncm91bmQtY29sb3I6IHJlZDsnOwotCQl9IGVsc2UgewotCQkJJHN0eWxlID0gJ2NvbG9y OiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogJyAuCi0JCQkJICBjdHhfY29sb3VyKCRjdHgsICdl eGVjdXRlJyk7Ci0JCX0KKwkJJHN0eWxlID0gYm94X3N0eWxlKCRjdHgsCisJCQkJICAgZXhpc3Rz ICRkYnska2V5fS0+eydpbmNvbXBsZXRlJ30gPworCQkJCSAgICdpbmNvbXBsZXRlJyA6ICdleGVj dXRlJyk7CiAJCSRjb250ZW50ID0gIiRuYW1lIDxzbWFsbD4kZGJ7JGtleX0tPnsncG9ydCd9PC9z bWFsbD4iOwogCQkkY29udGVudCAuPSAnIDxzbWFsbD48aT4/Pz88L2k+PC9zbWFsbD4gJyBpZiBl eGlzdHMgJGRieyRrZXl9LT57J2luY29tcGxldGUnfTsKIAkJJGNvbnRlbnQgLj0gJyA8c21hbGw+ PGk+Kys8L2k+PC9zbWFsbD4gJyBpZiBleGlzdHMgJGRieyRrZXl9LT57J25vLWVuZCd9OwpAQCAt OTY2LDcgKzEwMzIsNyBAQCBmb3JlYWNoIG15ICRrZXkgKHNvcnQgc29ydFF1ZXVlIGtleXMgJWRi KSB7CiAJIyB1c2VyIGludGVycnVwdCB0byBjb250ZXh0IGNvbXBsZXRlCiAJdW5sZXNzIChleGlz dHMgJHNraXBfYm94eydjdHhzYXZlJ30pIHsKIAkJJHNrZXkgPSAtMiAqICRtYXhfc2Vxbm8gKiAk Y3R4IC0gMiAqICRzZXFubzsKLQkJJHN0eWxlID0gJ2NvbG9yOiBibGFjazsgYmFja2dyb3VuZC1j b2xvcjogb3JhbmdlOyc7CisJCSRzdHlsZSA9IGJveF9zdHlsZSgkY3R4LCAnY3R4c2F2ZScpOwog CQlteSAkY3R4c2F2ZSA9ICRkYnska2V5fS0+eydlbmQnfSAtICRkYnska2V5fS0+eydub3RpZnkn fTsKIAkJJGNvbnRlbnQgPSAiPHNtYWxsPiRuYW1lPGJyPiR7Y3R4c2F2ZX11czwvc21hbGw+IjsK IAkJJGNvbnRlbnQgLj0gJyA8c21hbGw+PGk+Pz8/PC9pPjwvc21hbGw+ICcgaWYgZXhpc3RzICRk Ynska2V5fS0+eydpbmNvbXBsZXRlJ307Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCmlndC1kZXYgbWFpbGluZyBsaXN0CmlndC1kZXZA bGlzdHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxt YW4vbGlzdGluZm8vaWd0LWRldgo= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Tvrtko Ursulin Subject: [PATCH i-g-t 3/9] trace.pl: Improve readability of graphical timeline representation Date: Thu, 12 Jul 2018 11:59:52 +0100 Message-ID: <20180712105958.12953-4-tvrtko.ursulin@linux.intel.com> References: <20180712105958.12953-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-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by gabe.freedesktop.org (Postfix) with ESMTPS id B682A6EF50 for ; Thu, 12 Jul 2018 11:00:07 +0000 (UTC) Received: by mail-wr1-x442.google.com with SMTP id c13-v6so21205605wrt.1 for ; Thu, 12 Jul 2018 04:00:07 -0700 (PDT) In-Reply-To: <20180712105958.12953-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 RnJvbTogVHZydGtvIFVyc3VsaW4gPHR2cnRrby51cnN1bGluQGludGVsLmNvbT4KCldlIGFkZCBz dHJpcGVzIGZvciBkaWZmZXJlbnQgc3RhZ2VzIG9mIHJlcXVlc3QgZXhlY3V0aW9uIHNvIGl0IGlz IGVhc2llcgp0byBmb2xsb3cgb25lIGNvbnRleHQgaW4gdGhlIG11bHRpLWNvbG91ciBtb2RlLgoK VmVydGljYWwgc3RyaXBlIHBhdHRlcm4gaW5kaWNhdGVzIHBpcGVsaW5lICJibG9ja2FnZXMiIC0g cmVxdWVzdHMgd2FpdGluZwpmb3IgZGVwZW5kZW5jaWVzIGJlZm9yZSB0aGV5IGFyZSBydW5uYWJs ZS4KCkRpYWdvbmFsIHN0cmlwZXMgaW5kaWNhdGUgcnVubmFibGUgcmVxdWVzdHMgd2FpdGluZyBm b3IgR1BVIHRpbWUuCgpIb3Jpem9udGFsIHN0cmlwcyBhcmUgcmVxdWVzdHMgZXhlY3V0aW5nIG9u IHRoZSBHUFUuCgpBbHNvIHVzZSB0aGlzIG5ldyBtdWx0aS1jb2xvdXJlZCBtb2RlIGZyb20gbWVk aWEtYmVuY2gucGwuCgp2MjoKIEpvaG4gSGFycmlzb246CiAqIE1lbnRpb24gbWVkaWEtYmVuY2gu cGwgaW4gdGhlIGNvbW1pdC4KICogRml4IEhUTUwgZm9yIHNpbmdsZSBjb2xvdXIgbW9kZS4KCnYz OgogKiBSZWJhc2UuCiAqIEFwcGx5IHN0cmlwZXMgdG8gbGVnYWN5IGNvbG91cmluZyBhcyB3ZWxs LgoKdjQ6CiBKb2huIEhhcnJpc29uOgogKiBVc2UgcGVyIGNvbnRleHQgY29sb3VycyBmb3IgY3R4 c2F2ZSBhbmQgaW5jb21wbGV0ZSBib3hlcy4KICogQ2xlYXJlciB0aW1lbGluZSBsZWdlbmQuCgpT aWduZWQtb2ZmLWJ5OiBUdnJ0a28gVXJzdWxpbiA8dHZydGtvLnVyc3VsaW5AaW50ZWwuY29tPgpD YzogSm9obiBIYXJyaXNvbiA8Sm9obi5DLkhhcnJpc29uQEludGVsLmNvbT4KLS0tCiBzY3JpcHRz L21lZGlhLWJlbmNoLnBsIHwgICAyICstCiBzY3JpcHRzL3RyYWNlLnBsICAgICAgIHwgMTEyICsr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQs IDkwIGluc2VydGlvbnMoKyksIDI0IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NjcmlwdHMv bWVkaWEtYmVuY2gucGwgYi9zY3JpcHRzL21lZGlhLWJlbmNoLnBsCmluZGV4IGM1NjI4YzdmMjgz Ni4uMzc1ODQ0ZDljZGY2IDEwMDc1NQotLS0gYS9zY3JpcHRzL21lZGlhLWJlbmNoLnBsCisrKyBi L3NjcmlwdHMvbWVkaWEtYmVuY2gucGwKQEAgLTIwNyw3ICsyMDcsNyBAQCBzdWIgdHJhY2Vfd29y a2xvYWQKIAlzaG93X2NtZCgkY21kKTsKIAlzeXN0ZW0oJGNtZCk7CiAKLQkkY21kID0gInBlcmYg c2NyaXB0IHwgJHRyYWNlcGwgLS1odG1sIC14IGN0eHNhdmUgLXMgIjsKKwkkY21kID0gInBlcmYg c2NyaXB0IHwgJHRyYWNlcGwgLS1odG1sIC14IGN0eHNhdmUgLXMgLWMgIjsKIAkkY21kIC49IGpv aW4gJyAnLCBtYXAoIi1pICRfIiwgQHNraXBfZW5naW5lKTsKIAkkY21kIC49ICIgPiAke2ZpbGV9 Lmh0bWwiOwogCXNob3dfY21kKCRjbWQpOwpkaWZmIC0tZ2l0IGEvc2NyaXB0cy90cmFjZS5wbCBi L3NjcmlwdHMvdHJhY2UucGwKaW5kZXggNzI2YzkwZDQ0NTQ3Li41NmE0ZDRmZDhiYjIgMTAwNzU1 Ci0tLSBhL3NjcmlwdHMvdHJhY2UucGwKKysrIGIvc2NyaXB0cy90cmFjZS5wbApAQCAtNzM3LDkg KzczNywxNCBAQCBmb3JlYWNoIG15ICRrZXkgKGtleXMgJXJlcXdhaXQpIHsKIHNheSBzcHJpbnRm KCdHUFU6ICUuMmYlJSBpZGxlLCAlLjJmJSUgYnVzeScsCiAJICAgICAkZmxhdF9idXN5eydncHUt aWRsZSd9LCAkZmxhdF9idXN5eydncHUtYnVzeSd9KSB1bmxlc3MgJGh0bWw7CiAKLW15ICRxdWV1 ZWRfY29sb3VyID0gJGNvbG91cl9jb250ZXh0cyA/ICdtdWx0aS1jb2xvdXIgbGlnaHQnIDogJ2Js dWUnOwotbXkgJHJ1bm5hYmxlX2NvbG91ciA9ICRjb2xvdXJfY29udGV4dHMgPyAnbXVsdGktY29s b3VyIGRhcmsnIDogJ2dyZXknOwotbXkgJGV4ZWN1dGVfY29sb3VyID0gJGNvbG91cl9jb250ZXh0 cyA/ICdtdWx0aS1jb2xvdXInIDogJ3BpbmsnOworbXkgJHRpbWVsaW5lX3RleHQgPSAkY29sb3Vy X2NvbnRleHRzID8KKwkJICAgICdQZXIgY29udGV4dCBjb2xvdXJlZCBzaGFkaW5nIGxpa2U6JyA6 ICdCb3ggc2hhZGluZyBsaWtlOic7CisKK215ICRxdWV1ZWRfc3R5bGUgPSBib3hfc3R5bGUoJG1p bl9jdHgsICdxdWV1ZScpOworbXkgJHJlYWR5X3N0eWxlID0gYm94X3N0eWxlKCRtaW5fY3R4LCAn cmVhZHknKTsKK215ICRleGVjdXRlX3N0eWxlID0gYm94X3N0eWxlKCRtaW5fY3R4LCAnZXhlY3V0 ZScpOworbXkgJGN0eHNhdmVfc3R5bGUgPSBib3hfc3R5bGUoJG1pbl9jdHgsICdjdHhzYXZlJyk7 CitteSAkaW5jb21wbGV0ZV9zdHlsZSA9IGJveF9zdHlsZSgkbWluX2N0eCwgJ2luY29tcGxldGUn KTsKIAogcHJpbnQgPDxFTkRIVE1MIGlmICRodG1sOwogPCFET0NUWVBFIEhUTUw+CkBAIC03NTgs OSArNzYzLDI4IEBAIHByaW50IDw8RU5ESFRNTCBpZiAkaHRtbDsKIDwvaGVhZD4KIDxib2R5Pgog PHA+Ci0kZXhlY3V0ZV9jb2xvdXIgPSByZXF1ZXN0cyBleGVjdXRpbmcgb24gdGhlIEdQVTxicj4K LSRydW5uYWJsZV9jb2xvdXIgPSBydW5uYWJsZSByZXF1ZXN0cyB3YWl0aW5nIGZvciBhIHNsb3Qg b24gR1BVPGJyPgotJHF1ZXVlZF9jb2xvdXIgPSByZXF1ZXN0cyB3YWl0aW5nIG9uIGZlbmNlcyBh bmQgZGVwZW5kZW5jaWVzIGJlZm9yZSB0aGV5IGFyZSBydW5uYWJsZTxicj4KKzxiPlRpbWVsaW5l IHJlcXVlc3Qgdmlldzo8L2I+Cis8dGFibGU+Cis8dHI+PHRkIGNvbHNwYW49JzQnPiR0aW1lbGlu ZV90ZXh0PC90ZD48L3RyPgorPHRyPgorPHRkIGFsaWduPSdjZW50ZXInPjxkaXYgc3R5bGU9JyRx dWV1ZWRfc3R5bGUnPlFVRVVFRDwvZGl2PjwvdGQ+Cis8dGQgYWxpZ249J2NlbnRlcic+PGRpdiBz dHlsZT0nJHJlYWR5X3N0eWxlJz5SRUFEWTwvZGl2PjwvdGQ+Cis8dGQgYWxpZ249J2NlbnRlcic+ PGRpdiBzdHlsZT0nJGV4ZWN1dGVfc3R5bGUnPkVYRUNVVEU8L2Rpdj48L3RkPgorPHRkIGFsaWdu PSdjZW50ZXInPjxkaXYgc3R5bGU9JyRjdHhzYXZlX3N0eWxlJz5DVFhTQVZFPC9kaXY+PC90ZD4K KzwvdHI+PHRyPgorPHRkPjwvdGQ+Cis8dGQ+PC90ZD4KKzx0ZCBhbGlnbj0nY2VudGVyJz48ZGl2 IHN0eWxlPSckaW5jb21wbGV0ZV9zdHlsZSc+KElOQ09NUExFVEUpPC9kaXY+PC90ZD4KKzx0ZD48 L3RkPgorPC90ci8+PC90YWJsZT4KKzwvcD4KKzxwPgorPHNtYWxsPgorUVVFVUVEID0gcmVxdWVz dHMgZXhlY3V0aW5nIG9uIHRoZSBHUFU8YnI+CitSRUFEWSA9IHJ1bm5hYmxlIHJlcXVlc3RzIHdh aXRpbmcgZm9yIGEgc2xvdCBvbiBHUFU8YnI+CitFWEVDVVRFID0gcmVxdWVzdHMgd2FpdGluZyBv biBmZW5jZXMgYW5kIGRlcGVuZGVuY2llcyBiZWZvcmUgdGhleSBhcmUgcnVubmFibGU8YnI+CitD VFhTQVZFID0gR1BVIHNhdmluZyB0aGUgY29udGV4dCBpbWFnZTxicj4KKzwvc21hbGw+CiA8L3A+ CiA8cD4KIEJveGVzIGFyZSBpbiBmb3JtYXQgJ2N0eC1pZC9zZXFubycuCkBAIC04ODAsMTcgKzkw NCwzMSBAQCBzdWIgc29ydFF1ZXVlIHsKIAogc3ViIGN0eF9jb2xvdXIKIHsKLQlteSAoJGN0eCwg JHN0YWdlKSA9IChAXyk7CisJbXkgKCRjdHgsICRzdGFnZSwgJGxmYWMpID0gKEBfKTsKIAlteSAo JHMsICRsKTsKIAlteSAkdmFsOwogCiAJdW5sZXNzICgkY29sb3VyX2NvbnRleHRzKSB7CiAJCWlm ICgkc3RhZ2UgZXEgJ3F1ZXVlJykgewotCQkJcmV0dXJuICdsaWdodGJsdWU7JzsKKwkJCSR2YWwg PSAyMTA7CisJCQkkcyA9IDY1OworCQkJJGwgPSA1MjsKIAkJfSBlbHNpZiAoJHN0YWdlIGVxICdy ZWFkeScpIHsKLQkJCXJldHVybiAnbGlnaHRncmV5Oyc7CisJCQkkdmFsID0gMDsKKwkJCSRzID0g MDsKKwkJCSRsID0gNDc7CiAJCX0gZWxzaWYgKCRzdGFnZSBlcSAnZXhlY3V0ZScpIHsKLQkJCXJl dHVybiAncGluazsnOworCQkJJHZhbCA9IDM0NjsKKwkJCSRzID0gNjg7CisJCQkkbCA9IDY1Owor CQl9IGVsc2lmICgkc3RhZ2UgZXEgJ2N0eHNhdmUnKSB7CisJCQkkdmFsID0gMjY7CisJCQkkcyA9 IDkwOworCQkJJGwgPSA1MjsKKwkJfSBlbHNpZiAoJHN0YWdlIGVxICdpbmNvbXBsZXRlJykgewor CQkJJHZhbCA9IDA7CisJCQkkcyA9IDg1OworCQkJJGwgPSA1MDsKIAkJfQogCX0gZWxzZSB7CiAJ CWlmICgkc3RhZ2UgZXEgJ3F1ZXVlJykgewpAQCAtOTAyLDEyICs5NDAsNDUgQEAgc3ViIGN0eF9j b2xvdXIKIAkJfSBlbHNpZiAoJHN0YWdlIGVxICdleGVjdXRlJykgewogCQkJJHMgPSA4MDsKIAkJ CSRsID0gNjU7CisJCX0gZWxzaWYgKCRzdGFnZSBlcSAnY3R4c2F2ZScpIHsKKwkJCSRzID0gNzU7 CisJCQkkbCA9IDcwOworCQl9IGVsc2lmICgkc3RhZ2UgZXEgJ2luY29tcGxldGUnKSB7CisJCQkk cyA9IDgwOworCQkJJGwgPSAyNTsKIAkJfQorCisJCSR2YWwgPSBpbnQoMzYwIC8gKCRtYXhfY3R4 IC0gJG1pbl9jdHggKyAxKSkgKiAoJGN0eCAtICRtaW5fY3R4KTsKIAl9CiAKLQkkdmFsID0gaW50 KDM2MCAvICgkbWF4X2N0eCAtICRtaW5fY3R4ICsgMSkpICogKCRjdHggLSAkbWluX2N0eCk7CisJ JGwgPSBpbnQoJGwgKiAkbGZhYyk7CiAKLQlyZXR1cm4gImhzbCgkdmFsLCAkcyUsICRsJSk7IjsK KwlyZXR1cm4gImhzbCgkdmFsLCAkcyUsICRsJSkiOworfQorCitzdWIgYm94X3N0eWxlCit7CisJ bXkgKCRjdHgsICRzdGFnZSkgPSBAXzsKKwlteSAkZGVnOworCisJaWYgKCRzdGFnZSBlcSAncXVl dWUnKSB7CisJCSRkZWcgPSA5MDsKKwl9IGVsc2lmICgkc3RhZ2UgZXEgJ3JlYWR5JykgeworCQkk ZGVnID0gNDU7CisJfSBlbHNpZiAoJHN0YWdlIGVxICdleGVjdXRlJykgeworCQkkZGVnID0gMDsK Kwl9IGVsc2lmICgkc3RhZ2UgZXEgJ2N0eHNhdmUnKSB7CisJCSRkZWcgPSAxMDU7CisJfSBlbHNp ZiAoJHN0YWdlIGVxICdpbmNvbXBsZXRlJykgeworCQkkZGVnID0gMDsKKwl9CisKKwlyZXR1cm4g J2NvbG9yOiBibGFjazsgYmFja2dyb3VuZDogcmVwZWF0aW5nLWxpbmVhci1ncmFkaWVudCgnIC4K KwkJJGRlZyAuICdkZWcsICcgLgorCQljdHhfY29sb3VyKCRjdHgsICRzdGFnZSwgMS4wKSAuICcs ICcgLgorCQljdHhfY29sb3VyKCRjdHgsICRzdGFnZSwgMS4wKSAuICcgMTBweCwgJyAuCisJCWN0 eF9jb2xvdXIoJGN0eCwgJHN0YWdlLCAwLjkwKSAuICcgMTBweCwgJyAuCisJCWN0eF9jb2xvdXIo JGN0eCwgJHN0YWdlLCAwLjkwKSAuICcgMjBweCk7JzsKIH0KIAogbXkgJGkgPSAwOwpAQCAtOTI1 LDggKzk5Niw3IEBAIGZvcmVhY2ggbXkgJGtleSAoc29ydCBzb3J0UXVldWUga2V5cyAlZGIpIHsK IAkjIHN1Ym1pdCB0byBleGVjdXRlCiAJdW5sZXNzIChleGlzdHMgJHNraXBfYm94eydxdWV1ZSd9 KSB7CiAJCSRza2V5ID0gMiAqICRtYXhfc2Vxbm8gKiAkY3R4ICsgMiAqICRzZXFubzsKLQkJJHN0 eWxlID0gJ2NvbG9yOiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogJyAuCi0JCQkgY3R4X2NvbG91 cigkY3R4LCAncXVldWUnKTsKKwkJJHN0eWxlID0gYm94X3N0eWxlKCRjdHgsICdxdWV1ZScpOwog CQkkY29udGVudCA9ICIkbmFtZTxicj4kZGJ7JGtleX0tPnsnc3VibWl0LWRlbGF5J311cyA8c21h bGw+KCRkYnska2V5fS0+eydleGVjdXRlLWRlbGF5J311cyk8L3NtYWxsPiI7CiAJCSRzdGFydGVu ZCA9ICdzdGFydDogXCcnIC4gdHMoJHF1ZXVlKSAuICdcJywgZW5kOiBcJycgLiB0cygkc3VibWl0 KSAuICdcJyc7CiAJCXByaW50ICJcdHtpZDogJGksIGtleTogJHNrZXksICR0eXBlIGdyb3VwOiAk Z3JvdXAsIHN1Ymdyb3VwOiAkc3ViZ3JvdXAsIHN1Ymdyb3VwT3JkZXI6ICRzdWJncm91cCwgY29u dGVudDogJyRjb250ZW50JywgJHN0YXJ0ZW5kLCBzdHlsZTogXCckc3R5bGVcJ30sXG4iOwpAQCAt OTM2LDggKzEwMDYsNyBAQCBmb3JlYWNoIG15ICRrZXkgKHNvcnQgc29ydFF1ZXVlIGtleXMgJWRi KSB7CiAJIyBleGVjdXRlIHRvIHN0YXJ0CiAJdW5sZXNzIChleGlzdHMgJHNraXBfYm94eydyZWFk eSd9KSB7CiAJCSRza2V5ID0gMiAqICRtYXhfc2Vxbm8gKiAkY3R4ICsgMiAqICRzZXFubyArIDE7 Ci0JCSRzdHlsZSA9ICdjb2xvcjogYmxhY2s7IGJhY2tncm91bmQtY29sb3I6ICcgLgotCQkJIGN0 eF9jb2xvdXIoJGN0eCwgJ3JlYWR5Jyk7CisJCSRzdHlsZSA9IGJveF9zdHlsZSgkY3R4LCAncmVh ZHknKTsKIAkJJGNvbnRlbnQgPSAiPHNtYWxsPiRuYW1lPGJyPiRkYnska2V5fS0+eydleGVjdXRl LWRlbGF5J311czwvc21hbGw+IjsKIAkJJHN0YXJ0ZW5kID0gJ3N0YXJ0OiBcJycgLiB0cygkc3Vi bWl0KSAuICdcJywgZW5kOiBcJycgLiB0cygkc3RhcnQpIC4gJ1wnJzsKIAkJcHJpbnQgIlx0e2lk OiAkaSwga2V5OiAkc2tleSwgJHR5cGUgZ3JvdXA6ICRncm91cCwgc3ViZ3JvdXA6ICRzdWJncm91 cCwgc3ViZ3JvdXBPcmRlcjogJHN1Ymdyb3VwLCBjb250ZW50OiAnJGNvbnRlbnQnLCAkc3RhcnRl bmQsIHN0eWxlOiBcJyRzdHlsZVwnfSxcbiI7CkBAIC05NDcsMTIgKzEwMTYsOSBAQCBmb3JlYWNo IG15ICRrZXkgKHNvcnQgc29ydFF1ZXVlIGtleXMgJWRiKSB7CiAJIyBzdGFydCB0byB1c2VyIGlu dGVycnVwdAogCXVubGVzcyAoZXhpc3RzICRza2lwX2JveHsnZXhlY3V0ZSd9KSB7CiAJCSRza2V5 ID0gLTIgKiAkbWF4X3NlcW5vICogJGN0eCAtIDIgKiAkc2Vxbm8gLSAxOwotCQlpZiAoZXhpc3Rz ICRkYnska2V5fS0+eydpbmNvbXBsZXRlJ30pIHsKLQkJCSRzdHlsZSA9ICdjb2xvcjogd2hpdGU7 IGJhY2tncm91bmQtY29sb3I6IHJlZDsnOwotCQl9IGVsc2UgewotCQkJJHN0eWxlID0gJ2NvbG9y OiBibGFjazsgYmFja2dyb3VuZC1jb2xvcjogJyAuCi0JCQkJICBjdHhfY29sb3VyKCRjdHgsICdl eGVjdXRlJyk7Ci0JCX0KKwkJJHN0eWxlID0gYm94X3N0eWxlKCRjdHgsCisJCQkJICAgZXhpc3Rz ICRkYnska2V5fS0+eydpbmNvbXBsZXRlJ30gPworCQkJCSAgICdpbmNvbXBsZXRlJyA6ICdleGVj dXRlJyk7CiAJCSRjb250ZW50ID0gIiRuYW1lIDxzbWFsbD4kZGJ7JGtleX0tPnsncG9ydCd9PC9z bWFsbD4iOwogCQkkY29udGVudCAuPSAnIDxzbWFsbD48aT4/Pz88L2k+PC9zbWFsbD4gJyBpZiBl eGlzdHMgJGRieyRrZXl9LT57J2luY29tcGxldGUnfTsKIAkJJGNvbnRlbnQgLj0gJyA8c21hbGw+ PGk+Kys8L2k+PC9zbWFsbD4gJyBpZiBleGlzdHMgJGRieyRrZXl9LT57J25vLWVuZCd9OwpAQCAt OTY2LDcgKzEwMzIsNyBAQCBmb3JlYWNoIG15ICRrZXkgKHNvcnQgc29ydFF1ZXVlIGtleXMgJWRi KSB7CiAJIyB1c2VyIGludGVycnVwdCB0byBjb250ZXh0IGNvbXBsZXRlCiAJdW5sZXNzIChleGlz dHMgJHNraXBfYm94eydjdHhzYXZlJ30pIHsKIAkJJHNrZXkgPSAtMiAqICRtYXhfc2Vxbm8gKiAk Y3R4IC0gMiAqICRzZXFubzsKLQkJJHN0eWxlID0gJ2NvbG9yOiBibGFjazsgYmFja2dyb3VuZC1j b2xvcjogb3JhbmdlOyc7CisJCSRzdHlsZSA9IGJveF9zdHlsZSgkY3R4LCAnY3R4c2F2ZScpOwog CQlteSAkY3R4c2F2ZSA9ICRkYnska2V5fS0+eydlbmQnfSAtICRkYnska2V5fS0+eydub3RpZnkn fTsKIAkJJGNvbnRlbnQgPSAiPHNtYWxsPiRuYW1lPGJyPiR7Y3R4c2F2ZX11czwvc21hbGw+IjsK IAkJJGNvbnRlbnQgLj0gJyA8c21hbGw+PGk+Pz8/PC9pPjwvc21hbGw+ICcgaWYgZXhpc3RzICRk Ynska2V5fS0+eydpbmNvbXBsZXRlJ307Ci0tIAoyLjE3LjEKCl9fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fCkludGVsLWdmeCBtYWlsaW5nIGxpc3QKSW50ZWwt Z2Z4QGxpc3RzLmZyZWVkZXNrdG9wLm9yZwpodHRwczovL2xpc3RzLmZyZWVkZXNrdG9wLm9yZy9t YWlsbWFuL2xpc3RpbmZvL2ludGVsLWdmeAo=