From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com [IPv6:2a00:1450:4864:20::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by lists.bufferbloat.net (Postfix) with ESMTPS id CD2753B2A4 for ; Fri, 8 Mar 2019 16:01:32 -0500 (EST) Received: by mail-lf1-x133.google.com with SMTP id a8so15227856lfi.7 for ; Fri, 08 Mar 2019 13:01:32 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to; bh=2xyC85lfxX//W7oI4GVejeNxSF/xQLm0GGO3UfO4HVA=; b=RRgM437aA5RJ66c5DLZQI+KXVywlyvEPbYyYtKcCAcsi64WjiHYu6iq1nhgSbyH1QS 76TKD/xwHcFWzyplblscl7ekfopPkxT4O2n9eLhjVVOAOxF7loZe/+oh8ltItY7keqKZ ROWyJeYk8boPVVwH7xKn3Y1CPkxbwR2rOVixKoZrUl5u33gIwjiO0JOYpsv/68suWZUY Y0tE2nTIN5W+SavmwxZh49CTN4dLpJJpeKtdvLUbltncj5kp8Q/JBlV5qR8aWwGAJpNa Wp0baijmuEOnGXybwmxQAB457yQCqQu33pzYy65iaQdY+/dF9B0tY/qBVmw2u07tmZ15 jvkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to; bh=2xyC85lfxX//W7oI4GVejeNxSF/xQLm0GGO3UfO4HVA=; b=XxRSDyqM9trOFUPxPjJAG4SWrLBGtOSWj5CBkW384aqdFJ/gOMgt7nS9/O2Y9VjBqo ZzGOW2ksyJSTSgnpRUv9BM2QBjH0wMHVezDHMfpIHK6SizTrHpK2jkOufAiyDHHxuPlB 5Rn8WUTAyyu64lquj7acK8iS1Q/hSdnCe+l9bdALiT4Y6gE3sxCQYchm6NLca9wTmDyV sJyHnM5KKbLGILEPtNBkFPQgzQIKJHrILoy/hLqMHyg45NlfyWmmDp9Uaz+ioExoa0um pdM7A/jfv4HYYvqSEAUFh1e7kF1EAkB9cf0OkHnin3vsKYqblNO3JGa/+WSKbFVtHcgX kH1w== X-Gm-Message-State: APjAAAUbBEFkma49epiVM2VXfBJMxZbvC5AZ3FP4WBxs51kZVTw6SvX0 EZd5bsAI70zGwDLgL3D2SxiD2H/86mlaq0X5kt6NfMNC X-Google-Smtp-Source: APXvYqw1wRnLhHQmcMXualGhp6Ek07cSX3+YrxMw7PUPb8GKxZdPpwJpi78Z9M7FUQX904uWe9L00aao2i/L4ki/Fxw= X-Received: by 2002:ac2:5548:: with SMTP id l8mr9306584lfk.28.1552078891236; Fri, 08 Mar 2019 13:01:31 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Georgios Amanakis Date: Fri, 8 Mar 2019 16:01:20 -0500 Message-ID: To: Cake List Content-Type: multipart/mixed; boundary="000000000000f9e96e05839b86e8" Subject: Re: [Cake] profiling using perf X-BeenThere: cake@lists.bufferbloat.net X-Mailman-Version: 2.1.20 Precedence: list List-Id: Cake - FQ_codel the next generation List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 08 Mar 2019 21:01:33 -0000 --000000000000f9e96e05839b86e8 Content-Type: text/plain; charset="UTF-8" Dear List, I made an effort to profile the performance of cake with perf in openwrt. perf was run on a WRT1900ACS router while downloading archlinux.iso via torrent in a LAN client. You can find the annotated sch_cake.c in the attachment as well as a performance histogram of sch_cake (percentages are relative to sch_cake). Hopefully people can take a look at it, and see if there are performance concerns. Best, George --000000000000f9e96e05839b86e8 Content-Type: application/octet-stream; name="cake_dequeue.annotation" Content-Disposition: attachment; filename="cake_dequeue.annotation" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jt0jo4pt0 Y2FrZV9kZXF1ZXVlKCkgL2xpYi9tb2R1bGVzLzQuMTQuMTA0L3NjaF9jYWtlLmtvCkV2ZW50OiBj eWNsZXM6cHBwCgpQZXJjZW50ICAgICAgICAKICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg IAogICAgICAgICAgICAgIERpc2Fzc2VtYmx5IG9mIHNlY3Rpb24gLnRleHQ6CiAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgIDAwMDAyMzBjIDxjYWtlX2RlcXVldWU+OgogICAgICAgICAgICAg IGNha2VfZGVxdWV1ZSgpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoISEo c2tiID0gY2FrZV9kZXF1ZXVlX29uZShzY2gpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBrZnJlZV9za2Ioc2tiKTsKICAgICAgICAgICAgICB9ICAgICAgICAgICAKICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgc3RhdGljIHN0cnVjdCBza19idWZmICpjYWtlX2Rl cXVldWUoc3RydWN0IFFkaXNjICpzY2gpCiAgICAgICAgICAgICAgeyAgICAgICAgICAgCiAgMC44 MyAgICAgICAgICBwdXNoICAge3I0LCByNSwgcjYsIHI3LCByOCwgcjksIHNsLCBmcCwgbHJ9CiAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY2FrZV9zY2hlZF9kYXRhICpxID0gcWRpc2NfcHJp dihzY2gpOwogICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNha2VfdGluX2RhdGEgKmIgPSAm cS0+dGluc1txLT5jdXJfdGluXTsKICAwLjA5ICAgICAgICAgIGFkZCAgICByMSwgcjAsICMxNjY0 MCAgOyAweDQxMDAKICAgICAgICAgICAgICB7ICAgICAgICAgICAKICAwLjAxICAgICAgICAgIHN1 YiAgICBzcCwgc3AsICMxMDAgICAgOyAweDY0CiAgICAgICAgICAgICAgICAgICAgICBzdHJ1Y3Qg Y2FrZV90aW5fZGF0YSAqYiA9ICZxLT50aW5zW3EtPmN1cl90aW5dOwogIDAuMTMgICAgICAgICAg bGRyICAgIHIyLCBbcjAsICMyNjRdICA7IDB4MTA4CiAgICAgICAgICAgICAgICBtb3Z3ICAgcjMs ICMyMjcyMCAgICAgIDsgMHg1OGMwCiAgMC40OSAgICAgICAgICBtb3Z0ICAgcjMsICMxICAgCiAg MC4wMiAgICAgICAgICBzdHIgICAgcjEsIFtzcCwgIzU2XSAgIDsgMHgzOAogIDAuMTAgICAgICAg ICAgbGRyaCAgIHIxLCBbcjEsICM5Nl0gICA7IDB4NjAKICAgICAgICAgICAgICB7ICAgICAgICAg ICAKICAgICAgICAgICAgICAgIHN0ciAgICByMCwgW3NwLCAjNTJdICAgOyAweDM0CiAgICAgICAg ICAgICAgcWRpc2NfcHJpdigpOgogICAgICAgICAgICAgICNkZWZpbmUgUURJU0NfQUxJR05UTyAg ICAgICAgICAgNjQKICAgICAgICAgICAgICAjZGVmaW5lIFFESVNDX0FMSUdOKGxlbikgICAgICAg ICgoKGxlbikgKyBRRElTQ19BTElHTlRPLTEpICYgfihRRElTQ19BTElHTlRPLTEpKQogICAgICAg ICAgICAgICAKICAgICAgICAgICAgICBzdGF0aWMgaW5saW5lIHZvaWQgKnFkaXNjX3ByaXYoc3Ry dWN0IFFkaXNjICpxKQogICAgICAgICAgICAgIHsgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgcmV0dXJuIChjaGFyICopIHEgKyBRRElTQ19BTElHTihzaXplb2Yoc3RydWN0IFFkaXNj KSk7CiAgMC4xNSAgICAgICAgICBhZGQgICAgcjAsIHIwLCAjMjU2ICAgIDsgMHgxMDAKICAwLjA3 ICAgICAgICAgIHN0ciAgICByMCwgW3NwLCAjNzJdICAgOyAweDQ4CiAgICAgICAgICAgICAgY29i YWx0X2ludnNxcnQoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFycy0+cmVjX2lu dl9zcXJ0ID0gY29iYWx0X3JlY19pbnZfc3FydF9jYWNoZVt2YXJzLT5jb3VudF07CiAgMC4xMCAg ICAgICAgICBtb3Z3ICAgcjAsICMwICAgCiAgICAgICAgICAgICAgY2FrZV9kZXF1ZXVlKCk6CiAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY2FrZV90aW5fZGF0YSAqYiA9ICZxLT50aW5zW3Et PmN1cl90aW5dOwogIDAuMDEgICAgICAgICAgbWxhICAgIHIzLCByMywgcjEsIHIyCiAgICAgICAg ICAgICAgY29iYWx0X2ludnNxcnQoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFy cy0+cmVjX2ludl9zcXJ0ID0gY29iYWx0X3JlY19pbnZfc3FydF9jYWNoZVt2YXJzLT5jb3VudF07 CiAgMC4zNCAgICAgICAgICBtb3Z0ICAgcjAsICMwICAgCiAgMC4xNiAgICAgICAgICBzdHIgICAg cjAsIFtzcCwgIzQ0XSAgIDsgMHgyYwogICAgICAgICAgICAgIGNha2VfZGVxdWV1ZSgpOgogICAg ICAgICAgICAgICAgICAgICAgc3RydWN0IGNha2VfdGluX2RhdGEgKmIgPSAmcS0+dGluc1txLT5j dXJfdGluXTsKICAwLjA3ICAgICAgICAgIHN0ciAgICByMywgW3NwLCAjNjBdICAgOyAweDNjCiAg ICAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgY2FrZV9ob3N0ICpzcmNob3N0LCAqZHN0aG9zdDsK ICAgICAgICAgICAgICAgICAgICAgIGt0aW1lX3Qgbm93ID0ga3RpbWVfZ2V0KCk7CiAgMC4wNiAg ICAgICAg4oaSIGJsICAgICBxZGlzY19wZWVrX2RlcXVldWVkCiAgICAgICAgICAgICAgICBzdHJk ICAgcjAsIFtzcCwgIzI0XQogICAgICAgICAgICAgICAgICAgICAgc3RydWN0IGNha2VfZmxvdyAq ZmxvdzsKICAgICAgICAgICAgICAgICAgICAgIHN0cnVjdCBsaXN0X2hlYWQgKmhlYWQ7CiAgICAg ICAgICAgICAgICAgICAgICBib29sIGZpcnN0X2Zsb3cgPSB0cnVlOwogIDAuMzUgICAgICAgICAg bW92ICAgIHIxLCAjMSAgIAogICAgICAgICAgICAgICAgICAgICAgdTE2IGhvc3RfbG9hZDsKICAg ICAgICAgICAgICAgICAgICAgIHU2NCBkZWxheTsKICAgICAgICAgICAgICAgICAgICAgIHUzMiBs ZW47CiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgIGJlZ2luOiAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgaWYgKCFzY2gtPnEucWxlbikKICAwLjAzICAgIDRjOiAgIGxkciAgICByMywg W3NwLCAjNTJdICAgOyAweDM0CiAgMC4zMCAgICAgICAgICBsZHIgICAgcjMsIFtyMywgIzc2XSAg IDsgMHg0YwogIDAuMTEgICAgICAgICAgY21wICAgIHIzLCAjMCAgIAogIDAuMjIgICAgICAgIOKG kyBibmUgICAgNjggICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBO VUxMOwogIDAuMDEgICAgNWM6ICAgbW92ICAgIHIzLCAjMCAgIAogICAgICAgICAgICAgICAgc3Ry ICAgIHIzLCBbc3AsICM0OF0gICA7IDB4MzAKICAgICAgICAgICAgICDihpMgYiAgICAgIDExNGMg ICAgIAogICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgIC8qIGdsb2JhbCBoYXJk IHNoYXBlciAqLwogICAgICAgICAgICAgICAgICAgICAgaWYgKGt0aW1lX2FmdGVyKHEtPnRpbWVf bmV4dF9wYWNrZXQsIG5vdykgJiYKICAwLjIxICAgIDY4OiAgIGxkciAgICByMywgW3NwLCAjNzJd ICAgOyAweDQ4CiAgMC4wOSAgICAgICAgICBtb3Z3ICAgcjAsICMxNjQxNiAgICAgIDsgMHg0MDIw CiAgICAgICAgICAgICAga3RpbWVfY29tcGFyZSgpOgogICAgICAgICAgICAgICAqLyAgICAgICAg IAogICAgICAgICAgICAgIHN0YXRpYyBpbmxpbmUgaW50IGt0aW1lX2NvbXBhcmUoY29uc3Qga3Rp bWVfdCBjbXAxLCBjb25zdCBrdGltZV90IGNtcDIpCiAgICAgICAgICAgICAgeyAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICBpZiAoY21wMSA8IGNtcDIpCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAtMTsKICAgICAgICAgICAgICAgICAgICAgIGlmIChjbXAxID4g Y21wMikKICAwLjA2ICAgICAgICAgIGxkcmQgICByNCwgW3NwLCAjMjRdCiAgICAgICAgICAgICAg Y2FrZV9kZXF1ZXVlKCk6CiAgMC4yNCAgICAgICAgICBhZGQgICAgcjMsIHIzLCByMAogIDAuMDEg ICAgICAgICAgbGRyZCAgIHIyLCBbcjMsICMtOF0KICAgICAgICAgICAgICBrdGltZV9jb21wYXJl KCk6CiAgMC4yNCAgICAgICAgICBjbXAgICAgcjQsIHIyICAgCiAgMC4wMiAgICAgICAgICBzYmNz ICAgaXAsIHI1LCByMwogIDAuMjkgICAgICAgIOKGkyBiZ2UgICAgZGMgICAgICAgCiAgICAgICAg ICAgICAgY2FrZV9kZXF1ZXVlKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAga3RpbWVfYWZ0 ZXIocS0+ZmFpbHNhZmVfbmV4dF9wYWNrZXQsIG5vdykpIHsKICAwLjA4ICAgICAgICAgIGxkciAg ICBpcCwgW3NwLCAjNzJdICAgOyAweDQ4CiAgICAgICAgICAgICAga3RpbWVfY29tcGFyZSgpOgog IDAuMDQgICAgICAgICAgbGRyZCAgIHI2LCBbc3AsICMyNF0KICAgICAgICAgICAgICBjYWtlX2Rl cXVldWUoKToKICAgICAgICAgICAgICAgIGxkcmQgICByNCwgW2lwLCByMF0KICAgICAgICAgICAg ICBrdGltZV9jb21wYXJlKCk6CiAgMC4xOSAgICAgICAgICBjbXAgICAgcjYsIHI0ICAgCiAgICAg ICAgICAgICAgICBzYmNzICAgcjAsIHI3LCByNQogIDAuMDkgICAgICAgIOKGkyBiZ2UgICAgZGMg ICAgICAgCiAgICAgICAgICAgICAgY2FrZV9kZXF1ZXVlKCk6CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHU2NCBuZXh0ID0gbWluKGt0aW1lX3RvX25zKHEtPnRpbWVfbmV4dF9wYWNrZXQp LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrdGltZV90b19u cyhxLT5mYWlsc2FmZV9uZXh0X3BhY2tldCkpOwogICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2NoLT5xc3RhdHMub3ZlcmxpbWl0cysrOwogICAgICAgICAgICAg ICAgbGRyICAgIHIwLCBbc3AsICM1Ml0gICA7IDB4MzQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgdTY0IG5leHQgPSBtaW4oa3RpbWVfdG9fbnMocS0+dGltZV9uZXh0X3BhY2tldCksCiAg MC4wMyAgICAgICAgICBjbXAgICAgcjQsIHIyICAgCiAgICAgICAgICAgICAgICBzYmNzICAgaXAs IHI1LCByMwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzY2gtPnFzdGF0cy5vdmVybGlt aXRzKys7CiAgMC4wOCAgICAgICAgICBsZHIgICAgcjEsIFtyMCwgIzExNl0gIDsgMHg3NAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB1NjQgbmV4dCA9IG1pbihrdGltZV90b19ucyhxLT50 aW1lX25leHRfcGFja2V0KSwKICAgICAgICAgICAgICAgIG1vdmx0ICByMiwgcjQgICAKICAwLjA4 ICAgICAgICAgIG1vdmx0ICByMywgcjUgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg c2NoLT5xc3RhdHMub3ZlcmxpbWl0cysrOwogICAgICAgICAgICAgICAgYWRkICAgIHIxLCByMSwg IzEKICAwLjA4ICAgICAgICAgIHN0ciAgICByMSwgW3IwLCAjMTE2XSAgOyAweDc0CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHFkaXNjX3dhdGNoZG9nX3NjaGVkdWxlX25zKCZxLT53YXRj aGRvZywgbmV4dCk7CiAgICAgICAgICAgICAgICBsZHIgICAgcjEsIFtzcCwgIzcyXSAgIDsgMHg0 OAogIDAuMDcgICAgICAgICAgYWRkICAgIHIwLCByMSwgIzE2Mzg0ICA7IDB4NDAwMAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gTlVMTDsKICAgICAgICAgICAgICAgIG1vdiAg ICByMSwgIzAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcWRpc2Nfd2F0Y2hkb2df c2NoZWR1bGVfbnMoJnEtPndhdGNoZG9nLCBuZXh0KTsKICAwLjA1ICAgICAgICAgIGFkZCAgICBy MCwgcjAsICMxMDQgICAgOyAweDY4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy biBOVUxMOwogICAgICAgICAgICAgICAgc3RyICAgIHIxLCBbc3AsICM0OF0gICA7IDB4MzAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcWRpc2Nfd2F0Y2hkb2dfc2NoZWR1bGVfbnMoJnEt PndhdGNoZG9nLCBuZXh0KTsKICAwLjEwICAgICAgICDihpIgYmwgICAgIHFkaXNjX3BlZWtfZGVx dWV1ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE5VTEw7CiAgMC4wMyAg ICAgICAg4oaTIGIgICAgICAxMTRjICAgICAKICAgICAgICAgICAgICAgICAgICAgIH0gICAKICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAvKiBDaG9vc2UgYSBjbGFzcyB0byB3 b3JrIG9uLiAqLwogICAgICAgICAgICAgICAgICAgICAgaWYgKCFxLT5yYXRlX25zKSB7CiAgMC4x NCAgICBkYzogICBsZHIgICAgcjMsIFtzcCwgIzcyXSAgIDsgMHg0OAogIDAuMDcgICAgICAgICAg YWRkICAgIHIzLCByMywgIzE2Mzg0ICA7IDB4NDAwMAogIDAuMDUgICAgICAgICAgYWRkICAgIHIz LCByMywgIzQ4ICAgICA7IDB4MzAKICAwLjAzICAgICAgICAgIGxkcmQgICByMiwgW3IzLCAjLThd CiAgMC4wMyAgICAgICAgICBvcnJzICAgcjMsIHIyLCByMwogIDAuMzUgICAgICAgIOKGkyBiZXEg ICAgMThjICAgICAgCiAgMC4wOSAgICAgICAgICBsZHIgICAgcjMsIFtzcCwgIzUyXSAgIDsgMHgz NAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBJbiBzaGFwZWQgbW9kZSwgY2hvb3Nl OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiAtIEhpZ2hlc3QtcHJpb3JpdHkgdGlu IHdpdGggcXVldWUgYW5kIG1lZXRpbmcgc2NoZWR1bGUsIG9yCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAqIC0gVGhlIGVhcmxpZXN0LXNjaGVkdWxlZCB0aW4gd2l0aCBxdWV1ZS4KICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICovCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGt0aW1lX3QgYmVzdF90aW1lID0gbnNfdG9fa3RpbWUoS1RJTUVfTUFYKTsKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaW50IHRpbiwgYmVzdF90aW4gPSAwOwogIDAuMDUgICAgICAg ICAgbW92ICAgIHI2LCAjMCAgIAogICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgZm9yICh0aW4gPSAwOyB0aW4gPCBxLT50aW5fY250OyB0aW4rKykgewogIDAuMDUg ICAgICAgICAgbW92ICAgIGlwLCByNiAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBr dGltZV90IGJlc3RfdGltZSA9IG5zX3RvX2t0aW1lKEtUSU1FX01BWCk7CiAgMC4wNSAgICAgICAg ICBtdm4gICAgcjQsICMwICAgCiAgMC4wNSAgICAgICAgICBtdm4gICAgcjUsICMtMjE0NzQ4MzY0 OCAgICAgICAgOyAweDgwMDAwMDAwCiAgMC4yMyAgICAgICAgICBsZHJkICAgcjgsIFtzcCwgIzI0 XQogIDAuMDQgICAgICAgICAgbGRyICAgIHI3LCBbcjMsICMyNjRdICA7IDB4MTA4CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZvciAodGluID0gMDsgdGluIDwgcS0+dGluX2NudDsgdGlu KyspIHsKICAwLjI2ICAgICAgICAgIGxkciAgICByMywgW3NwLCAjNTZdICAgOyAweDM4CiAgMC4x MSAgICAgICAgICBhZGQgICAgcjAsIHI3LCAjODgwNjQgIDsgMHgxNTgwMAogIDAuMDUgICAgICAg ICAgYWRkICAgIHIwLCByMCwgIzQ0ICAgICA7IDB4MmMKICAwLjA4ICAgICAgICAgIGxkcmggICBs ciwgW3IzLCAjMTRdCiAgMC4wNCAgICAgICAg4oaTIGIgICAgICAyNDAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYi0+dGluX2RlZmljaXQgPD0gMCkKICAg ICAgICAgMTI0OiAgIGNtcCAgICByOCwgIzAgICAKICAgICAgICAgICAgICDihpMgYm5lICAgIDE0 NCAgICAgIAogICAgICAgICAgICAgIOKGkyBiICAgICAgMTBkYyAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbXB0eSA9IGZhbHNlOwogICAgICAgICAx MzA6ICAgY21wICAgIHIzLCAjMCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYi0+dGluX2RlZmljaXQgKz0gYi0+dGluX3F1YW50dW1fYmFuZDsKICAgICAg ICAgICAgICAgIGxkcmggICByMywgW3I5LCByN10KICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGVtcHR5ID0gZmFsc2U7CiAgICAgICAgICAgICAgICBtb3ZuZSAg cjUsICMwICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBi LT50aW5fZGVmaWNpdCArPSBiLT50aW5fcXVhbnR1bV9iYW5kOwogICAgICAgICAgICAgICAgYWRk ICAgIHI4LCByMywgcjgKICAgICAgICAgICAgICAgIHN0ciAgICByOCwgW3I5LCAjMjE2MF0gOyAw eDg3MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHEtPmN1cl90aW4rKzsK ICAgICAgICAgMTQ0OiAgIGxkcmggICByMywgW3IwLCAjOTZdICAgOyAweDYwCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHEtPmN1cl90aW4gPj0gcS0+dGluX2NudCkg ewogICAgICAgICAgICAgICAgbGRyaCAgIHI4LCBbcjAsICMxNF0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBxLT5jdXJfdGluKys7CiAgICAgICAgICAgICAgICBhZGQgICAg cjMsIHIzLCAjMQogICAgICAgICAgICAgICAgdXh0aCAgIHIzLCByMyAgIAogICAgICAgICAgICAg ICAgc3RyaCAgIHIzLCBbcjAsICM5Nl0gICA7IDB4NjAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBpZiAocS0+Y3VyX3RpbiA+PSBxLT50aW5fY250KSB7CiAgICAgICAgICAg ICAgICBjbXAgICAgcjgsIHIzICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYisrOwogICAgICAgICAgICAgICAgYWRkaGkgIHIyLCByMiwgIzg4MDY0ICA7IDB4MTU4MDAK ICAgICAgICAgICAgICAgIGFkZGhpICByMiwgcjIsICMxOTIgICAgOyAweGMwCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHEtPmN1cl90aW4gPj0gcS0+dGluX2NudCkg ewogICAgICAgICAgICAgIOKGkyBiaGkgICAgMWFjICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBiID0gcS0+dGluczsKICAgICAgICAgICAgICAgIGxk ciAgICByMywgW3NwLCAjNTJdICAgOyAweDM0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAod3JhcHBlZCkgewogICAgICAgICAgICAgICAgY21wICAgIHI0 LCAjMCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcS0+ Y3VyX3RpbiA9IDA7CiAgICAgICAgICAgICAgICBzdHJoICAgcjYsIFtyMCwgIzk2XSAgIDsgMHg2 MAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYiA9IHEtPnRp bnM7CiAgICAgICAgICAgICAgICBsZHIgICAgcjIsIFtyMywgIzI2NF0gIDsgMHgxMDgKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh3cmFwcGVkKSB7CiAg ICAgICAgICAgICAg4oaTIGJlcSAgICAxODQgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGVtcHR5KQogICAgICAgICAgICAgICAg Y21wICAgIHI1LCAjMCAgIAogICAgICAgICAgICAgIOKGkSBibmUgICAgNWMgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdyYXBwZWQg PSB0cnVlOwogICAgICAgICAxODQ6ICAgbW92ICAgIHI0LCAjMSAgIAogICAgICAgICAgICAgIOKG kyBiICAgICAgMWFjICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBiLT50aW5fZGVmaWNpdCArPSBiLT50aW5fcXVhbnR1bV9iYW5kOwogICAgICAgICAx OGM6ICAgbGRyICAgIHIyLCBbc3AsICM2MF0gICA7IDB4M2MKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYm9vbCB3cmFwcGVkID0gZmFsc2UsIGVtcHR5ID0gdHJ1ZTsKICAgICAgICAgICAg ICAgIG1vdiAgICByNCwgIzAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGItPnRpbl9kZWZpY2l0ICs9IGItPnRpbl9xdWFudHVtX2JhbmQ7CiAgICAgICAg ICAgICAgICBsZHIgICAgcjAsIFtzcCwgIzU2XSAgIDsgMHgzOAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBib29sIHdyYXBwZWQgPSBmYWxzZSwgZW1wdHkgPSB0cnVlOwogICAgICAgICAg ICAgICAgbW92ICAgIHI1LCAjMSAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgcS0+Y3VyX3RpbiA9IDA7CiAgICAgICAgICAgICAgICBtb3YgICAgcjYsIHI0 ICAgCiAgICAgICAgICAgICAgICBtb3Z3ICAgbHIsICMyMDk0ICAgICAgIDsgMHg4MmUKICAgICAg ICAgICAgICAgIG1vdncgICBpcCwgIzIwOTIgICAgICAgOyAweDgyYwogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi0+dGluX2RlZmljaXQgKz0gYi0+dGluX3F1 YW50dW1fYmFuZDsKICAgICAgICAgICAgICAgIG1vdncgICByNywgIzIxNTYgICAgICAgOyAweDg2 YwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAoYi0+dGluX2RlZmljaXQgPCAw IHx8CiAgICAgICAgIDFhYzogICBhZGQgICAgcjksIHIyLCAjODYwMTYgIDsgMHgxNTAwMAogICAg ICAgICAgICAgICAgbGRyICAgIHI4LCBbcjksICMyMTYwXSA7IDB4ODcwCiAgICAgICAgICAgICAg ICBsZHJoICAgcjMsIFtyOSwgbHJdCiAgICAgICAgICAgICAgICBsZHJoICAgc2wsIFtyOSwgaXBd CiAgICAgICAgICAgICAgICBjbXAgICAgcjgsICMwICAgCiAgICAgICAgICAgICAgICBhZGQgICAg cjMsIHIzLCBzbAogICAgICAgICAgICAgIOKGkSBibHQgICAgMTMwICAgICAgCiAgICAgICAgICAg ICAgICBjbXAgICAgcjMsICMwICAgCiAgICAgICAgICAgICAg4oaRIGJlcSAgICAxMjQgICAgICAK ICAgICAgICAgICAgICAgIHN0ciAgICByMiwgW3NwLCAjNjBdICAgOyAweDNjCiAgICAgICAgICAg ICAg4oaTIGIgICAgICAyN2MgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBiID0gcS0+dGlucyArIHRpbjsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoKGItPnNwYXJzZV9mbG93X2NvdW50ICsgYi0+YnVsa19mbG93X2NvdW50KSA+IDAp IHsKICAwLjA3ICAgMWQ4OiAgIGxkcmggICByMywgW3IwLCAjMl0KICAwLjIwICAgICAgICAgIGxk cmggICByMiwgW3IwXSAKICAwLjA5ICAgICAgICAgIGNtbiAgICByMywgcjIgICAKICAwLjE4ICAg ICAgICDihpMgYmVxICAgIDIzNCAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAga3RpbWVfdCB0aW1lX3RvX3BrdCA9IFwKICAwLjE1ICAgICAgICAgIGxk cmQgICBzbCwgW3IwLCAjMzZdICAgOyAweDI0CiAgMC4wNyAgICAgICAgICBzdWJzICAgc2wsIHNs LCByOAogIDAuMDEgICAgICAgICAgc2JjICAgIGZwLCBmcCwgcjkKICAgICAgICAgICAgICBrdGlt ZV9jb21wYXJlKCk6CiAgICAgICAgICAgICAgICAgICAgICBpZiAoY21wMSA8IGNtcDIpCiAgMC4x OSAgICAgICAgICBjbXAgICAgc2wsIHI0ICAgCiAgMC4wNSAgICAgICAgICBzYmNzICAgcjMsIGZw LCByNQogIDAuMTIgICAgICAgICAgbW92bHQgIHIzLCAjMSAgIAogIDAuMDQgICAgICAgICAgbW92 Z2UgIHIzLCAjMCAgIAogICAgICAgICAgICAgIGNha2VfZGVxdWV1ZSgpOgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrdGltZV9zdWIoYi0+dGlt ZV9uZXh0X3BhY2tldCwgbm93KTsKICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoa3RpbWVfdG9fbnModGltZV90b19wa3QpIDw9 IDAgfHwKICAwLjE0ICAgICAgICAgIGNtcCAgICBzbCwgIzEgICAKICAwLjAxICAgICAgICAgIHNi Y3MgICByMiwgZnAsICMwCiAgICAgICAgICAgICAga3RpbWVfY29tcGFyZSgpOgogIDAuMjggICAg ICAgICAgb3JybHQgIHIzLCByMywgIzEKICAgICAgICAgICAgICAgICAgICAgIGlmIChjbXAxID4g Y21wMikKICAgICAgICAgICAgICAgIGNtcCAgICByNCwgc2wgICAKICAwLjM2ICAgICAgICAgIHNi Y3MgICByMiwgcjUsIGZwCiAgICAgICAgICAgICAgICAgICAgICBpZiAoY21wMSA8IGNtcDIpCiAg MC4wMSAgICAgICAgICBlb3IgICAgcjMsIHIzLCAjMQogICAgICAgICAgICAgICAgICAgICAgaWYg KGNtcDEgPiBjbXAyKQogIDAuMTEgICAgICAgICAgYW5kbHQgIHIzLCByMywgIzEKICAwLjAyICAg ICAgICAgIG1vdmdlICByMywgIzAgICAKICAwLjA1ICAgICAgICAgIGNtcCAgICByMywgIzAgICAK ICAgICAgICAgICAgICBjYWtlX2RlcXVldWUoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGt0aW1lX3QgdGltZV90b19wa3QgPSBcCiAgMC4wMSAgICAgICAg ICBtb3ZlcSAgcjQsIHNsICAgCiAgMC4wNiAgICAgICAgICBtb3ZlcSAgcjUsIGZwICAgCiAgICAg ICAgICAgICAga3RpbWVfY29tcGFyZSgpOgogICAgICAgICAgICAgICAgbW92ZXEgIHI2LCBpcCAg IAogIDAuMjMgICAyMzQ6ICAgYWRkICAgIHIwLCByMCwgIzg4MDY0ICA7IDB4MTU4MDAKICAgICAg ICAgICAgICBjYWtlX2RlcXVldWUoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9y ICh0aW4gPSAwOyB0aW4gPCBxLT50aW5fY250OyB0aW4rKykgewogIDAuMDkgICAgICAgICAgYWRk ICAgIGlwLCBpcCwgIzEKICAwLjA4ICAgICAgICAgIGFkZCAgICByMCwgcjAsICMxOTIgICAgOyAw eGMwCiAgMC4xOSAgIDI0MDogICBjbXAgICAgbHIsIGlwICAgCiAgMC4yOSAgICAgICAg4oaRIGJu ZSAgICAxZDggICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHEtPmN1cl90aW4gPSBiZXN0X3RpbjsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgYiA9IHEtPnRpbnMgKyBiZXN0X3RpbjsKICAwLjM0ICAgICAgICAgIG1vdncgICByMywg IzIyNzIwICAgICAgOyAweDU4YzAKICAwLjA5ICAgICAgICAgIG1vdnQgICByMywgIzEgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcS0+Y3VyX3RpbiA9IGJlc3RfdGluOwogICAgICAg ICAgICAgICAgbGRyICAgIHIyLCBbc3AsICM1Nl0gICA7IDB4MzgKICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIE5vIHBvaW50IGluIGdvaW5nIGZ1cnRoZXIg aWYgbm8gcGFja2V0cyB0byBkZWxpdmVyLiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAodW5saWtlbHkoIShiLT5zcGFyc2VfZmxvd19jb3VudCArIGItPmJ1bGtfZmxvd19jb3Vu dCkpKQogIDAuMzAgICAgICAgICAgbW92dyAgIHIwLCAjMjA5NCAgICAgICA7IDB4ODJlCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGIgPSBxLT50aW5zICsgYmVzdF90aW47CiAgMC4wMSAg ICAgICAgICBtbGEgICAgcjMsIHIzLCByNiwgcjcKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgcS0+Y3VyX3RpbiA9IGJlc3RfdGluOwogIDAuMDcgICAgICAgICAgc3RyaCAgIHI2LCBbcjIs ICM5Nl0gICA7IDB4NjAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHVubGlrZWx5 KCEoYi0+c3BhcnNlX2Zsb3dfY291bnQgKyBiLT5idWxrX2Zsb3dfY291bnQpKSkKICAwLjI2ICAg ICAgICAgIG1vdncgICByMiwgIzIwOTIgICAgICAgOyAweDgyYwogIDAuMDEgICAgICAgICAgYWRk ICAgIHI5LCByMywgIzg2MDE2ICA7IDB4MTUwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYiA9IHEtPnRpbnMgKyBiZXN0X3RpbjsKICAwLjIyICAgICAgICAgIHN0ciAgICByMywgW3Nw LCAjNjBdICAgOyAweDNjCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1bmxpa2Vs eSghKGItPnNwYXJzZV9mbG93X2NvdW50ICsgYi0+YnVsa19mbG93X2NvdW50KSkpCiAgICAgICAg ICAgICAgICBsZHJoICAgcjIsIFtyOSwgcjJdCiAgMC4xMCAgICAgICAgICBsZHJoICAgcjMsIFty OSwgcjBdCiAgMC4wOCAgICAgICAgICBjbW4gICAgcjMsIHIyICAgCiAgMC4wNiAgICAgICAg4oaR IGJlcSAgICA1YyAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBy ZXR1cm4gTlVMTDsKICAgICAgICAgICAgICAgICAgICAgIH0gICAKICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgcmV0cnk6ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAvKiBzZXJ2aWNl IHRoaXMgY2xhc3MgKi8KICAgICAgICAgICAgICAgICAgICAgIGhlYWQgPSAmYi0+ZGVjYXlpbmdf Zmxvd3M7CiAgMC4wNiAgIDI3YzogICBsZHIgICAgcjMsIFtzcCwgIzYwXSAgIDsgMHgzYwogICAg ICAgICAgICAgICAgICAgICAgaWYgKCFmaXJzdF9mbG93IHx8IGxpc3RfZW1wdHkoaGVhZCkpIHsK ICAwLjA0ICAgICAgICAgIGNtcCAgICByMSwgIzAgICAKICAgICAgICAgICAgICAgICAgICAgIGhl YWQgPSAmYi0+ZGVjYXlpbmdfZmxvd3M7CiAgMC4wMSAgICAgICAgICBhZGQgICAgcjMsIHIzLCAj ODgwNjQgIDsgMHgxNTgwMAogIDAuMTEgICAgICAgICAgc3RyICAgIHIzLCBbc3AsICM3Nl0gICA7 IDB4NGMKICAwLjAyICAgICAgICAgIGFkZCAgICByMywgcjMsICM3MiAgICAgOyAweDQ4CiAgMC4x MCAgICAgICAgICBzdHIgICAgcjMsIFtzcCwgIzgwXSAgIDsgMHg1MAogICAgICAgICAgICAgICAg ICAgICAgaWYgKCFmaXJzdF9mbG93IHx8IGxpc3RfZW1wdHkoaGVhZCkpIHsKICAwLjEzICAgICAg ICDihpMgYmVxICAgIDJiNCAgICAgIAogICAgICAgICAgICAgIF9fcmVhZF9vbmNlX3NpemUoKToK ICAgICAgICAgICAgICB9KSAgICAgICAgICAKICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg c3RhdGljIF9fYWx3YXlzX2lubGluZQogICAgICAgICAgICAgIHZvaWQgX19yZWFkX29uY2Vfc2l6 ZShjb25zdCB2b2xhdGlsZSB2b2lkICpwLCB2b2lkICpyZXMsIGludCBzaXplKQogICAgICAgICAg ICAgIHsgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgX19SRUFEX09OQ0VfU0laRTsK ICAwLjE0ICAgICAgICAgIGxkciAgICByMiwgW3I5LCAjMjEyMF0gOyAweDg0OAogICAgICAgICAg ICAgIGNha2VfZGVxdWV1ZSgpOgogIDAuMDMgICAgICAgICAgY21wICAgIHIzLCByMiAgIAogICAg ICAgICAgICAgIF9fcmVhZF9vbmNlX3NpemUoKToKICAwLjAwICAgICAgICAgIHN0ciAgICByMiwg W3NwLCAjODRdICAgOyAweDU0CiAgICAgICAgICAgICAgY2FrZV9kZXF1ZXVlKCk6CiAgICAgICAg ICAgICAgICBtb3ZlcSAgcjEsICMxICAgCiAgMC4wMiAgICAgICAg4oaTIGJlcSAgICAyYmMgICAg ICAKICAwLjAxICAgICAgICDihpMgYiAgICAgIDJmYyAgICAgIAogIDAuMDEgICAyYjA6ICAgbW92 ICAgIHI5LCBmcCAgIAogICAgICAgICAgICAgICAgICAgICAgaGVhZCA9ICZiLT5kZWNheWluZ19m bG93czsKICAwLjI5ICAgMmI0OiAgIGxkciAgICByMywgW3NwLCAjODBdICAgOyAweDUwCiAgICAg ICAgICAgICAgICBzdHIgICAgcjMsIFtzcCwgIzg0XSAgIDsgMHg1NAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBoZWFkID0gJmItPm5ld19mbG93czsKICAwLjExICAgMmJjOiAgIGxkciAg ICByMywgW3NwLCAjNzZdICAgOyAweDRjCiAgICAgICAgICAgICAgX19yZWFkX29uY2Vfc2l6ZSgp OgogIDAuODAgICAgICAgICAgbGRyICAgIHIyLCBbcjksICMyMTA0XSA7IDB4ODM4CiAgICAgICAg ICAgICAgY2FrZV9kZXF1ZXVlKCk6CiAgMC4wOSAgICAgICAgICBhZGQgICAgcjMsIHIzLCAjNTYg ICAgIDsgMHgzOAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAobGlzdF9lbXB0eSho ZWFkKSkgewogIDEuMTIgICAgICAgICAgY21wICAgIHIzLCByMiAgIAogIDAuMjAgICAgICAgIOKG kyBibmUgICAgMzA0ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg aGVhZCA9ICZiLT5vbGRfZmxvd3M7CiAgMi4wMiAgICAgICAgICBsZHIgICAgcjMsIFtzcCwgIzc2 XSAgIDsgMHg0YwogICAgICAgICAgICAgIF9fcmVhZF9vbmNlX3NpemUoKToKICAwLjE4ICAgICAg ICAgIGxkciAgICByMiwgW3I5LCAjMjExMl0gOyAweDg0MAogICAgICAgICAgICAgIGNha2VfZGVx dWV1ZSgpOgogIDEuMTQgICAgICAgICAgYWRkICAgIHIzLCByMywgIzY0ICAgICA7IDB4NDAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAodW5saWtlbHkobGlzdF9lbXB0 eShoZWFkKSkpIHsKICAwLjA1ICAgICAgICAgIGNtcCAgICByMywgcjIgICAKICAxLjAwICAgICAg ICDihpMgYm5lICAgIDMwNCAgICAgIAogICAgICAgICAgICAgIF9fcmVhZF9vbmNlX3NpemUoKToK ICAgICAgICAgICAgICAgIGxkciAgICByMywgW3I5LCAjMjEyMF0gOyAweDg0OAogICAgICAgICAg ICAgIGNha2VfZGVxdWV1ZSgpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgaGVhZCA9ICZiLT5kZWNheWluZ19mbG93czsKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGlmICh1bmxpa2VseShsaXN0X2VtcHR5KGhlYWQpKSkK ICAgICAgICAgICAgICAgIGxkciAgICByMiwgW3NwLCAjODRdICAgOyAweDU0CiAgICAgICAgICAg ICAgICBjbXAgICAgcjIsIHIzICAgCiAgICAgICAgICAgICAg4oaRIGJlcSAgICA0YyAgICAgICAK ICAgICAgICAgICAgICAgIG1vdiAgICByMywgcjIgICAKICAgICAgICAgICAgICDihpMgYiAgICAg IDMwNCAgICAgIAogIDAuMTIgICAyZmM6ICAgbGRyICAgIHIzLCBbc3AsICM4MF0gICA7IDB4NTAK ICAgICAgICAgICAgICAgIHN0ciAgICByMywgW3NwLCAjODRdICAgOyAweDU0CiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGdvdG8gYmVnaW47CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICB9ICAgCiAgICAgICAgICAgICAgICAg ICAgICBmbG93ID0gbGlzdF9maXJzdF9lbnRyeShoZWFkLCBzdHJ1Y3QgY2FrZV9mbG93LCBmbG93 Y2hhaW4pOwogIDAuMjYgICAzMDQ6ICAgbGRyICAgIHI4LCBbcjNdIAogICAgICAgICAgICAgICAg ICAgICAgcS0+Y3VyX2Zsb3cgPSBmbG93IC0gYi0+Zmxvd3M7CiAgMC44OSAgICAgICAgICBsZHIg ICAgcjIsIFtzcCwgIzYwXSAgIDsgMHgzYwogICAgICAgICAgICAgICAgICAgICAgZmxvdyA9IGxp c3RfZmlyc3RfZW50cnkoaGVhZCwgc3RydWN0IGNha2VfZmxvdywgZmxvd2NoYWluKTsKICAwLjA5 ICAgICAgICAgIHN1YiAgICByMywgcjgsICM4CiAgICAgICAgICAgICAgICAgICAgICBxLT5jdXJf ZmxvdyA9IGZsb3cgLSBiLT5mbG93czsKICAwLjg0ICAgICAgICAgIHN1YiAgICByMywgcjMsIHIy CiAgMC4yNCAgICAgICAgICBsZHIgICAgcjIsIFtzcCwgIzU2XSAgIDsgMHgzOAogIDEuODIgICAg ICAgICAgYXNyICAgIHIzLCByMywgIzYKICAwLjEwICAgICAgICAgIHN0cmggICByMywgW3IyLCAj OThdICAgOyAweDYyCiAgICAgICAgICAgICAgICAgICAgICBzcmNob3N0ID0gJmItPmhvc3RzW2Zs b3ctPnNyY2hvc3RdOwogICAgICAgICAgICAgICAgICAgICAgZHN0aG9zdCA9ICZiLT5ob3N0c1tm bG93LT5kc3Rob3N0XTsKICAgICAgICAgICAgICAgICAgICAgIGhvc3RfbG9hZCA9IDE7CiAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgLyogZmxvdyBpc29sYXRpb24gKERSUisr KSAqLwogICAgICAgICAgICAgICAgICAgICAgaWYgKGZsb3ctPmRlZmljaXQgPD0gMCkgewogIDEu MDEgICAgICAgICAgbGRyICAgIHIzLCBbcjgsICM4XQogICAgICAgICAgICAgICAgICAgICAgc3Jj aG9zdCA9ICZiLT5ob3N0c1tmbG93LT5zcmNob3N0XTsKICAwLjEzICAgICAgICAgIGxkcmggICBy MiwgW3I4LCAjNDhdICAgOyAweDMwCiAgICAgICAgICAgICAgICAgICAgICBpZiAoZmxvdy0+ZGVm aWNpdCA8PSAwKSB7CiAgMi4wOCAgICAgICAgICBjbXAgICAgcjMsICMwICAgCiAgICAgICAgICAg ICAgICAgICAgICBkc3Rob3N0ID0gJmItPmhvc3RzW2Zsb3ctPmRzdGhvc3RdOwogIDAuMTQgICAg ICAgICAgbGRyaCAgIHIzLCBbcjgsICM1MF0gICA7IDB4MzIKICAgICAgICAgICAgICAgICAgICAg IHNyY2hvc3QgPSAmYi0+aG9zdHNbZmxvdy0+c3JjaG9zdF07CiAgMS42MyAgICAgICAgICBzdHIg ICAgcjIsIFtzcCwgIzg4XSAgIDsgMHg1OAogIDAuMjcgICAgICAgICAgbW92Z3QgIHNsLCByOCAg IAogICAgICAgICAgICAgICAgICAgICAgZHN0aG9zdCA9ICZiLT5ob3N0c1tmbG93LT5kc3Rob3N0 XTsKICAwLjk4ICAgICAgICAgIHN0ciAgICByMywgW3NwLCAjOTJdICAgOyAweDVjCiAgMC4xNyAg ICAgICAgICBtb3ZndCAgZnAsIHI5ICAgCiAgICAgICAgICAgICAgICAgICAgICBpZiAoZmxvdy0+ ZGVmaWNpdCA8PSAwKSB7CiAgMy41NyAgICAgICAg4oaTIGJndCAgICA0ZWMgICAgICAKICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogS2VlcCBhbGwgZmxvd3Mgd2l0aCBkZWZpY2l0cyBv dXQgb2YgdGhlIHNwYXJzZSBhbmQgZGVjYXlpbmcKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICogcm90YXRpb25zLiAgTm8gbm9uLWVtcHR5IGZsb3cgY2FuIGdvIGludG8gdGhlIGRlY2F5 aW5nCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqIHJvdGF0aW9uLCBzbyB0aGV5IGNh bid0IGdldCBkZWZpY2l0cwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGZsb3ctPnNldCA9PSBDQUtFX1NFVF9TUEFSU0Up IHsKICAwLjI0ICAgICAgICAgIGxkcmIgICByMywgW3I4LCAjNTJdICAgOyAweDM0CiAgMS42NiAg ICAgICAgICBjbXAgICAgcjMsICMxICAgCiAgMC4wNCAgICAgICAgICBsZHJuZSAgcjMsIFtzcCwg IzUyXSAgIDsgMHgzNAogIDAuOTcgICAgICAgICAgYWRkbmUgIHIzLCByMywgIzE2Mzg0ICA7IDB4 NDAwMAogIDAuMzAgICAgICAgIOKGkyBibmUgICAgNDA4ICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKGZsb3ctPmhlYWQpIHsKICAgICAgICAgICAgICAgIGxk ciAgICByMywgW3I4LCAjLThdCiAgMC4wMiAgICAgICAgICBjbXAgICAgcjMsICMwICAgCiAgICAg ICAgICAgICAg4oaTIGJlcSAgICAzZjggICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGItPnNwYXJzZV9mbG93X2NvdW50LS07CiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLT5idWxrX2Zsb3dfY291bnQrKzsKICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAoY2FrZV9kc3JjKHEtPmZsb3dfbW9kZSkpCiAgICAgICAgICAgICAgICBsZHIgICAgcjMs IFtzcCwgIzUyXSAgIDsgMHgzNAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYi0+c3BhcnNlX2Zsb3dfY291bnQtLTsKICAgICAgICAgICAgICAgIG1vdncgICBp cCwgIzIwOTQgICAgICAgOyAweDgyZQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYi0+YnVsa19mbG93X2NvdW50Kys7CiAgICAgICAgICAgICAgICBtb3Z3ICAg cjAsICMyMDkyICAgICAgIDsgMHg4MmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGItPnNwYXJzZV9mbG93X2NvdW50LS07CiAgICAgICAgICAgICAgICBsZHJo ICAgcjEsIFtyOSwgaXBdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBiLT5idWxrX2Zsb3dfY291bnQrKzsKICAwLjAyICAgICAgICAgIGxkcmggICByMiwgW3I5 LCByMF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChj YWtlX2RzcmMocS0+Zmxvd19tb2RlKSkKICAgICAgICAgICAgICAgIGFkZCAgICByMywgcjMsICMx NjM4NCAgOyAweDQwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIGItPnNwYXJzZV9mbG93X2NvdW50LS07CiAgICAgICAgICAgICAgICBzdWIgICAgcjEsIHIx LCAjMQogICAgICAgICAgICAgICAgc3RyaCAgIHIxLCBbcjksIGlwXQogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi0+YnVsa19mbG93X2NvdW50Kys7CiAgICAg ICAgICAgICAgICBhZGQgICAgcjIsIHIyLCAjMQogICAgICAgICAgICAgICAgc3RyaCAgIHIyLCBb cjksIHIwXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYg KGNha2VfZHNyYyhxLT5mbG93X21vZGUpKQogICAgICAgICAgICAgICAgbGRyYiAgIHIyLCBbcjMs ICMyNzNdICA7IDB4MTExCiAgICAgICAgICAgICAgICBhbmQgICAgcjEsIHIyLCAjNQogICAgICAg ICAgICAgICAgY21wICAgIHIxLCAjNSAgIAogICAgICAgICAgICAgIOKGkyBibmUgICAgM2MwICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNyY2hvc3QtPnNyY2hvc3RfYnVsa19mbG93X2NvdW50Kys7CiAgICAgICAgICAgICAgICBsZHIg ICAgcjEsIFtzcCwgIzg4XSAgIDsgMHg1OAogICAgICAgICAgICAgICAgbW92ICAgIHIyLCAjMTIg IAogICAgICAgICAgICAgICAgbGRyICAgIHIwLCBbc3AsICM2MF0gICA7IDB4M2MKICAgICAgICAg ICAgICAgIG1sYSAgICByMiwgcjIsIHIxLCByMAogICAgICAgICAgICAgICAgYWRkICAgIHIyLCBy MiwgIzc1Nzc2ICA7IDB4MTI4MDAKICAgICAgICAgICAgICAgIGxkcmggICByMSwgW3IyLCAjOF0K ICAgICAgICAgICAgICAgIGFkZCAgICByMSwgcjEsICMxCiAgICAgICAgICAgICAgICBzdHJoICAg cjEsIFtyMiwgIzhdCiAgICAgICAgICAgICAgICBsZHJiICAgcjIsIFtyMywgIzI3M10gIDsgMHgx MTEKICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICBpZiAoY2FrZV9kZHN0KHEtPmZsb3dfbW9kZSkpCiAgMC4wMiAgIDNjMDogICBhbmQg ICAgcjIsIHIyLCAjNgogICAgICAgICAgICAgICAgY21wICAgIHIyLCAjNiAgIAogICAgICAgICAg ICAgIOKGkyBibmUgICAgM2VjICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGRzdGhvc3QtPmRzdGhvc3RfYnVsa19mbG93X2NvdW50Kys7 CiAgICAgICAgICAgICAgICBsZHIgICAgcjEsIFtzcCwgIzkyXSAgIDsgMHg1YwogICAgICAgICAg ICAgICAgbW92ICAgIHIyLCAjMTIgIAogIDAuMDEgICAgICAgICAgbGRyICAgIHIwLCBbc3AsICM2 MF0gICA7IDB4M2MKICAgICAgICAgICAgICAgIG1sYSAgICByMiwgcjIsIHIxLCByMAogICAgICAg ICAgICAgICAgYWRkICAgIHIyLCByMiwgIzc1Nzc2ICA7IDB4MTI4MDAKICAgICAgICAgICAgICAg IGxkcmggICByMSwgW3IyLCAjMTBdCiAgICAgICAgICAgICAgICBhZGQgICAgcjEsIHIxLCAjMQog ICAgICAgICAgICAgICAgc3RyaCAgIHIxLCBbcjIsICMxMF0KICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG93LT5zZXQgPSBDQUtF X1NFVF9CVUxLOwogICAgICAgICAzZWM6ICAgbW92ICAgIHIyLCAjMyAgIAogIDAuMDEgICAgICAg ICAgc3RyYiAgIHIyLCBbcjgsICM1Ml0gICA7IDB4MzQKICAwLjAxICAgICAgICDihpMgYiAgICAg IDQwOCAgICAgIAogIDAuMDMgICAzZjg6ICAgbGRyICAgIHIzLCBbc3AsICM1Ml0gICA7IDB4MzQK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLyogd2UndmUgbW92ZWQgaXQgdG8g dGhlIGJ1bGsgcm90YXRpb24gZm9yCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgKiBjb3JyZWN0IGRlZmljaXQgYWNjb3VudGluZyBidXQgd2Ugc3RpbGwgd2Fu dAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICogdG8gY291 bnQgaXQgYXMgYSBzcGFyc2UgZmxvdywgbm90IGEgYnVsayBvbmUuCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi8KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGZsb3ctPnNldCA9IENBS0VfU0VUX1NQQVJTRV9XQUlUOwog ICAgICAgICAgICAgICAgbW92ICAgIHIyLCAjMiAgIAogICAgICAgICAgICAgICAgc3RyYiAgIHIy LCBbcjgsICM1Ml0gICA7IDB4MzQKICAgICAgICAgICAgICAgIGFkZCAgICByMywgcjMsICMxNjM4 NCAgOyAweDQwMDAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIChjYWtlX2RzcmMocS0+Zmxvd19tb2RlKSkKICAxLjIyICAgNDA4 OiAgIGxkcmIgICByMywgW3IzLCAjMjczXSAgOyAweDExMQogIDAuMTEgICAgICAgICAgYW5kICAg IHIyLCByMywgIzUKICAxLjQyICAgICAgICAgIGFuZCAgICByMywgcjMsICM2CiAgMC4wOSAgICAg ICAgICBjbXAgICAgcjIsICM1ICAgCiAgMS4wMCAgICAgICAg4oaTIGJuZSAgICAxMGNjICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBob3N0X2xvYWQgPSBtYXgoaG9z dF9sb2FkLCBzcmNob3N0LT5zcmNob3N0X2J1bGtfZmxvd19jb3VudCk7CiAgICAgICAgICAgICAg ICBsZHIgICAgcjEsIFtzcCwgIzg4XSAgIDsgMHg1OAogICAgICAgICAgICAgICAgbW92ICAgIHIy LCAjMTIgIAogICAgICAgICAgICAgICAgbGRyICAgIHIwLCBbc3AsICM2MF0gICA7IDB4M2MKICAg ICAgICAgICAgICAgIG1sYSAgICByMiwgcjIsIHIxLCByMAogICAgICAgICAgICAgICAgYWRkICAg IHIyLCByMiwgIzc1Nzc2ICA7IDB4MTI4MDAKICAgICAgICAgICAgICAgIGxkcmggICByMiwgW3Iy LCAjOF0KICAgICAgICAgICAgICAgIGNtcCAgICByMiwgIzAgICAKICAgICAgICAgICAgICDihpMg YmVxICAgIDEwY2MgICAgIAogICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgaWYgKGNha2VfZGRzdChxLT5mbG93X21vZGUpKQogICAgICAgICAgICAgICAgY21wICAg IHIzLCAjNiAgIAogICAgICAgICAgICAgICAgbW92bmUgIHI0LCByMiAgIAogICAgICAgICAgICAg IOKGkyBibmUgICAgNDc0ICAgICAgCiAgICAgICAgICAgICAg4oaTIGIgICAgICA0NTAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgIGhvc3RfbG9hZCA9IDE7CiAgMC4yMCAgIDQ0YzogICBtb3Yg ICAgcjIsICMxICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaG9zdF9s b2FkID0gbWF4KGhvc3RfbG9hZCwgZHN0aG9zdC0+ZHN0aG9zdF9idWxrX2Zsb3dfY291bnQpOwog IDIuMTkgICA0NTA6ICAgbGRyICAgIHIxLCBbc3AsICM5Ml0gICA7IDB4NWMKICAwLjEwICAgICAg ICAgIG1vdiAgICByMywgIzEyICAKICA0LjA4ICAgICAgICAgIGxkciAgICByMCwgW3NwLCAjNjBd ICAgOyAweDNjCiAgMC4wOCAgICAgICAgICBtbGEgICAgcjMsIHIzLCByMSwgcjAKICAzLjQzICAg ICAgICAgIGFkZCAgICByMywgcjMsICM3NTc3NiAgOyAweDEyODAwCiAgMS43NSAgICAgICAgICBs ZHJoICAgcjQsIFtyMywgIzEwXQogICAgICAgICAgICAgICAgY21wICAgIHIyLCByNCAgIAogIDEu MDAgICAgICAgICAgbW92Y3MgIHI0LCByMiAgIAogICAgICAgICAgICAgICAgdXh0aCAgIHIyLCBy NCAgIAogICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV0FSTl9P Tihob3N0X2xvYWQgPiBDQUtFX1FVRVVFUyk7CiAgMC45OSAgIDQ3NDogICBjbXAgICAgcjIsICMx MDI0ICAgICAgIDsgMHg0MDAKICAgICAgICAgICAgICDihpMgYmxzICAgIDQ4YyAgICAgIAogICAg ICAgICAgICAgICAgbW92dyAgIHIwLCAjMCAgIAogICAgICAgICAgICAgICAgbW92dyAgIHIxLCAj MjE0MSAgICAgICA7IDB4ODVkCiAgICAgICAgICAgICAgICBtb3Z0ICAgcjAsICMwICAgCiAgICAg ICAgICAgICAg4oaSIGJsICAgICBxZGlzY19wZWVrX2RlcXVldWVkCiAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvKiBUaGUgc2hpZnRlZCBwcmFuZG9tX3UzMigp IGlzIGEgd2F5IHRvIGFwcGx5IGRpdGhlcmluZyB0bwogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgKiBhdm9pZCBhY2N1bXVsYXRpbmcgcm91bmRvZmYgZXJyb3JzCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG93LT5k ZWZpY2l0ICs9IChiLT5mbG93X3F1YW50dW0gKiBxdWFudHVtX2Rpdltob3N0X2xvYWRdICsKICAx LjkxICAgNDhjOiAgIGxkciAgICByMiwgW3NwLCAjNDRdICAgOyAweDJjCiAgICAgICAgICAgICAg ICBsc2wgICAgcjQsIHI0LCAjMQogIDEuMTEgICAgICAgICAgbW92dyAgIHIzLCAjMjA1MiAgICAg ICA7IDB4ODA0CiAgICAgICAgICAgICAgICBsZHJoICAgcjMsIFtyOSwgcjNdCiAgMi42MiAgICAg ICAgICBsZHJoICAgcjQsIFtyMiwgcjRdCiAgICAgICAgICAgICAgICBtdWwgICAgcjQsIHI0LCBy MwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocHJhbmRv bV91MzIoKSA+PiAxNikpID4+IDE2OwogIDMuNTMgICAgICAgIOKGkiBibCAgICAgcWRpc2NfcGVl a19kZXF1ZXVlZAogICAgICAgICAgICAgIF9fbGlzdF9kZWxfZW50cnkoKToKICAgICAgICAgICAg ICBzdGF0aWMgaW5saW5lIHZvaWQgX19saXN0X2RlbF9lbnRyeShzdHJ1Y3QgbGlzdF9oZWFkICpl bnRyeSkKICAgICAgICAgICAgICB7ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgIGlm ICghX19saXN0X2RlbF9lbnRyeV92YWxpZChlbnRyeSkpCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgIHJldHVybjsKICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICBfX2xp c3RfZGVsKGVudHJ5LT5wcmV2LCBlbnRyeS0+bmV4dCk7CiAgMi43NSAgICAgICAgICBsZHIgICAg aXAsIFtyOCwgIzRdCiAgMC4wNCAgICAgICAgICBsZHIgICAgbHIsIFtyOF0gCiAgICAgICAgICAg ICAgY2FrZV9kZXF1ZXVlKCk6CiAgICAgICAgICAgICAgICAgICAgICBmaXJzdF9mbG93ID0gZmFs c2U7CiAgMS4zMSAgICAgICAgICBtb3YgICAgcjEsICMwICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGZsb3ctPmRlZmljaXQgKz0gKGItPmZsb3dfcXVhbnR1bSAqIHF1YW50dW1fZGl2 W2hvc3RfbG9hZF0gKwogIDAuMTAgICAgICAgICAgbGRyICAgIHIyLCBbcjgsICM4XQogIDAuOTAg ICAgICAgICAgYWRkICAgIHIwLCByNCwgcjAsIGxzciAjMTYKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgbGlzdF9tb3ZlX3RhaWwoJmZsb3ctPmZsb3djaGFpbiwgJmItPm9sZF9mbG93cyk7 CiAgICAgICAgICAgICAgICBsZHIgICAgcjMsIFtzcCwgIzc2XSAgIDsgMHg0YwogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICBmbG93LT5kZWZpY2l0ICs9IChiLT5mbG93X3F1YW50dW0gKiBx dWFudHVtX2Rpdltob3N0X2xvYWRdICsKICAxLjk4ICAgICAgICAgIGFkZCAgICByMiwgcjIsIHIw LCBsc3IgIzE2CiAgMC4wMSAgICAgICAgICBzdHIgICAgcjIsIFtyOCwgIzhdCiAgICAgICAgICAg ICAgX19saXN0X2RlbCgpOgogICAgICAgICAgICAgICAgICAgICAgbmV4dC0+cHJldiA9IHByZXY7 CiAgMS44OCAgICAgICAgICBzdHIgICAgaXAsIFtsciwgIzRdCiAgICAgICAgICAgICAgY2FrZV9k ZXF1ZXVlKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxpc3RfbW92ZV90YWlsKCZm bG93LT5mbG93Y2hhaW4sICZiLT5vbGRfZmxvd3MpOwogIDAuMDIgICAgICAgICAgYWRkICAgIHIz LCByMywgIzY0ICAgICA7IDB4NDAKICAgICAgICAgICAgICBfX3dyaXRlX29uY2Vfc2l6ZSgpOgog ICAgICAgICAgICAgIHN0YXRpYyBfX2Fsd2F5c19pbmxpbmUgdm9pZCBfX3dyaXRlX29uY2Vfc2l6 ZSh2b2xhdGlsZSB2b2lkICpwLCB2b2lkICpyZXMsIGludCBzaXplKQogICAgICAgICAgICAgIHsg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgc3dpdGNoIChzaXplKSB7CiAgICAgICAg ICAgICAgICAgICAgICBjYXNlIDE6ICoodm9sYXRpbGUgX191OCAqKXAgPSAqKF9fdTggKilyZXM7 IGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgY2FzZSAyOiAqKHZvbGF0aWxlIF9fdTE2ICop cCA9ICooX191MTYgKilyZXM7IGJyZWFrOwogICAgICAgICAgICAgICAgICAgICAgY2FzZSA0OiAq KHZvbGF0aWxlIF9fdTMyICopcCA9ICooX191MzIgKilyZXM7IGJyZWFrOwogIDAuOTIgICAgICAg ICAgc3RyICAgIGxyLCBbaXBdIAogICAgICAgICAgICAgIGxpc3RfYWRkX3RhaWwoKToKICAgICAg ICAgICAgICAgICAgICAgIF9fbGlzdF9hZGQobmV3LCBoZWFkLT5wcmV2LCBoZWFkKTsKICAwLjAy ICAgICAgICAgIGxkciAgICByMiwgW3I5LCAjMjExNl0gOyAweDg0NAogICAgICAgICAgICAgIF9f bGlzdF9hZGQoKToKICAgICAgICAgICAgICAgICAgICAgIG5leHQtPnByZXYgPSBuZXc7CiAgMC43 NyAgICAgICAgICBzdHIgICAgcjgsIFtyOSwgIzIxMTZdIDsgMHg4NDQKICAgICAgICAgICAgICAg ICAgICAgIG5ldy0+bmV4dCA9IG5leHQ7CiAgMC4wNyAgICAgICAgICBzdHIgICAgcjMsIFtyOF0g CiAgICAgICAgICAgICAgICAgICAgICBuZXctPnByZXYgPSBwcmV2OwogIDAuODYgICAgICAgICAg c3RyICAgIHIyLCBbcjgsICM0XQogICAgICAgICAgICAgIF9fd3JpdGVfb25jZV9zaXplKCk6CiAg MC4wMiAgICAgICAgICBzdHIgICAgcjgsIFtyMl0gCiAgMS42NiAgICAgICAg4oaRIGIgICAgICAy YmMgICAgICAKICAgICAgICAgICAgICBjYWtlX2RlcXVldWUoKToKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ290byByZXRyeTsKICAgICAgICAgICAgICAgICAgICAgIH0gICAKICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAvKiBSZXRyaWV2ZSBhIHBhY2tldCB2aWEg dGhlIEFRTSAqLwogICAgICAgICAgICAgICAgICAgICAgd2hpbGUgKDEpIHsKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc2tiID0gY2FrZV9kZXF1ZXVlX29uZShzY2gpOwogIDEuMTEgICA0 ZWM6ICAgbGRyICAgIHIwLCBbc3AsICM1Ml0gICA7IDB4MzQKICAwLjA2ICAgICAgICDihpIgYmwg ICAgIGNha2VfZGVxdWV1ZV9vbmUKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFz a2IpIHsKICAwLjMzICAgICAgICAgIHN1YnMgICByMywgcjAsICMwCiAgMC4xOCAgICAgICAgICBz dHIgICAgcjMsIFtzcCwgIzQ4XSAgIDsgMHgzMAogIDAuMDggICAgICAgIOKGkyBibmUgICAgODQw ICAgICAgCiAgICAgICAgICAgICAgY29iYWx0X3F1ZXVlX2VtcHR5KCk6CiAgICAgICAgICAgICAg ICAgICAgICBpZiAodmFycy0+cF9kcm9wICYmCiAgMC4wMSAgICAgICAgICBsZHIgICAgaXAsIFtz bCwgIzQwXSAgIDsgMHgyOAogIDAuMDQgICAgICAgICAgbW92ICAgIHI4LCBzbCAgIAogICAgICAg ICAgICAgICAgbW92ICAgIHI5LCBmcCAgIAogIDAuMDYgICAgICAgICAgY21wICAgIGlwLCAjMCAg IAogICAgICAgICAgICAgIOKGkyBiZXEgICAgMTExOCAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAga3RpbWVfdG9fbnMoa3RpbWVfc3ViKG5vdywgdmFycy0+Ymx1ZV90aW1lcikpID4gcC0+ dGFyZ2V0KSB7CiAgICAgICAgICAgICAgICBsZHJkICAgcjAsIFtzbCwgIzMyXQogICAgICAgICAg ICAgICAgYWRkICAgIHIzLCBmcCwgIzIwNjQgICA7IDB4ODEwCiAgICAgICAgICAgICAgICBsZHJk ICAgcjYsIFtzcCwgIzI0XQogICAgICAgICAgICAgICAgICAgICAgaWYgKHZhcnMtPnBfZHJvcCAm JgogICAgICAgICAgICAgICAgbGRyZCAgIHIyLCBbcjNdIAogICAgICAgICAgICAgICAgICAgICAg ICAgIGt0aW1lX3RvX25zKGt0aW1lX3N1Yihub3csIHZhcnMtPmJsdWVfdGltZXIpKSA+IHAtPnRh cmdldCkgewogICAgICAgICAgICAgICAgc3VicyAgIHI0LCByNiwgcjAKICAgICAgICAgICAgICAg IHNiYyAgICByNSwgcjcsIHIxCiAgICAgICAgICAgICAgICAgICAgICBpZiAodmFycy0+cF9kcm9w ICYmCiAgICAgICAgICAgICAgICBjbXAgICAgcjUsIHIzICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAga3RpbWVfdG9fbnMoa3RpbWVfc3ViKG5vdywgdmFycy0+Ymx1ZV90aW1lcikpID4gcC0+ dGFyZ2V0KSB7CiAgICAgICAgICAgICAgICBtb3YgICAgcjAsIHI0ICAgCiAgICAgICAgICAgICAg ICAgICAgICBpZiAodmFycy0+cF9kcm9wICYmCiAgICAgICAgICAgICAgICBjbXBlcSAgcjQsIHIy ICAgCiAgICAgICAgICAgICAg4oaTIGJscyAgICAxMTJjICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKHZhcnMtPnBfZHJvcCA8IHAtPnBfZGVjKQogICAgICAgICAgICAgICAg bGRyICAgIHIzLCBbZnAsICMyMDg0XSA7IDB4ODI0CiAgICAgICAgICAgICAgICAgICAgICBpZiAo dmFycy0+Y291bnQgJiYga3RpbWVfdG9fbnMoa3RpbWVfc3ViKG5vdywgdmFycy0+ZHJvcF9uZXh0 KSkgPj0gMCkgewogICAgICAgICAgICAgICAgbGRyICAgIHIxLCBbc2wsICMxNl0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgaWYgKHZhcnMtPnBfZHJvcCA8IHAtPnBfZGVjKQogICAgICAg ICAgICAgICAgY21wICAgIGlwLCByMyAgIAogICAgICAgICAgICAgIOKGkyBiY3MgICAgNTcwICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFycy0+cF9kcm9wID0g MDsKICAgICAgICAgICAgICAgIGxkciAgICByMywgW3NwLCAjNDhdICAgOyAweDMwCiAgICAgICAg ICAgICAgICAgICAgICBpZiAodmFycy0+Y291bnQgJiYga3RpbWVfdG9fbnMoa3RpbWVfc3ViKG5v dywgdmFycy0+ZHJvcF9uZXh0KSkgPj0gMCkgewogICAgICAgICAgICAgICAgY21wICAgIHIxLCAj MCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJzLT5ibHVlX3RpbWVyID0gbm93 OwogICAgICAgICAgICAgICAgbW92ICAgIHI0LCByNiAgIAogICAgICAgICAgICAgICAgbW92ICAg IHI1LCByNyAgIAogICAgICAgICAgICAgICAgc3RyZCAgIHI0LCBbc2wsICMzMl0KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJzLT5wX2Ryb3AgPSAwOwogICAgICAgICAg ICAgICAgc3RyICAgIHIzLCBbc2wsICM0MF0gICA7IDB4MjgKICAgICAgICAgICAgICAgICAgICAg IHZhcnMtPmRyb3BwaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICBzdHJiICAgcjMsIFtzbCwg IzQ0XSAgIDsgMHgyYwogICAgICAgICAgICAgICAgICAgICAgaWYgKHZhcnMtPmNvdW50ICYmIGt0 aW1lX3RvX25zKGt0aW1lX3N1Yihub3csIHZhcnMtPmRyb3BfbmV4dCkpID49IDApIHsKICAgICAg ICAgICAgICDihpMgYm5lICAgIDEwZTggICAgIAogICAgICAgICAgICAgIOKGkyBiICAgICAgNjM4 ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFycy0+cF9kcm9w IC09IHAtPnBfZGVjOwogICAgICAgICA1NzA6ICAgc3ViICAgIHIzLCBpcCwgcjMKICAgICAgICAg ICAgICAgICAgICAgIHZhcnMtPmRyb3BwaW5nID0gZmFsc2U7CiAgICAgICAgICAgICAgICBsZHIg ICAgcjAsIFtzcCwgIzQ4XSAgIDsgMHgzMAogICAgICAgICAgICAgICAgY2x6ICAgIGlwLCByMyAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnMtPnBfZHJvcCAtPSBw LT5wX2RlYzsKICAgICAgICAgICAgICAgIHN0ciAgICByMywgW3NsLCAjNDBdICAgOyAweDI4CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnMtPmJsdWVfdGltZXIgPSBub3c7CiAgICAg ICAgICAgICAgICBsZHJkICAgcjIsIFtzcCwgIzI0XQogICAgICAgICAgICAgICAgICAgICAgaWYg KHZhcnMtPmNvdW50ICYmIGt0aW1lX3RvX25zKGt0aW1lX3N1Yihub3csIHZhcnMtPmRyb3BfbmV4 dCkpID49IDApIHsKICAgICAgICAgICAgICAgIGNtcCAgICByMSwgIzAgICAKICAgICAgICAgICAg ICAgIGxzciAgICBpcCwgaXAsICM1CiAgICAgICAgICAgICAgICAgICAgICB2YXJzLT5kcm9wcGlu ZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgc3RyYiAgIHIwLCBbc2wsICM0NF0gICA7IDB4MmMK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFycy0+Ymx1ZV90aW1lciA9IG5vdzsKICAg ICAgICAgICAgICAgIHN0cmQgICByMiwgW3NsLCAjMzJdCiAgICAgICAgICAgICAgICAgICAgICBp ZiAodmFycy0+Y291bnQgJiYga3RpbWVfdG9fbnMoa3RpbWVfc3ViKG5vdywgdmFycy0+ZHJvcF9u ZXh0KSkgPj0gMCkgewogICAgICAgICAgICAgIOKGkyBiZXEgICAgNjMwICAgICAgCiAgICAgICAg ICAgICAgICBsZHJkICAgcjYsIFtzbCwgIzI0XQogICAgICAgICAgICAgICAgc3VicyAgIHIyLCBy MiwgcjYKICAgICAgICAgICAgICAgIHNiYyAgICByMywgcjMsIHI3CiAgICAgICAgICAgICAgICBj bXAgICAgcjIsICMwICAgCiAgICAgICAgICAgICAgICBzYmNzICAgcjMsIHIzLCAjMAogICAgICAg ICAgICAgIOKGkyBibHQgICAgNjMwICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHZhcnMtPmNvdW50LS07CiAgMC4wMSAgIDViMDogICBzdWIgICAgcjIsIHIxLCAjMQogIDAuMDIg ICAgICAgICAgc3RyICAgIHIyLCBbcjgsICMxNl0KICAgICAgICAgICAgICBjb2JhbHRfaW52c3Fy dCgpOgogICAgICAgICAgICAgICAgICAgICAgaWYgKHZhcnMtPmNvdW50IDwgUkVDX0lOVl9TUVJU X0NBQ0hFKQogICAgICAgICAgICAgICAgY21wICAgIHIyLCAjMTUgIAogICAgICAgICAgICAgIOKG kyBiaGkgICAgNWQ0ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnMtPnJl Y19pbnZfc3FydCA9IGNvYmFsdF9yZWNfaW52X3NxcnRfY2FjaGVbdmFycy0+Y291bnRdOwogICAg ICAgICAgICAgICAgbGRyICAgIHIzLCBbc3AsICM0NF0gICA7IDB4MmMKICAgICAgICAgICAgICAg IGFkZCAgICByMiwgcjMsIHIyLCBsc2wgIzIKICAgICAgICAgICAgICAgIGxkciAgICByMSwgW3Iy LCAjMjA1Ml0gOyAweDgwNAogIDAuMDAgICAgICAgICAgc3RyICAgIHIxLCBbcjgsICMyMF0KICAg ICAgICAgICAgICDihpMgYiAgICAgIDYxMCAgICAgIAogICAgICAgICAgICAgIGNvYmFsdF9uZXd0 b25fc3RlcCgpOgogICAgICAgICAgICAgICAgICAgICAgaW52c3FydCA9IHZhcnMtPnJlY19pbnZf c3FydDsKICAgICAgICAgNWQ0OiAgIGxkciAgICByMCwgW3I4LCAjMjBdCiAgICAgICAgICAgICAg ICAgICAgICBpbnZzcXJ0MiA9ICgodTY0KWludnNxcnQgKiBpbnZzcXJ0KSA+PiAzMjsKICAgICAg ICAgICAgICAgIHVtdWxsICByNCwgcjUsIHIwLCByMAogICAgICAgICAgICAgICAgICAgICAgdmFs ID0gKDNMTCA8PCAzMikgLSAoKHU2NCl2YXJzLT5jb3VudCAqIGludnNxcnQyKTsKICAgICAgICAg ICAgICAgIG1vdiAgICByNCwgIzAgICAKICAgICAgICAgICAgICAgIHVtdWxsICByMiwgcjMsIHI1 LCByMgogICAgICAgICAgICAgICAgbW92ICAgIHI1LCAjMyAgIAogICAgICAgICAgICAgICAgc3Vi cyAgIHI0LCByNCwgcjIKICAgICAgICAgICAgICAgIHNiYyAgICByNSwgcjUsIHIzCiAgICAgICAg ICAgICAgICAgICAgICB2YWwgPj49IDI7IC8qIGF2b2lkIG92ZXJmbG93IGluIGZvbGxvd2luZyBt dWx0aXBseSAqLwogICAgICAgICAgICAgICAgbHNyICAgIHIyLCByNCwgIzIKICAgICAgICAgICAg ICAgIG9yciAgICByMiwgcjIsIHI1LCBsc2wgIzMwCiAgICAgICAgICAgICAgICBsc3IgICAgcjEs IHI1LCAjMgogICAgICAgICAgICAgICAgICAgICAgdmFsID0gKHZhbCAqIGludnNxcnQpID4+ICgz MiAtIDIgKyAxKTsKICAgICAgICAgICAgICAgIHVtdWxsICByMiwgcjMsIHIyLCByMAogICAgICAg ICAgICAgICAgbWxhICAgIHIzLCByMCwgcjEsIHIzCiAgICAgICAgICAgICAgICBsc3IgICAgcjEs IHIyLCAjMzEKICAgICAgICAgICAgICAgIG9yciAgICByMSwgcjEsIHIzLCBsc2wgIzEKICAgICAg ICAgICAgICAgICAgICAgIHZhcnMtPnJlY19pbnZfc3FydCA9IHZhbDsKICAgICAgICAgICAgICAg IHN0ciAgICByMSwgW3I4LCAjMjBdCiAgICAgICAgICAgICAgcmVjaXByb2NhbF9zY2FsZSgpOgog ICAgICAgICAgICAgICAqICAgICAgICAgIAogICAgICAgICAgICAgICAqIFJldHVybjogYSByZXN1 bHQgYmFzZWQgb24gQHZhbCBpbiBpbnRlcnZhbCBbMCwgQGVwX3JvKS4KICAgICAgICAgICAgICAg Ki8gICAgICAgICAKICAgICAgICAgICAgICBzdGF0aWMgaW5saW5lIHUzMiByZWNpcHJvY2FsX3Nj YWxlKHUzMiB2YWwsIHUzMiBlcF9ybykKICAgICAgICAgICAgICB7ICAgICAgICAgICAKICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAodTMyKSgoKHU2NCkgdmFsICogZXBfcm8pID4+IDMyKTsK ICAgICAgICAgNjEwOiAgIGxkciAgICByMiwgW3I5LCAjMjA1Nl0gOyAweDgwOAogIDAuMDIgICAg ICAgICAgbW92ICAgIHIwLCAjMCAgIAogICAgICAgICAgICAgICAgbW92ICAgIGZwLCByMCAgIAog ICAgICAgICAgICAgICAgdW11bGwgIHIyLCByMywgcjIsIHIxCiAgICAgICAgICAgICAgICBtbGEg ICAgc2wsIHIxLCByMCwgcjMKICAgICAgICAgICAgICBjb2JhbHRfY29udHJvbCgpOgogICAgICAg ICAgICAgICAgICAgICAgcmV0dXJuIGt0aW1lX2FkZF9ucyh0LCByZWNpcHJvY2FsX3NjYWxlKGlu dGVydmFsLAogICAgICAgICAgICAgICAgYWRkcyAgIHI0LCBzbCwgcjYKICAgICAgICAgICAgICAg IGFkYyAgICByNSwgcjAsIHI3CiAgICAgICAgICAgICAgY29iYWx0X3F1ZXVlX2VtcHR5KCk6CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnMtPmRyb3BfbmV4dCA9IGNvYmFsdF9jb250 cm9sKHZhcnMtPmRyb3BfbmV4dCwKICAgICAgICAgICAgICAgIHN0cmQgICByNCwgW3I4LCAjMjRd CiAgICAgICAgICAgICAgY2FrZV9kZXF1ZXVlKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgLyogdGhpcyBxdWV1ZSB3YXMgYWN0dWFsbHkgZW1wdHkgKi8KICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY29iYWx0X3F1ZXVlX2VtcHR5KCZmbG93 LT5jdmFycywgJmItPmNwYXJhbXMsIG5vdykpCiAgICAgICAgIDYzMDogICBjbXAgICAgaXAsICMw ICAgCiAgICAgICAgICAgICAg4oaTIGJlcSAgICA2NDggICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGItPnVucmVzcG9uc2l2ZV9mbG93X2NvdW50LS07 CiAgICAgICAgIDYzODogICBtb3Z3ICAgcjIsICMyMDk4ICAgICAgIDsgMHg4MzIKICAgICAgICAg ICAgICAgIGxkcmggICByMywgW3I5LCByMl0KICAgICAgICAgICAgICAgIHN1YiAgICByMywgcjMs ICMxCiAgICAgICAgICAgICAgICBzdHJoICAgcjMsIFtyOSwgcjJdCiAgMC4wNCAgIDY0ODogICBs ZHIgICAgaXAsIFtyOCwgIzQwXSAgIDsgMHgyOAogICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmxvdy0+Y3ZhcnMucF9kcm9wIHx8IGZsb3ct PmN2YXJzLmNvdW50IHx8CiAgMC4wNCAgIDY0YzogICBjbXAgICAgaXAsICMwICAgCiAgICAgICAg ICAgICAgICBsZHIgICAgcjAsIFtyOCwgIzRdCiAgICAgICAgICAgICAgICBsZHIgICAgcjEsIFty OF0gCiAgICAgICAgICAgICAg4oaTIGJuZSAgICA2N2MgICAgICAKICAwLjI2ICAgNjVjOiAgIGxk ciAgICByMywgW3I4LCAjMTZdCiAgICAgICAgICAgICAgICBjbXAgICAgcjMsICMwICAgCiAgMC4w NCAgICAgICAg4oaTIGJuZSAgICA2N2MgICAgICAKICAgICAgICAgICAgICBrdGltZV9jb21wYXJl KCk6CiAgICAgICAgICAgICAgICAgICAgICBpZiAoY21wMSA8IGNtcDIpCiAgMC4wMSAgICAgICAg ICBsZHJkICAgcjIsIFtyOCwgIzI0XQogIDAuMTAgICAgICAgICAgbGRyZCAgIHI0LCBbc3AsICMy NF0KICAgICAgICAgICAgICAgIGNtcCAgICByNCwgcjIgICAKICAwLjI1ICAgICAgICAgIHNiY3Mg ICByMywgcjUsIHIzCiAgICAgICAgICAgICAg4oaTIGJnZSAgICA3NmMgICAgICAKICAgICAgICAg ICAgICBfX2xpc3RfZGVsKCk6CiAgICAgICAgICAgICAgICAgICAgICBuZXh0LT5wcmV2ID0gcHJl djsKICAwLjI3ICAgNjdjOiAgIHN0ciAgICByMCwgW3IxLCAjNF0KICAgICAgICAgICAgICBfX2xp c3RfYWRkKCk6CiAgICAgICAgICAgICAgICAgICAgICBuZXctPm5leHQgPSBuZXh0OwogICAgICAg ICAgICAgICAgbGRyICAgIHIyLCBbc3AsICM4NF0gICA7IDB4NTQKICAgICAgICAgICAgICBfX3dy aXRlX29uY2Vfc2l6ZSgpOgogIDAuMDMgICAgICAgICAgc3RyICAgIHIxLCBbcjBdIAogICAgICAg ICAgICAgIGxpc3RfYWRkX3RhaWwoKToKICAgICAgICAgICAgICAgICAgICAgIF9fbGlzdF9hZGQo bmV3LCBoZWFkLT5wcmV2LCBoZWFkKTsKICAgICAgICAgICAgICAgIGxkciAgICByMywgW3I5LCAj MjEyNF0gOyAweDg0YwogICAgICAgICAgICAgIF9fbGlzdF9hZGQoKToKICAgICAgICAgICAgICAg ICAgICAgIG5leHQtPnByZXYgPSBuZXc7CiAgMC4yMSAgICAgICAgICBzdHIgICAgcjgsIFtyOSwg IzIxMjRdIDsgMHg4NGMKICAgICAgICAgICAgICAgICAgICAgIG5ldy0+cHJldiA9IHByZXY7CiAg MC4wMSAgICAgICAgICBzdHJkICAgcjIsIFtyOF0gCiAgICAgICAgICAgICAgX193cml0ZV9vbmNl X3NpemUoKToKICAwLjEzICAgICAgICAgIHN0ciAgICByOCwgW3IzXSAKICAgICAgICAgICAgICBj YWtlX2RlcXVldWUoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIC8qIGtlZXAgaW4gdGhlIGZsb3djaGFpbiB1bnRpbCB0aGUgc3RhdGUgaGFzCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKiBkZWNheWVkIHRvIHJlc3QK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqLwogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGlzdF9tb3ZlX3RhaWwoJmZs b3ctPmZsb3djaGFpbiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICZiLT5kZWNheWluZ19mbG93cyk7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmxvdy0+c2V0ID09IENBS0VfU0VUX0JV TEspIHsKICAgICAgICAgICAgICAgIGxkcmIgICByMywgW3I4LCAjNTJdICAgOyAweDM0CiAgMC4w NSAgICAgICAgICBjbXAgICAgcjMsICMzICAgCiAgICAgICAgICAgICAg4oaTIGJuZSAgICA3MzAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgYi0+YnVsa19mbG93X2NvdW50LS07CiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FrZV9kc3JjKHEtPmZs b3dfbW9kZSkpCiAgMC4wNCAgICAgICAgICBsZHIgICAgcjMsIFtzcCwgIzUyXSAgIDsgMHgzNAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLT5i dWxrX2Zsb3dfY291bnQtLTsKICAgICAgICAgICAgICAgIG1vdncgICByMSwgIzIwOTIgICAgICAg OyAweDgyYwogIDAuMDEgICAgICAgICAgbGRyaCAgIHIyLCBbcjksIHIxXQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FrZV9kc3JjKHEt PmZsb3dfbW9kZSkpCiAgICAgICAgICAgICAgICBhZGQgICAgcjMsIHIzLCAjMTYzODQgIDsgMHg0 MDAwCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGItPmJ1bGtfZmxvd19jb3VudC0tOwogIDAuMDIgICAgICAgICAgc3ViICAgIHIyLCByMiwgIzEK ICAgICAgICAgICAgICAgIHN0cmggICByMiwgW3I5LCByMV0KICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNha2VfZHNyYyhxLT5mbG93X21v ZGUpKQogICAgICAgICAgICAgICAgbGRyYiAgIHIyLCBbcjMsICMyNzNdICA7IDB4MTExCiAgICAg ICAgICAgICAgICBhbmQgICAgcjEsIHIyLCAjNQogIDAuMDEgICAgICAgICAgY21wICAgIHIxLCAj NSAgIAogICAgICAgICAgICAgIOKGkyBibmUgICAgNmYwICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjaG9zdC0+c3Jj aG9zdF9idWxrX2Zsb3dfY291bnQtLTsKICAgICAgICAgICAgICAgIGxkciAgICByMSwgW3NwLCAj ODhdICAgOyAweDU4CiAgICAgICAgICAgICAgICBtb3YgICAgcjIsICMxMiAgCiAgICAgICAgICAg ICAgICBsZHIgICAgcjAsIFtzcCwgIzYwXSAgIDsgMHgzYwogICAgICAgICAgICAgICAgbWxhICAg IHIyLCByMiwgcjEsIHIwCiAgICAgICAgICAgICAgICBhZGQgICAgcjIsIHIyLCAjNzU3NzYgIDsg MHgxMjgwMAogICAgICAgICAgICAgICAgbGRyaCAgIHIxLCBbcjIsICM4XQogICAgICAgICAgICAg ICAgc3ViICAgIHIxLCByMSwgIzEKICAgICAgICAgICAgICAgIHN0cmggICByMSwgW3IyLCAjOF0K ICAgICAgICAgICAgICAgIGxkcmIgICByMiwgW3IzLCAjMjczXSAgOyAweDExMQogICAgICAgICAg ICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKGNha2VfZGRzdChxLT5mbG93X21vZGUpKQogICAgICAgICA2ZjA6ICAgYW5kICAgIHIy LCByMiwgIzYKICAgICAgICAgICAgICAgIGNtcCAgICByMiwgIzYgICAKICAgICAgICAgICAgICDi hpMgYm5lICAgIDcxYyAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGRzdGhvc3QtPmRzdGhvc3RfYnVsa19mbG93X2NvdW50 LS07CiAgMC4wMSAgICAgICAgICBsZHIgICAgcjIsIFtzcCwgIzkyXSAgIDsgMHg1YwogICAgICAg ICAgICAgICAgbW92ICAgIHIzLCAjMTIgIAogICAgICAgICAgICAgICAgbGRyICAgIHIxLCBbc3As ICM2MF0gICA7IDB4M2MKICAgICAgICAgICAgICAgIG1sYSAgICByMywgcjMsIHIyLCByMQogICAg ICAgICAgICAgICAgYWRkICAgIHIzLCByMywgIzc1Nzc2ICA7IDB4MTI4MDAKICAgICAgICAgICAg ICAgIGxkcmggICByMiwgW3IzLCAjMTBdCiAgICAgICAgICAgICAgICBzdWIgICAgcjIsIHIyLCAj MQogICAgICAgICAgICAgICAgc3RyaCAgIHIyLCBbcjMsICMxMF0KICAgICAgICAgICAgICAgCiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGItPmRl Y2F5aW5nX2Zsb3dfY291bnQrKzsKICAgICAgICAgNzFjOiAgIGFkZCAgICByMiwgcjksICMyMDk2 ICAgOyAweDgzMAogIDAuMDEgICAgICAgICAgbGRyaCAgIHIzLCBbcjJdIAogICAgICAgICAgICAg ICAgYWRkICAgIHIzLCByMywgIzEKICAwLjAxICAgICAgICAgIHN0cmggICByMywgW3IyXSAKICAg ICAgICAgICAgICDihpMgYiAgICAgIDc1YyAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChmbG93LT5zZXQgPT0gQ0FLRV9TRVRfU1BB UlNFIHx8CiAgMC4xMSAgIDczMDogICBzdWIgICAgcjMsIHIzLCAjMQogIDAuMjIgICAgICAgICAg Y21wICAgIHIzLCAjMSAgIAogICAgICAgICAgICAgIOKGkyBiaGkgICAgNzVjICAgICAgCiAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb3ct PnNldCA9PSBDQUtFX1NFVF9TUEFSU0VfV0FJVCkgewogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLT5zcGFyc2VfZmxvd19jb3VudC0tOwogIDAu MDIgICAgICAgICAgbW92dyAgIHIxLCAjMjA5NCAgICAgICA7IDB4ODJlCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGItPmRlY2F5aW5nX2Zsb3df Y291bnQrKzsKICAwLjAxICAgICAgICAgIGFkZCAgICByMiwgcjksICMyMDk2ICAgOyAweDgzMAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLT5z cGFyc2VfZmxvd19jb3VudC0tOwogIDAuMDEgICAgICAgICAgbGRyaCAgIHIzLCBbcjksIHIxXQog IDAuMDQgICAgICAgICAgc3ViICAgIHIzLCByMywgIzEKICAwLjAwICAgICAgICAgIHN0cmggICBy MywgW3I5LCByMV0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgYi0+ZGVjYXlpbmdfZmxvd19jb3VudCsrOwogIDAuMDEgICAgICAgICAgbGRyaCAg IHIzLCBbcjJdIAogIDAuMDEgICAgICAgICAgYWRkICAgIHIzLCByMywgIzEKICAwLjAxICAgICAg ICAgIHN0cmggICByMywgW3IyXSAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IGZsb3ctPnNldCA9IENBS0VfU0VUX0RFQ0FZSU5HOwogIDAuMzcgICA3NWM6ICAgbW92ICAgIHIz LCAjNCAgIAogICAgICAgICAgICAgICAgICAgICAgZmlyc3RfZmxvdyA9IGZhbHNlOwogIDAuMDEg ICAgICAgICAgbW92ICAgIHIxLCAjMCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmxvdy0+c2V0ID0gQ0FLRV9TRVRfREVDQVlJTkc7CiAgMC4wMSAgICAg ICAgICBzdHJiICAgcjMsIFtyOCwgIzUyXSAgIDsgMHgzNAogICAgICAgICAgICAgIOKGkSBiICAg ICAgNGMgICAgICAgCiAgICAgICAgICAgICAgX19saXN0X2RlbCgpOgogICAgICAgICAgICAgICAg ICAgICAgbmV4dC0+cHJldiA9IHByZXY7CiAgMC4wMyAgIDc2YzogICBzdHIgICAgcjAsIFtyMSwg IzRdCiAgICAgICAgICAgICAgX193cml0ZV9vbmNlX3NpemUoKToKICAgICAgICAgICAgICAgIHN0 ciAgICByMSwgW3IwXSAKICAgICAgICAgICAgICBjYWtlX2RlcXVldWUoKToKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgLyogcmVtb3ZlIGVtcHR5IHF1ZXVlIGZyb20gdGhlIGZs b3djaGFpbiAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg bGlzdF9kZWxfaW5pdCgmZmxvdy0+Zmxvd2NoYWluKTsKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGlmIChmbG93LT5zZXQgPT0gQ0FLRV9TRVRfU1BBUlNFIHx8 CiAgMC4wMyAgICAgICAgICBsZHJiICAgcjMsIFtyOCwgIzUyXSAgIDsgMHgzNAogICAgICAgICAg ICAgIF9fd3JpdGVfb25jZV9zaXplKCk6CiAgICAgICAgICAgICAgICBzdHIgICAgcjgsIFtyOF0g CiAgICAgICAgICAgICAgY2FrZV9kZXF1ZXVlKCk6CiAgICAgICAgICAgICAgICBzdWIgICAgcjIs IHIzLCAjMQogICAgICAgICAgICAgIElOSVRfTElTVF9IRUFEKCk6CiAgICAgICAgICAgICAgICAg ICAgICBsaXN0LT5wcmV2ID0gbGlzdDsKICAgICAgICAgICAgICAgIHN0ciAgICByOCwgW3I4LCAj NF0KICAgICAgICAgICAgICBjYWtlX2RlcXVldWUoKToKICAgICAgICAgICAgICAgIGNtcCAgICBy MiwgIzEgICAKICAgICAgICAgICAgICDihpMgYmhpICAgIDdhMCAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb3ctPnNldCA9PSBDQUtFX1NF VF9TUEFSU0VfV0FJVCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgYi0+c3BhcnNlX2Zsb3dfY291bnQtLTsKICAgICAgICAgICAgICAgIG1vdncg ICByMiwgIzIwOTQgICAgICAgOyAweDgyZQogICAgICAgICAgICAgICAgbGRyaCAgIHIzLCBbcjks IHIyXQogICAgICAgICAgICAgICAgc3ViICAgIHIzLCByMywgIzEKICAgICAgICAgICAgICAgIHN0 cmggICByMywgW3I5LCByMl0KICAgICAgICAgICAgICDihpMgYiAgICAgIDgzNCAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoZmxvdy0+ c2V0ID09IENBS0VfU0VUX0JVTEspIHsKICAgICAgICAgN2EwOiAgIGNtcCAgICByMywgIzMgICAK ICAwLjAxICAgICAgICDihpMgYm5lICAgIDgyNCAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiLT5idWxrX2Zsb3dfY291bnQtLTsKICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGlmIChjYWtlX2RzcmMocS0+Zmxvd19tb2RlKSkKICAgICAgICAgICAgICAgIGxk ciAgICByMywgW3NwLCAjNTJdICAgOyAweDM0CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgIGItPmJ1bGtfZmxvd19jb3VudC0tOwogICAgICAgICAg ICAgICAgbW92dyAgIHIxLCAjMjA5MiAgICAgICA7IDB4ODJjCiAgICAgICAgICAgICAgICBsZHJo ICAgcjIsIFtyOSwgcjFdCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIGlmIChjYWtlX2RzcmMocS0+Zmxvd19tb2RlKSkKICAgICAgICAgICAgICAg IGFkZCAgICByMywgcjMsICMxNjM4NCAgOyAweDQwMDAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYi0+YnVsa19mbG93X2NvdW50LS07CiAgICAg ICAgICAgICAgICBzdWIgICAgcjIsIHIyLCAjMQogICAgICAgICAgICAgICAgc3RyaCAgIHIyLCBb cjksIHIxXQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBpZiAoY2FrZV9kc3JjKHEtPmZsb3dfbW9kZSkpCiAgICAgICAgICAgICAgICBsZHJiICAg cjIsIFtyMywgIzI3M10gIDsgMHgxMTEKICAgICAgICAgICAgICAgIGFuZCAgICByMSwgcjIsICM1 CiAgICAgICAgICAgICAgICBjbXAgICAgcjEsICM1ICAgCiAgICAgICAgICAgICAg4oaTIGJuZSAg ICA3ZjQgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBzcmNob3N0LT5zcmNob3N0X2J1bGtfZmxvd19jb3VudC0tOwogICAg ICAgICAgICAgICAgbGRyICAgIHIxLCBbc3AsICM4OF0gICA7IDB4NTgKICAgICAgICAgICAgICAg IG1vdiAgICByMiwgIzEyICAKICAgICAgICAgICAgICAgIGxkciAgICByMCwgW3NwLCAjNjBdICAg OyAweDNjCiAgICAgICAgICAgICAgICBtbGEgICAgcjIsIHIyLCByMSwgcjAKICAgICAgICAgICAg ICAgIGFkZCAgICByMiwgcjIsICM3NTc3NiAgOyAweDEyODAwCiAgICAgICAgICAgICAgICBsZHJo ICAgcjEsIFtyMiwgIzhdCiAgICAgICAgICAgICAgICBzdWIgICAgcjEsIHIxLCAjMQogICAgICAg ICAgICAgICAgc3RyaCAgIHIxLCBbcjIsICM4XQogICAgICAgICAgICAgICAgbGRyYiAgIHIyLCBb cjMsICMyNzNdICA7IDB4MTExCiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoY2FrZV9kZHN0KHEtPmZsb3dfbW9k ZSkpCiAgICAgICAgIDdmNDogICBhbmQgICAgcjIsIHIyLCAjNgogICAgICAgICAgICAgICAgY21w ICAgIHIyLCAjNiAgIAogICAgICAgICAgICAgIOKGkyBibmUgICAgODM0ICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHN0 aG9zdC0+ZHN0aG9zdF9idWxrX2Zsb3dfY291bnQtLTsKICAgICAgICAgICAgICAgIGxkciAgICBy MiwgW3NwLCAjOTJdICAgOyAweDVjCiAgICAgICAgICAgICAgICBtb3YgICAgcjMsICMxMiAgCiAg ICAgICAgICAgICAgICBsZHIgICAgcjEsIFtzcCwgIzYwXSAgIDsgMHgzYwogICAgICAgICAgICAg ICAgbWxhICAgIHIzLCByMywgcjIsIHIxCiAgICAgICAgICAgICAgICBhZGQgICAgcjMsIHIzLCAj NzU3NzYgIDsgMHgxMjgwMAogICAgICAgICAgICAgICAgbGRyaCAgIHIyLCBbcjMsICMxMF0KICAg ICAgICAgICAgICAgIHN1YiAgICByMiwgcjIsICMxCiAgICAgICAgICAgICAgICBzdHJoICAgcjIs IFtyMywgIzEwXQogICAgICAgICAgICAgIOKGkyBiICAgICAgODM0ICAgICAgCiAgICAgICAgICAg ICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNl CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGIt PmRlY2F5aW5nX2Zsb3dfY291bnQtLTsKICAgICAgICAgODI0OiAgIGFkZCAgICByMiwgcjksICMy MDk2ICAgOyAweDgzMAogICAgICAgICAgICAgICAgbGRyaCAgIHIzLCBbcjJdIAogIDAuMDEgICAg ICAgICAgc3ViICAgIHIzLCByMywgIzEKICAgICAgICAgICAgICAgIHN0cmggICByMywgW3IyXSAK ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICBmbG93LT5zZXQgPSBDQUtFX1NFVF9OT05FOwogIDAuMDEgICA4MzQ6ICAgbW92ICAgIHIx LCAjMCAgIAogICAgICAgICAgICAgICAgc3RyYiAgIHIxLCBbcjgsICM1Ml0gICA7IDB4MzQKICAg ICAgICAgICAgICDihpEgYiAgICAgIDRjICAgICAgIAogICAgICAgICAgICAgIGNvYmFsdF9zaG91 bGRfZHJvcCgpOgogICAgICAgICAgICAgICAgICAgICAgc29qb3VybiA9IGt0aW1lX3RvX25zKGt0 aW1lX3N1Yihub3csIGNvYmFsdF9nZXRfZW5xdWV1ZV90aW1lKHNrYikpKTsKICAwLjIxICAgODQw OiAgIGxkciAgICByMywgW3NwLCAjNDhdICAgOyAweDMwCiAgICAgICAgICAgICAgICAgICAgICBv dmVyX3RhcmdldCA9IHNvam91cm4gPiBwLT50YXJnZXQgJiYKICAwLjAxICAgICAgICAgIGFkZCAg ICByMCwgZnAsICMyMDY0ICAgOyAweDgxMAogICAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGUg PSBrdGltZV9zdWIobm93LCB2YXJzLT5kcm9wX25leHQpOwogIDAuMDMgICAgICAgICAgbGRyZCAg IHI0LCBbc2wsICMyNF0KICAwLjAxICAgICAgICAgIGxkcmQgICByNiwgW3NwLCAjMjRdCiAgICAg ICAgICAgICAgICAgICAgICBzb2pvdXJuID0ga3RpbWVfdG9fbnMoa3RpbWVfc3ViKG5vdywgY29i YWx0X2dldF9lbnF1ZXVlX3RpbWUoc2tiKSkpOwogIDAuMjEgICAgICAgICAgbGRyZCAgIHIyLCBb cjMsICMzMl0KICAgICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlID0ga3RpbWVfc3ViKG5vdywg dmFycy0+ZHJvcF9uZXh0KTsKICAwLjAzICAgICAgICAgIHN1YnMgICByOCwgcjYsIHI0CiAgMC4x OCAgICAgICAgICBsZHIgICAgcjEsIFtzbCwgIzE2XQogICAgICAgICAgICAgICAgc2JjICAgIHI5 LCByNywgcjUKICAgICAgICAgICAgICAgICAgICAgIHNvam91cm4gPSBrdGltZV90b19ucyhrdGlt ZV9zdWIobm93LCBjb2JhbHRfZ2V0X2VucXVldWVfdGltZShza2IpKSk7CiAgMC4wNSAgICAgICAg ICBzdWJzICAgcjYsIHI2LCByMgogIDAuMDEgICAgICAgICAgc2JjICAgIHI3LCByNywgcjMKICAg ICAgICAgICAgICAgICAgICAgIHNjaGVkdWxlID0ga3RpbWVfc3ViKG5vdywgdmFycy0+ZHJvcF9u ZXh0KTsKICAwLjA0ICAgICAgICAgIHN0cmQgICByNCwgW3NwLCAjMzJdCiAgICAgICAgICAgICAg ICBjbXAgICAgcjEsICMwICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNv am91cm4gPiBwLT5tdHVfdGltZSAqIGJ1bGtfZmxvd3MgKiAyICYmCiAgMC4wNSAgICAgICAgICBs ZHJkICAgcjQsIFtyMF0gCiAgMC4wMSAgICAgICAgICBtdm4gICAgbHIsIHI5ICAgCiAgICAgICAg ICAgICAgICAgICAgICBzb2pvdXJuID0ga3RpbWVfdG9fbnMoa3RpbWVfc3ViKG5vdywgY29iYWx0 X2dldF9lbnF1ZXVlX3RpbWUoc2tiKSkpOwogIDAuMDcgICAgICAgICAgc3RyZCAgIHI2LCBbc3As ICMxNl0KICAgICAgICAgICAgICAgIGxzciAgICBsciwgbHIsICMzMQogIDAuMTIgICAgICAgICAg bW92ZXEgIGxyLCAjMCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2pv dXJuID4gcC0+bXR1X3RpbWUgKiBidWxrX2Zsb3dzICogMiAmJgogIDAuMDEgICAgICAgICAgY21w ICAgIHI3LCByNSAgIAogIDAuMDYgICAgICAgICAgbGRyYiAgIGlwLCBbc2wsICM0NF0gICA7IDB4 MmMKICAgICAgICAgICAgICAgIGNtcGVxICByNiwgcjQgICAKICAwLjQ2ICAgICAgICDihpMgYmxz ICAgIDhmOCAgICAgIAogICAgICAgICAgICAgIGNha2VfZGVxdWV1ZSgpOgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAvKiBMYXN0IHBhY2tldCBpbiBxdWV1ZSBtYXkgYmUgbWFya2VkLCBzaG91bGRuJ3Qg YmUgZHJvcHBlZCAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIWNvYmFsdF9z aG91bGRfZHJvcCgmZmxvdy0+Y3ZhcnMsICZiLT5jcGFyYW1zLCBub3csIHNrYiwKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGItPmJ1bGtfZmxv d19jb3VudCAqCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAhIShxLT5yYXRlX2ZsYWdzICYKICAwLjAxICAgICAgICAgIGxkciAgICByNCwgW3Nw LCAjNTZdICAgOyAweDM4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIChiLT5idWxrX2Zsb3dfY291bnQgKgogIDAuMDEgICAgICAgICAgbW92dyAg IHI1LCAjMjA5MiAgICAgICA7IDB4ODJjCiAgICAgICAgICAgICAgICBsZHJoICAgcjUsIFtmcCwg cjVdCiAgICAgICAgICAgICAgY29iYWx0X3Nob3VsZF9kcm9wKCk6CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIHNvam91cm4gPiBwLT5tdHVfdGltZSAqIGJ1bGtfZmxvd3MgKiAy ICYmCiAgMC4wMSAgICAgICAgICBsZHJkICAgcjYsIFtyMCwgIzhdCiAgICAgICAgICAgICAgY2Fr ZV9kZXF1ZXVlKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAhIShxLT5yYXRlX2ZsYWdzICYKICAgICAgICAgICAgICAgIGxkcmggICByNCwg W3I0LCAjNTZdICAgOyAweDM4CiAgICAgICAgICAgICAgY29iYWx0X3Nob3VsZF9kcm9wKCk6CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNvam91cm4gPiBwLT5tdHVfdGltZSAq IGJ1bGtfZmxvd3MgKiAyICYmCiAgMC4wNCAgICAgICAgICBhZGRzICAgcjIsIHI2LCByNgogICAg ICAgICAgICAgIGNha2VfZGVxdWV1ZSgpOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgISEocS0+cmF0ZV9mbGFncyAmCiAgICAgICAgICAgICAg ICB1YmZ4ICAgcjQsIHI0LCAjMiwgIzEKICAgICAgICAgICAgICBjb2JhbHRfc2hvdWxkX2Ryb3Ao KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc29qb3VybiA+IHAtPm10dV90 aW1lICogYnVsa19mbG93cyAqIDIgJiYKICAwLjA0ICAgICAgICAgIGFkYyAgICByMywgcjcsIHI3 CiAgMC4wMiAgICAgICAgICBtb3YgICAgcjYsIHIyICAgCiAgICAgICAgICAgICAgY2FrZV9kZXF1 ZXVlKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIChiLT5idWxrX2Zsb3dfY291bnQgKgogICAgICAgICAgICAgICAgbXVsICAgIHI0LCByNSwg cjQKICAgICAgICAgICAgICBjb2JhbHRfc2hvdWxkX2Ryb3AoKToKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgc29qb3VybiA+IHAtPm10dV90aW1lICogYnVsa19mbG93cyAqIDIg JiYKICAgICAgICAgICAgICAgIG1vdiAgICByNywgcjMgICAKICAwLjAxICAgICAgICAgIHN0cmQg ICByNiwgW3NwLCAjNjRdICAgOyAweDQwCiAgICAgICAgICAgICAgICB1bXVsbCAgcjYsIHI3LCBy NCwgcjIKICAwLjA0ICAgICAgICAgIGxkcmQgICByMiwgW3NwLCAjNjRdICAgOyAweDQwCiAgMC4w MyAgICAgICAgICBtbGEgICAgcjcsIHI0LCByMywgcjcKICAgICAgICAgICAgICAgICAgICAgIG92 ZXJfdGFyZ2V0ID0gc29qb3VybiA+IHAtPnRhcmdldCAmJgogICAgICAgICAgICAgICAgbGRyZCAg IHI0LCBbc3AsICMxNl0KICAwLjA1ICAgICAgICAgIGNtcCAgICByNSwgcjcgICAKICAgICAgICAg ICAgICAgIGNtcGVxICByNCwgcjYgICAKICAwLjAxICAgICAgICDihpMgYmxzICAgIDhmOCAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzb2pvdXJuID4gcC0+bXR1X3Rp bWUgKiA0OwogIDAuMDEgICAgICAgICAgYWRkcyAgIHI0LCByMiwgcjIKICAwLjAxICAgICAgICAg IGFkYyAgICByNSwgcjMsIHIzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNv am91cm4gPiBwLT5tdHVfdGltZSAqIGJ1bGtfZmxvd3MgKiAyICYmCiAgICAgICAgICAgICAgICBs ZHJkICAgcjIsIFtzcCwgIzE2XQogIDAuMDUgICAgICAgICAgY21wICAgIHIzLCByNSAgIAogICAg ICAgICAgICAgICAgY21wZXEgIHIyLCByNCAgIAogIDAuMDIgICAgICAgIOKGkyBiaGkgICAgOTBj ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZhcnMtPmRyb3BwaW5nKSB7 CiAgMC4yMSAgIDhmODogICBjbXAgICAgaXAsICMwICAgCiAgICAgICAgICAgICAgICAgICAgICB2 YXJzLT5lY25fbWFya2VkID0gZmFsc2U7CiAgMC4wNCAgICAgICAgICBtb3YgICAgcjMsICMwICAg CiAgICAgICAgICAgICAgICBzdHJiICAgcjMsIFtzbCwgIzQ1XSAgIDsgMHgyZAogICAgICAgICAg ICAgICAgICAgICAgfSBlbHNlIGlmICh2YXJzLT5kcm9wcGluZykgewogIDAuMDMgICAgICAgIOKG kyBibmUgICAgOTY0ICAgICAgCiAgICAgICAgICAgICAg4oaTIGIgICAgICA5NzQgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCF2YXJzLT5kcm9wcGluZykgewogIDAuMDEg ICA5MGM6ICAgY21wICAgIGlwLCAjMCAgIAogICAgICAgICAgICAgICAgICAgICAgdmFycy0+ZWNu X21hcmtlZCA9IGZhbHNlOwogICAgICAgICAgICAgICAgbW92ICAgIHIzLCAjMCAgIAogIDAuMDMg ICAgICAgICAgc3RyYiAgIHIzLCBbc2wsICM0NV0gICA7IDB4MmQKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCF2YXJzLT5kcm9wcGluZykgewogIDAuMDEgICAgICAgIOKGkyBibmUg ICAgOTU0ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFycy0+ ZHJvcHBpbmcgPSB0cnVlOwogIDAuMDMgICAgICAgICAgbW92ICAgIHIzLCAjMSAgIAogICAgICAg ICAgICAgICAgc3RyYiAgIHIzLCBbc2wsICM0NF0gICA7IDB4MmMKICAgICAgICAgICAgICByZWNp cHJvY2FsX3NjYWxlKCk6CiAgICAgICAgICAgICAgICBsZHJkICAgcjIsIFtyMCwgIy04XQogICAg ICAgICAgICAgICAgbW92ICAgIHI1LCAjMCAgIAogICAgICAgICAgICAgICAgbGRyICAgIHIwLCBb c2wsICMyMF0KICAgICAgICAgICAgICAgIG1vdiAgICByMywgcjUgICAKICAwLjA3ICAgICAgICAg IHVtdWxsICByNCwgcjUsIHIyLCByMAogICAgICAgICAgICAgICAgbWxhICAgIHI2LCByMCwgcjMs IHI1CiAgICAgICAgICAgICAgY29iYWx0X2NvbnRyb2woKToKICAgICAgICAgICAgICAgICAgICAg IHJldHVybiBrdGltZV9hZGRfbnModCwgcmVjaXByb2NhbF9zY2FsZShpbnRlcnZhbCwKICAgICAg ICAgICAgICAgIGxkcmQgICByMiwgW3NwLCAjMjRdCiAgMC4wMCAgICAgICAgICBhZGRzICAgcjIs IHIyLCByNgogICAgICAgICAgICAgICAgYWRjICAgIHIzLCByMywgaXAKICAwLjAxICAgICAgICAg IG1vdiAgICByNiwgcjIgICAKICAgICAgICAgICAgICAgIG1vdiAgICByNywgcjMgICAKICAgICAg ICAgICAgICBjb2JhbHRfc2hvdWxkX2Ryb3AoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICB2YXJzLT5kcm9wX25leHQgPSBjb2JhbHRfY29udHJvbChub3csCiAgICAgICAg ICAgICAgICBzdHJkICAgcjYsIFtzbCwgIzI0XQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBpZiAoIXZhcnMtPmNvdW50KQogIDAuMDIgICA5NTQ6ICAgY21wICAgIHIxLCAjMCAgIAogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnMtPmNvdW50ID0gMTsKICAgICAg ICAgICAgICAgIG1vdmVxICByMywgIzEgICAKICAwLjAzICAgICAgICAgIHN0cmVxICByMywgW3Ns LCAjMTZdCiAgMC4wMSAgICAgICAg4oaTIGIgICAgICA5NzQgICAgICAKICAgICAgICAgICAgICAg ICAgICAgIGlmIChuZXh0X2R1ZSAmJiB2YXJzLT5kcm9wcGluZykgewogIDAuMDEgICA5NjQ6ICAg Y21wICAgIGxyLCAjMCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJzLT5kcm9w cGluZyA9IGZhbHNlOwogICAgICAgICAgICAgICAgc3RyYiAgIHIzLCBbc2wsICM0NF0gICA7IDB4 MmMKICAgICAgICAgICAgICAgICAgICAgIGlmIChuZXh0X2R1ZSAmJiB2YXJzLT5kcm9wcGluZykg ewogICAgICAgICAgICAgIOKGkyBibmUgICAgYjk4ICAgICAgCiAgICAgICAgICAgICAg4oaTIGIg ICAgICBjYmMgICAgICAKICAwLjA3ICAgOTc0OiAgIGNtcCAgICBsciwgIzAgICAKICAgICAgICAg ICAgICDihpMgYmVxICAgIGNiYyAgICAgIAogIDAuMDIgICAgICAgICAgbGRyYiAgIHIzLCBbc2ws ICM0NF0gICA7IDB4MmMKICAgICAgICAgICAgICAgIGNtcCAgICByMywgIzAgICAKICAgICAgICAg ICAgICAgIGxkcmRlcSByMiwgW3NsLCAjMjRdCiAgICAgICAgICAgICAgICBsZHJlcSAgcjEsIFtz bCwgIzE2XQogICAgICAgICAgICAgICAgc3RyZGVxIHIyLCBbc3AsICMzMl0KICAgICAgICAgICAg ICDihpMgYmVxICAgIGI5OCAgICAgIAogICAgICAgICAgICAgIElORVRfRUNOX3NldF9jZSgpOgog ICAgICAgICAgICAgICAgICAgICAgaXB2Nl9jaGFuZ2VfZHNmaWVsZChpbm5lciwgSU5FVF9FQ05f TUFTSywgZHNjcCk7CiAgICAgICAgICAgICAgfSAgICAgICAgICAgCiAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgIHN0YXRpYyBpbmxpbmUgaW50IElORVRfRUNOX3NldF9jZShzdHJ1Y3Qgc2tf YnVmZiAqc2tiKQogICAgICAgICAgICAgIHsgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAg ICAgc3dpdGNoIChza2ItPnByb3RvY29sKSB7CiAgMC4wMiAgICAgICAgICBsZHIgICAgcjMsIFtz cCwgIzQ4XSAgIDsgMHgzMAogICAgICAgICAgICAgICAgbGRyaCAgIHIzLCBbcjMsICMxNDhdICA7 IDB4OTQKICAgICAgICAgICAgICAgIGNtcCAgICByMywgIzggICAKICAgICAgICAgICAgICDihpMg YmVxICAgIDliNCAgICAgIAogICAgICAgICAgICAgICAgbW92dyAgIHIyLCAjNTY3MTAgICAgICA7 IDB4ZGQ4NgogICAgICAgICAgICAgICAgY21wICAgIHIzLCByMiAgIAogICAgICAgICAgICAgIOKG kyBiZXEgICAgYTNjICAgICAgCiAgICAgICAgICAgICAg4oaTIGIgICAgICBhZDAgICAgICAKICAg ICAgICAgICAgICBza2JfbmV0d29ya19oZWFkZXIoKToKICAgICAgICAgICAgICAgICAgICAgIHNr Yi0+dHJhbnNwb3J0X2hlYWRlciArPSBvZmZzZXQ7CiAgICAgICAgICAgICAgfSAgICAgICAgICAg CiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgIHN0YXRpYyBpbmxpbmUgdW5zaWduZWQgY2hh ciAqc2tiX25ldHdvcmtfaGVhZGVyKGNvbnN0IHN0cnVjdCBza19idWZmICpza2IpCiAgICAgICAg ICAgICAgeyAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2tiLT5oZWFk ICsgc2tiLT5uZXR3b3JrX2hlYWRlcjsKICAwLjAxICAgOWI0OiAgIGxkciAgICByMCwgW3NwLCAj NDhdICAgOyAweDMwCiAgICAgICAgICAgICAgICBsZHJoICAgcjIsIFtyMCwgIzE1Ml0gIDsgMHg5 OAogICAgICAgICAgICAgICAgbGRyICAgIHIxLCBbcjAsICMxNjRdICA7IDB4YTQKICAgICAgICAg ICAgICBJTkVUX0VDTl9zZXRfY2UoKToKICAgICAgICAgICAgICAgICAgICAgIGNhc2UgY3B1X3Rv X2JlMTYoRVRIX1BfSVApOgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc2tiX25l dHdvcmtfaGVhZGVyKHNrYikgKyBzaXplb2Yoc3RydWN0IGlwaGRyKSA8PQogICAgICAgICAgICAg ICAgYWRkICAgIHIzLCByMiwgIzIwCiAgICAgICAgICAgICAgICBsZHIgICAgcjAsIFtyMCwgIzE1 Nl0gIDsgMHg5YwogICAgICAgICAgICAgICAgYWRkICAgIHIzLCByMSwgcjMKICAgICAgICAgICAg ICAgIGNtcCAgICByMCwgcjMgICAKICAgICAgICAgICAgICDihpMgYmNjICAgIGFkMCAgICAgIAog ICAgICAgICAgICAgIHNrYl9uZXR3b3JrX2hlYWRlcigpOgogICAgICAgICAgICAgICAgYWRkICAg IHIyLCByMSwgcjIKICAgICAgICAgICAgICBJUF9FQ05fc2V0X2NlKCk6CiAgICAgICAgICAgICAg ICAgICAgICB1MzIgZWNuID0gKGlwaC0+dG9zICsgMSkgJiBJTkVUX0VDTl9NQVNLOwogICAgICAg ICAgICAgICAgbGRyYiAgIHIxLCBbcjIsICMxXQogICAgICAgICAgICAgICAgYWRkICAgIHIzLCBy MSwgIzEKICAgICAgICAgICAgICAgICAgICAgIGlmICghKGVjbiAmIDIpKQogICAgICAgICAgICAg ICAgdHN0ICAgIHIzLCAjMiAgIAogICAgICAgICAgICAgICAgICAgICAgdTMyIGVjbiA9IChpcGgt PnRvcyArIDEpICYgSU5FVF9FQ05fTUFTSzsKICAwLjAzICAgICAgICAgIGFuZCAgICByMywgcjMs ICMzCiAgICAgICAgICAgICAgICAgICAgICBpZiAoIShlY24gJiAyKSkKICAgICAgICAgICAgICDi hpMgYm5lICAgIGEwNCAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4g IWVjbjsKICAwLjAxICAgICAgICAgIGNtcCAgICByMywgIzAgICAKICAgICAgICAgICAgICAgIG1v dmVxICByMiwgIzEgICAKICAgICAgICAgICAgICAgIG1vdm5lICByMiwgIzAgICAKICAgICAgICAg ICAgICAgIG1vdm5lICByNCwgIzEgICAKICAgICAgICAgICAgICAgIG1vdmVxICByNCwgIzAgICAK ICAgICAgICAgICAgICDihpMgYiAgICAgIGFkYyAgICAgIAogICAgICAgICAgICAgICAgICAgICAg dTMyIGNoZWNrID0gKF9fZm9yY2UgdTMyKWlwaC0+Y2hlY2s7CiAgMC4wMSAgIGEwNDogICBsZHJo ICAgcjAsIFtyMiwgIzEwXQogICAgICAgICAgICAgICAgICAgICAgaXBoLT50b3MgfD0gSU5FVF9F Q05fQ0U7CiAgICAgICAgICAgICAgICBvcnIgICAgcjEsIHIxLCAjMwogICAgICAgICAgICAgICAg ICAgICAgY2hlY2sgKz0gKF9fZm9yY2UgdTE2KWh0b25zKDB4RkZGQikgKyAoX19mb3JjZSB1MTYp aHRvbnMoZWNuKTsKICAgICAgICAgICAgICAgIHJldjE2ICByMywgcjMgICAKICAgICAgICAgICAg ICAgICAgICAgIGlwaC0+dG9zIHw9IElORVRfRUNOX0NFOwogICAgICAgICAgICAgICAgc3RyYiAg IHIxLCBbcjIsICMxXQogICAgICAgICAgICAgICAgYWRkICAgIHIxLCByMCwgIzY0MjU2ICA7IDB4 ZmIwMAogICAgICAgICAgICAgICAgbW92ICAgIHI0LCAjMCAgIAogICAgICAgICAgICAgICAgYWRk ICAgIHIxLCByMSwgIzI1NSAgICA7IDB4ZmYKICAgICAgICAgICAgICAgICAgICAgIGlwaC0+Y2hl Y2sgPSAoX19mb3JjZSBfX3N1bTE2KShjaGVjayArIChjaGVjaz49MHhGRkZGKSk7CiAgICAgICAg ICAgICAgICBtb3Z3ICAgcjAsICM2NTUzNCAgICAgIDsgMHhmZmZlCiAgICAgICAgICAgICAgICAg ICAgICBjaGVjayArPSAoX19mb3JjZSB1MTYpaHRvbnMoMHhGRkZCKSArIChfX2ZvcmNlIHUxNilo dG9ucyhlY24pOwogIDAuMDQgICAgICAgICAgdXh0YWggIHIzLCByMSwgcjMKICAgICAgICAgICAg ICAgICAgICAgIGlwaC0+Y2hlY2sgPSAoX19mb3JjZSBfX3N1bTE2KShjaGVjayArIChjaGVjaz49 MHhGRkZGKSk7CiAgICAgICAgICAgICAgICBjbXAgICAgcjMsIHIwICAgCiAgICAgICAgICAgICAg ICBhZGRoaSAgcjMsIHIzLCAjMQogICAgICAgICAgICAgICAgc3RyaCAgIHIzLCBbcjIsICMxMF0K ICAgICAgICAgICAgICAgICAgICAgIGlwaC0+dG9zIHw9IElORVRfRUNOX0NFOwogICAgICAgICAg ICAgICAgbW92ICAgIHIyLCAjMSAgIAogICAgICAgICAgICAgIOKGkyBiICAgICAgYWRjICAgICAg CiAgICAgICAgICAgICAgc2tiX25ldHdvcmtfaGVhZGVyKCk6CiAgICAgICAgIGEzYzogICBsZHIg ICAgbHIsIFtzcCwgIzQ4XSAgIDsgMHgzMAogICAgICAgICAgICAgICAgbGRyaCAgIHIxLCBbbHIs ICMxNTJdICA7IDB4OTgKICAgICAgICAgICAgICAgIGxkciAgICByMCwgW2xyLCAjMTY0XSAgOyAw eGE0CiAgICAgICAgICAgICAgSU5FVF9FQ05fc2V0X2NlKCk6CiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICBza2JfdGFpbF9wb2ludGVyKHNrYikpCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgcmV0dXJuIElQX0VDTl9zZXRfY2UoaXBfaGRyKHNrYikpOwogICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICBjYXNlIGNwdV90b19iZTE2KEVUSF9QX0lQVjYpOgogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBpZiAoc2tiX25ldHdvcmtfaGVhZGVyKHNrYikgKyBzaXplb2Yoc3Ry dWN0IGlwdjZoZHIpIDw9CiAgICAgICAgICAgICAgICBhZGQgICAgcjMsIHIxLCAjNDAgICAgIDsg MHgyOAogICAgICAgICAgICAgICAgbGRyICAgIHIyLCBbbHIsICMxNTZdICA7IDB4OWMKICAgICAg ICAgICAgICAgIGFkZCAgICByMywgcjAsIHIzCiAgICAgICAgICAgICAgICBjbXAgICAgcjIsIHIz ICAgCiAgICAgICAgICAgICAg4oaTIGJjYyAgICBhZDAgICAgICAKICAgICAgICAgICAgICBpcHY2 X2dldF9kc2ZpZWxkKCk6CiAgICAgICAgICAgICAgfSAgICAgICAgICAgCiAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAKICAgICAgICAgICAgICBzdGF0aWMgaW5saW5lIF9fdTggaXB2Nl9n ZXRfZHNmaWVsZChjb25zdCBzdHJ1Y3QgaXB2NmhkciAqaXB2NmgpCiAgICAgICAgICAgICAgeyAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnRvaHMoKihjb25zdCBfX2Jl MTYgKilpcHY2aCkgPj4gNDsKICAgICAgICAgICAgICAgIGxkcmggICByMiwgW3IwLCByMV0KICAg ICAgICAgICAgICAgIHJldjE2ICByMiwgcjIgICAKICAgICAgICAgICAgICBJUDZfRUNOX3NldF9j ZSgpOgogICAgICAgICAgICAgICAgICAgICAgaWYgKElORVRfRUNOX2lzX25vdF9lY3QoaXB2Nl9n ZXRfZHNmaWVsZChpcGgpKSkKICAgICAgICAgICAgICAgIHViZnggICByMiwgcjIsICM0LCAjMgog ICAgICAgICAgICAgICAgY21wICAgIHIyLCAjMCAgIAogICAgICAgICAgICAgICAgbW92ZXEgIHI0 LCAjMSAgIAogICAgICAgICAgICAgIOKGkyBiZXEgICAgYWRjICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICBmcm9tID0gKihfX2JlMzIgKilpcGg7CiAgICAgICAgICAgICAgICBsZHIgICAgcjIs IFtyMCwgcjFdCiAgICAgICAgICAgICAgICAgICAgICB0byA9IGZyb20gfCBodG9ubChJTkVUX0VD Tl9DRSA8PCAyMCk7CiAgICAgICAgICAgICAgICBvcnIgICAgaXAsIHIyLCAjMTIyODggIDsgMHgz MDAwCiAgICAgICAgICAgICAgICAgICAgICAqKF9fYmUzMiAqKWlwaCA9IHRvOwogICAgICAgICAg ICAgICAgc3RyICAgIGlwLCBbcjAsIHIxXQogICAgICAgICAgICAgICAgICAgICAgaWYgKHNrYi0+ aXBfc3VtbWVkID09IENIRUNLU1VNX0NPTVBMRVRFKQogICAgICAgICAgICAgICAgbGRyYiAgIHIz LCBbbHIsICMxMDRdICA7IDB4NjgKICAgICAgICAgICAgICAgIGFuZCAgICByMywgcjMsICM5NiAg ICAgOyAweDYwCiAgICAgICAgICAgICAgICBjbXAgICAgcjMsICM2NCA7IDB4NDAKICAgICAgICAg ICAgICAgIG1vdm5lICByNCwgIzAgICAKICAgICAgICAgICAgICAgIG1vdm5lICByMiwgIzEgICAK ICAgICAgICAgICAgICDihpMgYm5lICAgIGFkYyAgICAgIAogICAgICAgICAgICAgICAgbGRyICAg IHIzLCBbbHIsICMxMTJdICA7IDB4NzAKICAgICAgICAgICAgICBjc3VtX3N1YigpOiAKICAgICAg ICAgICAgICB9ICAgICAgICAgICAKICAgICAgICAgICAgICAjZW5kaWYgICAgICAKICAgICAgICAg ICAgICAgCiAgICAgICAgICAgICAgc3RhdGljIGlubGluZSBfX3dzdW0gY3N1bV9zdWIoX193c3Vt IGNzdW0sIF9fd3N1bSBhZGRlbmQpCiAgICAgICAgICAgICAgeyAgICAgICAgICAgCiAgICAgICAg ICAgICAgICAgICAgICByZXR1cm4gY3N1bV9hZGQoY3N1bSwgfmFkZGVuZCk7CiAgICAgICAgICAg ICAgICBtdm4gICAgcjIsIHIyICAgCiAgICAgICAgICAgICAgICBtb3YgICAgcjEsICMwICAgCiAg ICAgICAgICAgICAgSVA2X0VDTl9zZXRfY2UoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2tiLT5jc3VtID0gY3N1bV9hZGQoY3N1bV9zdWIoc2tiLT5jc3VtLCAoX19mb3JjZSBfX3dz dW0pZnJvbSksCiAgICAgICAgICAgICAgICBtb3YgICAgcjQsICMwICAgCiAgICAgICAgICAgICAg ICBhZGRzICAgcjMsIHIzLCByMgogICAgICAgICAgICAgICAgbW92ICAgIHIyLCAjMSAgIAogICAg ICAgICAgICAgIGNzdW1fYWRkKCk6IAogICAgICAgICAgICAgICAgICAgICAgcmVzICs9IChfX2Zv cmNlIHUzMilhZGRlbmQ7CiAgICAgICAgICAgICAgICBhZGQgICAgcjMsIHIzLCBpcAogICAgICAg ICAgICAgICAgbW92Y3MgIHIxLCAjMSAgIAogICAgICAgICAgICAgICAgYWRkICAgIHIzLCByMywg cjEKICAgICAgICAgICAgICBJUDZfRUNOX3NldF9jZSgpOgogICAgICAgICAgICAgICAgbGRyICAg IHIxLCBbc3AsICM0OF0gICA7IDB4MzAKICAgICAgICAgICAgICBjc3VtX2FkZCgpOiAKICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiAoX19mb3JjZSBfX3dzdW0pKHJlcyArIChyZXMgPCAoX19m b3JjZSB1MzIpYWRkZW5kKSk7CiAgICAgICAgICAgICAgICBjbXAgICAgaXAsIHIzICAgCiAgICAg ICAgICAgICAgICBhZGRoaSAgcjMsIHIzLCAjMQogICAgICAgICAgICAgIElQNl9FQ05fc2V0X2Nl KCk6CiAgICAgICAgICAgICAgICBzdHIgICAgcjMsIFtyMSwgIzExMl0gIDsgMHg3MAogICAgICAg ICAgICAgIOKGkyBiICAgICAgYWRjICAgICAgCiAgICAgICAgICAgICAgSU5FVF9FQ05fc2V0X2Nl KCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChza2JfbmV0d29ya19oZWFkZXIo c2tiKSArIHNpemVvZihzdHJ1Y3QgaXB2NmhkcikgPD0KICAgICAgICAgYWQwOiAgIG1vdiAgICBy NCwgIzEgICAKICAgICAgICAgICAgICAgIG1vdiAgICByMiwgIzAgICAKICAgICAgICAgICAgICDi hpMgYiAgICAgIGFkYyAgICAgIAogICAgICAgICAgICAgIGNvYmFsdF9zaG91bGRfZHJvcCgpOgog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJzLT5jb3VudCsrOwogIDAuMDMgICBhZGM6 ICAgbGRyICAgIHIzLCBbc2wsICMxNl0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZHJv cCA9ICEodmFycy0+ZWNuX21hcmtlZCA9IElORVRfRUNOX3NldF9jZShza2IpKTsKICAgICAgICAg ICAgICAgIHN0cmIgICByMiwgW3NsLCAjNDVdICAgOyAweDJkCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIHZhcnMtPmNvdW50Kys7CiAgICAgICAgICAgICAgICBhZGQgICAgcjMsIHIzLCAj MQogICAgICAgICAgICAgICAgc3RyICAgIHIzLCBbc2wsICMxNl0KICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgaWYgKCF2YXJzLT5jb3VudCkKICAgICAgICAgICAgICAgIGNtcCAgICByMywg IzAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJzLT5jb3VudC0t OwogICAgICAgICAgICAgICAgbXZuZXEgIHIyLCAjMCAgIAogICAgICAgICAgICAgICAgbW92ZXEg IGlwLCByMyAgIAogICAgICAgICAgICAgICAgc3RyZXEgIHIyLCBbc2wsICMxNl0KICAgICAgICAg ICAgICDihpMgYmVxICAgIGIyNCAgICAgIAogICAgICAgICAgICAgIGNvYmFsdF9pbnZzcXJ0KCk6 CiAgICAgICAgICAgICAgICAgICAgICBpZiAodmFycy0+Y291bnQgPCBSRUNfSU5WX1NRUlRfQ0FD SEUpCiAgICAgICAgICAgICAgICBjbXAgICAgcjMsICMxNSAgCiAgICAgICAgICAgICAg4oaTIGJo aSAgICBiMWMgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFycy0+cmVjX2lu dl9zcXJ0ID0gY29iYWx0X3JlY19pbnZfc3FydF9jYWNoZVt2YXJzLT5jb3VudF07CiAgICAgICAg ICAgICAgICBsZHIgICAgcjIsIFtzcCwgIzQ0XSAgIDsgMHgyYwogICAgICAgICAgICAgICAgYWRk ICAgIHIzLCByMiwgcjMsIGxzbCAjMgogICAgICAgICAgICAgICAgbGRyICAgIGlwLCBbcjMsICMy MDUyXSA7IDB4ODA0CiAgMC4wMSAgICAgICAgICBzdHIgICAgaXAsIFtzbCwgIzIwXQogICAgICAg ICAgICAgIOKGkyBiICAgICAgYjY4ICAgICAgCiAgICAgICAgIGIxYzogICBtb3YgICAgcjIsIHIz ICAgCiAgICAgICAgICAgICAgICBtb3YgICAgaXAsICMwICAgCiAgICAgICAgICAgICAgY29iYWx0 X25ld3Rvbl9zdGVwKCk6CiAgICAgICAgICAgICAgICAgICAgICBpbnZzcXJ0ID0gdmFycy0+cmVj X2ludl9zcXJ0OwogICAgICAgICBiMjQ6ICAgbGRyICAgIGxyLCBbc2wsICMyMF0KICAgICAgICAg ICAgICAgICAgICAgIGludnNxcnQyID0gKCh1NjQpaW52c3FydCAqIGludnNxcnQpID4+IDMyOwog ICAgICAgICAgICAgICAgdW11bGwgIHIwLCByMSwgbHIsIGxyCiAgICAgICAgICAgICAgICAgICAg ICB2YWwgPSAoM0xMIDw8IDMyKSAtICgodTY0KXZhcnMtPmNvdW50ICogaW52c3FydDIpOwogICAg ICAgICAgICAgICAgbW92ICAgIHIwLCAjMCAgIAogICAgICAgICAgICAgICAgdW11bGwgIHIyLCBy MywgcjEsIHIyCiAgICAgICAgICAgICAgICBzdWJzICAgcjAsIHIwLCByMgogICAgICAgICAgICAg ICAgICAgICAgdmFsID4+PSAyOyAvKiBhdm9pZCBvdmVyZmxvdyBpbiBmb2xsb3dpbmcgbXVsdGlw bHkgKi8KICAgICAgICAgICAgICAgIGxzciAgICByMiwgcjAsICMyCiAgICAgICAgICAgICAgICAg ICAgICB2YWwgPSAoM0xMIDw8IDMyKSAtICgodTY0KXZhcnMtPmNvdW50ICogaW52c3FydDIpOwog ICAgICAgICAgICAgICAgbWxhICAgIHIzLCBpcCwgcjEsIHIzCiAgICAgICAgICAgICAgICBtb3Yg ICAgcjEsICMzICAgCiAgICAgICAgICAgICAgICBzYmMgICAgcjEsIHIxLCByMwogICAgICAgICAg ICAgICAgbW92ICAgIHI3LCByMSAgIAogICAgICAgICAgICAgICAgICAgICAgdmFsID4+PSAyOyAv KiBhdm9pZCBvdmVyZmxvdyBpbiBmb2xsb3dpbmcgbXVsdGlwbHkgKi8KICAgICAgICAgICAgICAg IGxzciAgICByMSwgcjEsICMyCiAgICAgICAgICAgICAgICBvcnIgICAgcjIsIHIyLCByNywgbHNs ICMzMAogICAgICAgICAgICAgICAgICAgICAgdmFsID0gKHZhbCAqIGludnNxcnQpID4+ICgzMiAt IDIgKyAxKTsKICAgICAgICAgICAgICAgIHVtdWxsICByMiwgcjMsIHIyLCBscgogICAgICAgICAg ICAgICAgbWxhICAgIHIzLCBsciwgcjEsIHIzCiAgICAgICAgICAgICAgICBsc3IgICAgaXAsIHIy LCAjMzEKICAgICAgICAgICAgICAgIG9yciAgICBpcCwgaXAsIHIzLCBsc2wgIzEKICAgICAgICAg ICAgICAgICAgICAgIHZhcnMtPnJlY19pbnZfc3FydCA9IHZhbDsKICAgICAgICAgICAgICAgIHN0 ciAgICBpcCwgW3NsLCAjMjBdCiAgICAgICAgICAgICAgcmVjaXByb2NhbF9zY2FsZSgpOgogICAg ICAgICBiNjg6ICAgbGRyICAgIHIwLCBbZnAsICMyMDU2XSA7IDB4ODA4CiAgICAgICAgICAgICAg ICBtb3YgICAgbHIsICMwICAgCiAgICAgICAgICAgICAgY29iYWx0X2NvbnRyb2woKToKICAgICAg ICAgICAgICAgICAgICAgIHJldHVybiBrdGltZV9hZGRfbnModCwgcmVjaXByb2NhbF9zY2FsZShp bnRlcnZhbCwKICAgICAgICAgICAgICAgIGxkcmQgICByNiwgW3NsLCAjMjRdCiAgICAgICAgICAg ICAgcmVjaXByb2NhbF9zY2FsZSgpOgogICAgICAgICAgICAgICAgdW11bGwgIHIwLCByMSwgcjAs IGlwCiAgICAgICAgICAgICAgICBtbGEgICAgcjgsIGlwLCBsciwgcjEKICAgICAgICAgICAgICBj b2JhbHRfY29udHJvbCgpOgogICAgICAgICAgICAgICAgYWRkcyAgIHIyLCByOCwgcjYKICAgICAg ICAgICAgICBjb2JhbHRfc2hvdWxkX2Ryb3AoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgc2NoZWR1bGUgPSBrdGltZV9zdWIobm93LCB2YXJzLT5kcm9wX25leHQpOwogICAgICAgICAg ICAgICAgbGRyZCAgIHI4LCBbc3AsICMyNF0KICAgICAgICAgICAgICBjb2JhbHRfY29udHJvbCgp OgogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGt0aW1lX2FkZF9ucyh0LCByZWNpcHJvY2Fs X3NjYWxlKGludGVydmFsLAogICAgICAgICAgICAgICAgYWRjICAgIHIzLCBsciwgcjcKICAgICAg ICAgICAgICBjb2JhbHRfc2hvdWxkX2Ryb3AoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmFycy0+ZHJvcF9uZXh0ID0gY29iYWx0X2NvbnRyb2wodmFycy0+ZHJvcF9uZXh0LAogICAg ICAgICAgICAgICAgc3RyZCAgIHIyLCBbc2wsICMyNF0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgc2NoZWR1bGUgPSBrdGltZV9zdWIobm93LCB2YXJzLT5kcm9wX25leHQpOwogICAgICAg ICAgICAgICAgc3VicyAgIHI4LCByOCwgcjIKICAgICAgICAgICAgICAgIHNiYyAgICByOSwgcjks IHIzCiAgICAgICAgICAgICAg4oaTIGIgICAgICBjYzAgICAgICAKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB2YXJzLT5kcm9wX25leHQgPSBjb2JhbHRfY29udHJvbCh2YXJz LT5kcm9wX25leHQsCiAgMC4wMyAgIGI5ODogICBhZGQgICAgaXAsIGZwLCAjMjA2NCAgIDsgMHg4 MTAKICAgICAgICAgICAgICBjb2JhbHRfbmV3dG9uX3N0ZXAoKToKICAgICAgICAgICAgICAgICAg ICAgIGludnNxcnQyID0gKCh1NjQpaW52c3FydCAqIGludnNxcnQpID4+IDMyOwogICAgICAgICAg ICAgICAgbW92ICAgIGxyLCAjMCAgIAogICAgICAgICAgICAgIGNvYmFsdF9zaG91bGRfZHJvcCgp OgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnMtPmNvdW50LS07CiAg ICAgICAgIGJhMDogICBzdWIgICAgcjEsIHIxLCAjMQogICAgICAgICAgICAgIGNvYmFsdF9uZXd0 b25fc3RlcCgpOgogICAgICAgICAgICAgICAgICAgICAgdmFsID0gKHZhbCAqIGludnNxcnQpID4+ ICgzMiAtIDIgKyAxKTsKICAgICAgICAgICAgICAgIG1vdiAgICByMywgIzAgICAKICAgICAgICAg ICAgICAgIG1vdiAgICByMiwgIzAgICAKICAgICAgICAgICAgICBjb2JhbHRfaW52c3FydCgpOgog ICAgICAgICAgICAgICAgICAgICAgaWYgKHZhcnMtPmNvdW50IDwgUkVDX0lOVl9TUVJUX0NBQ0hF KQogICAgICAgICAgICAgICAgY21wICAgIHIxLCAjMTUgIAogICAgICAgICAgICAgIGNvYmFsdF9u ZXd0b25fc3RlcCgpOgogICAgICAgICAgICAgICAgICAgICAgdmFsID0gKHZhbCAqIGludnNxcnQp ID4+ICgzMiAtIDIgKyAxKTsKICAgICAgICAgICAgICAgIHN0cmQgICByMiwgW3NwLCAjMTZdCiAg ICAgICAgICAgICAgY29iYWx0X2ludnNxcnQoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmFycy0+cmVjX2ludl9zcXJ0ID0gY29iYWx0X3JlY19pbnZfc3FydF9jYWNoZVt2YXJzLT5j b3VudF07CiAgICAgICAgICAgICAgICBsZHIgICAgcjMsIFtzcCwgIzQ0XSAgIDsgMHgyYwogICAg ICAgICAgICAgIGNvYmFsdF9zaG91bGRfZHJvcCgpOgogICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZhcnMtPmNvdW50LS07CiAgICAgICAgICAgICAgICBzdHIgICAgcjEsIFtz bCwgIzE2XQogICAgICAgICAgICAgIGNvYmFsdF9pbnZzcXJ0KCk6CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZhcnMtPnJlY19pbnZfc3FydCA9IGNvYmFsdF9yZWNfaW52X3NxcnRfY2Fj aGVbdmFycy0+Y291bnRdOwogICAgICAgICAgICAgICAgYWRkICAgIHIwLCByMywgcjEsIGxzbCAj MgogICAgICAgICAgICAgICAgICAgICAgaWYgKHZhcnMtPmNvdW50IDwgUkVDX0lOVl9TUVJUX0NB Q0hFKQogICAgICAgICAgICAgIOKGkyBiaGkgICAgYzFjICAgICAgCiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHZhcnMtPnJlY19pbnZfc3FydCA9IGNvYmFsdF9yZWNfaW52X3NxcnRfY2Fj aGVbdmFycy0+Y291bnRdOwogICAgICAgICAgICAgICAgbGRyICAgIHIwLCBbcjAsICMyMDUyXSA7 IDB4ODA0CiAgICAgICAgICAgICAgcmVjaXByb2NhbF9zY2FsZSgpOgogICAgICAgICAgICAgICAg bW92ICAgIHI5LCAjMCAgIAogICAgICAgICAgICAgIGNvYmFsdF9pbnZzcXJ0KCk6CiAgICAgICAg ICAgICAgICBzdHIgICAgcjAsIFtzbCwgIzIwXQogICAgICAgICAgICAgIHJlY2lwcm9jYWxfc2Nh bGUoKToKICAgICAgICAgICAgICAgIGxkcmQgICByMiwgW2lwLCAjLThdCiAgICAgICAgICAgICAg ICB1bXVsbCAgcjYsIHI3LCByMiwgcjAKICAgICAgICAgICAgICBjb2JhbHRfY29udHJvbCgpOgog ICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGt0aW1lX2FkZF9ucyh0LCByZWNpcHJvY2FsX3Nj YWxlKGludGVydmFsLAogICAgICAgICAgICAgICAgbGRyZCAgIHIyLCBbc3AsICMzMl0KICAgICAg ICAgICAgICByZWNpcHJvY2FsX3NjYWxlKCk6CiAgICAgICAgICAgICAgICBtbGEgICAgcjQsIHIw LCByOSwgcjcKICAgICAgICAgICAgICBjb2JhbHRfc2hvdWxkX2Ryb3AoKToKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlZHVsZSA9IGt0aW1lX3N1Yihub3csIHZhcnMt PmRyb3BfbmV4dCk7CiAgICAgICAgICAgICAgICBsZHJkICAgcjgsIFtzcCwgIzI0XQogICAgICAg ICAgICAgIGNvYmFsdF9jb250cm9sKCk6CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ga3Rp bWVfYWRkX25zKHQsIHJlY2lwcm9jYWxfc2NhbGUoaW50ZXJ2YWwsCiAgICAgICAgICAgICAgICBh ZGRzICAgcjIsIHIyLCByNAogICAgICAgICAgICAgICAgYWRjICAgIHIzLCByMywgbHIKICAgICAg ICAgICAgICBjb2JhbHRfc2hvdWxkX2Ryb3AoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICBzY2hlZHVsZSA9IGt0aW1lX3N1Yihub3csIHZhcnMtPmRyb3BfbmV4dCk7CiAg ICAgICAgICAgICAgICBzdWJzICAgcjgsIHI4LCByMgogICAgICAgICAgICAgICAgc2JjICAgIHI5 LCByOSwgcjMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0X2R1ZSA9 IHZhcnMtPmNvdW50ICYmIGt0aW1lX3RvX25zKHNjaGVkdWxlKSA+PSAwOwogICAgICAgICAgICAg ICAgY21wICAgIHIxLCAjMCAgIAogICAgICAgICAgICAgIGNvYmFsdF9jb250cm9sKCk6CiAgICAg ICAgICAgICAgICAgICAgICByZXR1cm4ga3RpbWVfYWRkX25zKHQsIHJlY2lwcm9jYWxfc2NhbGUo aW50ZXJ2YWwsCiAgICAgICAgICAgICAgICBtb3YgICAgcjQsIHIyICAgCiAgMC4wMSAgICAgICAg ICBtb3YgICAgcjUsIHIzICAgCiAgICAgICAgICAgICAgY29iYWx0X3Nob3VsZF9kcm9wKCk6CiAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFycy0+ZHJvcF9uZXh0ID0gY29i YWx0X2NvbnRyb2wodmFycy0+ZHJvcF9uZXh0LAogICAgICAgICAgICAgICAgc3RyZCAgIHI0LCBb c2wsICMyNF0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBuZXh0X2R1ZSA9 IHZhcnMtPmNvdW50ICYmIGt0aW1lX3RvX25zKHNjaGVkdWxlKSA+PSAwOwogICAgICAgICAgICAg IOKGkyBibmUgICAgY2EwICAgICAgCiAgICAgICAgICAgICAgICAgICAgICBpZiAodmFycy0+cF9k cm9wKQogIDAuMDEgICAgICAgICAgbGRyICAgIHIzLCBbc2wsICM0MF0gICA7IDB4MjgKICAgICAg ICAgICAgICAgICAgICAgIGJvb2wgbmV4dF9kdWUsIG92ZXJfdGFyZ2V0LCBkcm9wID0gZmFsc2U7 CiAgMC4wMSAgICAgICAgICBtb3YgICAgcjQsIHIxICAgCiAgICAgICAgICAgICAgICAgICAgICBp ZiAodmFycy0+cF9kcm9wKQogICAgICAgICAgICAgICAgY21wICAgIHIzLCAjMCAgIAogIDAuMDEg ICAgICAgIOKGkyBibmUgICAgY2NjICAgICAgCiAgICAgICAgICAgICAg4oaTIGIgICAgICBjZTgg ICAgICAKICAgICAgICAgICAgICBjb2JhbHRfbmV3dG9uX3N0ZXAoKToKICAgICAgICAgICAgICAg ICAgICAgIGludnNxcnQgPSB2YXJzLT5yZWNfaW52X3NxcnQ7CiAgICAgICAgIGMxYzogICBsZHIg ICAgcjAsIFtzbCwgIzIwXQogICAgICAgICAgICAgICAgICAgICAgdmFsID0gKDNMTCA8PCAzMikg LSAoKHU2NCl2YXJzLT5jb3VudCAqIGludnNxcnQyKTsKICAgICAgICAgICAgICAgIG1vdiAgICBy MiwgIzAgICAKICAgICAgICAgICAgICAgIG1vdiAgICByMywgIzMgICAKICAgICAgICAgICAgICAg ICAgICAgIGludnNxcnQyID0gKCh1NjQpaW52c3FydCAqIGludnNxcnQpID4+IDMyOwogICAgICAg ICAgICAgICAgdW11bGwgIHI0LCByNSwgcjAsIHIwCiAgICAgICAgICAgICAgICAgICAgICB2YWwg PSAoM0xMIDw8IDMyKSAtICgodTY0KXZhcnMtPmNvdW50ICogaW52c3FydDIpOwogICAgICAgICAg ICAgICAgdW11bGwgIHI2LCByNywgcjUsIHIxCiAgICAgICAgICAgICAgICBzdWJzICAgcjIsIHIy LCByNgogICAgICAgICAgICAgICAgc2JjICAgIHIzLCByMywgcjcKICAgICAgICAgICAgICByZWNp cHJvY2FsX3NjYWxlKCk6CiAgICAgICAgICAgICAgICBtb3YgICAgcjcsICMwICAgCiAgICAgICAg ICAgICAgY29iYWx0X25ld3Rvbl9zdGVwKCk6CiAgICAgICAgICAgICAgICAgICAgICB2YWwgPj49 IDI7IC8qIGF2b2lkIG92ZXJmbG93IGluIGZvbGxvd2luZyBtdWx0aXBseSAqLwogICAgICAgICAg ICAgICAgbHNyICAgIHI0LCByMiwgIzIKICAgICAgICAgICAgICAgIG9yciAgICByNCwgcjQsIHIz LCBsc2wgIzMwCiAgICAgICAgICAgICAgICBsc3IgICAgcjYsIHIzLCAjMgogICAgICAgICAgICAg ICAgICAgICAgdmFsID0gKHZhbCAqIGludnNxcnQpID4+ICgzMiAtIDIgKyAxKTsKICAgICAgICAg ICAgICAgIHVtdWxsICByNCwgcjUsIHI0LCByMAogICAgICAgICAgICAgICAgbWxhICAgIHI1LCBy MCwgcjYsIHI1CiAgICAgICAgICAgICAgICBsc3IgICAgcjMsIHI0LCAjMzEKICAgICAgICAgICAg ICAgIG9yciAgICByMywgcjMsIHI1LCBsc2wgIzEKICAgICAgICAgICAgICAgIHN0ciAgICByMywg W3NwLCAjMTZdCiAgICAgICAgICAgICAgICBsc3IgICAgcjMsIHI1LCAjMzEKICAgICAgICAgICAg ICAgIHN0ciAgICByMywgW3NwLCAjMjBdCiAgICAgICAgICAgICAgICAgICAgICB2YXJzLT5yZWNf aW52X3NxcnQgPSB2YWw7CiAgICAgICAgICAgICAgICBsZHJkICAgcjIsIFtzcCwgIzE2XQogICAg ICAgICAgICAgIHJlY2lwcm9jYWxfc2NhbGUoKToKICAgICAgICAgICAgICAgIG1vdiAgICByMywg IzAgICAKICAgICAgICAgICAgICBjb2JhbHRfbmV3dG9uX3N0ZXAoKToKICAgICAgICAgICAgICAg IHN0ciAgICByMiwgW3NsLCAjMjBdCiAgICAgICAgICAgICAgcmVjaXByb2NhbF9zY2FsZSgpOgog ICAgICAgICAgICAgICAgbGRyZCAgIHI0LCBbaXAsICMtOF0KICAgICAgICAgICAgICAgIG11bCAg ICByMCwgcjQsIHIzCiAgICAgICAgICAgICAgICBtbGEgICAgcjAsIHIyLCByNywgcjAKICAgICAg ICAgICAgICAgIHVtdWxsICByMiwgcjMsIHI0LCByMgogICAgICAgICAgICAgIGNvYmFsdF9jb250 cm9sKCk6CiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ga3RpbWVfYWRkX25zKHQsIHJlY2lw cm9jYWxfc2NhbGUoaW50ZXJ2YWwsCiAgICAgICAgICAgICAgICBsZHJkICAgcjQsIFtzcCwgIzMy XQogICAgICAgICAgICAgIHJlY2lwcm9jYWxfc2NhbGUoKToKICAgICAgICAgICAgICAgIGFkZCAg ICByOCwgcjAsIHIzCiAgICAgICAgICAgICAgY29iYWx0X2NvbnRyb2woKToKICAgICAgICAgICAg ICAgIGFkZHMgICByNCwgcjQsIHI4CiAgICAgICAgICAgICAgY29iYWx0X3Nob3VsZF9kcm9wKCk6 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2NoZWR1bGUgPSBrdGltZV9z dWIobm93LCB2YXJzLT5kcm9wX25leHQpOwogICAgICAgICAgICAgICAgbGRyZCAgIHI4LCBbc3As ICMyNF0KICAgICAgICAgICAgICBjb2JhbHRfY29udHJvbCgpOgogICAgICAgICAgICAgICAgICAg ICAgcmV0dXJuIGt0aW1lX2FkZF9ucyh0LCByZWNpcHJvY2FsX3NjYWxlKGludGVydmFsLAogICAg ICAgICAgICAgICAgYWRjICAgIHI1LCByNSwgbHIKICAgICAgICAgICAgICBjb2JhbHRfc2hvdWxk X2Ryb3AoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJzLT5kcm9w X25leHQgPSBjb2JhbHRfY29udHJvbCh2YXJzLT5kcm9wX25leHQsCiAgICAgICAgICAgICAgICBz dHJkICAgcjQsIFtzbCwgIzI0XQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHNjaGVkdWxlID0ga3RpbWVfc3ViKG5vdywgdmFycy0+ZHJvcF9uZXh0KTsKICAgICAgICAgICAg ICAgIHN1YnMgICByOCwgcjgsIHI0CiAgICAgICAgICAgICAgICBzYmMgICAgcjksIHI5LCByNQog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGlsZSAobmV4dF9kdWUpIHsKICAwLjAxICAg Y2EwOiAgIGNtcCAgICByOCwgIzAgICAKICAgICAgICAgICAgICAgIHNiY3MgICByMywgcjksICMw CiAgICAgICAgICAgICAgICBsZHJkZ2UgcjIsIFtzbCwgIzI0XQogICAgICAgICAgICAgICAgc3Ry ZGdlIHIyLCBbc3AsICMzMl0KICAgICAgICAgICAgICDihpEgYmdlICAgIGJhMCAgICAgIAogICAg ICAgICAgICAgICAgICAgICAgYm9vbCBuZXh0X2R1ZSwgb3Zlcl90YXJnZXQsIGRyb3AgPSBmYWxz ZTsKICAgICAgICAgICAgICAgIG1vdiAgICByNCwgIzAgICAKICAgICAgICAgICAgICDihpMgYiAg ICAgIGNjMCAgICAgIAogIDAuMTYgICBjYmM6ICAgbW92ICAgIHI0LCBsciAgIAogICAgICAgICAg ICAgICAgICAgICAgaWYgKHZhcnMtPnBfZHJvcCkKICAwLjAyICAgY2MwOiAgIGxkciAgICByMywg W3NsLCAjNDBdICAgOyAweDI4CiAgMC4wMiAgICAgICAgICBjbXAgICAgcjMsICMwICAgCiAgICAg ICAgICAgICAg4oaTIGJlcSAgICBjZGMgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgZHJvcCB8PSAocHJhbmRvbV91MzIoKSA8IHZhcnMtPnBfZHJvcCk7CiAgICAgICAgIGNjYzog 4oaSIGJsICAgICBxZGlzY19wZWVrX2RlcXVldWVkCiAgICAgICAgICAgICAgICBsZHIgICAgcjMs IFtzbCwgIzQwXSAgIDsgMHgyOAogICAgICAgICAgICAgICAgY21wICAgIHIwLCByMyAgIAogICAg ICAgICAgICAgICAgb3JyY2MgIHI0LCByNCwgIzEKICAgICAgICAgICAgICAgICAgICAgIGlmICgh dmFycy0+Y291bnQpCiAgMC41NiAgIGNkYzogICBsZHIgICAgcjMsIFtzbCwgIzE2XQogICAgICAg ICAgICAgICAgY21wICAgIHIzLCAjMCAgIAogIDAuMDYgICAgICAgIOKGkyBibmUgICAgZDBjICAg ICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcnMtPmRyb3BfbmV4dCA9IGt0aW1l X2FkZF9ucyhub3csIHAtPmludGVydmFsKTsKICAwLjEzICAgY2U4OiAgIGFkZCAgICByMywgZnAs ICMyMDY0ICAgOyAweDgxMAogIDAuMDUgICAgICAgICAgbGRyZCAgIHIwLCBbc3AsICMyNF0KICAg ICAgICAgICAgICAgIGxkcmQgICByMiwgW3IzLCAjLThdCiAgMC4xMCAgICAgICAgICBhZGRzICAg cjAsIHIwLCByMgogICAgICAgICAgICAgICAgYWRjICAgIHIxLCByMSwgcjMKICAwLjA2ICAgICAg ICAgIG1vdiAgICByMiwgcjAgICAKICAgICAgICAgICAgICAgIG1vdiAgICByMywgcjEgICAKICAw LjAzICAgICAgICAgIHN0cmQgICByMiwgW3NsLCAjMjRdCiAgICAgICAgICAgICAg4oaTIGIgICAg ICBkM2MgICAgICAKICAgICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKGt0aW1lX3RvX25zKHNj aGVkdWxlKSA+IDAgJiYgIWRyb3ApCiAgMC4xNyAgIGQwYzogICBjbXAgICAgcjgsICMxICAgCiAg ICAgICAgICAgICAgICBzYmNzICAgcjMsIHI5LCAjMAogIDAuMDkgICAgICAgICAgZW9yICAgIHIz LCByNCwgIzEKICAgICAgICAgICAgICAgIGFuZGdlICByMywgcjMsICMxCiAgMC4wMyAgICAgICAg ICBtb3ZsdCAgcjMsICMwICAgCiAgICAgICAgICAgICAgICBjbXAgICAgcjMsICMwICAgCiAgMC4w NCAgICAgICAg4oaTIGJlcSAgICBkM2MgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgdmFycy0+ZHJvcF9uZXh0ID0gbm93OwogICAgICAgICAgICAgICAgbGRyZCAgIHIyLCBbc3As ICMyNF0KICAgICAgICAgICAgICAgIG1vdiAgICByOSwgc2wgICAKICAgICAgICAgICAgICAgIG1v diAgICByOCwgZnAgICAKICAgICAgICAgICAgICAgIHN0cmQgICByMiwgW3NsLCAjMjRdCiAgICAg ICAgICAgICAg4oaTIGIgICAgICBkZmMgICAgICAKICAgICAgICAgICAgICBjYWtlX2RlcXVldWUo KToKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFjb2JhbHRfc2hvdWxkX2Ryb3Ao JmZsb3ctPmN2YXJzLCAmYi0+Y3BhcmFtcywgbm93LCBza2IsCiAgMC42NSAgIGQzYzogICBjbXAg ICAgcjQsICMwICAgCiAgICAgICAgICAgICAg4oaTIGJlcSAgICBkZjQgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENBS0VfRkxB R19JTkdSRVNTKSkpIHx8CiAgICAgICAgICAgICAgICBsZHIgICAgcjMsIFtzbCwgIy04XQogICAg ICAgICAgICAgICAgY21wICAgIHIzLCAjMCAgIAogICAgICAgICAgICAgIOKGkyBiZXEgICAgZGY0 ICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhZmxvdy0+aGVhZCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8qIGRyb3AgdGhpcyBwYWNrZXQsIGdldCBh bm90aGVyIG9uZSAqLwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocS0+cmF0ZV9m bGFncyAmIENBS0VfRkxBR19JTkdSRVNTKSB7CiAgICAgICAgICAgICAgICBsZHIgICAgcjMsIFtz cCwgIzU2XSAgIDsgMHgzOAogIDAuMDEgICAgICAgICAgbGRyaCAgIHIzLCBbcjMsICM1Nl0gICA7 IDB4MzgKICAgICAgICAgICAgICAgIHRzdCAgICByMywgIzQgICAKICAgICAgICAgICAgICDihpMg YmVxICAgIGQ5OCAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxl biA9IGNha2VfYWR2YW5jZV9zaGFwZXIocSwgYiwgc2tiLAogICAgICAgICAgICAgICAgbGRyZCAg IHIyLCBbc3AsICMyNF0KICAgICAgICAgICAgICAgIGxkciAgICByMSwgW3NwLCAjNjBdICAgOyAw eDNjCiAgICAgICAgICAgICAgICBsZHIgICAgcjAsIFtzcCwgIzcyXSAgIDsgMHg0OAogICAgICAg ICAgICAgICAgc3RyZCAgIHIyLCBbc3BdIAogICAgICAgICAgICAgICAgbW92ICAgIHIzLCAjMSAg IAogIDAuMDEgICAgICAgICAgbGRyICAgIHIyLCBbc3AsICM0OF0gICA7IDB4MzAKICAgICAgICAg ICAgICAgIHN0ciAgICByMywgW3NwLCAjOF0KICAwLjAxICAgICAgICDihpIgYmwgICAgIGNha2Vf YWR2YW5jZV9zaGFwZXIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIG5vdywgdHJ1ZSk7CiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgZmxvdy0+ZGVmaWNpdCAtPSBsZW47CiAgICAgICAgICAgICAgICBsZHIg ICAgcjMsIFtzbCwgIzhdCiAgICAgICAgICAgICAgICBzdWIgICAgcjMsIHIzLCByMAogICAgICAg ICAgICAgICAgc3RyICAgIHIzLCBbc2wsICM4XQogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGItPnRpbl9kZWZpY2l0IC09IGxlbjsKICAgICAgICAgICAgICAgIGxkciAgICBy MywgW2ZwLCAjMjE2MF0gOyAweDg3MAogICAgICAgICAgICAgICAgc3ViICAgIHIwLCByMywgcjAK ICAgICAgICAgICAgICAgIHN0ciAgICByMCwgW2ZwLCAjMjE2MF0gOyAweDg3MAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZsb3ct PmRyb3BwZWQrKzsKICAgICAgICAgZDk4OiAgIGxkciAgICByMywgW3NsLCAjMTJdCiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIGItPnRpbl9kcm9wcGVkKys7CiAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIHFkaXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCAxLCBxZGlzY19wa3Rf bGVuKHNrYikpOwogICAgICAgICAgICAgICAgbW92ICAgIHIxLCAjMSAgIAogICAgICAgICAgICAg ICAgbGRyICAgIHI0LCBbc3AsICM1Ml0gICA7IDB4MzQKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgZmxvdy0+ZHJvcHBlZCsrOwogICAgICAgICAgICAgICAgYWRkICAgIHIzLCByMywgcjEK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcWRpc2NfdHJlZV9yZWR1Y2VfYmFja2xvZyhz Y2gsIDEsIHFkaXNjX3BrdF9sZW4oc2tiKSk7CiAgICAgICAgICAgICAgICBsZHIgICAgcjUsIFtz cCwgIzQ4XSAgIDsgMHgzMAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmbG93LT5kcm9w cGVkKys7CiAgICAgICAgICAgICAgICBzdHIgICAgcjMsIFtzbCwgIzEyXQogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBiLT50aW5fZHJvcHBlZCsrOwogICAgICAgICAgICAgICAgbGRyICAg IHIzLCBbZnAsICMyMTY4XSA7IDB4ODc4CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFk aXNjX3RyZWVfcmVkdWNlX2JhY2tsb2coc2NoLCAxLCBxZGlzY19wa3RfbGVuKHNrYikpOwogICAg ICAgICAgICAgICAgbW92ICAgIHIwLCByNCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAg ICBiLT50aW5fZHJvcHBlZCsrOwogICAgICAgICAgICAgICAgYWRkICAgIHIzLCByMywgcjEKICAg ICAgICAgICAgICAgIHN0ciAgICByMywgW2ZwLCAjMjE2OF0gOyAweDg3OAogICAgICAgICAgICAg ICAgICAgICAgICAgICAgICBxZGlzY190cmVlX3JlZHVjZV9iYWNrbG9nKHNjaCwgMSwgcWRpc2Nf cGt0X2xlbihza2IpKTsKICAgICAgICAgICAgICAgIGxkciAgICByMiwgW3I1LCAjMjRdCiAgICAg ICAgICAgICAg4oaSIGJsICAgICBxZGlzY19wZWVrX2RlcXVldWVkCiAgICAgICAgICAgICAgcXN0 YXRzX2Ryb3BfaW5jKCk6CiAgICAgICAgICAgICAgICAgICAgICBzY2gtPnFzdGF0cy5kcm9wcyAr PSBjb3VudDsKICAgICAgICAgICAgICB9ICAgICAgICAgICAKICAgICAgICAgICAgICAgCiAgICAg ICAgICAgICAgc3RhdGljIGlubGluZSB2b2lkIHFzdGF0c19kcm9wX2luYyhzdHJ1Y3QgZ25ldF9z dGF0c19xdWV1ZSAqcXN0YXRzKQogICAgICAgICAgICAgIHsgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgcXN0YXRzLT5kcm9wcysrOwogICAgICAgICAgICAgICAgbGRyICAgIHIzLCBb cjQsICMxMDhdICA7IDB4NmMKICAgICAgICAgICAgICBjYWtlX2RlcXVldWUoKToKICAgICAgICAg ICAgICAjaWYgTElOVVhfVkVSU0lPTl9DT0RFIDwgS0VSTkVMX1ZFUlNJT04oNCwgOCwgMCkKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgcWRpc2NfZHJvcChza2IsIHNjaCk7CiAgICAgICAg ICAgICAgI2Vsc2UgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFkaXNjX3Fz dGF0c19kcm9wKHNjaCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtmcmVlX3NrYihz a2IpOwogICAgICAgICAgICAgICAgbW92ICAgIHIwLCByNSAgIAogICAgICAgICAgICAgIHFzdGF0 c19kcm9wX2luYygpOgogICAgICAgICAgICAgICAgYWRkICAgIHIzLCByMywgIzEKICAgICAgICAg ICAgICAgIHN0ciAgICByMywgW3I0LCAjMTA4XSAgOyAweDZjCiAgICAgICAgICAgICAgY2FrZV9k ZXF1ZXVlKCk6CiAgICAgICAgICAgICAg4oaSIGJsICAgICBxZGlzY19wZWVrX2RlcXVldWVkCiAg ICAgICAgICAgICAgICAgICAgICBmaXJzdF9mbG93ID0gZmFsc2U7CiAgICAgICAgICAgICAgICBt b3YgICAgcjEsICMwICAgCiAgICAgICAgICAgICAgI2VuZGlmICAgICAgCiAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgIGlmIChxLT5yYXRlX2ZsYWdzICYgQ0FLRV9GTEFHX0lOR1JFU1MpCiAg ICAgICAgICAgICAgICBsZHIgICAgcjMsIFtzcCwgIzU2XSAgIDsgMHgzOAogICAgICAgICAgICAg ICAgbGRyaCAgIHIzLCBbcjMsICM1Nl0gICA7IDB4MzgKICAgICAgICAgICAgICAgIHRzdCAgICBy MywgIzQgICAKICAgICAgICAgICAgICDihpEgYmVxICAgIDRlYyAgICAgIAogICAgICAgICAgICAg IOKGkSBiICAgICAgMmIwICAgICAgCiAgMC4zMCAgIGRmNDogICBtb3YgICAgcjksIHNsICAgCiAg ICAgICAgICAgICAgICBtb3YgICAgcjgsIGZwICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgZ290byByZXRyeTsKICAgICAgICAgICAgICAgICAgICAgIH0gICAKICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICBiLT50aW5fZWNuX21hcmsgKz0gISFmbG93 LT5jdmFycy5lY25fbWFya2VkOwogIDAuMDIgICBkZmM6ICAgbGRyYiAgIHIyLCBbcjksICM0NV0g ICA7IDB4MmQKICAgICAgICAgICAgICBic3RhdHNfdXBkYXRlKCk6CiAgICAgICAgICAgICAgICAg ICAgICBfYnN0YXRzX3VwZGF0ZShic3RhdHMsCiAgICAgICAgICAgICAgICBtb3YgICAgcjcsICMw ICAgCiAgICAgICAgICAgICAgY2FrZV9kZXF1ZXVlKCk6CiAgMC4wOCAgICAgICAgICBsZHIgICAg cjMsIFtyOCwgIzIxNzJdIDsgMHg4N2MKICAgICAgICAgICAgICBfYnN0YXRzX3VwZGF0ZSgpOgog ICAgICAgICAgICAgICAgICAgICAgYnN0YXRzLT5ieXRlcyArPSBieXRlczsKICAgICAgICAgICAg ICAgIGxkciAgICBsciwgW3NwLCAjNTJdICAgOyAweDM0CiAgICAgICAgICAgICAgY2FrZV9kZXF1 ZXVlKCk6CiAgICAgICAgICAgICAgICBhZGQgICAgcjMsIHIzLCByMgogICAgICAgICAgICAgIHNr Yl9lbmRfcG9pbnRlcigpOgogICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNrYi0+ZW5kOwog ICAgICAgICAgICAgICAgbGRyICAgIHIyLCBbc3AsICM0OF0gICA7IDB4MzAKICAgICAgICAgICAg ICBjYWtlX2RlcXVldWUoKToKICAwLjMzICAgICAgICAgIHN0ciAgICByMywgW3I4LCAjMjE3Ml0g OyAweDg3YwogICAgICAgICAgICAgIF9ic3RhdHNfdXBkYXRlKCk6CiAgICAgICAgICAgICAgICBs ZHIgICAgcjQsIFtsciwgIzg4XSAgIDsgMHg1OAogICAgICAgICAgICAgIHNrYl9lbmRfcG9pbnRl cigpOgogIDAuMDMgICAgICAgICAgbGRyICAgIHIzLCBbcjIsICMxNjBdICA7IDB4YTAKICAgICAg ICAgICAgICBic3RhdHNfdXBkYXRlKCk6CiAgICAgICAgICAgICAgICAgICAgICBfYnN0YXRzX3Vw ZGF0ZShic3RhdHMsCiAgICAgICAgICAgICAgICBsZHIgICAgcjYsIFtyMiwgIzI0XQogICAgICAg ICAgICAgIGNha2VfZGVxdWV1ZSgpOgogICAgICAgICAgICAgICAgICAgICAgcWRpc2NfYnN0YXRz X3VwZGF0ZShzY2gsIHNrYik7CiAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg LyogY29sbGVjdCBkZWxheSBzdGF0cyAqLwogICAgICAgICAgICAgICAgICAgICAgZGVsYXkgPSBr dGltZV90b19ucyhrdGltZV9zdWIobm93LCBjb2JhbHRfZ2V0X2VucXVldWVfdGltZShza2IpKSk7 CiAgICAgICAgICAgICAgICAgICAgICBiLT5hdmdlX2RlbGF5ID0gY2FrZV9ld21hKGItPmF2Z2Vf ZGVsYXksIGRlbGF5LCA4KTsKICAwLjA1ICAgICAgICAgIGxkciAgICBzbCwgW3NwLCAjNzZdICAg OyAweDRjCiAgICAgICAgICAgICAgYnN0YXRzX3VwZGF0ZSgpOgogICAgICAgICAgICAgICAgbGRy aCAgIHIyLCBbcjMsICM0XQogIDAuMDIgICAgICAgICAgY21wICAgIHIyLCAjMCAgIAogICAgICAg ICAgICAgICAgbGRyaG5lIHIyLCBbcjMsICM2XQogIDAuMzIgICAgICAgICAgbW92ZXEgIHIyLCAj MSAgIAogICAgICAgICAgICAgIF9ic3RhdHNfdXBkYXRlKCk6CiAgICAgICAgICAgICAgICAgICAg ICBic3RhdHMtPmJ5dGVzICs9IGJ5dGVzOwogICAgICAgICAgICAgICAgbGRyICAgIHIzLCBbbHIs ICM4NF0gICA7IDB4NTQKICAwLjA1ICAgICAgICAgIHN0ciAgICByMywgW3NwLCAjMzJdCiAgICAg ICAgICAgICAgICAgICAgICBic3RhdHMtPnBhY2tldHMgKz0gcGFja2V0czsKICAgICAgICAgICAg ICAgIGxkciAgICByMywgW2xyLCAjOTJdICAgOyAweDVjCiAgICAgICAgICAgICAgICAgICAgICBi c3RhdHMtPmJ5dGVzICs9IGJ5dGVzOwogIDAuMTEgICAgICAgICAgc3RyICAgIHI0LCBbc3AsICMz Nl0gICA7IDB4MjQKICAgICAgICAgICAgICAgICAgICAgIGJzdGF0cy0+cGFja2V0cyArPSBwYWNr ZXRzOwogICAgICAgICAgICAgICAgYWRkICAgIHIzLCByMywgcjIKICAgICAgICAgICAgICAgICAg ICAgIGJzdGF0cy0+Ynl0ZXMgKz0gYnl0ZXM7CiAgMC4wNyAgICAgICAgICBsZHJkICAgcjQsIFtz cCwgIzMyXQogICAgICAgICAgICAgICAgICAgICAgYnN0YXRzLT5wYWNrZXRzICs9IHBhY2tldHM7 CiAgICAgICAgICAgICAgICBzdHIgICAgcjMsIFtsciwgIzkyXSAgIDsgMHg1YwogICAgICAgICAg ICAgIGNha2VfZGVxdWV1ZSgpOgogICAgICAgICAgICAgICAgICAgICAgZGVsYXkgPSBrdGltZV90 b19ucyhrdGltZV9zdWIobm93LCBjb2JhbHRfZ2V0X2VucXVldWVfdGltZShza2IpKSk7CiAgMC4y MCAgICAgICAgICBsZHIgICAgcjMsIFtzcCwgIzQ4XSAgIDsgMHgzMAogICAgICAgICAgICAgIF9i c3RhdHNfdXBkYXRlKCk6CiAgICAgICAgICAgICAgICAgICAgICBic3RhdHMtPmJ5dGVzICs9IGJ5 dGVzOwogICAgICAgICAgICAgICAgYWRkcyAgIHI0LCByNCwgcjYKICAwLjA1ICAgICAgICAgIGFk YyAgICByNSwgcjUsIHI3CiAgICAgICAgICAgICAgICBzdHIgICAgcjQsIFtsciwgIzg0XSAgIDsg MHg1NAogIDAuMDggICAgICAgICAgc3RyICAgIHI1LCBbbHIsICM4OF0gICA7IDB4NTgKICAgICAg ICAgICAgICBjYWtlX2RlcXVldWUoKToKICAgICAgICAgICAgICAgIGxkcmQgICByNCwgW3IzLCAj MzJdCiAgICAgICAgICAgICAgICAgICAgICBiLT5hdmdlX2RlbGF5ID0gY2FrZV9ld21hKGItPmF2 Z2VfZGVsYXksIGRlbGF5LCA4KTsKICAwLjAzICAgICAgICAgIGxkcmQgICByMiwgW3NsLCAjMTUy XSAgOyAweDk4CiAgICAgICAgICAgICAgICAgICAgICBkZWxheSA9IGt0aW1lX3RvX25zKGt0aW1l X3N1Yihub3csIGNvYmFsdF9nZXRfZW5xdWV1ZV90aW1lKHNrYikpKTsKICAgICAgICAgICAgICAg IGxkcmQgICByNiwgW3NwLCAjMjRdCiAgICAgICAgICAgICAgY2FrZV9ld21hKCk6CiAgICAgICAg ICAgICAgICAgICAgICBhdmcgLT0gYXZnID4+IHNoaWZ0OwogIDAuNjQgICAgICAgICAgbHNyICAg IHIwLCByMiwgIzgKICAgICAgICAgICAgICBjYWtlX2RlcXVldWUoKToKICAgICAgICAgICAgICAg ICAgICAgIGRlbGF5ID0ga3RpbWVfdG9fbnMoa3RpbWVfc3ViKG5vdywgY29iYWx0X2dldF9lbnF1 ZXVlX3RpbWUoc2tiKSkpOwogICAgICAgICAgICAgICAgc3VicyAgIHI2LCByNiwgcjQKICAgICAg ICAgICAgICBjYWtlX2V3bWEoKToKICAgICAgICAgICAgICAgICAgICAgIGF2ZyAtPSBhdmcgPj4g c2hpZnQ7CiAgMC4wMSAgICAgICAgICBvcnIgICAgcjAsIHIwLCByMywgbHNsICMyNAogICAgICAg ICAgICAgIGNha2VfZGVxdWV1ZSgpOgogICAgICAgICAgICAgICAgICAgICAgZGVsYXkgPSBrdGlt ZV90b19ucyhrdGltZV9zdWIobm93LCBjb2JhbHRfZ2V0X2VucXVldWVfdGltZShza2IpKSk7CiAg ICAgICAgICAgICAgICBzYmMgICAgcjcsIHI3LCByNQogICAgICAgICAgICAgIGNha2VfZXdtYSgp OgogICAgICAgICAgICAgICAgICAgICAgYXZnIC09IGF2ZyA+PiBzaGlmdDsKICAwLjEzICAgICAg ICAgIGxzciAgICByMSwgcjMsICM4CiAgICAgICAgICAgICAgICBzdWJzICAgcjIsIHIyLCByMAog IDAuMDIgICAgICAgICAgc2JjICAgIHIzLCByMywgcjEKICAgICAgICAgICAgICAgICAgICAgIGF2 ZyArPSBzYW1wbGUgPj4gc2hpZnQ7CiAgICAgICAgICAgICAgICBsc3IgICAgbHIsIHI2LCAjOAog IDAuMTAgICAgICAgICAgb3JyICAgIGxyLCBsciwgcjcsIGxzbCAjMjQKICAgICAgICAgICAgICAg IHN0ciAgICBsciwgW3NwLCAjMTZdCiAgMC4xNiAgICAgICAgICBsc3IgICAgbHIsIHI3LCAjOAog ICAgICAgICAgICAgICAgc3RyICAgIGxyLCBbc3AsICMyMF0KICAgICAgICAgICAgICAgICAgICAg IGF2ZyAtPSBhdmcgPj4gc2hpZnQ7CiAgMC4wNiAgICAgICAgICBtb3YgICAgcjQsIHIyICAgCiAg ICAgICAgICAgICAgICBtb3YgICAgcjUsIHIzICAgCiAgICAgICAgICAgICAgICAgICAgICBhdmcg Kz0gc2FtcGxlID4+IHNoaWZ0OwogIDAuMDQgICAgICAgICAgbGRyZCAgIHIyLCBbc3AsICMxNl0K ICAgICAgICAgICAgICAgIGFkZHMgICByMiwgcjIsIHI0CiAgMC4xMCAgICAgICAgICBhZGMgICAg cjMsIHIzLCByNQogICAgICAgICAgICAgIGNha2VfZGVxdWV1ZSgpOgogICAgICAgICAgICAgICAg ICAgICAgYi0+YXZnZV9kZWxheSA9IGNha2VfZXdtYShiLT5hdmdlX2RlbGF5LCBkZWxheSwgOCk7 CiAgICAgICAgICAgICAgICBzdHJkICAgcjIsIFtzbCwgIzE1Ml0gIDsgMHg5OAogICAgICAgICAg ICAgICAgICAgICAgYi0+cGVha19kZWxheSA9IGNha2VfZXdtYShiLT5wZWFrX2RlbGF5LCBkZWxh eSwKICAwLjA4ICAgICAgICAgIGxkcmQgICByMiwgW3NsLCAjMTYwXSAgOyAweGEwCiAgICAgICAg ICAgICAgICBjbXAgICAgcjMsIHI3ICAgCiAgMC4wOSAgICAgICAgICBjbXBlcSAgcjIsIHI2ICAg CiAgICAgICAgICAgICAg4oaTIGJjcyAgICBlZTggICAgICAKICAwLjAyICAgICAgICAgIG1vdiAg ICByMSwgIzIgICAKICAgICAgICAgICAgICAgIGxzciAgICByMCwgcjYsIHIxCiAgICAgICAgICAg ICAgICBvcnIgICAgcjAsIHIwLCByNywgbHNsICMzMAogICAgICAgICAgICAgICAgbW92ICAgIHNs LCByMCAgIAogICAgICAgICAgICAgICAgbHNyICAgIHIwLCByNywgcjEKICAgICAgICAgICAgICAg IG1vdiAgICBmcCwgcjAgICAKICAgICAgICAgICAgICDihpMgYiAgICAgIGVmMCAgICAgIAogIDAu MDYgICBlZTg6ICAgbGRyZCAgIHNsLCBbc3AsICMxNl0KICAwLjAxICAgICAgICAgIG1vdiAgICBy MSwgIzggICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ZGVsYXkgPiBiLT5wZWFrX2RlbGF5ID8gMiA6IDgpOwogICAgICAgICAgICAgICAgICAgICAgYi0+ YmFzZV9kZWxheSA9IGNha2VfZXdtYShiLT5iYXNlX2RlbGF5LCBkZWxheSwKICAwLjA4ICAgZWYw OiAgIGxkciAgICBsciwgW3NwLCAjNzZdICAgOyAweDRjCiAgICAgICAgICAgICAgY2FrZV9ld21h KCk6CiAgICAgICAgICAgICAgICAgICAgICBhdmcgLT0gYXZnID4+IHNoaWZ0OwogIDAuMDkgICAg ICAgICAgcnNiICAgIHIwLCByMSwgIzMyCiAgMC4wMSAgICAgICAgICBsc3IgICAgcjQsIHIyLCBy MQogIDAuMDEgICAgICAgICAgc3ViICAgIGlwLCByMSwgIzMyCiAgMC4wNCAgICAgICAgICBvcnIg ICAgcjQsIHI0LCByMywgbHNsIHIwCiAgICAgICAgICAgICAgICAgICAgICBhdmcgKz0gc2FtcGxl ID4+IHNoaWZ0OwogIDAuMDIgICAgICAgICAgYWRkcyAgIHNsLCBzbCwgcjIKICAgICAgICAgICAg ICAgICAgICAgIGF2ZyAtPSBhdmcgPj4gc2hpZnQ7CiAgMC4wMyAgICAgICAgICBvcnIgICAgcjQs IHI0LCByMywgbHNyIGlwCiAgICAgICAgICAgICAgY2FrZV9kZXF1ZXVlKCk6CiAgICAgICAgICAg ICAgICAgICAgICBiLT5iYXNlX2RlbGF5ID0gY2FrZV9ld21hKGItPmJhc2VfZGVsYXksIGRlbGF5 LAogIDAuMDUgICAgICAgICAgYWRkICAgIHIwLCBsciwgIzE3NiAgICA7IDB4YjAKICAgICAgICAg ICAgICBjYWtlX2V3bWEoKToKICAgICAgICAgICAgICAgICAgICAgIGF2ZyArPSBzYW1wbGUgPj4g c2hpZnQ7CiAgMC4wNSAgICAgICAgICBhZGMgICAgZnAsIGZwLCByMwogICAgICAgICAgICAgICAg ICAgICAgYXZnIC09IGF2ZyA+PiBzaGlmdDsKICAwLjA1ICAgICAgICAgIGxzciAgICByNSwgcjMs IHIxCiAgICAgICAgICAgICAgICAgICAgICBhdmcgKz0gc2FtcGxlID4+IHNoaWZ0OwogIDAuMDMg ICAgICAgICAgc3VicyAgIHIyLCBzbCwgcjQKICAwLjAxICAgICAgICAgIHNiYyAgICByMywgZnAs IHI1CiAgICAgICAgICAgICAgY2FrZV9kZXF1ZXVlKCk6CiAgICAgICAgICAgICAgICAgICAgICBi LT5wZWFrX2RlbGF5ID0gY2FrZV9ld21hKGItPnBlYWtfZGVsYXksIGRlbGF5LAogIDAuMDEgICAg ICAgICAgc3RyZCAgIHIyLCBbbHIsICMxNjBdICA7IDB4YTAKICAgICAgICAgICAgICAgICAgICAg IGItPmJhc2VfZGVsYXkgPSBjYWtlX2V3bWEoYi0+YmFzZV9kZWxheSwgZGVsYXksCiAgMC4wMSAg ICAgICAgICBsZHJkICAgcjQsIFtyMCwgIy04XQogIDAuMDggICAgICAgICAgY21wICAgIHI1LCBy NyAgIAogIDAuMDMgICAgICAgICAgY21wZXEgIHI0LCByNiAgIAogIDAuMDIgICAgICAgICAgbW92 aGkgIGlwLCAjMiAgIAogIDAuMDggICAgICAgICAgbHNyaGkgIHIzLCByNiwgaXAKICAwLjAyICAg ICAgICAgIG9ycmhpICByMywgcjMsIHI3LCBsc2wgIzMwCiAgMC4wMyAgICAgICAgICBtb3ZscyAg aXAsICM4ICAgCiAgMC4wMiAgICAgICAgICBzdHJoaSAgcjMsIFtzcCwgIzE2XQogICAgICAgICAg ICAgIGNha2VfZXdtYSgpOgogICAgICAgICAgICAgICAgICAgICAgYXZnIC09IGF2ZyA+PiBzaGlm dDsKICAwLjA0ICAgICAgICAgIHJzYiAgICBsciwgaXAsICMzMgogICAgICAgICAgICAgICAgbHNy aGkgIHIzLCByNywgaXAKICAwLjAyICAgICAgICAgIGxzciAgICByMiwgcjQsIGlwCiAgMC4wNCAg ICAgICAgICBzdHJoaSAgcjMsIFtzcCwgIzIwXQogIDAuMDggICAgICAgICAgc3ViICAgIHIxLCBp cCwgIzMyCiAgICAgICAgICAgICAgICAgICAgICBhdmcgKz0gc2FtcGxlID4+IHNoaWZ0OwogIDAu MDIgICAgICAgICAgbGRyZCAgIHNsLCBbc3AsICMxNl0KICAgICAgICAgICAgICAgICAgICAgIGF2 ZyAtPSBhdmcgPj4gc2hpZnQ7CiAgMC4wMiAgICAgICAgICBvcnIgICAgcjIsIHIyLCByNSwgbHNs IGxyCiAgICAgICAgICAgICAgICBvcnIgICAgcjIsIHIyLCByNSwgbHNyIHIxCiAgMC4wMiAgICAg ICAgICBsc3IgICAgcjMsIHI1LCBpcAogICAgICAgICAgICAgICAgICAgICAgYXZnICs9IHNhbXBs ZSA+PiBzaGlmdDsKICAwLjAzICAgICAgICAgIGFkZHMgICBzbCwgc2wsIHI0CiAgICAgICAgICAg ICAgY2FrZV9kZXF1ZXVlKCk6CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIGRlbGF5IDwgYi0+YmFzZV9kZWxheSA/IDIgOiA4KTsKICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICBsZW4gPSBjYWtlX2FkdmFuY2Vfc2hhcGVyKHEsIGIsIHNr Yiwgbm93LCBmYWxzZSk7CiAgICAgICAgICAgICAgICBsZHIgICAgcjEsIFtzcCwgIzYwXSAgIDsg MHgzYwogICAgICAgICAgICAgIGNha2VfZXdtYSgpOgogICAgICAgICAgICAgICAgICAgICAgYXZn ICs9IHNhbXBsZSA+PiBzaGlmdDsKICAwLjAyICAgICAgICAgIGFkYyAgICBmcCwgZnAsIHI1CiAg MC4wMSAgICAgICAgICBzdWJzICAgcjYsIHNsLCByMgogIDAuMDUgICAgICAgICAgc2JjICAgIHI3 LCBmcCwgcjMKICAgICAgICAgICAgICBjYWtlX2RlcXVldWUoKToKICAgICAgICAgICAgICAgICAg ICAgIGxlbiA9IGNha2VfYWR2YW5jZV9zaGFwZXIocSwgYiwgc2tiLCBub3csIGZhbHNlKTsKICAw LjAzICAgICAgICAgIGxkcmQgICByNCwgW3NwLCAjMjRdCiAgICAgICAgICAgICAgICAgICAgICBi LT5iYXNlX2RlbGF5ID0gY2FrZV9ld21hKGItPmJhc2VfZGVsYXksIGRlbGF5LAogIDAuMDMgICAg ICAgICAgc3RyZCAgIHI2LCBbcjAsICMtOF0KICAgICAgICAgICAgICAgICAgICAgIGxlbiA9IGNh a2VfYWR2YW5jZV9zaGFwZXIocSwgYiwgc2tiLCBub3csIGZhbHNlKTsKICAwLjAyICAgICAgICAg IG1vdiAgICBpcCwgIzAgICAKICAwLjA3ICAgICAgICAgIGxkciAgICByNiwgW3NwLCAjNzJdICAg OyAweDQ4CiAgMC4wMiAgICAgICAgICBsZHIgICAgcjIsIFtzcCwgIzQ4XSAgIDsgMHgzMAogIDAu MDIgICAgICAgICAgc3RyZCAgIHI0LCBbc3BdIAogIDAuMDkgICAgICAgICAgbW92ICAgIHIwLCBy NiAgIAogIDAuMDMgICAgICAgICAgc3RyICAgIGlwLCBbc3AsICM4XQogIDAuMDMgICAgICAgIOKG kiBibCAgICAgY2FrZV9hZHZhbmNlX3NoYXBlcgogICAgICAgICAgICAgICAgICAgICAgZmxvdy0+ ZGVmaWNpdCAtPSBsZW47CiAgMC4yMiAgICAgICAgICBsZHIgICAgcjMsIFtyOSwgIzhdCiAgICAg ICAgICAgICAgICAgICAgICBiLT50aW5fZGVmaWNpdCAtPSBsZW47CiAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgaWYgKGt0aW1lX2FmdGVyKHEtPnRpbWVfbmV4dF9wYWNrZXQs IG5vdykgJiYgc2NoLT5xLnFsZW4pIHsKICAwLjAxICAgICAgICAgIG1vdncgICByMiwgIzE2NDE2 ICAgICAgOyAweDQwMjAKICAwLjA1ICAgICAgICAgIGFkZCAgICByMSwgcjYsIHIyCiAgICAgICAg ICAgICAgICAgICAgICBmbG93LT5kZWZpY2l0IC09IGxlbjsKICAwLjA0ICAgICAgICAgIHN1YiAg ICByMywgcjMsIHIwCiAgMC4wNCAgICAgICAgICBzdHIgICAgcjMsIFtyOSwgIzhdCiAgICAgICAg ICAgICAgICAgICAgICBiLT50aW5fZGVmaWNpdCAtPSBsZW47CiAgMC4yMiAgICAgICAgICBsZHIg ICAgcjMsIFtyOCwgIzIxNjBdIDsgMHg4NzAKICAgICAgICAgICAgICAgIHN1YiAgICByMywgcjMs IHIwCiAgMC4wMiAgICAgICAgICBzdHIgICAgcjMsIFtyOCwgIzIxNjBdIDsgMHg4NzAKICAgICAg ICAgICAgICAgICAgICAgIGlmIChrdGltZV9hZnRlcihxLT50aW1lX25leHRfcGFja2V0LCBub3cp ICYmIHNjaC0+cS5xbGVuKSB7CiAgICAgICAgICAgICAgICBsZHJkICAgcjAsIFtyMSwgIy04XQog ICAgICAgICAgICAgIGt0aW1lX2NvbXBhcmUoKToKICAgICAgICAgICAgICAgICAgICAgIGlmIChj bXAxID4gY21wMikKICAwLjAxICAgICAgICAgIGNtcCAgICByNCwgcjAgICAKICAgICAgICAgICAg ICAgIHNiY3MgICByMywgcjUsIHIxCiAgICAgICAgICAgICAgY2FrZV9kZXF1ZXVlKCk6CiAgMC4w NCAgICAgICAgICBsZHIgICAgcjMsIFtzcCwgIzUyXSAgIDsgMHgzNAogICAgICAgICAgICAgICAg bGRyICAgIHIzLCBbcjMsICM3Nl0gICA7IDB4NGMKICAgICAgICAgICAgICBrdGltZV9jb21wYXJl KCk6CiAgMC4xNCAgICAgICAg4oaTIGJnZSAgICAxMDEwICAgICAKICAgICAgICAgICAgICBjYWtl X2RlcXVldWUoKToKICAgICAgICAgICAgICAgIGNtcCAgICByMywgIzAgICAKICAwLjA1ICAgICAg ICDihpMgYmVxICAgIDEwNzAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1NjQg bmV4dCA9IG1pbihrdGltZV90b19ucyhxLT50aW1lX25leHRfcGFja2V0KSwKICAwLjE3ICAgICAg ICAgIGxkciAgICByMywgW3NwLCAjNzJdICAgOyAweDQ4CiAgMC4wMiAgICAgICAgICBhZGQgICAg cjIsIHIzLCByMgogICAgICAgICAgICAgICAgbGRyZCAgIHIyLCBbcjJdIAogIDAuMDUgICAgICAg ICAgY21wICAgIHIwLCByMiAgIAogICAgICAgICAgICAgICAgc2JjcyAgIGlwLCByMSwgcjMKICAw LjE1ICAgICAgICAgIG1vdmx0ICByMywgcjEgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAga3RpbWVfdG9fbnMocS0+ZmFpbHNhZmVfbmV4dF9wYWNrZXQpKTsK ICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHFkaXNjX3dhdGNo ZG9nX3NjaGVkdWxlX25zKCZxLT53YXRjaGRvZywgbmV4dCk7CiAgICAgICAgICAgICAgICBsZHIg ICAgcjEsIFtzcCwgIzcyXSAgIDsgMHg0OAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1 NjQgbmV4dCA9IG1pbihrdGltZV90b19ucyhxLT50aW1lX25leHRfcGFja2V0KSwKICAgICAgICAg ICAgICAgIG1vdmx0ICByMiwgcjAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcWRp c2Nfd2F0Y2hkb2dfc2NoZWR1bGVfbnMoJnEtPndhdGNoZG9nLCBuZXh0KTsKICAwLjAxICAgICAg ICAgIGFkZCAgICByMCwgcjEsICMxNjM4NCAgOyAweDQwMDAKICAwLjAyICAgICAgICAgIGFkZCAg ICByMCwgcjAsICMxMDQgICAgOyAweDY4CiAgICAgICAgICAgICAg4oaSIGJsICAgICBxZGlzY19w ZWVrX2RlcXVldWVkCiAgICAgICAgICAgICAgICAgICAgICBpZiAoa3RpbWVfYWZ0ZXIocS0+dGlt ZV9uZXh0X3BhY2tldCwgbm93KSAmJiBzY2gtPnEucWxlbikgewogICAgICAgICAgICAgIOKGkyBi ICAgICAgMTA5MCAgICAgCiAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFzY2gtPnEu cWxlbikgewogICAgICAgIDEwMTA6ICAgY21wICAgIHIzLCAjMCAgIAogICAgICAgICAgICAgIOKG kyBibmUgICAgMTA5MCAgICAgCiAgICAgICAgICAgICAg4oaTIGIgICAgICAxMDcwICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IGk7CiAgICAgICAgICAgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGkgPSAwOyBpIDwgcS0+dGluX2NudDsgaSsrKSB7 CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHEtPnRpbnNbaV0uZGVj YXlpbmdfZmxvd19jb3VudCkgewogIDAuMDUgIDEwMWM6ICAgbGRyICAgIHIyLCBbbHIsICMyNjRd ICA7IDB4MTA4CiAgICAgICAgICAgICAgICBhZGQgICAgcjIsIHIyLCByMwogIDAuMDEgICAgICAg ICAgYWRkICAgIHIzLCByMywgIzg4MDY0ICA7IDB4MTU4MDAKICAgICAgICAgICAgICAgIGFkZCAg ICByMSwgcjIsICM4ODA2NCAgOyAweDE1ODAwCiAgMC4wMyAgICAgICAgICBhZGQgICAgcjMsIHIz LCAjMTkyICAgIDsgMHhjMAogICAgICAgICAgICAgICAgYWRkICAgIHIxLCByMSwgIzQ4ICAgICA7 IDB4MzAKICAwLjA1ICAgICAgICAgIGxkcmggICByMSwgW3IxXSAKICAgICAgICAgICAgICAgIGNt cCAgICByMSwgIzAgICAKICAwLjAzICAgICAgICDihpMgYmVxICAgIDEwODQgICAgIAogICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga3RpbWVfdCBuZXh0ID0gXAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrdGlt ZV9hZGRfbnMobm93LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcS0+dGluc1tpXS5jcGFyYW1zLnRhcmdldCk7CiAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg cWRpc2Nfd2F0Y2hkb2dfc2NoZWR1bGVfbnMoJnEtPndhdGNoZG9nLAogICAgICAgICAgICAgICAg bGRyICAgIHIzLCBbc3AsICM3Ml0gICA7IDB4NDgKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAga3RpbWVfYWRkX25zKG5vdywKICAwLjA1ICAgICAg ICAgIGFkZCAgICByMiwgcjIsICM4ODA2NCAgOyAweDE1ODAwCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICBxZGlzY193YXRjaGRvZ19zY2hlZHVsZV9ucygmcS0+ d2F0Y2hkb2csCiAgICAgICAgICAgICAgICBsZHJkICAgcjQsIFtzcCwgIzI0XQogIDAuMDUgICAg ICAgICAgYWRkICAgIHIwLCByMywgIzE2Mzg0ICA7IDB4NDAwMAogICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrdGltZV9hZGRfbnMobm93LAogICAg ICAgICAgICAgICAgbGRyZCAgIHIyLCBbcjIsICMxNl0KICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHFkaXNjX3dhdGNoZG9nX3NjaGVkdWxlX25zKCZxLT53YXRj aGRvZywKICAwLjAyICAgICAgICAgIGFkZCAgICByMCwgcjAsICMxMDQgICAgOyAweDY4CiAgICAg ICAgICAgICAgICBhZGRzICAgcjQsIHI0LCByMgogIDAuMDEgICAgICAgICAgYWRjICAgIHI1LCBy NSwgcjMKICAgICAgICAgICAgICAgIG1vdiAgICByMiwgcjQgICAKICAwLjAzICAgICAgICAgIG1v diAgICByMywgcjUgICAKICAgICAgICAgICAgICDihpIgYmwgICAgIHFkaXNjX3BlZWtfZGVxdWV1 ZWQKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgIGt0aW1lX3RvX25zKG5leHQpKTsKICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAgICAgICAgIOKGkyBiICAg ICAgMTA5MCAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoaSA9IDA7IGkg PCBxLT50aW5fY250OyBpKyspIHsKICAwLjExICAxMDcwOiAgIGxkciAgICByMywgW3NwLCAjNTZd ICAgOyAweDM4CiAgMC4wMyAgICAgICAgICBsZHIgICAgbHIsIFtzcCwgIzUyXSAgIDsgMHgzNAog ICAgICAgICAgICAgICAgbGRyaCAgIGlwLCBbcjMsICMxNF0KICAwLjAyICAgICAgICAgIG1vdiAg ICByMywgIzAgICAKICAgICAgICAgICAgICAgIG1vdiAgICByMCwgcjMgICAKICAwLjA3ICAxMDg0 OiAgIGNtcCAgICBpcCwgcjAgICAKICAgICAgICAgICAgICAgIGFkZCAgICByMCwgcjAsICMxCiAg MC4wNCAgICAgICAg4oaRIGJuZSAgICAxMDFjICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAg ICAgICAgICAgICAgIH0gICAKICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICBp ZiAocS0+b3ZlcmZsb3dfdGltZW91dCkKICAwLjYzICAxMDkwOiAgIGxkciAgICByMiwgW3NwLCAj NTZdICAgOyAweDM4CiAgMC4wNyAgICAgICAgICBsZHJoICAgcjMsIFtyMiwgIzEyXQogIDAuMDEg ICAgICAgICAgY21wICAgIHIzLCAjMCAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBx LT5vdmVyZmxvd190aW1lb3V0LS07CiAgMC4wOSAgICAgICAgICBzdWJuZSAgcjMsIHIzLCAjMQog IDAuMDMgICAgICAgICAgc3RyaG5lIHIzLCBbcjIsICMxMl0KICAwLjAzICAgICAgICDihpMgYiAg ICAgIDExNGMgICAgIAogICAgICAgICAgICAgIGNvYmFsdF9xdWV1ZV9lbXB0eSgpOgogICAgICAg ICAgICAgICAgICAgICAgaWYgKHZhcnMtPmNvdW50ICYmIGt0aW1lX3RvX25zKGt0aW1lX3N1Yihu b3csIHZhcnMtPmRyb3BfbmV4dCkpID49IDApIHsKICAwLjExICAxMGE4OiAgIGxkcmQgICByNiwg W3I4LCAjMjRdCiAgMC4wMSAgICAgICAgICBsZHJkICAgcjIsIFtzcCwgIzI0XQogICAgICAgICAg ICAgICAgc3VicyAgIHIyLCByMiwgcjYKICAwLjAyICAgICAgICAgIHNiYyAgICByMywgcjMsIHI3 CiAgICAgICAgICAgICAgICBjbXAgICAgcjIsICMwICAgCiAgMC4wMSAgICAgICAgICBzYmNzICAg cjMsIHIzLCAjMAogICAgICAgICAgICAgICAgbW92Z2UgIGlwLCAjMCAgIAogICAgICAgICAgICAg IOKGkSBiZ2UgICAgNWIwICAgICAgCiAgICAgICAgICAgICAg4oaRIGIgICAgICA2NGMgICAgICAK ICAgICAgICAgICAgICBjYWtlX2RlcXVldWUoKToKICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgaWYgKGNha2VfZGRzdChxLT5mbG93X21vZGUpKQogIDAuMTUgIDEwY2M6ICAgY21wICAgIHIz LCAjNiAgIAogIDIuODAgICAgICAgICAgbW92bmUgIHI0LCAjMSAgIAogIDAuMTcgICAgICAgIOKG kSBibmUgICAgNDhjICAgICAgCiAgMC45OCAgICAgICAg4oaRIGIgICAgICA0NGMgICAgICAKICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGItPnRpbl9kZWZpY2l0 ICs9IGItPnRpbl9xdWFudHVtX2JhbmQ7CiAgICAgICAgMTBkYzogICBsZHJoICAgcjMsIFtyOSwg cjddCiAgICAgICAgICAgICAgICBzdHIgICAgcjMsIFtyOSwgIzIxNjBdIDsgMHg4NzAKICAgICAg ICAgICAgICDihpEgYiAgICAgIDE0NCAgICAgIAogICAgICAgICAgICAgIGNvYmFsdF9xdWV1ZV9l bXB0eSgpOgogICAgICAgICAgICAgICAgICAgICAgaWYgKHZhcnMtPmNvdW50ICYmIGt0aW1lX3Rv X25zKGt0aW1lX3N1Yihub3csIHZhcnMtPmRyb3BfbmV4dCkpID49IDApIHsKICAgICAgICAxMGU4 OiAgIGxkcmQgICByNiwgW3NsLCAjMjRdCiAgICAgICAgICAgICAgICBsZHJkICAgcjIsIFtzcCwg IzI0XQogICAgICAgICAgICAgICAgc3VicyAgIHIyLCByMiwgcjYKICAgICAgICAgICAgICAgIHNi YyAgICByMywgcjMsIHI3CiAgICAgICAgICAgICAgICBjbXAgICAgcjIsICMwICAgCiAgICAgICAg ICAgICAgICBzYmNzICAgcjMsIHIzLCAjMAogICAgICAgICAgICAgICAgbW92Z2UgIGlwLCAjMSAg IAogICAgICAgICAgICAgIOKGkSBiZ2UgICAgNWIwICAgICAgCiAgICAgICAgICAgICAg4oaRIGIg ICAgICA2MzggICAgICAKICAwLjI1ICAxMTBjOiAgIGxkciAgICByMCwgW3I4LCAjNF0KICAwLjAy ICAgICAgICAgIGxkciAgICByMSwgW3I4XSAKICAwLjAyICAgICAgICDihpEgYiAgICAgIDY1YyAg ICAgIAogIDAuMzQgIDExMTg6ICAgbGRyICAgIHIxLCBbc2wsICMxNl0KICAgICAgICAgICAgICAg ICAgICAgIHZhcnMtPmRyb3BwaW5nID0gZmFsc2U7CiAgMC4wNCAgICAgICAgICBzdHJiICAgaXAs IFtzbCwgIzQ0XSAgIDsgMHgyYwogICAgICAgICAgICAgICAgICAgICAgaWYgKHZhcnMtPmNvdW50 ICYmIGt0aW1lX3RvX25zKGt0aW1lX3N1Yihub3csIHZhcnMtPmRyb3BfbmV4dCkpID49IDApIHsK ICAwLjAxICAgICAgICAgIGNtcCAgICByMSwgIzAgICAKICAwLjA1ICAgICAgICDihpEgYm5lICAg IDEwYTggICAgIAogIDAuMDUgICAgICAgIOKGkSBiICAgICAgMTEwYyAgICAgCiAgICAgICAgMTEy YzogICBsZHIgICAgcjEsIFtzbCwgIzE2XQogICAgICAgICAgICAgICAgICAgICAgdmFycy0+ZHJv cHBpbmcgPSBmYWxzZTsKICAgICAgICAgICAgICAgIGxkciAgICByMywgW3NwLCAjNDhdICAgOyAw eDMwCiAgICAgICAgICAgICAgICAgICAgICBpZiAodmFycy0+Y291bnQgJiYga3RpbWVfdG9fbnMo a3RpbWVfc3ViKG5vdywgdmFycy0+ZHJvcF9uZXh0KSkgPj0gMCkgewogICAgICAgICAgICAgICAg Y21wICAgIHIxLCAjMCAgIAogICAgICAgICAgICAgICAgICAgICAgdmFycy0+ZHJvcHBpbmcgPSBm YWxzZTsKICAgICAgICAgICAgICAgIHN0cmIgICByMywgW3NsLCAjNDRdICAgOyAweDJjCiAgICAg ICAgICAgICAgICBsZHJlcSAgcjAsIFtzbCwgIzRdCiAgICAgICAgICAgICAgICBsZHJlcSAgcjEs IFtzbF0gCiAgICAgICAgICAgICAgICAgICAgICBpZiAodmFycy0+Y291bnQgJiYga3RpbWVfdG9f bnMoa3RpbWVfc3ViKG5vdywgdmFycy0+ZHJvcF9uZXh0KSkgPj0gMCkgewogICAgICAgICAgICAg IOKGkSBiZXEgICAgNjdjICAgICAgCiAgICAgICAgICAgICAg4oaRIGIgICAgICAxMGE4ICAgICAK ICAgICAgICAgICAgICBjYWtlX2RlcXVldWUoKToKICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICByZXR1cm4gc2tiOwogICAgICAgICAgICAgIH0gICAgICAgICAgIAogIDAuNDYg IDExNGM6ICAgbGRyICAgIHIwLCBbc3AsICM0OF0gICA7IDB4MzAKICAwLjAyICAgICAgICAgIGFk ZCAgICBzcCwgc3AsICMxMDAgICAgOyAweDY0CiAgMC4xMCAgICAgICAgICBwb3AgICAge3I0LCBy NSwgcjYsIHI3LCByOCwgcjksIHNsLCBmcCwgcGN9Cg== --000000000000f9e96e05839b86e8 Content-Type: application/octet-stream; name="perf.hist" Content-Disposition: attachment; filename="perf.hist" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jt0jo6xx1 ICA3NC42OCUgIHN3YXBwZXIgICAgICAweDI2NzggICAgICAgICAgICAgSyBba10gY2FrZV9kZXF1 ZXVlCiAgMTAuNjElICBzd2FwcGVyICAgICAgMHg1YWQwICAgICAgICAgICAgIEsgW2tdIGNha2Vf ZW5xdWV1ZQogICA2LjM1JSAgc3dhcHBlciAgICAgIDB4MzgyYyAgICAgICAgICAgICBLIFtrXSBj YWtlX2hhc2gKICAgMy4xNyUgIHN3YXBwZXIgICAgICAweDQ3OCAgICAgICAgICAgICAgSyBba10g Y2FrZV9kZXF1ZXVlX29uZQogICAxLjk4JSAgc3dhcHBlciAgICAgIDB4NDBjICAgICAgICAgICAg ICBLIFtrXSBjYWtlX2FkdmFuY2Vfc2hhcGVyCiAgIDAuODUlICBzd2FwcGVyICAgICAgMHgzY2Zj ICAgICAgICAgICAgIEsgW2tdIGNha2Vfb3ZlcmhlYWQKICAgMC42OSUgIHN3YXBwZXIgICAgICAw eDEzOCAgICAgICAgICAgICAgSyBba10gY2FrZV9jYWxjX292ZXJoZWFkCiAgIDAuMzklICBzd2Fw cGVyICAgICAgMHg0OWU4ICAgICAgICAgICAgIEsgW2tdIGNha2VfYWNrX2ZpbHRlcgogICAwLjI1 JSAgc2ggICAgICAgICAgIDB4MjYzMCAgICAgICAgICAgICBLIFtrXSBjYWtlX2RlcXVldWUKICAg MC4yNCUgIHNoICAgICAgICAgICAweDU0YjggICAgICAgICAgICAgSyBba10gY2FrZV9lbnF1ZXVl CiAgIDAuMTUlICBkaGNwdjYuc2NyaSAgMHgyNmI0ICAgICAgICAgICAgIEsgW2tdIGNha2VfZGVx dWV1ZQogICAwLjEyJSAgZnczICAgICAgICAgIDB4NTAxOCAgICAgICAgICAgICBLIFtrXSBjYWtl X2VucXVldWUKICAgMC4wNiUgIGtzb2Z0aXJxZC8xICAweDI2YjggICAgICAgICAgICAgSyBba10g Y2FrZV9kZXF1ZXVlCiAgIDAuMDYlICB1YnVzZCAgICAgICAgMHgyYmE0ICAgICAgICAgICAgIEsg W2tdIGNha2VfZGVxdWV1ZQogICAwLjA2JSAgdWJ1c2QgICAgICAgIDB4NGYyYyAgICAgICAgICAg ICBLIFtrXSBjYWtlX2VucXVldWUKICAgMC4wNiUgIHNoICAgICAgICAgICAweDQ3OCAgICAgICAg ICAgICAgSyBba10gY2FrZV9kZXF1ZXVlX29uZQogICAwLjA2JSAgc2ggICAgICAgICAgIDB4MTk4 ICAgICAgICAgICAgICBLIFtrXSBjYWtlX2NhbGNfb3ZlcmhlYWQKICAgMC4wNSUgIHNoICAgICAg ICAgICAweDNiYjAgICAgICAgICAgICAgSyBba10gY2FrZV9oYXNoCiAgIDAuMDUlICBwZXJmICAg ICAgICAgMHgyM2I0ICAgICAgICAgICAgIEsgW2tdIGNha2VfZGVxdWV1ZQogICAwLjAzJSAgb2Ro Y3A2YyAgICAgIDB4NTYzMCAgICAgICAgICAgICBLIFtrXSBjYWtlX2VucXVldWUKICAgMC4wMyUg IGRuc21hc3EgICAgICAweDI0MTggICAgICAgICAgICAgSyBba10gY2FrZV9kZXF1ZXVlCiAgIDAu MDElICBrc29mdGlycWQvMSAgMHgxOTggICAgICAgICAgICAgIEsgW2tdIGNha2VfY2FsY19vdmVy aGVhZAogICAwLjAxJSAgZG5zbWFzcSAgICAgIDB4MzZjYyAgICAgICAgICAgICBLIFtrXSBjYWtl X2hhc2gKICAgMC4wMSUgIGhvc3RhcGQgICAgICAweDI3NmMgICAgICAgICAgICAgSyBba10gY2Fr ZV9kZXF1ZXVlCiAgIDAuMDElICBzd2FwcGVyICAgICAgMHhiMCAgICAgICAgICAgICAgIEsgW2td IGNha2VfZ2V0X3RjcG9wdAogICAwLjAxJSAgaG9zdGFwZCAgICAgIDB4NGM4ICAgICAgICAgICAg ICBLIFtrXSBjYWtlX2RlcXVldWVfb25lCiAgIDAuMDAlICBob3N0YXBkICAgICAgMHgzZDAwICAg ICAgICAgICAgIEsgW2tdIGNha2Vfb3ZlcmhlYWQK --000000000000f9e96e05839b86e8--